Go to file
Alexey Bataev ad537bb8a0 [OPENMP 4.5] Fixed codegen for 'priority' and destructors in task-based
directives.

'kmp_task_t' record type added a new field for 'priority' clause and
changed the representation of pointer to destructors for privates used
within loop-based directives.
Old representation:

typedef struct kmp_task {                   /* GEH: Shouldn't this be
aligned somehow? */
  void *shareds;                            /**< pointer to block of
    pointers to shared vars   */
  kmp_routine_entry_t routine;              /**< pointer to routine
    to call for executing task */
  kmp_int32 part_id;                        /**< part id for the
    task                          */
  kmp_routine_entry_t destructors;        /* pointer to function to
  invoke deconstructors of firstprivate C++ objects */
  /*  private vars  */
} kmp_task_t;

New representation:

typedef struct kmp_task {                   /* GEH: Shouldn't this be
aligned somehow? */
  void *shareds;                            /**< pointer to block of
    pointers to shared vars   */
  kmp_routine_entry_t routine;              /**< pointer to routine
    to call for executing task */
  kmp_int32 part_id;                        /**< part id for the
    task                          */
  kmp_cmplrdata_t data1; /* Two known
optional additions: destructors and priority */
  kmp_cmplrdata_t data2; /* Process
destructors first, priority second */
/* future data */
  /*  private vars  */
} kmp_task_t;

Also excessive initialization of 'destructors' fields to 'null' was
removed from codegen if it is known that no destructors shal be used.
Currently a special bit is used in 'kmp_tasking_flags_t' bitfields
('destructors_thunk' bitfield).

llvm-svn: 271201
2016-05-30 09:06:50 +00:00
clang [OPENMP 4.5] Fixed codegen for 'priority' and destructors in task-based 2016-05-30 09:06:50 +00:00
clang-tools-extra Fix a wrong check in misc-unused-using-decls 2016-05-30 07:42:22 +00:00
compiler-rt Move test only for the relevant platform 2016-05-28 04:26:06 +00:00
debuginfo-tests
libclc math: Use single precision fmax in sp path 2016-05-17 19:44:01 +00:00
libcxx Fix bug in test allocator that incorrectly computed the allocation size 2016-05-30 01:31:04 +00:00
libcxxabi libc++abi: build with -fvisibility=hidden 2016-05-26 02:12:20 +00:00
libunwind [libunwind] Improve unwinder stack usage - II 2016-05-27 15:41:45 +00:00
lld [ELF] Unbreak build with GCC. 2016-05-28 23:27:38 +00:00
lldb fix up lldb-server platform on Apple hosts 2016-05-27 04:04:52 +00:00
llgo [llgo] llgoi: separate evaluation from printing 2016-04-25 01:18:20 +00:00
llvm [BPF] Remove exit-on-error from tests (PR27768, PR27769) 2016-05-30 08:28:34 +00:00
openmp Fix storing the frame pointer for OMP-T during ppc64 microtask dispatch 2016-05-27 19:04:05 +00:00
polly [Polly] Remove usage of the `apply` function 2016-05-29 07:33:16 +00:00