+ * 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>
|
2014-02-10 Balaji V. Iyer <balaji.v.iyer@intel.com>
|
||||||
|
|
||||||
PR target/59691
|
PR target/59691
|
||||||
|
@ -317,13 +317,12 @@ namespace cilk {
|
|||||||
#ifndef __CILKRTS_ABI_VERSION
|
#ifndef __CILKRTS_ABI_VERSION
|
||||||
# ifdef IN_CILK_RUNTIME
|
# ifdef IN_CILK_RUNTIME
|
||||||
# define __CILKRTS_ABI_VERSION 1
|
# define __CILKRTS_ABI_VERSION 1
|
||||||
# elif __INTEL_COMPILER > 1200
|
# elif defined(__INTEL_COMPILER) && (__INTEL_COMPILER <= 1200)
|
||||||
// Intel compiler version >= 12.1
|
// Intel compilers prior to version 12.1 support only ABI 0
|
||||||
# define __CILKRTS_ABI_VERSION 1
|
|
||||||
# else
|
|
||||||
// Compiler does not support ABI version 1
|
|
||||||
// (Non-Intel compiler or Intel compiler prior to version 12.1).
|
|
||||||
# define __CILKRTS_ABI_VERSION 0
|
# define __CILKRTS_ABI_VERSION 0
|
||||||
|
# else
|
||||||
|
// Non-Intel compiler or Intel compiler after version 12.0.
|
||||||
|
# define __CILKRTS_ABI_VERSION 1
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -256,9 +256,19 @@ tail_recurse:
|
|||||||
// argument list of the spawned function, hence the call to
|
// argument list of the spawned function, hence the call to
|
||||||
// capture_spawn_arg_stack_frame().
|
// capture_spawn_arg_stack_frame().
|
||||||
__cilkrts_stack_frame *sf;
|
__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,
|
_Cilk_spawn cilk_for_recursive(low, mid, body, data, grain,
|
||||||
capture_spawn_arg_stack_frame(sf, w),
|
capture_spawn_arg_stack_frame(sf, w),
|
||||||
loop_root_pedigree);
|
loop_root_pedigree);
|
||||||
|
#endif
|
||||||
w = sf->worker;
|
w = sf->worker;
|
||||||
low = mid;
|
low = mid;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user