[PATCH] Minor refactoring in tree-ssanames.c & freelists verifier
[gcc.git] / gcc / ChangeLog
index b41693d306bff81928a1c3f910d9f37a7dfa8139..c70ab87805993798873feaf07096e8667df26260 100644 (file)
+2015-11-09  Jeff Law  <law@redhat.com>
+
+       * tree-into-ssa.c (names_to_release): No longer static.
+       * tree-into-ssa.h (names_to_release): Declare.
+       * tree-ssanames.c (verify_ssaname_freelists): New debug function.
+       (release_free_names_and_compact_live_names): New function extracted
+       from pass_release_ssa_names::execute.
+       (pass_release_ssa_names::execute): Use it.
+
+2015-11-09  Alan Modra  <amodra@gmail.com>
+
+       * gensupport.c (add_mnemonic_string): Make len param a size_t.
+       (gen_mnemonic_setattr): Make "size" var a size_t.  Use
+       obstack_blank_fast to shrink obstack.  Cast obstack_next_free
+       return value.
+
+2015-11-09  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       PR rtl-optimization/68182
+       * gcc/bb-reorder.c (reorder_basic_blocks_simple): Treat a conditional
+       branch with only one successor just like unconditional branches.
+
+2015-11-08  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-threadupdate.c (register_jump_thraed): Assert that a
+       non-FSM path has no edges marked with EDGE_DFS_BACK.
+       (ssa_redirect_edges): No longer call mark_loop_for_removal.
+       (thread_single_edge, def_split_header_continue_p): Remove.
+       (bb_ends_with_multiway_branch): Likewise.
+       (thread_through_loop_header): Remove cases of threading from
+       latch through the header.  Simplify knowing we won't thread
+       the latch.
+       (thread_through_all_blocks): Simplify knowing that only the FSM
+       threader needs to handle backedges.
+
+2015-11-08  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * doc/extend.texi (type attributes): Document scalar_storage_order.
+       (Structure-Packing Pragmas): Rename into...
+       (Structure-Layout Pragmas): ...this.  Document scalar_storage_order.
+       * doc/invoke.texi (C Dialect Options): Document -fsso-struct
+       (Warnings): Document -Wno-scalar-storage-order.
+       * flag-types.h (enum scalar_storage_order_kind): New enumeration.
+       * calls.c (store_unaligned_arguments_into_pseudos): Adjust calls to
+       extract_bit_field and store_bit_field.
+       (initialize_argument_information): Adjust call to store_expr.
+       (load_register_parameters): Adjust call to extract_bit_field.
+       * expmed.c (check_reverse_storage_order_support): New function.
+       (check_reverse_float_storage_order_support): Likewise.
+       (flip_storage_order): Likewise.
+       (store_bit_field_1): Add REVERSE parameter.  Flip the storage order
+       of the value if it is true.  Pass REVERSE to recursive call after
+       adjusting the target offset.
+       Do not use extraction or movstrict instruction if REVERSE is true.
+       Pass REVERSE to store_fixed_bit_field.
+       (store_bit_field): Add REVERSE parameter and pass to it to above.
+       (store_fixed_bit_field): Add REVERSE parameter and pass to it to
+       store_split_bit_field and store_fixed_bit_field_1.
+       (store_fixed_bit_field_1):  Add REVERSE parameter.  Flip the storage
+       order of the value if it is true and adjust the target offset.
+       (store_split_bit_field): Add REVERSE parameter and pass it to
+       store_fixed_bit_field.  Adjust the target offset if it is true.
+       (extract_bit_field_1): Add REVERSE parameter.  Flip the storage order
+       of the value if it is true.  Pass REVERSE to recursive call after
+       adjusting the target offset.
+       Do not use extraction or subreg instruction if REVERSE is true.
+       Pass REVERSE to extract_fixed_bit_field.
+       (extract_bit_field): Add REVERSE parameter and pass to it to above.
+       (extract_fixed_bit_field): Add REVERSE parameter and pass to it to
+       extract_split_bit_field and extract_fixed_bit_field_1.
+       (extract_fixed_bit_field_1): Add REVERSE parameter.  Flip the storage
+       order of the value if it is true and adjust the target offset.
+       (extract_split_bit_field): Add REVERSE parameter and pass it to
+       extract_fixed_bit_field.  Adjust the target offset if it is true.
+       * expmed.h (flip_storage_order): Declare.
+       (store_bit_field): Adjust prototype.
+       (extract_bit_field): Likewise.
+       * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
+       (emit_group_store): Adjust call to store_bit_field.
+       (copy_blkmode_from_reg): Likewise.
+       (copy_blkmode_to_reg): Likewise.
+       (write_complex_part): Likewise.
+       (read_complex_part): Likewise.
+       (optimize_bitfield_assignment_op): Add REVERSE parameter.  Assert
+       that it isn't true if the target is a register.
+       <PLUS_EXPR>: If it is, do not optimize unless bitsize is equal to 1,
+       and flip the storage order of the value.
+       <BIT_IOR_EXPR>: Flip the storage order of the value.
+       (get_bit_range): Adjust call to get_inner_reference.
+       (expand_assignment): Adjust calls to get_inner_reference, store_expr,
+       optimize_bitfield_assignment_op and store_field.  Handle MEM_EXPRs
+       with reverse storage order.
+       (store_expr_with_bounds): Add REVERSE parameter and pass it to
+       recursive calls and call to store_bit_field.  Force the value into a
+       register if it is true and then flip the storage order of the value.
+       (store_expr): Add REVERSE parameter and pass it to above.
+       (categorize_ctor_elements_1): Adjust call to
+       initializer_constant_valid_p.
+       (store_constructor_field): Add REVERSE parameter and pass it to
+       recursive calls and call to store_field.
+       (store_constructor): Add REVERSE parameter and pass it to calls to
+       store_constructor_field and store_expr.  Set it to true for an
+       aggregate type with TYPE_REVERSE_STORAGE_ORDER.
+       (store_field): Add REVERSE parameter and pass it to recursive calls
+       and calls to store_expr and store_bit_field.  Temporarily flip the
+       storage order of the value with record type and integral mode and
+       adjust the shift if it is true.
+       (get_inner_reference): Add PREVERSEP parameter and set it to true
+       upon encoutering a reference with reverse storage order.
+       (expand_expr_addr_expr_1): Adjust call to get_inner_reference.
+       (expand_constructor): Adjust call to store_constructor.
+       (expand_expr_real_2) <CASE_CONVERT>: Pass TYPE_REVERSE_STORAGE_ORDER
+       of the union type to store_expr in the MEM case and assert that it
+       isn't set in the REG case.  Adjust call to store_field.
+       (expand_expr_real_1) <MEM_REF>: Handle reverse storage order.
+       <normal_inner_ref>: Add REVERSEP variable and adjust calls to
+       get_inner_reference and extract_bit_field. Temporarily flip the
+       storage order of the value with record type and integral mode and
+       adjust the shift if it is true.  Flip the storage order of the value
+       at the end if it is true.
+       <VIEW_CONVERT_EXPR>: Add REVERSEP variable and adjust call to
+       get_inner_reference.  Do not fetch an inner reference if it is true.
+       * expr.h (store_expr_with_bounds): Ajust prototype.
+       (store_expr): Likewise.
+       * fold-const.c (make_bit_field_ref): Add REVERSEP parameter and set
+       REF_REVERSE_STORAGE_ORDER on the reference according to it.
+       (optimize_bit_field_compare): Deal with reverse storage order.
+       Adjust calls to get_inner_reference and make_bit_field_ref.
+       (decode_field_reference): Add PREVERSEP parameter and adjust call to
+       get_inner_reference.
+       (fold_truth_andor_1): Deal with reverse storage order.  Adjust calls
+       to decode_field_reference and make_bit_field_ref.
+       (fold_unary_loc) <CASE_CONVERT>: Adjust call to get_inner_reference.
+       <VIEW_CONVERT_EXPR>: Propagate the REF_REVERSE_STORAGE_ORDER flag.
+       (fold_comparison): Adjust call to get_inner_reference.
+       (split_address_to_core_and_offset): Adjust call to
+       get_inner_reference.
+       * gimple-expr.c (useless_type_conversion_p): Return false for array
+       types with different TYPE_REVERSE_STORAGE_ORDER flag.
+       * gimplify.c (gimplify_expr) <MEM_REF>: Propagate the
+       REF_REVERSE_STORAGE_ORDER flag.
+       * lto-streamer-out.c (hash_tree): Deal with
+       TYPE_REVERSE_STORAGE_ORDER.
+       * output.h (assemble_real): Adjust prototype.
+       * print-tree.c (print_node): Convey TYPE_REVERSE_STORAGE_ORDER.
+       * stor-layout.c (finish_record_layout): Propagate the
+       TYPE_REVERSE_STORAGE_ORDER flag to the variants.
+       * tree-core.h (TYPE_REVERSE_STORAGE_ORDER): Document.
+       (TYPE_SATURATING): Adjust.
+       (REF_REVERSE_STORAGE_ORDER): Document.
+       * tree-dfa.c (get_ref_base_and_extent): Add PREVERSE parameter and
+       set it to true upon encoutering a reference with reverse storage
+       order.
+       * tree-dfa.h (get_ref_base_and_extent): Adjust prototype.
+       * tree-inline.c (remap_gimple_op_r): Propagate the
+       REF_REVERSE_STORAGE_ORDER flag.
+       (copy_tree_body_r): Likewise.
+       * tree-outof-ssa.c (insert_value_copy_on_edge): Adjust call to
+       store_expr.
+       * tree-streamer-in.c (unpack_ts_base_value_fields): Deal with
+       TYPE_REVERSE_STORAGE_ORDER and REF_REVERSE_STORAGE_ORDER.
+       * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
+       * tree.c (stabilize_reference) <BIT_FIELD_REF>: Propagate the
+       REF_REVERSE_STORAGE_ORDER flag.
+       (verify_type_variant): Deal with TYPE_REVERSE_STORAGE_ORDER.
+       (gimple_canonical_types_compatible_p): Likewise.
+       * tree.h (TYPE_REVERSE_STORAGE_ORDER): New flag.
+       (TYPE_SATURATING): Adjust.
+       (REF_REVERSE_STORAGE_ORDER): New flag.
+       (reverse_storage_order_for_component_p): New inline predicate.
+       (storage_order_barrier_p): Likewise.
+       (get_inner_reference): Adjust prototype.
+       * varasm.c: Include expmed.h.
+       (assemble_variable_contents): Adjust call to output_constant.
+       (assemble_real): Add REVERSE parameter.  Flip the storage
+       order of the value if REVERSE is true.
+       (compare_constant) <CONSTRUCTOR>: Compare TYPE_REVERSE_STORAGE_ORDER.
+       (assemble_constant_contents): Adjust call to output_constant.
+       (output_constant_pool_2): Adjust call to assemble_real.
+       (initializer_constant_valid_p_1) <CONSTRUCTOR>: Deal with
+       TYPE_REVERSE_STORAGE_ORDER.
+       (initializer_constant_valid_p): Add REVERSE parameter.
+       (output_constant): Add REVERSE parameter.
+       <INTEGER_TYPE>: Flip the storage order of the value if REVERSE is true.
+       <REAL_TYPE>: Adjust call to assemble_real.
+       <COMPLEX_TYPE>: Pass it to recursive calls.
+       <ARRAY_TYPE>: Likewise.  Adjust call to output_constructor.
+       <RECORD_TYPE>: Likewise.  Adjust call to output_constructor.
+       (struct oc_local_state): Add REVERSE field.
+       (output_constructor_array_range): Adjust calls to output_constant.
+       (output_constructor_regular_field): Likewise.
+       (output_constructor_bitfield): Adjust call to output_constructor.
+       Flip the storage order of the value if REVERSE is true.
+       (output_constructor): Add REVERSE parameter.  Set it to true for an
+       aggregate type with TYPE_REVERSE_STORAGE_ORDER.  Adjust call to
+       output_constructor_bitfield.
+       * varasm.h (initializer_constant_valid_p): Default REVERSE to false.
+       * asan.c (instrument_derefs): Adjust call to get_inner_reference.
+       * builtins.c (get_object_alignment_2): Likewise.
+       * cfgexpand.c (expand_debug_expr): Adjust call to get_inner_reference
+       and get_ref_base_and_extent.
+       * dbxout.c (dbxout_expand_expr): Likewise.
+       * dwarf2out.c (add_var_loc_to_decl): Likewise.
+       (loc_list_for_address_of_addr_expr_of_indirect_ref): Likewise.
+       (loc_list_from_tree): Likewise.
+       (fortran_common): Likewise.
+       * gimple-fold.c (gimple_fold_builtin_memory_op): Adjust calls to
+       get_ref_base_and_extent.
+       (get_base_constructor): Likewise.
+       (fold_const_aggregate_ref_1): Likewise.
+       * gimple-laddress.c (pass_laddress::execute): Adjust call to
+       get_inner_reference.
+       * gimple-ssa-strength-reduction.c (slsr_process_ref): Adjust call to
+       get_inner_reference and bail out on reverse storage order.
+       * ifcvt.c (noce_emit_move_insn): Adjust calls to store_bit_field.
+       * ipa-cp.c (ipa_get_jf_ancestor_result): Adjust call to
+       build_ref_for_offset.
+       * ipa-polymorphic-call.c (set_by_invariant): Adjust call to
+       get_ref_base_and_extent.
+       (ipa_polymorphic_call_context): Likewise.
+       (extr_type_from_vtbl_ptr_store): Likewise.
+       (check_stmt_for_type_change): Likewise.
+       (get_dynamic_type): Likewise.
+       * ipa-prop.c (ipa_load_from_parm_agg_1): Adjust call to
+       get_ref_base_and_extent.
+       (compute_complex_assign_jump_func): Likewise.
+       (get_ancestor_addr_info): Likewise.
+       (compute_known_type_jump_func): Likewise.
+       (determine_known_aggregate_parts): Likewise.
+       (ipa_get_adjustment_candidate): Likewise.
+       (ipa_modify_call_arguments): Set REF_REVERSE_STORAGE_ORDER on
+       MEM_REF.
+       * ipa-prop.h (ipa_parm_adjustment): Add REVERSE field.
+       (build_ref_for_offset): Adjust prototype.
+       * simplify-rtx.c (delegitimize_mem_from_attrs): Adjust call to
+       get_inner_reference.
+       * tree-affine.c (tree_to_aff_combination): Adjust call to
+       get_inner_reference.
+       (get_inner_reference_aff): Likewise.
+       * tree-data-ref.c (split_constant_offset_1): Likewise.
+       (dr_analyze_innermost): Likewise.  Bail out if reverse storage order.
+       * tree-scalar-evolution.c (interpret_rhs_expr): Adjust call to
+       get_inner_reference.
+       * tree-sra.c (struct access): Add REVERSE and move WRITE around.
+       (dump_access): Print new fields.
+       (create_access): Adjust call to get_ref_base_and_extent and set the
+       REVERSE flag according to the result.
+       (completely_scalarize_record): Set the REVERSE flag.
+       (scalarize_elem): Add REVERSE parameter.
+       (build_access_from_expr_1): Preserve storage order barriers.
+       (build_accesses_from_assign): Likewise.
+       (build_ref_for_offset): Add REVERSE parameter and set the
+       REF_REVERSE_STORAGE_ORDER flag accordingly.
+       (build_ref_for_model): Adjust call to build_ref_for_offset and clear
+       the REF_REVERSE_STORAGE_ORDER flag if there are components.
+       (analyze_access_subtree): Likewise.
+       (create_artificial_child_access): Set the REVERSE flag.
+       (get_access_for_expr): Adjust call to get_ref_base_and_extent.
+       (turn_representatives_into_adjustments): Propagate REVERSE flag.
+       (ipa_sra_check_caller): Adjust call to get_inner_reference.
+       * tree-ssa-alias.c (ao_ref_base): Adjust call to
+       get_ref_base_and_extent.
+       (aliasing_component_refs_p): Likewise.
+       (stmt_kills_ref_p_1): Likewise.
+       * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
+       * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <MEM_REF>: New.
+       Return true if reverse storage order.
+       <BIT_FIELD_REF>: Likewise.
+       <COMPONENT_REF>: Likewise.
+       <ARRAY_REF>: Likewise.
+       <ARRAY_RANGE_REF>: Likewise.
+       (split_address_cost): Likewise.  Bail out if reverse storage order.
+       * tree-ssa-math-opts.c (find_bswap_or_nop_load): Adjust call to
+       get_inner_reference.  Bail out if reverse storage order.
+       (bswap_replace): Adjust call to get_inner_reference.
+       * tree-ssa-pre.c (create_component_ref_by_pieces_1) <MEM_REF>: Set
+       the REF_REVERSE_STORAGE_ORDER flag.
+       <BIT_FIELD_REF>: Likewise.
+       * tree-ssa-sccvn.c (vn_reference_eq): Return false on storage order
+       barriers.
+       (copy_reference_ops_from_ref) <MEM_REF>: Set REVERSE field according
+       to the REF_REVERSE_STORAGE_ORDER flag.
+       <BIT_FIELD_REF>: Likewise.
+       <VIEW_CONVERT_EXPR>: Set it for storage order barriers.
+       (contains_storage_order_barrier_p): New predicate.
+       (vn_reference_lookup_3): Adjust calls to get_ref_base_and_extent.
+       Punt on storage order barriers if necessary.
+       * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add REVERSE.
+       * tree-ssa-structalias.c (get_constraint_for_component_ref): Adjust
+       call to get_ref_base_and_extent.
+       (do_structure_copy): Likewise.
+       * tree-vect-data-refs.c (vect_check_gather): Adjust call to
+       get_inner_reference.
+       (vect_analyze_data_refs): Likewise.  Bail out if reverse storage
+       order.
+       * tsan.c (instrument_expr): Adjust call to get_inner_reference.
+       * ubsan.c (instrument_bool_enum_load): Likewise.
+       (instrument_object_size): Likewise.
+       * var-tracking.c (track_expr_p): Adjust call to
+       get_ref_base_and_extent
+       * config/mips/mips.c (r10k_safe_mem_expr_p): Adjust call to
+       get_inner_reference.
+       * config/s390/s390.c (s390_expand_atomic): Adjust call to
+       store_bit_field.
+       * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust call to
+       extract_bit_field.
+       * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
+
+2015-11-07  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/sparc/sparc.opt (mfix-at697f): Add final period.
+
+2015-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       PR rtl-optimization/67864
+       * common/config/i386/i386-common.c (ix86_option_optimization_table)
+       <OPT_freorder_blocks_algorithm_>: Use REORDER_BLOCKS_ALGORITHM_STC
+       at -Os and up.
+
+2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * trans-mem.c (is_tm_pure_call): Use gimple_call_flags for
+       internal functions.
+
+2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * builtins.def: #undef DEF_BUILTIN and DEF_BUILTIN_CHKP
+       * builtins.c, genmatch.c, tree-core.h: Don't undef them here.
+
+2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * internal-fn.def: #undef DEF_INTERNAL_FN at the end.
+       * internal-fn.c: Don't undef it here.
+       * tree-core.h: Likewise.
+
+2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * builtins.c (fold_builtin_nan): Delete.
+       (fold_builtin_memcmp): Remove case where both arguments are constant.
+       (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
+       (fold_builtin_strspn, fold_builtin_strcspn): Likewise.
+       (fold_builtin_1): Remove BUILT_IN_NAN* handling.
+       * fold-const-call.c: Include fold-const.h.
+       (host_size_t_cst_p): New function.
+       (build_cmp_result, fold_const_builtin_nan): Likewise.
+       (fold_const_call_1): New function, split out from...
+       (fold_const_call): ...here (for all three interfaces).  Handle
+       constant nan, nans, strlen, strcmp, strncmp, strspn and strcspn.
+
+2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * builtins.c (fold_builtin_bitop, fold_builtin_bswap): Delete.
+       (fold_builtin_1): Don't call them.
+       * fold-const-call.c: Include tm.h.
+       (fold_const_call_ss): New variant for integer-to-integer folds.
+       (fold_const_call): Call it.
+
+2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * builtins.c (fold_builtin_classify): Move constant cases to...
+       * fold-const-call.c (fold_const_call_ss): ...here.
+
+2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * builtins.h (c_getstr): Move to...
+       * fold-const.h (c_getstr): ...here.
+       * builtins.c (c_getstr): Move to...
+       * fold-const.c (c_getstr): ...here.
+
+2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * builtins.def (BUILTIN_RINT, BUILTIN_RINTF, BUILTIN_RINTL): Use
+       ATTR_MATHFN_FPROUNDING rather than ATTR_MATHFN_FPROUNDING_ERRNO.
+
+2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * tree-call-cdce.c (shrink_wrap_one_built_in_call): Try to update
+       the dominance info; free it if we can't.
+       (pass_call_cdce::execute): Don't free the dominance info here.
+
+2015-11-06  Jeff Law <law@redhat.com>
+
+       * tree-ssa-threadedge.c (dummy_simplify): Remove.
+       (thread_around_empty_blocks): Remove backedge_seen_p argument.
+       If we thread to a backedge, then return false.  Update recursive
+       call to eliminate backedge_seen_p argument.
+       (thread_through_normal_block): Remove backedge_seen_p argument.
+       Remove backedge_seen_p argument from calls to
+       thread_around_empty_blocks.  Remove checks on backedge_seen_p.
+       If we thread to a backedge, then return 0.
+       (thread_across_edge): Remove bookkeeping for backedge_seen.  Don't
+       pass it to thread_through_normal_block or thread_through_empty_blocks.
+       For joiner handling, if we see a backedge, do not try normal
+       threading.
+
+2015-11-06  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
+
+       * graphite-optimize-isl.c (optimize_isl): Call isl_union_map_is_equal.
+       * graphite-poly.c (new_scop): Initialize original_schedule.
+       (free_scop): Free original_schedule.
+       * graphite-poly.h (struct scop): Add field original_schedule.
+       * graphite-sese-to-poly.c (build_scop_original_schedule): New.
+       (build_poly_scop): Call build_scop_original_schedule.
+
+2015-11-06  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
+
+       * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
+       (build_pbb_minimal_scattering_polyhedrons): New.
+       (build_scop_scattering): Remove.
+       (build_scop_minimal_scattering): New.
+       (build_scop_scattering): Call build_pbb_minimal_scattering_polyhedrons.
+       (build_poly_scop): Call build_scop_minimal_scattering.
+
+2015-11-06  Jeff Law <law@redhat.com>
+
+       * cfg-flags.def (IGNORE): New edge flag.
+       * tree-vrp.c (identify_jump_threads): Mark and clear edges
+       scheduled for removal with EDGE_IGNORE around call into
+       jump threader.  Do no thread across edges with EDGE_IGNORE,
+       but do allow threading across those with EDGE_DFS_BACK.
+
+2015-11-06  David Wohlferd  <dw@LimeGreenSocks.com>
+
+       * doc/md.texi (multi-alternative constraints): Don't document
+       alternatives inherently tied to reload for the user documentation.
+
+2015-11-06  Michael Collison  <michael.collison@linaro.org
+           Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+
+       Revert:
+       2015-08-01  Michael Collison  <michael.collison@linaro.org
+                   Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+
+       * config/arm/arm.md (*arm_smin_cmp): New pattern.
+       (*arm_umin_cmp): Likewise.
+
+2015-11-06  Jakub Jelinek  <jakub@redhat.com>
+
+       * gimplify.c (gimplify_omp_ordered): Fix up diagnostics
+       wording.
+       * omp-low.c (check_omp_nesting_restrictions): Update for the
+       various new OpenMP 4.5 nesting restrictions, clarified
+       nesting glossary, closely nested region relationship clarified
+       to mean explicit or implicit parallel regions (target/teams),
+       use %</%> or %qs where appropriate.
+
+2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
+           Sebastian Pop  <s.pop@samsung.com>
+
+       * graphite-scop-detection.c (loop_is_valid_scop): Call
+       optimize_loop_nest_for_speed_p.
+
+2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
+           Sebastian Pop  <s.pop@samsung.com>
+
+       * graphite-optimize-isl.c (optimize_isl): Call
+       isl_options_set_schedule_maximize_band_depth.
+
+2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
+           Sebastian Pop  <s.pop@samsung.com>
+
+       * graphite-scop-detection.c (scop_detection::merge_sese): Entry
+       and exit edges should not be a part of irreducible loop.
+       (scop_detection::can_represent_loop_1): Loops should not be
+       irreducible.
+       (scop_detection::harmful_stmt_in_region): All the basic block
+       should belong to reducible loops.
+
+2015-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
+
+       * config/aarch64/aarch64-simd-builtins.def: Update builtins
+       tables: add tbl3v16qi, qtbl[34]*, tbx4v16qi, qtbx[34]*.
+       * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): Rename to...
+       (aarch64_tbl3<mode>) ... this, which supports v16qi too.
+       (aarch64_tbx4v8qi): Rename to...
+       aarch64_tbx4<mode>): ... this.
+       (aarch64_qtbl3<mode>): New pattern.
+       (aarch64_qtbx3<mode>): New pattern.
+       (aarch64_qtbl4<mode>): New pattern.
+       (aarch64_qtbx4<mode>): New pattern.
+       * config/aarch64/arm_neon.h (vqtbl2_s8, vqtbl2_u8, vqtbl2_p8)
+       (vqtbl2q_s8, vqtbl2q_u8, vqtbl2q_p8, vqtbl3_s8, vqtbl3_u8)
+       (vqtbl3_p8, vqtbl3q_s8, vqtbl3q_u8, vqtbl3q_p8, vqtbl4_s8)
+       (vqtbl4_u8, vqtbl4_p8, vqtbl4q_s8, vqtbl4q_u8, vqtbl4q_p8)
+       (vqtbx2_s8, vqtbx2_u8, vqtbx2_p8, vqtbx2q_s8, vqtbx2q_u8)
+       (vqtbx2q_p8, vqtbx3_s8, vqtbx3_u8, vqtbx3_p8, vqtbx3q_s8)
+       (vqtbx3q_u8, vqtbx3q_p8, vqtbx4_s8, vqtbx4_u8, vqtbx4_p8)
+       (vqtbx4q_s8, vqtbx4q_u8, vqtbx4q_p8): Rewrite using builtin
+       functions.
+
+2015-11-06  Mike Stump  <mikestump@comcast.net>
+
+       PR debug/66728
+       * dwarf2out.c (get_full_len): Return a value based upon the actual
+       precision needed for the value.
+       (add_const_value_attribute): Use a maximal wide-int for
+       CONST_WIDE_INTs, not VOIDmode.
+       (output_die): Don't ever output NULL with printf.
+
+       * rtl.h (get_precision of rtx_mode_t): Ensure we never process
+       BLKmode nor VOIDmode values.
+
+2015-11-06  David Malcolm  <dmalcolm@redhat.com>
+
+       * diagnostic-color.c (color_dict): Eliminate "caret"; add "range1"
+       and "range2".
+       (parse_gcc_colors): Update comment to describe default GCC_COLORS.
+       * diagnostic-core.h (warning_at_rich_loc): New declaration.
+       (error_at_rich_loc): New declaration.
+       (permerror_at_rich_loc): New declaration.
+       (inform_at_rich_loc): New declaration.
+       * diagnostic-show-locus.c (adjust_line): Delete.
+       (struct point_state): New struct.
+       (class colorizer): New class.
+       (class layout_point): New class.
+       (class layout_range): New class.
+       (struct line_bounds): New.
+       (class layout): New class.
+       (colorizer::colorizer): New ctor.
+       (colorizer::~colorizer): New dtor.
+       (layout::layout): New ctor.
+       (layout::print_source_line): New method.
+       (layout::print_annotation_line): New method.
+       (layout::get_state_at_point): New method.
+       (layout::get_x_bound_for_row): New method.
+       (diagnostic_show_locus): Reimplement in terms of class layout.
+       (diagnostic_print_caret_line): Delete.
+       * diagnostic.c (diagnostic_initialize): Replace
+       MAX_LOCATIONS_PER_MESSAGE with rich_location::MAX_RANGES.
+       (diagnostic_set_info_translated): Convert param from location_t
+       to rich_location *.  Eliminate calls to set_location on the
+       message in favor of storing the rich_location ptr there.
+       (diagnostic_set_info): Convert param from location_t to
+       rich_location *.
+       (diagnostic_build_prefix): Break out array into...
+       (diagnostic_kind_color): New variable.
+       (diagnostic_get_color_for_kind): New function.
+       (diagnostic_report_diagnostic): Colorize the option_text
+       using the color for the severity.
+       (diagnostic_append_note): Update for change in signature of
+       diagnostic_set_info.
+       (diagnostic_append_note_at_rich_loc): New function.
+       (emit_diagnostic): Update for change in signature of
+       diagnostic_set_info.
+       (inform): Likewise.
+       (inform_at_rich_loc): New function.
+       (inform_n): Update for change in signature of diagnostic_set_info.
+       (warning): Likewise.
+       (warning_at): Likewise.
+       (warning_at_rich_loc): New function.
+       (warning_n): Update for change in signature of diagnostic_set_info.
+       (pedwarn): Likewise.
+       (permerror): Likewise.
+       (permerror_at_rich_loc): New function.
+       (error): Update for change in signature of diagnostic_set_info.
+       (error_n): Likewise.
+       (error_at): Likewise.
+       (error_at_rich_loc): New function.
+       (sorry): Update for change in signature of diagnostic_set_info.
+       (fatal_error): Likewise.
+       (internal_error): Likewise.
+       (internal_error_no_backtrace): Likewise.
+       (source_range::debug): New function.
+       * diagnostic.h (struct diagnostic_info): Eliminate field
+       "override_column".  Add field "richloc".
+       (struct diagnostic_context): Add field "colorize_source_p".
+       (diagnostic_override_column): Delete.
+       (diagnostic_set_info): Convert param from location_t to
+       rich_location *.
+       (diagnostic_set_info_translated): Likewise.
+       (diagnostic_append_note_at_rich_loc): New function.
+       (diagnostic_num_locations): New function.
+       (diagnostic_expand_location): Get the location from the
+       rich_location.
+       (diagnostic_print_caret_line): Delete.
+       (diagnostic_get_color_for_kind): New declaration.
+       * genmatch.c (linemap_client_expand_location_to_spelling_point): New.
+       (error_cb): Update for change in signature of "error" callback.
+       (fatal_at): Likewise.
+       (warning_at): Likewise.
+       * input.c (linemap_client_expand_location_to_spelling_point): New.
+       * pretty-print.c (text_info::set_range): New method.
+       (text_info::get_location): New method.
+       * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): Eliminate this macro.
+       (struct text_info): Eliminate "locations" array in favor of
+       "m_richloc", a rich_location *.
+       (textinfo::set_location): Add a "caret_p" param, and reimplement
+       in terms of a call to set_range.
+       (textinfo::get_location): Eliminate inline implementation in favor of
+       an out-of-line reimplementation.
+       (textinfo::set_range): New method.
+       * rtl-error.c (diagnostic_for_asm): Update for change in signature
+       of diagnostic_set_info.
+       * tree-diagnostic.c (default_tree_printer): Update for new
+       "caret_p" param for textinfo::set_location.
+       * tree-pretty-print.c (percent_K_format): Likewise.
+
+2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+       Properly apply.
+       2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+        * config/aarch64/aarch64.c
+        (aarch64_can_use_per_function_literal_pools_p): New.
+        (aarch64_use_blocks_for_constant_p): Adjust declaration
+        and use aarch64_can_use_function_literal_pools_p.
+        (aarch64_select_rtx_section): Update.
+
+2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+       * config/arm/arm-ldmstm.ml: Rewrite to generate unified asm templates.
+       * config/arm/arm.c (arm_asm_trampoline_template): Make unified asm safe.
+       (arm_output_multireg_pop): Likewise.
+       (output_move_double):  Likewise.
+       (output_move_quad):  Likewise.
+       (output_return_instruction): Likewise.
+       (arm_print_operand): Remove support for %( and %. print modifiers.
+       (arm_output_shift): Make unified asm.
+       (arm_declare_function_name): Likewise.
+       * config/arm/arm.h (TARGET_UNIFIED_ASM): Delete.
+       (ASM_APP_OFF): Adjust.
+       (ASM_OUTPUT_REG_PUSH): Undo special casing for TARGET_ARM.
+       (ASM_OUTPUT_REG_POP): Likewise.
+       * config/arm/arm.md: Adjust uses of %., %(, %)
+       * config/arm/sync.md: Likewise.
+       * config/arm/thumb2.md: Likewise.
+       * config/arm/ldmstm.md: Regenerate.
+       * config/arm/arm.opt (masm-unified-syntax): Do not special case Thumb.
+       * doc/invoke.texi (masm-unified-syntax): Update documentation.
+
+2015-11-06  David Malcolm  <dmalcolm@redhat.com>
+
+       * input.c (dump_line_table_statistics): Dump stats on adhoc table.
+
+2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
+
+       * tree-core.h (size_type_kind): Remove OEP_CONSTANT_ADDRESS_OF and
+       add OEP_MATCH_SIDE_EFFECTS.
+       * fold-const.c (operand_equal_p): Update documentation; handle
+       OEP_MATCH_SIDE_EFFECTS.
+       * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Use
+       OEP_MATCH_SIDE_EFFECTS.
+
+2015-11-06  Benedikt Huber  <benedikt.huber@theobroma-systems.com>
+           Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
+
+       * config/aarch64/aarch64-builtins.c: Builtins for rsqrt and rsqrtf.
+       * config/aarch64/aarch64-protos.h: Declare.
+       * config/aarch64/aarch64-simd.md: Matching expressions for frsqrte and
+       frsqrts.
+       * config/aarch64/aarch64-tuning-flags.def: Added recip_sqrt.
+       * config/aarch64/aarch64.c: New functions. Emit rsqrt estimation code when
+       applicable.
+       * config/aarch64/aarch64.md: Added enum entries.
+       * config/aarch64/aarch64.opt: Added option -mlow-precision-recip-sqrt.
+       * testsuite/gcc.target/aarch64/rsqrt_asm_check_common.h: Common macros for
+       assembly checks.
+       * testsuite/gcc.target/aarch64/rsqrt_asm_check_negative_1.c: Make sure
+       frsqrts and frsqrte are not emitted.
+       * testsuite/gcc.target/aarch64/rsqrt_asm_check_1.c: Make sure frsqrts and
+       frsqrte are emitted.
+       * testsuite/gcc.target/aarch64/rsqrt_1.c: Functional tests for rsqrt.
+
+2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
+
+       PR ipa/68057
+       PR ipa/68220
+       * ipa-polymorphic-call.c
+       (ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
+       issue when offset is out of range.
+       (contains_type_p): Fix out of range check, clear dynamic flag.
+
+2015-11-06  Arnout Vandecappelle  <arnout@mind.be>
+
+       * config.gcc (e6500): Fix cpu_is_64bit typo.
+
+2015-11-06  Alan Lawrence  <alan.lawrence@arm.com>
+
+       * tree-sra.c (completely_scalarize): Properly handle negative array
+       indices using offset_int.
+
+2015-11-06  Richard Biener  <rguenther@suse.de>
+
+       * alloc-pool.h (object_allocator::allocate): Default-initialize
+       object.
+
+2015-11-06  Richard Biener  <rguenther@suse.de>
+
+       * tree-ssa-sccvn.c (class sccvn_dom_walker): Add destructor.
+       * lra.c (init_reg_info): Truncate copy_vec instead of
+       re-allocating a new one and leaking the old.
+       * ipa-inline-analysis.c (estimate_function_body_sizes): Free
+       bb_infos vec.
+       * sched-deps.c (sched_deps_finish): Free the dn/dl pools.
+       * postreload-gcse.c (free_mem): Free modify_mem_list and
+       canon_modify_mem_list.
+
+2015-11-06  Ilya Enkovich  <enkovich.gnu@gmail.com>
+
+       PR tree-optimization/68145
+       * tree-vect-stmts.c (vectorizable_operation): Fix
+       determination for booleans.
+
+2015-11-06  Tom de Vries  <tom@codesourcery.com>
+
+       * tree-cfg.c (gimple_split_block_before_cond_jump): Split before
+       cond_jump, instead of split after last nondebug insn before cond_jump.
+       * tree-parloops.c (transform_to_exit_first_loop_alt): Verify ssa before
+       returning.
+
+2015-11-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       PR target/68088
+       * config/arm/aarch-common.c (aarch_accumulator_forwarding): Strip
+       subregs from accumulator and make sure it's a register.
+
+2015-11-06  Simon Dardis  <simon.dardis@imgtec.com>
+
+       * config/mips/loongson.md (vec_loongson_extract_lo_<mode>): New, extract
+       low part to scalar.
+       (reduc_uplus_<mode>): Remove.
+       (reduc_plus_scal_<mode>): Rename from reduc_splus_<mode>, Use vec
+       loongson_extract_lo_<mode>.
+       (reduc_smax_scal_<mode>, reduc_smin_scal_<mode>): Rename from
+       reduc_smax_<mode>, reduc_smax_<mode>, use vec
+       loongson_extract_lo_<mode>.
+       (reduc_umax_scal_<mode>, reduc_umin_scal_<mode>): Rename.
+
+2015-11-06  Richard Biener  <rguenther@suse.de>
+
+       * tree-vectorizer.h (struct _bb_vec_info): Add region_begin/end
+       members.
+       (vect_stmt_in_region_p): Declare.
+       * tree-vect-slp.c (new_bb_vec_info): Work on a region.
+       (destroy_bb_vec_info): Likewise.
+       (vect_bb_slp_scalar_cost): Use vect_stmt_in_region_p.
+       (vect_get_and_check_slp_defs): Likewise.
+       (vect_slp_analyze_bb_1): Refactor to make it work on sub-BBs.
+       (vect_slp_bb): Likewise.
+       * tree-vect-patterns.c (vect_same_loop_or_bb_p): Implement
+       in terms of vect_stmt_in_region_p.
+       (vect_pattern_recog): Iterate over the BB region.
+       * tree-vect-stmts.c (vect_is_simple_use): Use vect_stmt_in_region_p.
+       * tree-vectorizer.c (vect_stmt_in_region_p): New function.
+       (pass_slp_vectorize::execute): Initialize all stmt UIDs to -1.
+       * config/i386/i386.c: Include gimple-iterator.h.
+       * config/aarch64/aarch64.c: Likewise.
+
+2015-11-06  Alexandre Oliva <aoliva@redhat.com>
+
+       PR rtl-optimization/67753
+       PR rtl-optimization/64164
+       * function.c (assign_parm_setup_block): Avoid allocating a
+       stack slot if we don't have an ABI-reserved one.  Emit the
+       copy to target_reg in the conversion seq if the copy from
+       entry_parm is in it too.  Don't use the conversion seq to copy
+       a PARALLEL to a REG or a CONCAT.
+
+2015-11-06  Richard Biener  <rguenther@suse.de>
+
+       * tree-hash-traits.h (tree_operand_hash): Provide equal, not
+       equal_keys.
+
+2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
+           Thomas Schwinge  <thomas@codesourcery.com>
+           James Norris  <jnorris@codesourcery.com>
+
+
+       * gimplify.c (gimplify_scan_omp_clauses): Add support for
+       OMP_CLAUSE_TILE.  Update handling of OMP_CLAUSE_INDEPENDENT.
+       (gimplify_adjust_omp_clauses): Likewise.
+       * omp-low.c (scan_sharing_clauses): Add support for OMP_CLAUSE_TILE.
+       * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_TILE.
+       * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_TILE.
+       * tree.c (omp_clause_num_ops): Add an entry for OMP_CLAUSE_TILE.
+       (omp_clause_code_name): Likewise.
+       (walk_tree_1): Handle OMP_CLAUSE_TILE.
+       * tree.h (OMP_TILE_LIST): New macro.
+
+2015-11-05  Martin Sebor  <msebor@redhat.com>
+
+       PR c++/67942
+       * doc/invoke.texi (-Wplacement-new): Document new option.
+
+2015-11-05  Alan Lawrence  <alan.lawrence@arm.com>
+
+       PR tree-optimization/65963
+       * tree-scalar-evolution.c (interpret_rhs_expr): Try to handle
+       LSHIFT_EXPRs as equivalent unsigned MULT_EXPRs.
+
+2015-11-05  James Greenhalgh  <james.greenhalgh@arm.com>
+
+       * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): New.
+       (noce_convert_multiple_sets): Likewise.
+       (noce_process_if_block): Call them.
+
+2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * gimple-fold.c: Include omp-low.h.
+       (fold_internal_goacc_dim): New.
+       (gimple_fold_call): Call it.
+
+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.
+       * targhooks.h (default_goacc_dim_limit): Declare.
+       * doc/tm.texi.in (TARGET_GOACC_DIM_LIMIT): Add.
+       * doc/tm.texi: Rebuilt.
+       * omp-low.h (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): Declare.
+       * omp-low.c (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): New.
+       (default_goacc_dim_limit): New.
+       * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
+       (nvptx_goacc_dim_limit) New.
+       (TARGET_GOACC_DIM_LIMIT): Override.
+       * tree-vrp.c: Include omp-low.h, target.h.
+       (extract_range_basic): Add handling for IFN_GOACC_DIM_SIZE &
+       IFN_GOACC_DIM_POS.
+
+2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
+
+       * tree-vect-generic.c (do_compare): Use -1 for true
+       result instead of 1.
+
+2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+        * config/aarch64/aarch64.c
+        (aarch64_can_use_per_function_literal_pools_p): New.
+        (aarch64_use_blocks_for_constant_p): Adjust declaration
+        and use aarch64_can_use_function_literal_pools_p.
+        (aarch64_select_rtx_section): Update.
+
+2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
+
+       * targhooks.c (default_get_mask_mode): Use BLKmode in
+       case target doesn't support required vector mode.
+       * stor-layout.c (layout_type); Check for BLKmode.
+
+2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
+           Sebastian Pop  <s.pop@samsung.com>
+
+       * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
+       Remove use of parameter_rename_map.
+       (copy_def): Remove.
+       (copy_internal_parameters): Remove.
+       (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
+       * sese.c (new_sese_info): Do not initialize parameter_rename_map.
+       (free_sese_info): Do not free parameter_rename_map.
+       (set_rename): Do not use parameter_rename_map.
+       (rename_uses): Update call to set_rename.
+       (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
+       * sese.h (parameter_rename_map_t): Remove.
+       (struct sese_info_t): Remove field parameter_rename_map.
+
+2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
+           Sebastian Pop  <s.pop@samsung.com>
+
+       * graphite-isl-ast-to-gimple.c: Include tree-cfg.h.
+       (translate_isl_ast_node_user): Add more dumps: call print_loops_bb.
+       * graphite-scop-detection.c (dot_all_scops_1): Moved out of
+       anonymous namespace.
+       * graphite-sese-to-poly.c (ssa_name_version_typesize): Remove.
+       (isl_id_for_pbb): Use a buffer of size 10.
+       (isl_id_for_ssa_name): Same.
+       * sese.c (set_rename): Add more dumps.
+
+2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * omp-low.c (struct omp_context): Remove reduction_map field.
+       (lookup_oacc_reduction, maybe_lookup_oacc_reduction): Delete.
+       (new_omp_context, delete_omp_context, scan_omp_target): Remove
+       reduction_map handling.
+       (lower_omp_target): Remove obsolete openacc reduction handling.
+
+2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add checking.
+
+2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
+           Cesar Philippidis  <cesar@codesourcery.com>
+
+       * config/nvptx/nvptx.c: Include gimple headers.
+       (worker_red_size, worker_red_align, worker_red_name,
+       worker_red_sym): New.
+       (nvptx_option_override): Initialize worker reduction buffer.
+       (nvptx_file_end): Write out worker reduction buffer var.
+       (nvptx_expand_shuffle, nvptx_expand_worker_addr,
+       nvptx_expand_cmp_swap): New builtin expanders.
+       (enum nvptx_builtins): New.
+       (nvptx_builtin_decls): New.
+       (nvptx_builtin_decl, nvptx_init_builtins, nvptx_expand_builtin): New
+       (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
+       (nvptx_get_worker_red_addr, nvptx_generate_vector_shuffle,
+       nvptx_lockless_update): New helpers.
+       (nvptx_goacc_reduction_setup, nvptx_goacc_reduction_init,
+       nvptx_goacc_reduction_fini, nvptx_goacc_reduction_teaddown): New.
+       (nvptx_goacc_reduction): New.
+       (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN,
+       TARGET_BUILTIN_DECL): Override.
+       (TARGET_GOACC_REDUCTION): Override.
+
+2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
+           Cesar Philippidis  <cesar@codesourcery.com>
+
+       * internal-fn.def (GOACC_REDUCTION): New.
+       * internal-fn.h (enum ifn_goacc_reduction_kind): New.
+       * internal-fn.c (expand_GOACC_REDUCTION): New.
+       * target.def (goacc.reduction): New OpenACC hook.
+       * targhooks.h (default_goacc_reduction): Declare.
+       * doc/tm.texi.in: Add TARGET_GOACC_REDUCTION.
+       * doc/tm.texi: Rebuilt.
+       * omp-low.c (oacc_get_reduction_array_id, oacc_max_threads,
+       scan_sharing_clauses): Remove oacc reduction handling here.
+       (lower_rec_input_clauses): Don't handle OpenACC reductions here.
+       (oacc_lower_reduction_var_helper): Delete.
+       (lower_oacc_reductions): New.
+       (lower_reduction_clauses): Don't handle OpenACC reductions here.
+       (lower_oacc_head_tail): Call lower_oacc_reductions.
+       (oacc_gimple_assign, oacc_init_reduction_array,
+       oacc_initialize_reduction_data, oacc_finalize_reduction_data,
+       oacc_process_reduction_data): Delete.
+       (lower_omp_target): Remove old OpenACC reduction handling.  Insert
+       dummy OpenACC gang reduction for reductions at outer level.
+       (oacc_loop_xform_head_tail): Transform IFN_GOACC_REDUCTION.
+       (default_goacc_reduction): New.
+       (execute_oacc_device_lower): Handle IFN_GOACC_REDUCTION.
+
+2015-11-04  Martin Liska  <mliska@suse.cz>
+
+       * cgraphunit.c (cgraph_node::expand_thunk): Call
+       allocate_struct_function before init_function_start.
+       (cgraph_node::expand): Use push_cfun and pop_cfun.
+       * config/i386/i386.c (ix86_code_end): Call
+       allocate_struct_function before init_function_start.
+       * config/rs6000/rs6000.c (rs6000_code_end): Likewise.
+       * function.c (init_function_start): Move preamble to all
+       callers.
+       * passes.c (do_per_function_toporder): Use push_cfun and pop_cfun.
+       (execute_one_pass): Handle newly added TODO_discard_function.
+       (execute_pass_list_1): Terminate if cfun equals to NULL.
+       (execute_pass_list): Do not push and pop cfun, expect that
+       cfun is set.
+       * tree-pass.h (TODO_discard_function): Define.
+
 2015-11-04  Mikhail Maltsev  <maltsevm@gmail.com>
 
        * cfganal.c (inverted_post_order_compute): Remove conditional
        vi->only_restrict_pointers.
        (intra_create_variable_infos): Call create_variable_info_for_1 with
        extra arg.  Remove restrict handling.  Call make_param_constraints with
-       one less arg.
+       one fewer arg.
 
 2015-11-04  Tom de Vries  <tom@codesourcery.com>
 
        * tree-ssa.c (gimple_uses_undefined_value_p): New.
        * tree-ssa.h (gimple_uses_undefined_value_p): Declare.
 
-2015-11-02  Jeff Law <jeff@redhat.com>
+2015-11-02  Jeff Law <law@redhat.com>
 
        * tree-ssa-threadupdate.c (valid_jump_thread_path): Also detect
        cases where the loop latch edge is in the middle of an FSM path.
        PR middle-end/68166
        * fold-const.c: Include "md5.h".
 
-2015-11-01  Jeff Law <jeff@redhat.com>
+2015-11-01  Jeff Law <law@redhat.com>
 
        * vmsdbgout.c: Revert unused header file reduction patch.
 
 
        * tree-ssa-structalias.c (ipa_pta_execute): Use make_copy_constraint.
 
-2015-10-30  Jeff Law <jeff@redhat.com>
+2015-10-30  Jeff Law <law@redhat.com>
            Nathan Sidwell  <nathan@acm.org>
 
        * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Avoid warning on unused