+2015-05-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/66199
+ * tree.h (OMP_TEAMS_COMBINED): Define.
+ * gimplify.c (enum gimplify_omp_var_data): Add
+ GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
+ (enum omp_region_type): Add ORT_COMBINED_TEAMS.
+ (omp_notice_variable): Accept both ORT_TEAMS
+ and ORT_COMBINED_TEAMS. Don't recurse if
+ GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
+ GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
+ GOVD_FIRSTPRIVATE.
+ (omp_no_lastprivate): New function.
+ (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
+ and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
+ notice_outer and set appropriate bits, otherwise make
+ sure default(none) combined constructs won't complain.
+ (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
+ outer special casing, for OMP_CLAUSE_LASTPRIVATE if
+ omp_no_lastprivate either remove the clause or turn it
+ into OMP_CLAUSE_PRIVATE.
+ (gimplify_omp_for): Fix up handling of implicit
+ lastprivate or linear iterators.
+ (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
+ ORT_COMBINED_TEAMS.
+ * omp-low.c (lower_omp_for_lastprivate): For combined
+ for simd use fd.loop.n2 from the for rather than simd.
+
+2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
+ instead of gen_rtx_raw_REG.
+ (cris_expand_epilogue): Likewise.
+ * config/microblaze/microblaze.c (microblaze_classify_address):
+ Likewise.
+ * config/sparc/sparc.md: Likewise.
+
+2015-05-19 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/alpha/alpha.c (alpha_legitimize_reload_address)
+ (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
+ CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
+ (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
+ Use CASE_CONST_SCALAR_INT.
+ (print_operand) <case 'M'>: Use mode_width_operand to check the
+ value of the constant.
+ * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
+ * config/alpha/predicates.md (input_operand): Use general_operand
+ instead of match_code as operand check.
+ (symbolic_operand): Use match_code with subexpression digits.
+ * config/alpha/constraints.md (Q): Ditto.
+
+2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
+
+2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ * config/s390/s390.c (s390_secondary_reload): Fix check for
+ load/store relative.
+
+2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+
+ * recog.h: Increase MAX_RECOG_ALTERNATIVES. Change type of
+ alternative_mask to uint64_t.
+
+2015-05-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/66187
+ * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
+ Pass TYPE_SIGN to tree_int_cst_min_precision. If
+ !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
+
+2015-05-19 David Malcolm <dmalcolm@redhat.com>
+
+ * diagnostic.c (diagnostic_report_current_module): Strengthen
+ local "new_map" from const line_map * to
+ const line_map_ordinary *.
+ * genmatch.c (error_cb): Likewise for local "map".
+ (output_line_directive): Likewise for local "map".
+ * input.c (expand_location_1): Likewise for local "map".
+ Pass NULL rather than &map to
+ linemap_unwind_to_first_non_reserved_loc, since the value is never
+ read from there, and the value written back not read from here.
+ (is_location_from_builtin_token): Strengthen local "map" from
+ const line_map * to const line_map_ordinary *.
+ (dump_location_info): Strengthen locals "map" from
+ line_map *, one to const line_map_ordinary *, the other
+ to const line_map_macro *.
+ * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
+ const line_map * to const line_map_macro *.
+ (maybe_unwind_expanded_macro_loc): Add a call to
+ linemap_check_macro when writing to the "map" field of the
+ loc_map_pair.
+ Introduce local const line_map_ordinary * "ord_map", using it in
+ place of "map" in the part of the function where we know we have
+ an ordinary map. Strengthen local "m" from const line_map * to
+ const line_map_ordinary *.
+
+2015-05-19 Nick Clifton <nickc@redhat.com>
+
+ PR target/66156
+ * config/msp430/msp430.md (zero_extendhisi2): Add support for
+ separate source and destination registers.
+
+2015-05-19 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/66165
+ * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
+ for no load permutation.
+
+ PR tree-optimization/66185
+ * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
+ when building the SLP node from scalars.
+
+2015-05-19 Eric Botcazou <ebotcazou@adacore.com>
+ Tristan Gingold <gingold@adacore.com>
+
+ * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
+ * builtins.c (expand_builtin_update_setjmp_buf): Make global.
+ (expand_stack_restore): Call record_new_stack_level.
+ (expand_stack_save): Do not call do_pending_stack_adjust.
+ * builtins.h (expand_builtin_update_setjmp_buf): Declare.
+ * calls.c (expand_call): Call record_new_stack_level for alloca.
+ * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
+ wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
+ (update_sjlj_context): New global function.
+ * except.h (update_sjlj_context): Declare.
+ * explow.c (record_new_stack_level): New global function.
+ (allocate_dynamic_stack_space): Call record_new_stack_level.
+ * explow.h (record_new_stack_level): Declare.
+ * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
+ * cfgrtl.c (duplicate_insn_chain): Likewise.
+
+2015-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
+ (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
+ STACK_GROWS_DOWNWARD as normal if.
+ (expand_call): Likewise.
+
+2015-05-19 Oleg Endo <olegendo@gcc.gnu.org>
+
+ PR target/54236
+ * config/sh/sh.md (*round_int_even): New insn_and_split and
+ accompanying new unnamed split.
+
+2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
+
+ * bitmap.c (bitmap_set_range): Handle count==1 specially.
+ (bitmap_clear_range): Likewise.
+ * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
+ bitmap_set_range unconditionally.
+ * df-problems.c (df_simulate_one_insn_forwards): Likewise.
+ * df-scan.c (df_mark_reg): Likewise.
+ * haifa-sched.c (setup_ref_regs): Likewise.
+ * sched-rgn.c (update_live_1): Likewise.
+
+2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
+
+ * regs.h (END_HARD_REGNO): Delete.
+ (END_REGNO): Move to...
+ * rtl.h: ...here.
+ * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
+ * caller-save.c (mark_set_regs): Likewise.
+ * combine.c (move_deaths, distribute_notes): Likewise.
+ * cse.c (invalidate, invalidate_for_call): Likewise.
+ * df-scan.c (df_ref_record): Likewise.
+ * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
+ (record_last_reg_set_info): Likewise.
+ * reg-stack.c (convert_regs_exit): Likewise.
+ * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
+ * resource.c (update_live_status): Likewise.
+ * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
+
+2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
+
+ * rtl.h (reg_info): Add an nregs field.
+ (REG_NREGS): Use it.
+ (SET_REGNO_RAW): Delete.
+ (set_regno_raw): New function.
+ * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
+ (END_REGNO): Redefine in terms of REG_NREGS.
+ * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
+ SET_REGNO_RAW.
+ * emit-rtl.c (set_mode_and_regno): Likewise.
+ * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
+ instead of SET_REGNO_RAW.
+
+2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
+
+ * rtl.h (PUT_MODE_RAW): New macro.
+ (PUT_REG_NOTE_KIND): Use it.
+ (set_mode_and_regno): Declare.
+ (gen_raw_REG): Change regno to "unsigned int".
+ (gen_rtx_REG): Change "unsigned" to "unsigned int".
+ (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
+ use set_mode_and_regno to change the mode of registers.
+ * gengenrtl.c (gendef): Use PUT_MODE_RAW.
+ * emit-rtl.c (set_mode_and_regno): New function.
+ (gen_raw_REG): Change regno to unsigned int. Use set_mode_and_regno.
+ * caller-save.c (reg_save_code): Use set_mode_and_regno.
+ * expr.c (init_expr_target): Likewise.
+ * ira.c (setup_prohibited_mode_move_regs): Likewise.
+ * postreload.c (reload_cse_simplify_operands): Likewise.
+
+2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
+
+ * caller-save.c (init_caller_save): Use word_mode and
+ FIRST_PSEUDO_REGISTER when creating temporary rtxes.
+ * expr.c (init_expr_target): Likewise.
+ * ira.c (setup_prohibited_mode_move_regs): Likewise.
+ * postreload.c (reload_cse_regs_1): Likewise.
+
+2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
+
+ * rtl.def (REG): Change format to "r".
+ * rtl.h (rtunion): Remove rt_reg.
+ (reg_info): New structure.
+ (rtx_def): Add reg field to main union.
+ (X0REGATTR): Delete.
+ (REG_CHECK): New macro.
+ (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
+ * rtl.c (rtx_format): Document "r".
+ (rtx_code_size): Handle REG specially.
+ * gengenrtl.c (special_format): Return true for formats
+ that include 'r'.
+ * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
+ Deal with REG_ATTRS after the field loop.
+ * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
+ * expmed.c (init_expmed): Call gen_raw_REG instead of
+ gen_rtx_raw_REG.
+ * expr.c (init_expr_target): Likewise.
+ * regcprop.c (maybe_mode_change): Likewise.
+ * varasm.c (make_decl_rtl): Likewise.
+ * final.c (leaf_renumber_regs_insn): Return early after
+ handling REGs.
+ * genemit.c (gen_exp): Handle 'r' fields.
+ * genpeep.c (match_rtx): Likewise.
+ * gensupport.c (subst_pattern_match): Likewise.
+ (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
+ (alter_constraints, subst_dup): Likewise.
+ * read-rtl.c (read_rtx_code): Likewise.
+ * print-rtl.c (print_rtx): Likewise.
+ * genrecog.c (find_operand, find_matching_operand): Likewise.
+ (validate_pattern, match_pattern_2): Likewise.
+ (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
+ (rtx_test::regno_field): New function.
+ (operator ==, safe_to_hoist_p, transition_parameter_type)
+ (parameter_type_string, print_parameter_value)
+ (print_nonbool_test, print_test): Handle new enum values.
+ * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
+ * lra-constraints.c (operands_match_p): Likewise.
+
+2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
+
+ * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
+ Change type of new_regno to unsigned int.
+ * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
+ new_regno to unsigned int.
+ (df_ref_change_reg_with_loc): Remove old_regno parameter.
+ Change type of new_regno to unsigned int. Use SET_REGNO_RAW.
+ * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
+ (SET_REGNO_RAW): Add space after ",".
+
+2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
+
+ * rtl.h (REG_NREGS): New macro
+ * alias.c (record_set): Use it.
+ * cfgcleanup.c (mark_effect): Likewise.
+ * combine.c (likely_spilled_retval_1): Likewise.
+ (likely_spilled_retval_p, can_change_dest_mode): Likewise.
+ (move_deaths, distribute_notes): Likewise.
+ * cselib.c (cselib_record_set): Likewise.
+ * df-problems.c (df_simulate_one_insn_forwards): Likewise.
+ * df-scan.c (df_mark_reg): Likewise.
+ * dse.c (look_for_hardregs): Likewise.
+ * dwarf2out.c (reg_loc_descriptor): Likewise.
+ (multiple_reg_loc_descriptor): Likewise.
+ * expr.c (write_complex_part, read_complex_part): Likewise.
+ (emit_move_complex): Likewise.
+ * haifa-sched.c (setup_ref_regs): Likewise.
+ * ira-lives.c (mark_hard_reg_live): Likewise.
+ * lra.c (lra_set_insn_recog_data): Likewise.
+ * mode-switching.c (create_pre_exit): Likewise.
+ * postreload.c (reload_combine_recognize_const_pattern): Likewise.
+ (reload_combine_recognize_pattern): Likewise.
+ (reload_combine_note_use, move2add_record_mode): Likewise.
+ (reload_cse_move2add): Likewise.
+ * reg-stack.c (subst_stack_regs_pat): Likewise.
+ * regcprop.c (kill_value, copy_value): Likewise.
+ (copyprop_hardreg_forward_1): Likewise.
+ * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
+ (build_def_use): Likewise.
+ * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
+ (deps_analyze_insn): Likewise.
+ * sched-rgn.c (check_live_1, update_live_1): Likewise.
+ * sel-sched.c (count_occurrences_equiv): Likewise.
+ * valtrack.c (dead_debug_insert_temp): Likewise.
+
+2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
+
+ * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
+ * dse.c (note_add_store): Likewise.
+ * ira-lives.c (mark_hard_reg_dead): Likewise.
+ * loop-invariant.c (mark_reg_store): Likewise.
+ (mark_reg_death): Likewise.
+ * postreload.c (reload_combine): Likewise.
+ (reload_combine_note_store): Likewise.
+ (reload_combine_note_use): Likewise.
+ * recog.c (peep2_reg_dead_p): Likewise.
+
+2015-05-19 Alan Modra <amodra@gmail.com>
+
+ * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
+ hard registers numbered greater or equal to ARG_POINTER_REGNUM.
+ (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
+ unused predicates.
+ * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
+ Use altivec_register_operand. Make insn predicate TARGET_ALTIVEC.
+ * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
+ * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
+
+2015-05-19 Sameera Deshpande <Sameera.Deshpande@imgtec.com>
+
+ * config/mips/mips.md (JOIN_MODE): New mode iterator.
+ (join2_load_Store<JOIN_MODE:mode>): New pattern.
+ (join2_loadhi): Likewise.
+ (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
+ load-load and store-stores.
+ * config/mips/mips.opt (mload-store-pairs): New option.
+ (TARGET_LOAD_STORE_PAIRS): New macro.
+ * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
+ * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
+ * config/mips/mips.c (mips_load_store_bonding_p): New function.
+
+2015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
+
+ * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
+ explicit swaps.
+ * dojump.c (do_compare_rtx_and_jump): Likewise.
+ * expmed.c (emit_store_flag_1): Likewise.
+ * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
+ * final.c (sprint_ul): Use std::reverse for reversing a string.
+ * fold-const.c (extract_muldiv_1): Use std::swap.
+ * genmodes.c (emit_mode_int_n): Likewise.
+ * ifcvt.c (dead_or_predicable): Likewise.
+ * ira-build.c (ira_merge_live_ranges): Likewise.
+ (swap_allocno_copy_ends_if_necessary): Likewise.
+ * ira.c (ira_setup_alts): Likewise.
+ * loop-iv.c (iv_analyze_expr): Likewise.
+ (implies_p): Likewise.
+ (canon_condition): Likewise.
+ * lra-constraints.c (swap_operands): Likewise.
+ * lra-lives.c (lra_merge_live_ranges): Likewise.
+ * omega.c (swap): Remove.
+ (bswap): Remove.
+ (omega_unprotect_1): Use std::swap.
+ (omega_solve_geq): Likewise.
+ * optabs.c (expand_binop_directly): Likewise.
+ (expand_binop): Likewise.
+ (emit_conditional_move): Likewise.
+ (emit_conditional_add): Likewise.
+ * postreload.c (reload_cse_simplify_operands): Likewise.
+ * reg-stack.c (emit_swap_insn): Likewise.
+ (swap_to_top): Likewise.
+ (compare_for_stack_reg): Likewise.
+ (subst_asm_stack_regs): Likewise.
+ * reload.c (find_reloads): Likewise.
+ * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
+ * sel-sched.c (invoke_reorder_hooks): Likewise.
+ (create_block_for_bookkeeping): Likewise.
+ * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
+ (lambda_matrix_right_hermite): Use std::swap.
+ * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
+ * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
+ * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
+ * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
+ * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
+ * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
+ * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
+ * tree-vrp.c (compare_ranges): Likewise.
+ * var-tracking.c (add_with_sets): Likewise.
+ (vt_find_locations): Likewise.
+
+2015-05-18 Andreas Tobler <andreast@gcc.gnu.org>
+
+ * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
+ pie executables.
+ (FBSD_ENDFILE_SPEC): Likewise.
+ * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
+ config/freebsd-spec.h.
+ (ENDFILE_SPEC): Likewise.
+
+2015-05-18 Uros Bizjak <ubizjak@gmail.com>
+ Richard Henderson <rth@redhat.com>
+
+ PR target/57032
+ * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
+ Check for a memory location that is not a reference (using an AND)
+ to an unaligned location here.
+ * config/alpha/predicates.md (normal_memory_operand): Remove.
+
+2015-05-18 Alex Velenko <Alex.Velenko@arm.com>
+
+ * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
+ (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
+
+2015-05-18 Robert Suchanek <robert.suchanek@imgtec.com>
+
+ * config/mips/mips.c (micromips_globals): New variable.
+ (mips_set_compression_mode): Save and reinitialize target-dependent
+ state for microMIPS.
+
+2015-05-18 Martin Liska <mliska@suse.cz>
+
+ * dbgcnt.def: Add new counter.
+ * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
+
+2015-05-18 Martin Liska <mliska@suse.cz>
+
+ * dbgcnt.def: Sort counters.
+ * opts.c (common_handle_option): Do not compile if
+ -fdbg-cnt-list is enabled.
+
+2015-05-18 Tom de Vries <tom@codesourcery.com>
+
+ * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
+ (gimplify_va_arg_expr): Remove do_deref handling. Remove adding of
+ address operator to va_list operand.
+ * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
+ unconditionally.
+ * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
+ operand.
+ * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
+ * config/s390/s390.c (s390_gimplify_va_arg): Same.
+ * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
+
+2015-05-18 Tom de Vries <tom@codesourcery.com>
+
+ * tree-ssa-tail-merge.c: Fix whitespace.
+
+2015-05-17 Jim Wilson <jim.wilson@linaro.org>
+
+ * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
+ cortex-a17, and cortex-a17.cortex-a7.
+
+2015-05-17 Oleg Endo <olegendo@gcc.gnu.org>
+
+ PR target/54236
+ * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
+
+2015-05-17 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/66174
+ * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
+ QImode inner modes for TARGET_AVX512BW. Force mask operand
+ to a register for AVX512F modes.
+
+2015-05-16 Jan Hubicka <hubicka@ucw.cz>
+
+ * toplev.c (emit_debug_global_declarations): Do not output debug info
+ when doing slim LTO objects.
+
+2015-05-16 Jan Hubicka <hubicka@ucw.cz>
+
+ * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
+ odr_types_equivalent_p): Declare.
+ (odr_type_p): Use gcc_checking_assert.
+ (type_in_anonymous_namespace_p) Declare.
+ (type_with_linkage_p): Declare.
+ * common.opt (Wlto-type-mismatch): New warning.
+ * ipa-devirt.c (compound_type_base): New function.
+ (odr_or_derived_type_p): New function.
+ (odr_types_equivalent_p): New function.
+ (add_type_duplicate): Simplify.
+ (type_with_linkage_p): Add hack to prevent false positives on C types
+ (type_in_anonymous_namespace_p): Likewise.
+ * tree.c (need_assembler_name_p): Use type_with_linkage.
+ * tree.h (type_in_anonymous_namespace_p): Remove.
+ * doc/invoke.texi (-Wlto-type-mismatch): Document
+
+2015-05-16 Jan Hubicka <hubicka@ucw.cz>
+
+ * tree.c (verify_type_variant): Verify tree_base and type_common flags.
+ (verify_type): Verify STRING_FLAG.
+
+2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR fortran/44054
+ * tree-pretty-print.c (percent_K_format): Replace locus pointer
+ with accessor function.
+ * tree-diagnostic.c (diagnostic_report_current_function): Use
+ diagnostic_location function.
+ (maybe_unwind_expanded_macro_loc): Likewise.
+ (virt_loc_aware_diagnostic_finalizer): Likewise.
+ (default_tree_printer): Replace locus pointer with accessor function.
+ * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
+ (diagnostic_set_info_translated): Initialize second location.
+ (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
+ (diagnostic_show_locus): Handle two locations. Call
+ diagnostic_print_caret_line.
+ (diagnostic_print_caret_line): New.
+ (default_diagnostic_starter): Use diagnostic_location function.
+ (diagnostic_report_diagnostic): Use diagnostic_location function.
+ (verbatim): Do not set text.locus.
+ * diagnostic.h (struct diagnostic_info): Remove location field.
+ (struct diagnostic_context): Make caret_chars an array of two.
+ (diagnostic_location): New inline.
+ (diagnostic_expand_location): Handle two locations.
+ (diagnostic_same_line): New inline.
+ (diagnostic_print_caret_line): Declare.
+ (CARET_LINE_MARGIN): New constant.
+ * pretty-print.c (pp_printf): Do not set text.locus.
+ (pp_verbatim): Do not set text.locus.
+ * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
+ (struct text_info): Replace locus pointer with locations
+ array. Add accessor functions.
+
+2015-05-16 Kugan Vivekanandarajah <kuganv@linaro.org>
+ Zhenqiang Chen <zhenqiang.chen@linaro.org>
+
+ PR target/65768
+ * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
+ * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
+ large constants in register instead of splitting them.
+
+2015-05-16 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/66140
+ * config/alpha/alpha.c (get_aligned_mem): Also look for reload
+ replacements in memory addresses.
+ (get_unaligned_address): Ditto.
+
+2015-05-15 Marc Glisse <marc.glisse@inria.fr>
+
+ PR tree-optimization/64454
+ * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
+ (-1 - A -> ~A): Remove unnecessary condition.
+
+2015-05-15 Gregor Richards <gregor.richards@uwaterloo.ca>
+
+ * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
+ * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
+ (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
+
+2015-05-15 Ilya Enkovich <ilya.enkovich@intel.com>
+
+ * ipa-chkp.h (chkp_wrap_function): New.
+ * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
+ (chkp_wrap_function_name): New.
+ (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
+ to get wrapper name.
+ * lto-cgraph.c: Include ipa-chkp.h.
+ (input_cgraph_1): Avoid alias chain for wrappers.
+
+2015-05-15 Ilya Enkovich <enkovich.gnu@gmail.com>
+
+ PR middle-end/66134
+ * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
+ (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
+
+2015-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
+ (AARCH64_FL_SLOWMUL): Delete.
+ (AARCH64_FL_CRC): Redefine to 1<<3.
+ (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
+
+2015-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
+
+ * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
+ casting.
+
+2015-05-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/alpha/alpha.md (extendqidi2): Use general_operand
+ instead of some_operand for operand[1] predicate.
+ (extendhidi2): Ditto.
+ (cbranchdi4): Use general_operand instead of some_operand
+ for operand[1] and operands[2] predicates.
+ (cstoredi4): Ditto.
+ * config/alpha/predicates.md (some_operand): Remove unused predicate.
+ (some_ni_operand): Ditto.
+
+2015-05-15 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/alpha/alpha.c (alpha_extract_integer): Do not handle
+ CONST_WIDE_INT and CONST_DOUBLE. Assert CONST_INT_P (x).
+ (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
+ low part of the constant using alpha_emit_set_const_1.
+ (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
+
+2015-05-14 Rohit Arul Raj <rohitrulraj@freescale.com>
+
+ * varasm.c (output_constant_pool_1): Pass down alignment from
+ constant pool entry's descriptor to output_constant_pool_2.
+ (output_object_block): Add comment prior to call to
+ output_constant_pool_1.
+
+2015-05-14 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/65862
+ * target.def (ira_change_pseudo_allocno_class): New hook.
+ * targhooks.c (default_ira_change_pseudo_allocno_class): Default
+ value of the hook.
+ * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
+ * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
+ hook.
+ * ira-costs.c (find_costs_and_classes): Call the hook and change
+ classes when it is necessary.
+ * doc/tm.texi: Update.
+
+2015-05-14 Alexander Monakov <amonakov@ispras.ru>
+
+ * config/i386/i386.md (sibcall_memory): Check that register with
+ callee address is not also used as one of the arguments, instead
+ of checking that it is not live after the sibcall.
+ (sibcall_pop_memory): Ditto.
+ (sibcall_value_memory): Ditto.
+ (sibcall_value_pop_memory): Ditto.
+
+2015-05-14 Marc Glisse <marc.glisse@inria.fr>
+
+ * generic-match-head.c (types_match): Handle non-types.
+ * gimple-match-head.c (types_match): Likewise.
+ * match.pd: Remove unnecessary TREE_TYPE for types_match.
+
+2015-05-14 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
+ (csneg3<mode>_insn): Enable expansion of pattern.
+
+2015-05-14 Nick Clifton <nickc@redhat.com>
+
+ * config/rl78/rl78.c (rl78_select_section): Select the correct
+ default section based upon the category of the decl.
+
+2015-05-13 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR rtl-optimization/30967
+ * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
+ destination mode for the cost of scc patterns.
+
+2015-05-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
+ using SWIM248 mode iterator.
+ (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
+ (*mulvhi4): mark operand[1] as commutative. Use nonimmediate_operand
+ for operand[2] constraint.
+ (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
+
+2015-05-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/66133
+ * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
+ make sure it is never noreturn, even when the task body does not
+ return.
+ (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
+ right before GIMPLE_OMP_RETURN.
+ (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
+ for GIMPLE_OMP_TASK. For GIMPLE_OMP_RETURN corresponding to
+ GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
+
+2015-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
+ * tree-ssa-math-opts.c: Include params.h
+ (pow_synth_sqrt_info): New struct.
+ (representable_as_half_series_p): New function.
+ (get_fn_chain): Likewise.
+ (print_nested_fn): Likewise.
+ (dump_fractional_sqrt_sequence): Likewise.
+ (dump_integer_part): Likewise.
+ (expand_pow_as_sqrts): Likewise.
+ (gimple_expand_builtin_pow): Use above to attempt to expand
+ pow as series of square roots. Removed now unused variables.
+
+2015-05-13 Uros Bizjak <ubizjak@gmail.com>
+
+ * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
+ (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
+ Remove *p0 and *p1 arguments. Rewrite function.
+ (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
+ (alpha_split_const_mov): Update calls to alpha_extract_integer and
+ alpha_emit_set_long_const.
+ (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
+ (alpha_output_mi_thunk_osf): Ditto.
+ * config/alpha/alpha.md (movti): Do not check operands[1]
+ for CONST_DOUBLE.
+
+2015-05-13 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/66129
+ * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
+ commutative.
+ (vect_schedule_slp_instance): Fix typo.
+
+2015-05-13 David Malcolm <dmalcolm@redhat.com>
+
+ * common.opt (fdump-internal-locations): New option.
+ * input.c: Include diagnostic-core.h.
+ (get_end_location): New function.
+ (write_digit): New function.
+ (write_digit_row): New function.
+ (dump_location_range): New function.
+ (dump_labelled_location_range): New function.
+ (dump_location_info): New function.
+ * input.h (dump_location_info): New prototype.
+ * toplev.c (compile_file): Handle flag_dump_locations.
+
+2015-05-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gimple-expr.h (is_gimple_constant): Reorder.
+ * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
+
+2015-05-13 Segher Boessenkool <segher@kernel.crashing.org>
+
+ * combine.c (simplify_set): When generating a CC set, if the
+ source already is in the correct mode, do not wrap it in a
+ compare. Simplify the rest of that code.
+
+2015-05-13 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/66123
+ * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
+ a taken edge.
+
+2015-05-13 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/66110
+ * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
+ specially.
+ * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
+
+2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
+
+ * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
+ * aclocal.m4: Regenerated with automake-1.11.6.
+
+2015-05-13 Tom de Vries <tom@codesourcery.com>
+
+ PR tree-optimization/66010
+ * gimplify.h (gimplify_va_arg_internal): Remove declaration.
+ * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
+ * tree-stdarg.c (expand_ifn_va_arg_1): ... here. Choose between lval
+ and rval based on do_deref.
+
2015-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
PR target/65103
format.
(arm_option_override, thumb2_reorg, arm_print_tune_info)
(aarch_macro_fusion_pair_p): Update uses of current_tune.
- * arm.h (LOGCIAL_OP_NON_SHORT_CIRCUIT): Likewise.
+ * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
2015-05-12 Sandra Loosemore <sandra@codesourcery.com>