* [PATCH][committed] two minor fixes in libcilkrts
@ 2014-02-19 0:57 Iyer, Balaji V
0 siblings, 0 replies; only message in thread
From: Iyer, Balaji V @ 2014-02-19 0:57 UTC (permalink / raw)
To: gcc-patches
[-- Attachment #1: Type: text/plain, Size: 284 bytes --]
Hello Everyone,
This patch will fix two minor issues in libcilkrts. First being that we default to ABI 0 and secondly, fix an issue to initialize the stack frame correctly. All the changes are in libcilkrts and does not cause any regression failures.
Thanks,
Balaji V. Iyer.
[-- Attachment #2: patch.txt --]
[-- Type: text/plain, Size: 2602 bytes --]
diff --git a/libcilkrts/ChangeLog b/libcilkrts/ChangeLog
index c340785..434b974 100644
--- a/libcilkrts/ChangeLog
+++ b/libcilkrts/ChangeLog
@@ -1,3 +1,10 @@
+2014-02-18 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ * include/cilk/common.h (__CILKRTS_ABI_VERSION): Set the ABI version
+ to 1 instead of 0.
+ * runtime/cilk-abi-cilk-for.cpp (cilk_for_recursive): Added a fix to
+ initialize stack frame correctly.
+
2014-02-10 Balaji V. Iyer <balaji.v.iyer@intel.com>
PR target/59691
diff --git a/libcilkrts/include/cilk/common.h b/libcilkrts/include/cilk/common.h
index d2c84fa..97dd66e 100644
--- a/libcilkrts/include/cilk/common.h
+++ b/libcilkrts/include/cilk/common.h
@@ -317,13 +317,12 @@ namespace cilk {
#ifndef __CILKRTS_ABI_VERSION
# ifdef IN_CILK_RUNTIME
# define __CILKRTS_ABI_VERSION 1
-# elif __INTEL_COMPILER > 1200
- // Intel compiler version >= 12.1
-# define __CILKRTS_ABI_VERSION 1
-# else
- // Compiler does not support ABI version 1
- // (Non-Intel compiler or Intel compiler prior to version 12.1).
+# elif defined(__INTEL_COMPILER) && (__INTEL_COMPILER <= 1200)
+ // Intel compilers prior to version 12.1 support only ABI 0
# define __CILKRTS_ABI_VERSION 0
+# else
+ // Non-Intel compiler or Intel compiler after version 12.0.
+# define __CILKRTS_ABI_VERSION 1
# endif
#endif
diff --git a/libcilkrts/runtime/cilk-abi-cilk-for.cpp b/libcilkrts/runtime/cilk-abi-cilk-for.cpp
index 4fa6dce..4cd04f5 100644
--- a/libcilkrts/runtime/cilk-abi-cilk-for.cpp
+++ b/libcilkrts/runtime/cilk-abi-cilk-for.cpp
@@ -256,9 +256,19 @@ tail_recurse:
// argument list of the spawned function, hence the call to
// capture_spawn_arg_stack_frame().
__cilkrts_stack_frame *sf;
+#if defined(__GNUC__) && ! defined(__INTEL_COMPILER) && ! defined(__clang__)
+ // The current version of gcc initializes the sf structure eagerly.
+ // We can take advantage of this fact to avoid calling
+ // `capture_spawn_arg_stack_frame` when compiling with gcc.
+ // Remove this if the "shrink-wrap" optimization is implemented.
+ sf = w->current_stack_frame;
+ _Cilk_spawn cilk_for_recursive(low, mid, body, data, grain, w,
+ loop_root_pedigree);
+#else
_Cilk_spawn cilk_for_recursive(low, mid, body, data, grain,
capture_spawn_arg_stack_frame(sf, w),
loop_root_pedigree);
+#endif
w = sf->worker;
low = mid;
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2014-02-19 0:57 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-19 0:57 [PATCH][committed] two minor fixes in libcilkrts Iyer, Balaji V
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).