+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