aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r--gcc/ChangeLog125
1 files changed, 125 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 44e71f4..81b94ea 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,128 @@
+2015-11-05 Jakub Jelinek <jakub@redhat.com>
+ Ilya Verbin <ilya.verbin@intel.com>
+
+ * builtin-types.def
+ (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
+ (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
+ * cgraph.h (enum cgraph_simd_clone_arg_type): Add
+ SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP,
+ SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and
+ SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP.
+ (struct cgraph_simd_clone_arg): Adjust comment.
+ * omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41
+ to GOMP_target_ext. Add num_teams and thread_limit arguments.
+ (BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41
+ to GOMP_target_data_ext.
+ (BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41
+ to GOMP_target_update_ext.
+ (BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
+ BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
+ BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
+ BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
+ BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
+ BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
+ BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
+ BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
+ BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
+ BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins.
+ * tree-core.h (enum omp_clause_schedule_kind): Add
+ OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC,
+ OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change
+ OMP_CLAUSE_SCHEDULE_LAST value.
+ * tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE,
+ OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument.
+ * tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of
+ OMP_FOR_CHECK. Remove comment.
+ * tree-pretty-print.c (dump_omp_clause): Handle
+ GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER.
+ Simplify. Print schedule clause modifiers.
+ * tree-vect-stmts.c (vectorizable_simd_clone_call): Add
+ SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP
+ cases.
+ * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO.
+ (omp_default_clause): Tweak for
+ private/firstprivate/is_device_ptr variables on target
+ construct and use_device_ptr on target data.
+ (omp_check_private): Likewise.
+ (omp_notice_variable): For references check whether what it refers
+ to has mappable type, rather than the reference itself.
+ (omp_is_private): Diagnose linear iteration variables on non-simd
+ constructs.
+ (omp_no_lastprivate): Return true only for Fortran.
+ (gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for
+ GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds.
+ Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and
+ GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element
+ based array sections. Use GOMP_MAP_ALWAYS_P. Fix up handling of
+ lastprivate and linear when combined with distribute. Gimplify
+ variable low-bound for array reduction. Look through
+ POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section
+ reductions.
+ (gimplify_adjust_omp_clauses_1): For implicit references to
+ variables with reference type and when not ref to scalar or
+ ref to pointer, map what they refer to using tofrom and
+ use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference.
+ (gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER
+ from target exit data. Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE.
+ Drop OMP_CLAUSE_MAP_PRIVATE support. Use GOMP_MAP_ALWAYS_P.
+ Diagnose the same var on both firstprivate and lastprivate on
+ distribute construct.
+ (gimplify_omp_for): Fix up handling of predetermined
+ lastprivate or linear iter vars when combined with distribute.
+ (find_omp_teams, computable_teams_clause, optimize_target_teams): New
+ functions.
+ (gimplify_omp_workshare): Call optimize_target_teams.
+ * omp-low.c (struct omp_region): Add sched_modifiers field.
+ (struct omp_for_data): Likewise.
+ (omp_any_child_fn_dumped): New variable.
+ (extract_omp_for_data): Fill in sched_modifiers, and mask out
+ OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK
+ from sched_kind.
+ (determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK
+ bits of OMP_CLAUSE_SCHED_KIND.
+ (scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE,
+ drop OMP_CLAUSE_MAP_PRIVATE support. Look through POINTER_PLUS_EXPR
+ for array section reductions.
+ (add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even
+ for distribute parallel for, if there are lastprivate clauses on the
+ for.
+ (lower_rec_input_clauses): Handle non-zero low-bound on array
+ section reductions.
+ (lower_reduction_clauses): Likewise.
+ (lower_send_clauses): Look through POINTER_PLUS_EXPR
+ for array section reductions.
+ (expand_parallel_call): Use nonmonotonic entrypoints for
+ nonmonotonic: dynamic/guided.
+ (expand_omp_taskreg): Call assign_assembler_name_if_neeeded on
+ child_fn if current_function_decl has assembler name set, but child_fn
+ does not. Dump the header and IL of the child function when not in SSA
+ form.
+ (expand_omp_target): Likewise. Pass num_teams and thread_limit
+ arguments to BUILT_IN_GOMP_TARGET.
+ (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
+ Initialize the extra _looptemp_ clause to fd->loop.n2.
+ (expand_omp_for): Use nonmonotonic entrypoints for
+ nonmonotonic: dynamic/guided. Initialize region->sched_modifiers.
+ (expand_omp): Clear omp_any_child_fn_dumped. Dump function header
+ again if we have dumped any child functions.
+ (lower_omp_for_lastprivate): Determine the right count variable
+ for distribute simd, or distribute parallel for{, simd}.
+ (lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE
+ and GOMP_MAP_ALWAYS_POINTER. Drop OMP_CLAUSE_MAP_PRIVATE
+ support.
+ (simd_clone_clauses_extract): Handle variable step
+ for references and arguments passed by reference.
+ (simd_clone_mangle): Mangle ref/uval/val variable steps.
+ (simd_clone_adjust_argument_types): Handle
+ SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like
+ SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
+ SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like
+ SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
+ (simd_clone_linear_addend): New function.
+ (simd_clone_adjust): Handle variable step like similarly
+ to constant step, use simd_clone_linear_addend to determine
+ the actual step at runtime.
+
2015-11-05 Nathan Sidwell <nathan@codesourcery.com>
* target.def (goacc.dim_limit): New hook.