re PR middle-end/66199 (lastprivate/linear clause issues on combined constructs)
[gcc.git] / gcc / ChangeLog
index 46a45d4c15b3fe0b946161fc72971478027743d5..5ab8283a8be272bf832d986ef09e93d6dfaacb67 100644 (file)
@@ -1,3 +1,118 @@
+2015-05-19  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/66199
+       * tree.h (OMP_TEAMS_COMBINED): Define.
+       * gimplify.c (enum gimplify_omp_var_data): Add
+       GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
+       (enum omp_region_type): Add ORT_COMBINED_TEAMS.
+       (omp_notice_variable): Accept both ORT_TEAMS
+       and ORT_COMBINED_TEAMS.  Don't recurse if
+       GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
+       GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
+       GOVD_FIRSTPRIVATE.
+       (omp_no_lastprivate): New function.
+       (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
+       and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
+       notice_outer and set appropriate bits, otherwise make
+       sure default(none) combined constructs won't complain.
+       (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
+       outer special casing, for OMP_CLAUSE_LASTPRIVATE if
+       omp_no_lastprivate either remove the clause or turn it
+       into OMP_CLAUSE_PRIVATE.
+       (gimplify_omp_for): Fix up handling of implicit
+       lastprivate or linear iterators.
+       (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
+       ORT_COMBINED_TEAMS.
+       * omp-low.c (lower_omp_for_lastprivate): For combined
+       for simd use fd.loop.n2 from the for rather than simd.
+
+2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
+       instead of gen_rtx_raw_REG.
+       (cris_expand_epilogue): Likewise.
+       * config/microblaze/microblaze.c (microblaze_classify_address):
+       Likewise.
+       * config/sparc/sparc.md: Likewise.
+
+2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/alpha/alpha.c (alpha_legitimize_reload_address)
+       (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
+       CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
+       (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
+       Use CASE_CONST_SCALAR_INT.
+       (print_operand) <case 'M'>: Use mode_width_operand to check the
+       value of the constant.
+       * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
+       * config/alpha/predicates.md (input_operand): Use general_operand
+       instead of match_code as operand check.
+       (symbolic_operand): Use match_code with subexpression digits.
+       * config/alpha/constraints.md (Q): Ditto.
+
+2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
+
+2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * config/s390/s390.c (s390_secondary_reload): Fix check for
+       load/store relative.
+
+2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
+
+       * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
+       alternative_mask to uint64_t.
+
+2015-05-19  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/66187
+       * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
+       Pass TYPE_SIGN to tree_int_cst_min_precision.  If
+       !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
+
+2015-05-19  David Malcolm  <dmalcolm@redhat.com>
+
+       * diagnostic.c (diagnostic_report_current_module): Strengthen
+       local "new_map" from const line_map * to
+       const line_map_ordinary *.
+       * genmatch.c (error_cb): Likewise for local "map".
+       (output_line_directive): Likewise for local "map".
+       * input.c (expand_location_1): Likewise for local "map".
+       Pass NULL rather than &map to
+       linemap_unwind_to_first_non_reserved_loc, since the value is never
+       read from there, and the value written back not read from here.
+       (is_location_from_builtin_token): Strengthen local "map" from
+       const line_map * to const line_map_ordinary *.
+       (dump_location_info): Strengthen locals "map" from
+       line_map *, one to const line_map_ordinary *, the other
+       to const line_map_macro *.
+       * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
+       const line_map * to const line_map_macro *.
+       (maybe_unwind_expanded_macro_loc): Add a call to
+       linemap_check_macro when writing to the "map" field of the
+       loc_map_pair.
+       Introduce local const line_map_ordinary * "ord_map", using it in
+       place of "map" in the part of the function where we know we have
+       an ordinary map.  Strengthen local "m" from const line_map * to
+       const line_map_ordinary *.
+
+2015-05-19  Nick Clifton  <nickc@redhat.com>
+
+       PR target/66156
+       * config/msp430/msp430.md (zero_extendhisi2): Add support for
+       separate source and destination registers.
+
+2015-05-19  Richard Biener  <rguenther@suse.de>
+
+       PR tree-optimization/66165
+       * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
+       for no load permutation.
+
+       PR tree-optimization/66185
+       * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
+       when building the SLP node from scalars.
+
 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
            Tristan Gingold  <gingold@adacore.com>
 
        * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
        (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
        STACK_GROWS_DOWNWARD as normal if.
-       (expand_call): Likewise. 
+       (expand_call): Likewise.
 
 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
 
 2015-05-18  Martin Liska  <mliska@suse.cz>
 
        * dbgcnt.def: Add new counter.
-       * ipa-icf.c (sem_item_optimizer::merge_classes): Use the
-       counter.
+       * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
 
 2015-05-18  Martin Liska  <mliska@suse.cz>