+ * include/cilk/common.h (__CILKRTS_ABI_VERSION): Set the ABI version + to 1 instead of 0.
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. + From-SVN: r207870
This commit is contained in:
parent
b9809dc4cf
commit
0cfe1b4698
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user