| 2019-09-16 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/91719 |
| * config/i386/i386.h (TARGET_USE_XCHG_FOR_ATOMIC_STORE): New macro. |
| * config/i386/x86-tune.def (X86_TUNE_USE_XCHG_FOR_ATOMIC_STORE): New. |
| * config/i386/sync.md (atomic_store<mode>): emit XCHG for |
| TARGET_USE_XCHG_FOR_ATOMIC_STORE. |
| |
| 2019-09-16 Jason Merrill <jason@redhat.com> |
| |
| * Makefile.in (build/genmatch.o): Depend on $(CPPLIB_H). |
| |
| 2019-09-16 Martin Liska <mliska@suse.cz> |
| |
| * gimple-fold.c (or_comparisons_1): Remove rules moved |
| to ... |
| * match.pd: ... here. |
| |
| 2019-09-16 Martin Liska <mliska@suse.cz> |
| |
| * gimple-fold.c (or_comparisons_1): Remove rules |
| moved to ... |
| * match.pd: ... here. |
| |
| 2019-09-16 Martin Liska <mliska@suse.cz> |
| |
| * genmatch.c (dt_node::append_simplify): Do not print |
| warning when we have duplicate patterns belonging |
| to a same simplify rule. |
| * gimple-fold.c (and_comparisons_1): Remove matching moved to match.pd. |
| (maybe_fold_comparisons_from_match_pd): Handle |
| tcc_comparison as a results. |
| * match.pd: Handle (X == CST1) && (X OP2 CST2) conditions. |
| |
| 2019-09-16 Li Jia He <helijia@linux.ibm.com> |
| Qi Feng <ffengqi@linux.ibm.com> |
| |
| PR middle-end/88784 |
| * match.pd (x > y && x != XXX_MIN): Optimize into 'x > y'. |
| (x > y && x == XXX_MIN): Optimize into 'false'. |
| (x <= y && x == XXX_MIN): Optimize into 'x == XXX_MIN'. |
| (x < y && x != XXX_MAX): Optimize into 'x < y'. |
| (x < y && x == XXX_MAX): Optimize into 'false'. |
| (x >= y && x == XXX_MAX): Optimize into 'x == XXX_MAX'. |
| (x > y || x != XXX_MIN): Optimize into 'x != XXX_MIN'. |
| (x <= y || x != XXX_MIN): Optimize into 'true'. |
| (x <= y || x == XXX_MIN): Optimize into 'x <= y'. |
| (x < y || x != XXX_MAX): Optimize into 'x != XXX_MAX'. |
| (x >= y || x != XXX_MAX): Optimize into 'true'. |
| (x >= y || x == XXX_MAX): Optimize into 'x >= y'. |
| |
| 2019-09-16 Li Jia He <helijia@linux.ibm.com> |
| Martin Liska <mliska@suse.cz> |
| |
| * gimple-fold.c (and_comparisons_1): Add type as first |
| argument. |
| (and_var_with_comparison): Likewise. |
| (and_var_with_comparison_1): Likewise. |
| (or_comparisons_1): Likewise. |
| (or_var_with_comparison): Likewise. |
| (or_var_with_comparison_1): Likewise. |
| (maybe_fold_and_comparisons): Call maybe_fold_comparisons_from_match_pd. |
| (maybe_fold_or_comparisons): Likewise. |
| (maybe_fold_comparisons_from_match_pd): New. |
| * gimple-fold.h (maybe_fold_and_comparisons): Add type argument. |
| (maybe_fold_or_comparisons): Likewise. |
| * gimple.c (gimple_size): Make it public and add num_ops argument. |
| (gimple_init): New function. |
| (gimple_alloc): Call gimple_init. |
| * gimple.h (gimple_size): New. |
| (gimple_init): Likewise. |
| * tree-if-conv.c (fold_or_predicates): Pass type. |
| * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise. |
| * tree-ssa-reassoc.c (eliminate_redundant_comparison): Likewise. |
| (optimize_vec_cond_expr): Likewise. |
| (ovce_extract_ops): Return type of conditional expression. |
| * tree-ssanames.c (init_ssa_name_imm_use): New. |
| (make_ssa_name_fn): Use init_ssa_name_imm_use. |
| * tree-ssanames.h (init_ssa_name_imm_use): New. |
| |
| 2019-09-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91756 |
| PR tree-optimization/87132 |
| * tree-ssa-alias.h (enum translate_flags): New. |
| (get_continuation_for_phi): Use it instead of simple bool flag. |
| (walk_non_aliased_vuses): Likewise. |
| * tree-ssa-alias.c (maybe_skip_until): Adjust. |
| (get_continuation_for_phi): When looking across backedges only |
| disallow valueization. |
| (walk_non_aliased_vuses): Adjust. |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid valueization |
| if requested. |
| |
| 2019-09-14 Kewen Lin <linkw@gcc.gnu.org> |
| |
| PR middle-end/80791 |
| * config/rs6000/rs6000.c (TARGET_HAVE_COUNT_REG_DECR_P): New macro. |
| (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise. |
| (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise. |
| * target.def (have_count_reg_decr_p): New hook. |
| (doloop_cost_for_generic): Likewise. |
| (doloop_cost_for_address): Likewise. |
| * doc/tm.texi.in (TARGET_HAVE_COUNT_REG_DECR_P): Likewise. |
| (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise. |
| (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise. |
| * doc/tm.texi: Regenerate. |
| * tree-ssa-loop-ivopts.c (comp_cost::operator+=): Consider infinite cost |
| addend. |
| (record_group): Init doloop_p. |
| (add_candidate_1): Add optional argument doloop, change the handlings |
| accordingly. |
| (add_candidate): Likewise. |
| (generic_predict_doloop_p): Update attribute. |
| (force_expr_to_var_cost): Add costing for expressions COND_EXPR/LT_EXPR/ |
| LE_EXPR/GT_EXPR/GE_EXPR/EQ_EXPR/NE_EXPR/UNORDERED_EXPR/ORDERED_EXPR/ |
| UNLT_EXPR/UNLE_EXPR/UNGT_EXPR/UNGE_EXPR/UNEQ_EXPR/LTGT_EXPR/MAX_EXPR/ |
| MIN_EXPR. |
| (get_computation_cost): Update for doloop IV cand extra cost. |
| (determine_group_iv_cost_cond): Update for doloop IV cand. |
| (determine_iv_cost): Likewise. |
| (ivopts_estimate_reg_pressure): Likewise. |
| (may_eliminate_iv): Update handlings for doloop IV cand. |
| (add_iv_candidate_for_doloop): New function. |
| (find_iv_candidates): Call function add_iv_candidate_for_doloop. |
| (iv_ca_set_no_cp): Update for doloop IV cand. |
| (iv_ca_set_cp): Likewise. |
| (iv_ca_dump): Dump register cost. |
| (find_doloop_use): New function. |
| (analyze_and_mark_doloop_use): Likewise. |
| (tree_ssa_iv_optimize_loop): Call function analyze_and_mark_doloop_use. |
| |
| 2019-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR middle-end/91708 |
| * cse.c (cse_insn): Do not replace anything with a |
| MEM. |
| |
| 2019-09-13 Ian Lance Taylor <iant@golang.org> |
| |
| * doc/invoke.texi (Optimize Options): Fix typo. |
| |
| 2019-09-12 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR tree-optimization/89386 |
| * config/i386/sse.md (smulhrs<mode>3): New expander. |
| (smulhrsv4hi3): Ditto. |
| |
| 2019-09-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91750 |
| * tree-vect-loop.c (vectorizable_induction): Compute IV increments |
| in the type of the evolution. |
| |
| 2019-09-12 Yuliang Wang <yuliang.wang@arm.com> |
| |
| PR tree-optimization/89386 |
| * config/aarch64/aarch64-sve2.md (<su>mull<bt><Vwide>) |
| (<r>shrnb<mode>, <r>shrnt<mode>): New SVE2 patterns. |
| (<su>mulh<r>s<mode>3): New pattern for MULHRS. |
| * config/aarch64/iterators.md (UNSPEC_SMULLB, UNSPEC_SMULLT) |
| (UNSPEC_UMULLB, UNSPEC_UMULLT, UNSPEC_SHRNB, UNSPEC_SHRNT) |
| (UNSPEC_RSHRNB, UNSPEC_RSHRNT, UNSPEC_SMULHS, UNSPEC_SMULHRS) |
| UNSPEC_UMULHS, UNSPEC_UMULHRS): New unspecs. |
| (MULLBT, SHRNB, SHRNT, MULHRS): New int iterators. |
| (su, r): Handle the unspecs above. |
| (bt): New int attribute. |
| * internal-fn.def (IFN_MULHS, IFN_MULHRS): New internal functions. |
| * internal-fn.c (first_commutative_argument): Commutativity info for |
| above. |
| * optabs.def (smulhs_optab, smulhrs_optab, umulhs_optab) |
| (umulhrs_optab): New optabs. |
| * doc/md.texi (smulhs$var{m3}, umulhs$var{m3}) |
| (smulhrs$var{m3}, umulhrs$var{m3}): Documentation for the above. |
| * tree-vect-patterns.c (vect_recog_mulhs_pattern): New pattern |
| function. |
| (vect_vect_recog_func_ptrs): Add it. |
| |
| 2019-09-11 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/predicates.md (non_add_cint_operand): Simplify the |
| code. |
| |
| 2019-09-11 Nathan Sidwell <nathan@acm.org> |
| |
| * tree.h (MARK_TS_TYPE_NON_COMMON): New. |
| * tree.c (tree_node_structure_for_code): Reformat and alphabetize. |
| |
| 2019-09-11 Richard Biener <rguenther@suse.de> |
| |
| * lto-opts.c (lto_write_options): Stream -g when debug is enabled. |
| * lto-wrapper.c (merge_and_complain): Pick up -g. |
| (append_compiler_options): Likewise. |
| (run_gcc): Re-instantiate handling -g0 at link-time. |
| * doc/invoke.texi (flto): Document debug info generation. |
| |
| 2019-09-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90387 |
| * vr-values.c (vr_values::extract_range_basic): After inlining |
| simplify non-constant __builtin_constant_p to false. |
| |
| 2019-09-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/89795 |
| * rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from |
| inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set. |
| |
| 2019-09-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/91723 |
| * tree-vect-stmts.c (vectorizable_call): Use types_compatible_p check |
| instead of pointer equality when checking if argument vectypes are |
| the same. |
| |
| PR middle-end/91725 |
| * match.pd ((A / (1 << B)) -> (A >> B)): Call tree_nonzero_bits instead |
| of get_nonzero_bits, only call it for integral types. |
| |
| 2019-09-11 Richard Biener <rguenther@suse.de> |
| |
| Revert |
| 2019-09-09 Barnaby Wilks <barnaby.wilks@arm.com> |
| |
| * match.pd: Add flag_unsafe_math_optimizations check |
| before deciding on the widest type in a binary math operation. |
| |
| 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/tm.texi.in: Document that exactly one of CALL_USED_REGISTERS |
| and CALL_REALLY_USED_REGISTERS must be defined, and that |
| CALL_REALLY_USED_REGISTERS is preferred. |
| * doc/tm.texi: Regenerate. |
| * hard-reg-set.h (target_hard_regs::x_call_really_used_regs): Delete. |
| (call_really_used_regs): Likewise. |
| * reginfo.c: Raise an #error if both CALL_USED_REGISTERS and |
| CALL_REALLY_USED_REGISTERS are defined. |
| (initial_call_used_regs): Use CALL_REALLY_USED_REGISTERS as the |
| initial value if defined. |
| (initial_call_really_used_regs): Delete. |
| (saved_call_really_used_regs): Likewise. |
| (CALL_REALLY_USED_REGNO_P): Likewise. |
| (init_reg_sets): Remove handling of call_really_used_regs. |
| (save_register_info, restore_register_info, globalize_reg): Likewise. |
| (init_reg_sets_1): Likewise. Use call_used_regs instead of |
| CALL_REALLY_USED_REGNO_P. Don't set call_used_regs for registers |
| outside operand_reg_set. |
| (fix_register): Don't change call_used_regs if |
| CALL_REALLY_USED_REGISTERS is defined. |
| * config/csky/csky.h (CALL_USED_REGISTERS): Delete. |
| * config/csky/csky.c (get_csky_live_regs): Use call_used_regs |
| instead of call_really_used_regs. |
| (csky_conditional_register_usage): Remove the old handling of |
| call_used_regs and change the handling of call_really_used_regs |
| to use call_used_regs instead. |
| * config/ia64/ia64.h (CALL_USED_REGISTERS): Delete. |
| * config/ia64/ia64.c (fix_range): Don't set call_used_regs when |
| making a register fixed. |
| * config/m32r/m32r.h (CALL_USED_REGISTERS): Delete. |
| * config/m32r/m32r.c (MUST_SAVE_REGISTER): Use call_used_regs |
| instead of call_really_used_regs. |
| (m32r_conditional_register_usage): Don't set call_used_regs when |
| making a register fixed. |
| * config/mips/mips.h (CALL_USED_REGISTERS): Delete. |
| * config/mips/mips.c (mips_global_pointer): Use call_used_regs |
| instead of call_really_used_regs. |
| (mips_interrupt_extra_call_saved_reg_p): Likewise. |
| (mips_cfun_call_saved_reg_p): Likewise. |
| (mips_swap_registers): Remove the old handling of call_used_regs |
| and change the handling of call_really_used_regs to use call_used_regs |
| instead. |
| (mips_conditional_register_usage): Likewise. |
| * config/mn10300/mn10300.h (CALL_USED_REGISTERS): Delete. |
| * config/mn10300/mn10300.c (fp_regs_to_save): Use call_used_regs |
| instead of call_really_used_regs. |
| (mn10300_get_live_callee_saved_regs): Likewise. |
| (mn10300_expand_prologue, mn10300_expand_epilogue): Likewise. |
| (mn10300_conditional_register_usage): Don't set call_used_regs when |
| making a register fixed. |
| * config/rs6000/rs6000.h (CALL_USED_REGISTERS): Delete. |
| * config/rs6000/rs6000.c (rs6000_conditional_register_usage): |
| Remove the old handling of call_used_regs and change the handling |
| of call_really_used_regs to use call_used_regs instead. |
| * config/s390/s390.h (CALL_USED_REGISTERS): Delete. |
| * config/s390/s390.c (s390_regs_ever_clobbered): Use call_used_regs |
| instead of call_really_used_regs. |
| (s390_register_info_gprtofpr, s390_register_info): Likewise. |
| (s390_hard_regno_rename_ok, s390_hard_regno_scratch_ok): Likewise. |
| (s390_emit_prologue, s300_set_up_by_prologue): Likewise. |
| (s390_can_use_return_insn, s390_optimize_prologue): Likewise. |
| (s390_conditional_register_usage): Remove the old handling of |
| call_used_regs and change the handling of call_really_used_regs |
| to use call_used_regs instead. |
| * config/sh/sh.h (CALL_USED_REGISTERS): Delete. |
| * config/sh/sh.c (output_stack_adjust, calc_live_regs): Likewise. |
| (sh_fix_range, reg_unused_after): Likewise. |
| (sh_conditional_register_usage): Remove the old handling of |
| call_used_regs and change the handling of call_really_used_regs |
| to use call_used_regs instead. |
| * config/sparc/sparc.h (CALL_USED_REGISTERS): Delete. |
| * config/sparc/sparc.c (sparc_conditional_register_usage): Don't set |
| call_used_regs when making a register fixed. |
| * config/tilegx/tilegx.h (CALL_USED_REGISTERS): Delete. |
| * config/tilegx/tilegx.c (tilegx_conditional_register_usage): Don't set |
| call_used_regs when making a register fixed. |
| * config/tilepro/tilepro.h (CALL_USED_REGISTERS): Delete. |
| * config/tilepro/tilepro.c (tilepro_conditional_register_usage): Don't |
| set call_used_regs when making a register fixed. |
| * config/visium/visium.h (CALL_USED_REGISTERS): Delete. |
| * config/visium/visium.c (visium_conditional_register_usage): Remove |
| the old handling of call_used_regs and change the handling of |
| call_really_used_regs to use call_used_regs instead. |
| |
| 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * hard-reg-set.h (call_used_regs): Only define if IN_TARGET_CODE. |
| (call_used_or_fixed_reg_p): Expand definition of call_used_regs. |
| * reginfo.c (call_used_regs): New macro. |
| |
| 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/alpha/alpha.c (alpha_compute_frame_layout): Remove redundant |
| fixed_regs test. |
| * config/bpf/bpf.c (bpf_compute_frame_layout, bpf_expand_prologue) |
| (bpf_expand_epilogue): Likewise. |
| * config/c6x/c6x.c (c6x_save_reg): Likewise. |
| * config/ft32/ft32.c (ft32_expand_prologue): Likewise. |
| (ft32_expand_epilogue): Likewise. |
| * config/i386/i386.c (ix86_save_reg): Likewise. |
| * config/moxie/moxie.c (moxie_expand_prologue): Likewise. |
| (moxie_expand_epilogue): Likewise. |
| * config/tilegx/tilegx.c (need_to_save_reg): Likewise. |
| * config/tilepro/tilepro.c (need_to_save_reg): Likewise. |
| * config/xtensa/xtensa.c (xtensa_call_save_reg): Likewise. |
| |
| 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * hard-reg-set.h (call_used_or_fixed_reg_p): New macro. |
| * cfgloopanal.c (init_set_costs): Use call_used_or_fixed_reg_p |
| instead of testing call_used_regs directly. |
| * config/aarch64/aarch64.c (aarch64_layout_frame): Likewise. |
| (aarch64_components_for_bb): Likewise. |
| * config/alpha/alpha.c (alpha_compute_frame_layout): Likewise. |
| * config/arc/arc.c (arc_must_save_register): Likewise. |
| (arc_epilogue_uses): Likewise. |
| * config/arm/arm.c (arm_option_override, use_return_insn): Likewise. |
| (legitimize_pic_address, callee_saved_reg_p): Likewise. |
| (arm_compute_save_reg0_reg12_mask): Likewise. |
| (arm_compute_save_core_reg_mask): Likewise. |
| (arm_get_vfp_saved_size, arm_compute_frame_layout): Likewise. |
| (arm_save_coproc_regs, thumb1_extra_regs_pushed): Likewise. |
| (cmse_nonsecure_entry_clear_before_return): Likewise. |
| (thumb1_expand_epilogue, arm_expand_epilogue_apcs_frame): Likewise. |
| (arm_expand_epilogue): Likewise. |
| * config/avr/avr.c (avr_regs_to_save, sequent_regs_live): Likewise. |
| (avr_function_arg_advance, avr_find_unused_d_reg): Likewise. |
| (_reg_unused_after): Likewise. |
| * config/bfin/bfin.c (must_save_p, expand_prologue_reg_save): Likewise. |
| (expand_epilogue_reg_restore, n_regs_saved_by_prologue): Likewise. |
| (add_to_reg, hwloop_optimize): Likewise. |
| * config/bpf/bpf.c (bpf_compute_frame_layout, bpf_expand_prologue) |
| (bpf_expand_epilogue): Likewise. |
| * config/c6x/c6x.c (c6x_save_reg, c6x_regno_reg_class): Likewise. |
| * config/cr16/cr16.c (cr16_compute_save_regs): Likewise. |
| * config/cris/cris.c (cris_reg_saved_in_regsave_area): Likewise. |
| * config/epiphany/epiphany.c (epiphany_init_reg_tables): Likewise. |
| (epiphany_compute_function_type, MUST_SAVE_REGISTER): Likewise. |
| (epiphany_output_mi_thunk, epiphany_start_function): Likewise. |
| * config/fr30/fr30.c (fr30_num_arg_regs): Likewise. |
| * config/frv/frv.c (frv_stack_info): Likewise. |
| * config/ft32/ft32.c (ft32_compute_frame): Likewise. |
| (ft32_expand_prologue, ft32_expand_epilogue): Likewise. |
| * config/gcn/gcn.c (gcn_compute_frame_offsets): Likewise. |
| (move_callee_saved_registers): Likewise. |
| * config/h8300/h8300.c (byte_reg): Likewise. |
| * config/i386/i386-options.c (ix86_set_current_function): Likewise. |
| * config/i386/i386.c (ix86_save_reg, ix86_expand_prologue): Likewise. |
| (ix86_expand_epilogue, x86_order_regs_for_local_alloc): Likewise. |
| * config/i386/predicates.md (sibcall_memory_operand): Likewise. |
| * config/ia64/ia64.c (emit_safe_across_calls, find_gr_spill): Likewise. |
| (next_scratch_gr_reg, ia64_compute_frame_size): Likewise. |
| * config/iq2000/iq2000.h (MUST_SAVE_REGISTER): Likewise. |
| * config/lm32/lm32.c (lm32_compute_frame_size): Likewise. |
| * config/m32c/m32c.c (need_to_save): Likewise. |
| * config/m68k/m68k.c (m68k_save_reg): Likewise. |
| * config/mcore/mcore.c (calc_live_regs): Likewise. |
| * config/microblaze/microblaze.c (microblaze_must_save_register): |
| Likewise. |
| * config/mmix/mmix.c (mmix_local_regno): Likewise. |
| (mmix_initial_elimination_offset, mmix_reorg): Likewise. |
| (mmix_use_simple_return, mmix_expand_prologue): Likewise. |
| (mmix_expand_epilogue): Likewise. |
| * config/moxie/moxie.c (moxie_compute_frame): Likewise. |
| (moxie_expand_prologue, moxie_expand_epilogue): Likewise. |
| * config/msp430/msp430.c (msp430_preserve_reg_p): Likewise. |
| * config/nds32/nds32.h (nds32_16bit_address_type): Likewise. |
| (NDS32_REQUIRED_CALLEE_SAVED_P): Likewise. |
| * config/nios2/nios2.c (prologue_saved_reg_p): Likewise. |
| * config/or1k/or1k.c (callee_saved_regno_p): Likewise. |
| * config/pa/pa.c (pa_expand_prologue, pa_expand_epilogue): Likewise. |
| * config/pdp11/pdp11.c (pdp11_saved_regno): Likewise. |
| * config/pru/pru.c (prologue_saved_reg_p): Likewise. |
| * config/riscv/riscv.c (riscv_save_reg_p): Likewise. |
| (riscv_epilogue_uses, riscv_hard_regno_mode_ok): Likewise. |
| * config/rl78/rl78.c (need_to_save): Likewise. |
| * config/rs6000/rs6000-logue.c (save_reg_p): Likewise. |
| (rs6000_stack_info, generate_set_vrsave): Likewise. |
| (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_print): Likewise. |
| * config/rx/rx.c (rx_get_stack_layout): Likewise. |
| * config/s390/s390.c (s390_call_saved_register_used): Likewise. |
| * config/sh/sh.c (calc_live_regs, sh_output_mi_thunk): Likewise. |
| * config/sparc/sparc.c (save_global_or_fp_reg_p): Likewise. |
| (save_local_or_in_reg_p): Likewise. |
| * config/stormy16/stormy16.c (REG_NEEDS_SAVE): Likewise. |
| (xstormy16_epilogue_uses): Likewise. |
| * config/tilegx/tilegx.c (need_to_save_reg): Likewise. |
| * config/tilepro/tilepro.c (need_to_save_reg): Likewise. |
| * config/v850/v850.c (compute_register_save_size): Likewise. |
| * config/vax/vax.c (vax_expand_prologue): Likewise. |
| * config/visium/visium.c (visium_save_reg_p): Likewise. |
| * config/xtensa/xtensa.c (xtensa_call_save_reg): Likewise. |
| * cselib.c (cselib_process_insn): Likewise. |
| * df-scan.c (df_get_entry_block_def_set): Likewise. |
| * function.c (aggregate_value_p): Likewise. |
| * haifa-sched.c (alloc_global_sched_pressure_data): Likewise. |
| * ira-lives.c (process_bb_node_lives): Likewise. |
| * ira.c (do_reload): Likewise. |
| * lra-lives.c (process_bb_lives): Likewise. |
| * lra-remat.c (lra_remat): Likewise. |
| * lra.c (lra): Likewise. |
| * postreload.c (reload_combine_recognize_pattern): Likewise. |
| (reload_cse_move2add): Likewise. |
| * recog.c (peep2_find_free_register): Likewise. |
| * regrename.c (check_new_reg_p): Likewise. |
| * reload.c (find_equiv_reg): Likewise. |
| * reload1.c (reload, find_reg): Likewise. |
| * sel-sched.c (init_hard_regs_data): Likewise. |
| |
| 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/frv/frv.c (frv_ifcvt_modify_tests): Use |
| regs_invalidated_by_call & ~fixed_reg_set instead of |
| call_used_or_fixed_regs & ~fixed_reg_set. |
| * config/sh/sh.c (output_stack_adjust): Likewise. |
| |
| 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * hard-reg-set.h (target_hard_regs::x_call_used_reg_set): Delete. |
| (call_used_reg_set): Delete. |
| (call_used_or_fixed_regs): New macro. |
| * reginfo.c (init_reg_sets_1, globalize_reg): Remove initialization |
| of call_used_reg_set. |
| * caller-save.c (setup_save_areas): Use call_used_or_fixed_regs |
| instead of call_used_regs. |
| (save_call_clobbered_regs): Likewise. |
| * cfgcleanup.c (old_insns_match_p): Likewise. |
| * config/c6x/c6x.c (c6x_call_saved_register_used): Likewise. |
| * config/epiphany/epiphany.c (epiphany_conditional_register_usage): |
| Likewise. |
| * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise. |
| * config/sh/sh.c (output_stack_adjust): Likewise. |
| * final.c (collect_fn_hard_reg_usage): Likewise. |
| * ira-build.c (ira_build): Likewise. |
| * ira-color.c (calculate_saved_nregs): Likewise. |
| (allocno_reload_assign, calculate_spill_cost): Likewise. |
| * ira-conflicts.c (ira_build_conflicts): Likewise. |
| * ira-costs.c (ira_tune_allocno_costs): Likewise. |
| * ira-lives.c (process_bb_node_lives): Likewise. |
| * ira.c (setup_reg_renumber): Likewise. |
| * lra-assigns.c (find_hard_regno_for_1, lra_assign): Likewise. |
| * lra-constraints.c (need_for_call_save_p): Likewise. |
| (need_for_split_p, inherit_in_ebb): Likewise. |
| * lra-lives.c (process_bb_lives): Likewise. |
| * lra-remat.c (call_used_input_regno_present_p): Likewise. |
| * postreload.c (reload_combine): Likewise. |
| * regrename.c (find_rename_reg): Likewise. |
| * reload1.c (reload_as_needed): Likewise. |
| * rtlanal.c (find_all_hard_reg_sets): Likewise. |
| * sel-sched.c (mark_unavailable_hard_regs): Likewise. |
| * shrink-wrap.c (requires_stack_frame_p): Likewise. |
| |
| 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * hard-reg-set.h (target_hard_regs::x_no_caller_save_reg_set): Delete. |
| (no_caller_save_reg_set): Delete. |
| * caller-save.c (init_caller_save): Don't initialize it. |
| * ira-conflicts.c (ira_build_conflicts): Calculate |
| no_caller_save_reg_set locally from call_used_reg_set and savable_regs. |
| |
| 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * hard-reg-set.h (target_hard_regs::x_call_fixed_reg_set): Delete. |
| (target_hard_regs::x_savable_regs): New field. |
| (call_fixed_reg_set): Delete. |
| (savable_regs): New macro, |
| * reginfo.c (globalize_reg): Don't set call_fixed_reg_set. |
| (init_reg_sets_1): Likewise. Initialize savable_regs. |
| * caller-save.c (init_caller_save): Invoke HARD_REGNO_CALLER_SAVE_MODE |
| for all registers. Set savable_regs instead of call_fixed_reg_set. |
| (setup_save_areas, save_call_clobbered_regs): Replace uses of |
| ~call_fixed_reg_set with ~fixed_reg_set & savable_regs. |
| * config/sh/sh.c (output_stack_adjust): Likewise. |
| |
| 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/c6x/c6x-protos.h (c6x_set_return_address): Declare. |
| * config/c6x/c6x.h (REGNO_REG_CLASS): Move implementation to |
| * config/c6x/c6x.c (c6x_regno_reg_class): ...this new function. |
| |
| 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * rtl.h (get_call_rtx_from): Take a const rtx_insn * instead of an rtx. |
| * rtlanal.c (get_call_rtx_from): Likewise. |
| * dwarf2out.c (dwarf2out_var_location): Pass the insn rather |
| than the pattern to get_call_rtx_from. |
| * config/i386/i386-expand.h (ix86_notrack_prefixed_insn_p): Take |
| an rtx_insn * instead of an rtx. |
| * config/i386/i386-expand.c (ix86_notrack_prefixed_insn_p): Likewise. |
| |
| 2019-09-10 Martin Liska <mliska@suse.cz> |
| |
| * common.opt: Use newly added WarnRemoved. |
| * config/aarch64/aarch64.opt: Likewise. |
| * config/arm/arm.opt: Likewise. |
| * config/i386/i386.opt: Likewise. |
| * config/ia64/ia64.opt: Likewise. |
| * config/rs6000/rs6000.opt: Likewise. |
| * doc/options.texi: Document WarnRemoved properly. |
| * dwarf2out.c (gen_producer_string): Handle renamed |
| OPT_SPECIAL_warn_removed. |
| * lto-opts.c (lto_write_options): Likewise. |
| * lto-wrapper.c (merge_and_complain): Likewise. |
| * opts-common.c (decode_cmdline_option): Likewise. |
| (prune_options): Likewise. |
| (read_cmdline_option): Likewise. |
| (control_warning_option): Likewise. |
| * opts.c (print_filtered_help): Likewise. |
| * optc-gen.awk: Parse for WarnRemoved and make usage |
| of Deprecated an error. |
| * opth-gen.awk: Generate new OPT_SPECIAL_warn_removed. |
| |
| 2019-09-10 Arnaud Charlet <charlet@adacore.com> |
| |
| * doc/install.texi: Fix syntax for html generation. |
| |
| 2019-09-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/91680 |
| * match.pd ((A / (1 << B)) -> (A >> B)): Allow widening cast from |
| the shift type to type. |
| |
| 2019-09-10 Christophe Lyon <christophe.lyon@st.com> |
| |
| * config/arm/arm.md (stack_protect_combined_set_insn): Handle |
| FDPIC mode. |
| (stack_protect_combined_test_insn): Likewise. |
| |
| 2019-09-10 Christophe Lyon <christophe.lyon@st.com> |
| Mickaël Guêné <mickael.guene@st.com> |
| |
| * config/arm/arm.c (arm_load_tp): Add FDPIC support. |
| * config/arm/arm.md (FDPIC_REGNUM): New constant. |
| (load_tp_soft_fdpic): New pattern. |
| (load_tp_soft): Disable in FDPIC mode. |
| |
| 2019-09-10 Christophe Lyon <christophe.lyon@st.com> |
| Mickaël Guêné <mickael.guene@st.com> |
| |
| * config/arm/arm.c (tls_reloc): Add TLS_GD32_FDPIC, |
| TLS_LDM32_FDPIC and TLS_IE32_FDPIC. |
| (arm_call_tls_get_addr): Add FDPIC support. |
| (legitimize_tls_address): Likewise. |
| (arm_emit_tls_decoration): Likewise. |
| |
| 2019-09-10 Christophe Lyon <christophe.lyon@st.com> |
| Mickaël Guêné <mickael.guene@st.com> |
| |
| * config/arm/arm.c (arm_asm_trampoline_template): Add FDPIC |
| support. |
| (arm_trampoline_init): Likewise. |
| (arm_trampoline_adjust_address): Likewise. |
| * config/arm/arm.h (TRAMPOLINE_SIZE): Likewise. |
| |
| 2019-09-10 Christophe Lyon <christophe.lyon@st.com> |
| Mickaël Guêné <mickael.guene@st.com> |
| |
| * config/arm/arm.c (arm_fdpic_local_funcdesc_p): New function. |
| (legitimize_pic_address): Enforce binding rules on function |
| pointers in FDPIC mode. |
| (arm_assemble_integer): Likewise. |
| |
| 2019-09-10 Christophe Lyon <christophe.lyon@st.com> |
| Mickaël Guêné <mickael.guene@st.com> |
| |
| * config/arm/arm.h (PIC_REGISTER_MAY_NEED_SAVING): New helper. |
| * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Handle |
| FDPIC. |
| |
| 2019-09-10 Christophe Lyon <christophe.lyon@st.com> |
| Mickaël Guêné <mickael.guene@st.com> |
| |
| * ginclude/unwind-arm-common.h (unwinder_cache): Add reserved5 |
| field. |
| |
| 2019-09-10 Christophe Lyon <christophe.lyon@st.com> |
| Mickaël Guêné <mickael.guene@st.com> |
| |
| * config/arm/arm-c.c (__FDPIC__): Define new pre-processor macro |
| in FDPIC mode. |
| * config/arm/arm-protos.h (arm_load_function_descriptor): Declare |
| new function. |
| * config/arm/arm.c (arm_option_override): Define pic register to |
| FDPIC_REGNUM. |
| (arm_function_ok_for_sibcall): Disable sibcall optimization if we |
| have no decl or go through PLT. |
| (calculate_pic_address_constant): New function. |
| (legitimize_pic_address): Call calculate_pic_address_constant. |
| (arm_load_pic_register): Handle TARGET_FDPIC. |
| (arm_is_segment_info_known): New function. |
| (arm_pic_static_addr): Add support for FDPIC. |
| (arm_load_function_descriptor): New function. |
| (arm_emit_call_insn): Add support for FDPIC. |
| (arm_assemble_integer): Add support for FDPIC. |
| * config/arm/arm.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): |
| Define. (FDPIC_REGNUM): New define. |
| * config/arm/arm.md (call): Add support for FDPIC. |
| (call_value): Likewise. |
| (restore_pic_register_after_call): New pattern. |
| (untyped_call): Disable if FDPIC. |
| (untyped_return): Likewise. |
| * config/arm/unspecs.md (UNSPEC_PIC_RESTORE): New. |
| |
| 2019-09-10 Christophe Lyon <christophe.lyon@st.com> |
| Mickaël Guêné <mickael.guene@st.com> |
| |
| * config.gcc: Handle arm*-*-uclinuxfdpiceabi. |
| * config/arm/bpabi.h (TARGET_FDPIC_ASM_SPEC): New. |
| (SUBTARGET_EXTRA_ASM_SPEC): Use TARGET_FDPIC_ASM_SPEC. |
| * config/arm/linux-eabi.h (FDPIC_CC1_SPEC): New. |
| (CC1_SPEC): Use FDPIC_CC1_SPEC. |
| (MUSL_DYNAMIC_LINKER): Add -fdpic suffix when needed. |
| * config/arm/uclinuxfdpiceabi.h: New file. |
| |
| 2019-09-10 Christophe Lyon <christophe.lyon@st.com> |
| |
| * config.gcc: Handle *-*-uclinuxfdpiceabi. |
| |
| 2019-09-10 Christophe Lyon <christophe.lyon@st.com> |
| Mickaël Guêné <mickael.guene@st.com> |
| |
| * config/arm/arm.opt: Add -mfdpic option. |
| * doc/invoke.texi: Add documentation for -mfdpic. |
| |
| 2019-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| * expmed.c (extract_bit_field): Update function comment |
| regarding alt_rtl. |
| * expr.c (expand_expr_real): Update function comment |
| regarding alt_rtl. |
| (expand_misaligned_mem_ref): New helper function. |
| (expand_expr_real_2): Use expand_misaligned_mem_ref. |
| Remove duplicate assignment to "base" at case MEM_REF. |
| Remove a shadowed variable "unsignedp" at case VCE. |
| |
| 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * regset.h (regs_invalidated_by_call_regset): Delete. |
| (fixed_reg_set_regset): Likewise. |
| * reginfo.c (regs_invalidated_by_call_regset): Likewise. |
| (fixed_reg_set_regset, persistent_obstack): Likewise. |
| (init_reg_sets_1, globalize_reg): Update accordingly. |
| * df.h (df_print_regset, df_print_word_regset): Take a const_bitmap |
| instead of a bitmap. |
| * df-core.c (df_print_regset, df_print_word_regset): Likewise. |
| * df-problems.c (df_rd_local_compute): Use regs_invalidated_by_call |
| instead of regs_invalidated_by_call_regset. |
| (df_lr_confluence_n, df_md_confluence_n): Likewise. |
| * df-scan.c (df_scan_start_dump): Likewise. |
| * dse.c (copy_fixed_regs): Likewise. |
| * config/sh/sh.c (sh_find_equiv_gbr_addr): Likewise. |
| |
| 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * array-traits.h: New file. |
| * coretypes.h (array_traits, bitmap_view): New types. |
| * bitmap.h: Include "array-traits.h" |
| (bitmap_bit_p): Take a const_bitmap instead of a bitmap. |
| (base_bitmap_view, bitmap_view): New classes. |
| * bitmap.c (bitmap_bit_p): Take a const_bitmap instead of a bitmap. |
| * hard-reg-set.h: Include array-traits.h. |
| (array_traits<HARD_REG_SET>): New struct. |
| * regset.h (IOR_REG_SET_HRS): New macro. |
| * loop-iv.c (simplify_using_initial_values): Use IOR_REG_SET_HRS |
| rather than iterating over each hard register. |
| * sched-deps.c (sched_analyze_insn): Likewise. |
| * sel-sched-ir.c (setup_id_implicit_regs): Likewise. |
| |
| 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * ira-int.h (ior_hard_reg_conflicts): Take a const_hard_reg_set |
| instead of a HARD_REG_SET *. |
| * ira-build.c (ior_hard_reg_conflicts): Likewise. |
| (ira_build): Update call accordingly. |
| * ira-emit.c (add_range_and_copies_from_move_list): Likewise. |
| |
| 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * hard-reg-set.h (HARD_REG_SET::operator==): New function. |
| (HARD_REG_SET::operator!=): Likewise. |
| (hard_reg_set_equal_p): Delete. |
| * cfgcleanup.c (old_insns_match_p): Use == instead of |
| hard_reg_set_equal_p and != instead of !hard_reg_set_equal_p. |
| * ira-color.c (allocno_hard_regs_hasher::equal): Likewise. |
| (add_allocno_hard_regs_to_forest): Likewise. |
| (setup_allocno_available_regs_num): Likewise. |
| * ira.c (setup_pressure_classes): Likewise. |
| (setup_allocno_and_important_classes): Likewise. |
| (setup_reg_class_relations): Likewise. |
| * lra-lives.c (process_bb_lives): Likewise. |
| * reg-stack.c (change_stack, convert_regs_1): Likewise. |
| |
| 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * hard-reg-set.h (IOR_COMPL_HARD_REG_SET): Delete. |
| * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain): |
| Use "|~" instead of IOR_COMPL_HARD_REG_SET. |
| * config/aarch64/falkor-tag-collision-avoidance.c (init_unavailable): |
| Likewise. |
| * ira-build.c (ira_create_object, ira_set_allocno_class): Likewise. |
| * ira.c (setup_reg_renumber): Likewise. |
| * lra-assigns.c (find_hard_regno_for_1): Likewise. |
| * regrename.c (regrename_find_superclass): Likewise. |
| * reload1.c (find_reg): Likewise. |
| |
| 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * hard-reg-set.h (AND_COMPL_HARD_REG_SET): Delete. |
| * caller-save.c (setup_save_areas): Use "&~" instead of |
| AND_COMPL_HARD_REG_SET. |
| (save_call_clobbered_regs): Likewise. |
| * config/epiphany/epiphany.c (epiphany_conditional_register_usage): |
| Likewise. |
| * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise. |
| * config/gcn/gcn.c (gcn_md_reorg): Likewise. |
| * config/i386/i386.c (ix86_conditional_register_usage): Likewise. |
| * config/mips/mips.c (mips_class_max_nregs): Likewise. |
| (mips_conditional_register_usage): Likewise. |
| * config/sh/sh.c (output_stack_adjust): Likewise. |
| * ira-color.c (form_allocno_hard_regs_nodes_forest): Likewise. |
| (setup_profitable_hard_regs): Likewise. |
| (get_conflict_and_start_profitable_regs): Likewise. |
| * ira-conflicts.c (print_allocno_conflicts): Likewise. |
| (ira_build_conflicts): Likewise. |
| * ira-costs.c (restrict_cost_classes): Likewise. |
| (setup_regno_cost_classes_by_aclass): Likewise. |
| * ira-lives.c (process_bb_node_lives): Likewise. |
| * ira.c (setup_class_hard_regs, setup_reg_subclasses): Likewise. |
| (setup_class_subset_and_memory_move_costs, setup_pressure_classes) |
| (setup_allocno_and_important_classes, setup_class_translate_array) |
| (setup_reg_class_relations, setup_prohibited_class_mode_regs): |
| Likewise. |
| * lra-assigns.c (find_hard_regno_for_1): Likewise. |
| * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise. |
| (process_alt_operands, inherit_in_ebb): Likewise. |
| * lra-eliminations.c (update_reg_eliminate): Likewise. |
| * lra-lives.c (process_bb_lives): Likewise. |
| * reload1.c (update_eliminables_and_spill, reload_as_needed): Likewise. |
| * resource.c (find_dead_or_set_registers): Likewise. |
| (mark_target_live_regs): Likewise. |
| * sched-deps.c (get_implicit_reg_pending_clobbers): Likewise. |
| * sel-sched.c (mark_unavailable_hard_regs): Likewise. |
| (implicit_clobber_conflict_p): Likewise. |
| * shrink-wrap.c (requires_stack_frame_p): Likewise. |
| (try_shrink_wrapping): Likewise. |
| |
| 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * hard-reg-set.h (HARD_REG_SET::operator|): New function. |
| (HARD_REG_SET::operator|=): Likewise. |
| (IOR_HARD_REG_SET): Delete. |
| * config/gcn/gcn.c (gcn_md_reorg): Use "|" instead of |
| IOR_HARD_REG_SET. |
| * config/m32c/m32c.c (m32c_register_move_cost): Likewise. |
| * config/s390/s390.c (s390_adjust_loop_scan_osc): Likewise. |
| * final.c (collect_fn_hard_reg_usage): Likewise. |
| * hw-doloop.c (scan_loop, optimize_loop): Likewise. |
| * ira-build.c (merge_hard_reg_conflicts): Likewise. |
| (ior_hard_reg_conflicts, create_cap_allocno, propagate_allocno_info) |
| (propagate_some_info_from_allocno): Likewise. |
| (copy_info_to_removed_store_destinations): Likewise. |
| * ira-color.c (add_allocno_hard_regs_to_forest, assign_hard_reg) |
| (allocno_reload_assign, ira_reassign_pseudos): Likewise. |
| (fast_allocation): Likewise. |
| * ira-conflicts.c (ira_build_conflicts): Likewise. |
| * ira-lives.c (make_object_dead, process_single_reg_class_operands) |
| (process_bb_node_lives): Likewise. |
| * ira.c (setup_pressure_classes, setup_reg_class_relations): Likewise. |
| * lra-assigns.c (find_hard_regno_for_1): Likewise. |
| (setup_live_pseudos_and_spill_after_risky_transforms): Likewise. |
| * lra-constraints.c (process_alt_operands, inherit_in_ebb): Likewise. |
| * lra-eliminations.c (spill_pseudos, update_reg_eliminate): Likewise. |
| * lra-lives.c (mark_pseudo_dead, check_pseudos_live_through_calls) |
| (process_bb_lives): Likewise. |
| * lra-spills.c (assign_spill_hard_regs): Likewise. |
| * postreload.c (reload_combine): Likewise. |
| * reginfo.c (init_reg_sets_1): Likewise. |
| * regrename.c (merge_overlapping_regs, find_rename_reg) |
| (merge_chains): Likewise. |
| * reload1.c (maybe_fix_stack_asms, order_regs_for_reload, find_reg) |
| (find_reload_regs, finish_spills, choose_reload_regs_init) |
| (emit_reload_insns): Likewise. |
| * reorg.c (redundant_insn): Likewise. |
| * resource.c (find_dead_or_set_registers, mark_set_resources) |
| (mark_target_live_regs): Likewise. |
| * rtlanal.c (find_all_hard_reg_sets): Likewise. |
| * sched-deps.c (sched_analyze_insn): Likewise. |
| * sel-sched.c (mark_unavailable_hard_regs): Likewise. |
| (find_best_reg_for_expr): Likewise. |
| * shrink-wrap.c (try_shrink_wrapping): Likewise. |
| |
| 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * hard-reg-set.h (HARD_REG_SET::operator&): New function. |
| (HARD_REG_SET::operator&): Likewise. |
| (AND_HARD_REG_SET): Delete. |
| * caller-save.c (setup_save_areas): Use "&" instead of |
| AND_HARD_REG_SET. |
| (save_call_clobbered_regs): Likewise. |
| * config/gcn/gcn.c (gcn_md_reorg): Likewise. |
| * config/m32c/m32c.c (reduce_class): Likewise. |
| * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise. |
| * final.c (get_call_reg_set_usage): Likewise. |
| * ira-color.c (add_allocno_hard_regs_to_forest): Likewise. |
| (setup_left_conflict_sizes_p): Likewise. |
| * ira-conflicts.c (print_allocno_conflicts): Likewise. |
| (ira_build_conflicts): Likewise. |
| * ira-costs.c (restrict_cost_classes): Likewise. |
| * ira.c (setup_stack_reg_pressure_class, setup_class_translate_array) |
| (setup_reg_class_relations): Likewise. |
| * reginfo.c (init_reg_sets_1, record_subregs_of_mode): Likewise. |
| * reload1.c (maybe_fix_stack_asms, finish_spills): Likewise. |
| * resource.c (find_dead_or_set_registers): Likewise. |
| * sel-sched.c (mark_unavailable_hard_regs): Likewise. |
| |
| 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * hard-reg-set.h (HARD_REG_SET::operator~): New function. |
| (COMPL_HARD_REG_SET): Delete. |
| * config/c6x/c6x.c (c6x_call_saved_register_used): Use ~ instead |
| of COMPL_HARD_REG_SET. |
| (try_rename_operands): Likewise. |
| * config/sh/sh.c (push_regs): Likewise. |
| * lra-assigns.c (find_hard_regno_for_1): Likewise. |
| * lra-constraints.c (contains_reg_p): Likewise. |
| * reload1.c (finish_spills, choose_reload_regs_init): Likewise. |
| |
| 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * hard-reg-set.h (COPY_HARD_REG_SET): Delete. |
| * caller-save.c (save_call_clobbered_regs): Use assignment instead |
| of COPY_HARD_REG_SET. |
| * config/epiphany/epiphany.c (epiphany_compute_frame_size): Likewise. |
| (epiphany_conditional_register_usage): Likewise. |
| * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise. |
| * config/gcn/gcn.c (gcn_md_reorg): Likewise. |
| * config/ia64/ia64.c (ia64_compute_frame_size): Likewise. |
| * config/m32c/m32c.c (m32c_register_move_cost): Likewise. |
| * config/m68k/m68k.c (m68k_conditional_register_usage): Likewise. |
| * config/mips/mips.c (mips_class_max_nregs): Likewise. |
| * config/pdp11/pdp11.c (pdp11_conditional_register_usage): Likewise. |
| * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise. |
| * config/sh/sh.c (output_stack_adjust): Likewise. |
| * final.c (collect_fn_hard_reg_usage): Likewise. |
| (get_call_reg_set_usage): Likewise. |
| * ira-build.c (ira_create_object, remove_low_level_allocnos) |
| (ira_flattening): Likewise. |
| * ira-color.c (add_allocno_hard_regs, add_allocno_hard_regs_to_forest) |
| (setup_left_conflict_sizes_p, setup_profitable_hard_regs) |
| (get_conflict_and_start_profitable_regs, allocno_reload_assign) |
| (ira_reassign_pseudos): Likewise. |
| * ira-conflicts.c (print_allocno_conflicts): Likewise. |
| (ira_build_conflicts): Likewise. |
| * ira-costs.c (restrict_cost_classes): Likewise. |
| (setup_regno_cost_classes_by_aclass): Likewise. |
| * ira.c (setup_class_hard_regs, setup_alloc_regs): Likewise. |
| (setup_reg_subclasses, setup_class_subset_and_memory_move_costs) |
| (setup_stack_reg_pressure_class, setup_pressure_classes) |
| (setup_allocno_and_important_classes, setup_class_translate_array) |
| (setup_reg_class_relations, setup_prohibited_class_mode_regs) |
| (ira_setup_eliminable_regset): Likewise. |
| * lra-assigns.c (find_hard_regno_for_1): Likewise. |
| (setup_live_pseudos_and_spill_after_risky_transforms): Likewise. |
| * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise. |
| (process_alt_operands, inherit_in_ebb): Likewise. |
| * lra-lives.c (process_bb_lives): Likewise. |
| * lra-spills.c (assign_spill_hard_regs): Likewise. |
| * lra.c (lra): Likewise. |
| * mode-switching.c (new_seginfo): Likewise. |
| * postreload.c (reload_combine): Likewise. |
| * reg-stack.c (straighten_stack): Likewise. |
| * reginfo.c (save_register_info, restore_register_info): Likewise. |
| (init_reg_sets_1, record_subregs_of_mode): Likewise |
| * regrename.c (create_new_chain, rename_chains): Likewise. |
| * reload1.c (order_regs_for_reload, find_reg): Likewise. |
| (find_reload_regs): Likewise. |
| * resource.c (find_dead_or_set_registers): Likewise. |
| (mark_target_live_regs): Likewise. |
| * sel-sched.c (mark_unavailable_hard_regs): Likewise. |
| |
| 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * rtl.h (CALL_INSN_FUNCTION_USAGE): Document what SETs mean. |
| (note_pattern_stores): Declare. |
| (note_stores): Take an rtx_insn *. |
| * rtlanal.c (set_of): Use note_pattern_stores instead of note_stores. |
| (find_all_hard_reg_sets): Pass the insn rather than its pattern to |
| note_stores. Remove explicit handling of CALL_INSN_FUNCTION_USAGE. |
| (note_stores): Take an rtx_insn * as argument and process |
| CALL_INSN_FUNCTION_USAGE. Rename old function to... |
| (note_pattern_stores): ...this. |
| (find_first_parameter_load): Pass the insn rather than |
| its pattern to note_stores. |
| * alias.c (memory_modified_in_insn_p, init_alias_analysis): Likewise. |
| * caller-save.c (setup_save_areas, save_call_clobbered_regs) |
| (insert_one_insn): Likewise. |
| * combine.c (combine_instructions): Likewise. |
| (likely_spilled_retval_p): Likewise. |
| (try_combine): Use note_pattern_stores instead of note_stores. |
| (record_dead_and_set_regs): Pass the insn rather than its pattern |
| to note_stores. |
| (reg_dead_at_p): Likewise. |
| * config/bfin/bfin.c (workaround_speculation): Likewise. |
| * config/c6x/c6x.c (maybe_clobber_cond): Likewise. Take an rtx_insn * |
| rather than an rtx. |
| * config/frv/frv.c (frv_registers_update): Use note_pattern_stores |
| instead of note_stores. |
| (frv_optimize_membar_local): Pass the insn rather than its pattern |
| to note_stores. |
| * config/gcn/gcn.c (gcn_md_reorg): Likewise. |
| * config/i386/i386.c (ix86_avx_u128_mode_after): Likewise. |
| * config/mips/mips.c (vr4130_true_reg_dependence_p): Likewise. |
| (r10k_needs_protection_p, mips_sim_issue_insn): Likewise. |
| (mips_reorg_process_insns): Likewise. |
| * config/s390/s390.c (s390_regs_ever_clobbered): Likewise. |
| * config/sh/sh.c (flow_dependent_p): Likewise. Take rtx_insn *s |
| rather than rtxes. |
| * cse.c (delete_trivially_dead_insns): Pass the insn rather than |
| its pattern to note_stores. |
| * cselib.c (cselib_record_sets): Use note_pattern_stores instead |
| of note_stores. |
| * dce.c (mark_nonreg_stores): Remove the "body" parameter and pass |
| the insn to note_stores. |
| (prescan_insns_for_dce): Update call accordingly. |
| * ddg.c (mem_write_insn_p): Pass the insn rather than its pattern |
| to note_stores. |
| * df-problems.c (can_move_insns_across): Likewise. |
| * dse.c (emit_inc_dec_insn_before, replace_read): Likewise. |
| * function.c (assign_parm_setup_reg): Likewise. |
| * gcse-common.c (record_last_mem_set_info_common): Likewise. |
| * gcse.c (load_killed_in_block_p, compute_hash_table_work): Likewise. |
| (single_set_gcse): Likewise. |
| * ira.c (validate_equiv_mem): Likewise. |
| (update_equiv_regs): Use note_pattern_stores rather than note_stores |
| for no_equiv. |
| * loop-doloop.c (doloop_optimize): Pass the insn rather than its |
| pattern to note_stores. |
| * loop-invariant.c (calculate_loop_reg_pressure): Likewise. |
| * loop-iv.c (simplify_using_initial_values): Likewise. |
| * mode-switching.c (optimize_mode_switching): Likewise. |
| * optabs.c (emit_libcall_block_1): Likewise. |
| (expand_atomic_compare_and_swap): Likewise. |
| * postreload-gcse.c (load_killed_in_block_p): Likewise. |
| (record_opr_changes): Likewise. Remove explicit handling of |
| CALL_INSN_FUNCTION_USAGE. |
| * postreload.c (reload_combine, reload_cse_move2add): Likewise. |
| * regcprop.c (kill_clobbered_values): Likewise. |
| (copyprop_hardreg_forward_1): Pass the insn rather than its pattern |
| to note_stores. |
| * regrename.c (build_def_use): Likewise. |
| * reload1.c (reload): Use note_pattern_stores instead of note_stores |
| for mark_not_eliminable. |
| (reload_as_needed): Pass the insn rather than its pattern |
| to note_stores. |
| (emit_output_reload_insns): Likewise. |
| * resource.c (mark_target_live_regs): Likewise. |
| * sched-deps.c (init_insn_reg_pressure_info): Likewise. |
| * sched-rgn.c (sets_likely_spilled): Use note_pattern_stores |
| instead of note_stores. |
| * shrink-wrap.c (try_shrink_wrapping): Pass the insn rather than |
| its pattern to note_stores. |
| * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Likewise. |
| * var-tracking.c (adjust_insn, add_with_sets): Likewise. |
| |
| 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * hard-reg-set.h (HARD_REG_SET): Define using a typedef rather |
| than a #define. Use a structure rather than an array as the |
| fallback definition. Remove special cases for low array sizes. |
| (const_hard_reg_set): New typedef. |
| (hard_reg_set_subset_p): Use it instead of "const HARD_REG_SET". |
| (hard_reg_set_equal_p, hard_reg_set_intersect_p): Likewise. |
| (hard_reg_set_empty_p): Likewise. |
| (SET_HARD_REG_BIT): Use a function rather than a macro to |
| handle the case in which HARD_REG_SET is a structure. |
| (CLEAR_HARD_REG_BIT, TEST_HARD_REG_BIT, CLEAR_HARD_REG_SET) |
| (SET_HARD_REG_SET, COPY_HARD_REG_SET, COMPL_HARD_REG_SET) |
| (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET) |
| (IOR_COMPL_HARD_REG_SET): Likewise. |
| (hard_reg_set_iterator::pset): Constify the pointer target. |
| (hard_reg_set_iter_init): Take a const_hard_reg_set instead |
| of a "const HARD_REG_SET". Update the handling of non-integer |
| HARD_REG_SETs. |
| * recog.h: Test HARD_CONST instead of CLEAR_HARD_REG_SET. |
| * reload.h: Likewise. |
| * rtl.h (choose_hard_reg_mode): Remove unnecessary line break. |
| * regs.h (in_hard_reg_set_p): Take a const_hard_reg_set instead |
| of a "const HARD_REG_SET". |
| (overlaps_hard_reg_set_p, range_overlaps_hard_reg_set_p): Likewise. |
| (range_in_hard_reg_set_p): Likewise. |
| * ira-costs.c (restrict_cost_classes): Likewise. |
| * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise. |
| * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute): |
| Pass a NO_REGS HARD_REG_SET rather than NULL to emit_set_fp_mode. |
| * config/ia64/ia64.c (rws_insn): In the CHECKING_P version, |
| use unsigned HOST_WIDEST_FAST_INT rather than HARD_REG_ELT_TYPE. |
| (rws_insn_set, rws_insn_test): In the CHECKING_P version, |
| take an unsigned int and open-code the HARD_REG_SET operations. |
| |
| 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * Makefile.in (OBJS): Remove bt-load.o. |
| * doc/invoke.texi (fbranch-target-load-optimize): Delete. |
| (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise. |
| * common.opt (fbranch-target-load-optimize): Mark as Ignore and |
| document that the option no longer does anything. |
| (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise. |
| * target.def (branch_target_register_class): Delete. |
| (branch_target_register_callee_saved): Likewise. |
| * doc/tm.texi.in (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise. |
| (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise. |
| * doc/tm.texi: Regenerate. |
| * tree-pass.h (make_pass_branch_target_load_optimize1): Delete. |
| (make_pass_branch_target_load_optimize2): Likewise. |
| * passes.def (pass_branch_target_load_optimize1): Likewise. |
| (pass_branch_target_load_optimize2): Likewise. |
| * targhooks.h (default_branch_target_register_class): Likewise. |
| * targhooks.c (default_branch_target_register_class): Likewise. |
| * opt-suggestions.c (test_completion_valid_options): Remove |
| -fbtr-bb-exclusive from the list of test options. |
| * bt-load.c: Remove. |
| |
| 2019-09-09 Barnaby Wilks <barnaby.wilks@arm.com> |
| |
| * match.pd: Add flag_unsafe_math_optimizations check |
| before deciding on the widest type in a binary math operation. |
| |
| 2019-09-09 Martin Liska <mliska@suse.cz> |
| |
| * config/i386/i386.opt: Update comment of removed |
| options that are preserved only for backward |
| compatibility. |
| |
| 2019-09-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/87853 |
| * config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi |
| instead of __v16qs. |
| |
| PR target/91704 |
| * config/i386/avxintrin.h (__v32qs): New typedef. |
| * config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs |
| instead of __v32qi. |
| |
| 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * doc/invoke.texi (Option Summary): Cover eBPF. |
| (eBPF Options): New section. |
| * doc/extend.texi (BPF Built-in Functions): Likewise. |
| (BPF Kernel Helpers): Likewise. |
| |
| 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * config.gcc: Support for bpf-*-* targets. |
| * common/config/bpf/bpf-common.c: New file. |
| * config/bpf/t-bpf: Likewise. |
| * config/bpf/predicates.md: Likewise. |
| * config/bpf/constraints.md: Likewise. |
| * config/bpf/bpf.opt: Likewise. |
| * config/bpf/bpf.md: Likewise. |
| * config/bpf/bpf.h: Likewise. |
| * config/bpf/bpf.c: Likewise. |
| * config/bpf/bpf-protos.h: Likewise. |
| * config/bpf/bpf-opts.h: Likewise. |
| * config/bpf/bpf-helpers.h: Likewise. |
| * config/bpf/bpf-helpers.def: Likewise. |
| |
| 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords): Document |
| indirect_calls. |
| |
| 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * opt-functions.awk (integer_range_info): Make sure values are in |
| numeric context before operating with them. |
| |
| 2019-09-08 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * genemit.c (gen_split): Print the filename and line number where the |
| splitter (or peephole2) was defined, to the dump file. |
| |
| 2019-09-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/91665 |
| * tree-vect-loop.c (vectorizable_reduction): Punt if base has type |
| incompatible with the type of PHI result. |
| |
| 2019-09-07 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR target/91684 |
| * config/arm/arm.c (arm_block_set_aligned_non_vect): Use |
| gen_unaligned_storedi for 4-byte aligned addresses. |
| |
| 2019-09-06 Jim Wilson <jimw@sifive.com> |
| |
| * config/riscv/riscv.c (riscv_option_override): Revert 2019-08-30 |
| change. |
| |
| 2019-09-06 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (unspec): Delete UNSPEC_MV_CR_OV. |
| |
| 2019-09-06 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_rtx_costs) <case UNSPEC>: Delete. |
| * config/rs6000/rs6000.md (unspec): Delete UNSPEC_FRSP. |
| |
| 2019-09-06 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/91654 |
| * config/i386/x86-tune-costs.h (skylake_cost): Raise the |
| cost of SSE->integer and integer->SSE moves from 2 to 6. |
| (core_cost): Ditto. |
| |
| 2019-09-06 Jakub Jelinek <jakub@redhat.com> |
| |
| * function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P |
| before testing TYPE_TRANSPARENT_AGGR. |
| * calls.c (initialize_argument_information, load_register_parameters): |
| Likewise. |
| |
| 2019-09-06 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.md (cmp_and): Add short-it variant for thumb2 with |
| high regs. |
| (cmp_ior): Likewise. |
| |
| 2019-09-06 Martin Liska <mliska@suse.cz> |
| |
| * doc/match-and-simplify.texi: Separate tuples with ;. |
| |
| 2019-09-06 Martin Liska <mliska@suse.cz> |
| |
| PR c++/91125 |
| * Makefile.in: Remove tlink.o. |
| * collect2.c (do_link): New function isolated |
| from do_tlink. |
| (main): Use. |
| * collect2.h (do_tlink): Remove declaration of do_tlink. |
| * doc/extend.texi: Remove documentation of -frepo. |
| * doc/invoke.texi: Likewise. |
| * doc/sourcebuild.texi: Remove cleanup-repo-files. |
| * tlink.c: Remove. |
| |
| 2019-09-05 Jakub Jelinek <jakub@redhat.com> |
| Jim Wilson <jimw@sifive.com> |
| |
| PR target/91635 |
| * config/riscv/riscv.md (zero_extendsidi2, zero_extendhi<GPR:mode>2, |
| extend<SHORT:mode><SUPERQI:mode>2): Don't split if |
| paradoxical_subreg_p (operands[0]). |
| (*lshrsi3_zero_extend_3+1, *lshrsi3_zero_extend_3+2): Add clobber and |
| use as intermediate value. |
| |
| 2019-09-05 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/gcn/gcn.md (*movti_insn): Set delayeduse for global_store. |
| (sync_compare_and_swap<mode>_insn): Likewise. |
| |
| 2019-09-05 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR middle-end/91615 |
| * expr.c (expand_expr_real_1): Handle misaligned TARGET_MEM_REF |
| without movmisalign optab. |
| |
| 2019-09-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/91001 |
| PR middle-end/91105 |
| PR middle-end/91106 |
| * calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR |
| types, use type of their first field instead of type of |
| args[i].tree_value. |
| |
| 2019-09-05 Richard Biener <rguenther@suse.de> |
| |
| PR rtl-optimization/91656 |
| * postreload-gcse.c (record_last_mem_set_info): Revert addition |
| of early out. |
| |
| 2019-09-05 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/90501 |
| * tree-inline.c (declare_return_variable): Mark the return |
| slot as addressable after building an address of it. |
| |
| 2019-09-05 Arnaud Charlet <charlet@adacore.com> |
| |
| * doc/install.texi: Update and clarify requirements to build GNAT. |
| |
| 2019-09-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR middle-end/91577 |
| * cfgexpand.c (discover_nonconstant_array_refs): Force the source |
| of an IFN_LOAD_LANES call and the destination of an IFN_STORE_LANES |
| call to be in memory. |
| (pass_expand::execute): Call discover_nonconstant_array_refs before |
| setting currently_expanding_to_rtl. |
| |
| 2019-09-04 Caroline Tice <cmtice@google.com> |
| |
| * opts.c (finish_options): Disallow -fvtable-verify and -flto to be |
| specified together. |
| |
| 2019-09-04 Marek Polacek <polacek@redhat.com> |
| |
| * doc/invoke.texi: Remove -fdeduce-init-list documentation. |
| |
| 2019-09-04 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/32413 |
| * config/i386/i386.c (inline_secondary_memory_needed): Return true |
| for QI and HImode moves between SSE and general registers. |
| |
| 2019-09-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR c/78736 |
| * doc/invoke.texi: Document -Wenum-conversion. |
| |
| 2019-09-04 Richard Biener <rguenther@suse.de> |
| |
| PR rtl-optimization/36262 |
| * postreload-gcse.c: Include intl.h and gcse.h. |
| (insert_expr_in_table): Insert at the head of cur_expr->avail_occr |
| to avoid linear list walk. |
| (record_last_mem_set_info): Gate off if not computing transparentness. |
| (get_bb_avail_insn): If transparentness isn't computed give up |
| early. |
| (gcse_after_reload_main): Skip compute_transp and extended PRE |
| if gcse_or_cprop_is_too_expensive says so. |
| |
| 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config/msp430/msp430.c (msp430_init_sections): Remove handling of the |
| noinit section. |
| (msp430_select_section): Handle decls with the "noinit" attribute with |
| default_elf_select_section. |
| Handle SECCAT_RODATA_MERGE_* section types with |
| default_elf_select_section. |
| Add comments about handling of unsupported section types. |
| (msp430_section_type_flags): Remove handling of the noinit section. |
| |
| 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config/msp430/msp430.c (msp430_attr): Remove warnings about |
| conflicting msp430-specific attributes. |
| (msp430_section_attr): Likewise. |
| Add warnings about conflicts with generic "noinit" and "section" |
| attributes. |
| Fix grammar in -mlarge error message. |
| (msp430_data_attr): Rename to msp430_persist_attr. |
| Add warnings about conflicts with generic "noinit" and "section" |
| attributes. |
| Add warning for when variable is not initialized. |
| Chain conditionals which prevent the attribute being added. |
| (ATTR_EXCL): New helper. |
| (attr_reent_exclusions): New exclusion table. |
| (attr_naked_exclusions): Likewise. |
| (attr_crit_exclusions): Likewise. |
| (attr_lower_exclusions): Likewise. |
| (attr_upper_exclusions): Likewise. |
| (attr_either_exclusions): Likewise. |
| (attr_persist_exclusions): Likewise. |
| (msp430_attribute_table): Update with exclusion rules. |
| (msp430_output_aligned_decl_common): Don't output common symbol if decl |
| has a section. |
| |
| 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config/msp430/msp430.c (TARGET_HANDLE_GENERIC_ATTRIBUTE): Define. |
| (msp430_handle_generic_attribute): New function. |
| * doc/tm.texi: Regenerate. |
| * doc/tm.texi.in: Add TARGET_HANDLE_GENERIC_ATTRIBUTE. |
| * hooks.c (hook_tree_treeptr_tree_tree_int_boolptr_null): New. |
| * hooks.h (hook_tree_treeptr_tree_tree_int_boolptr_null): New. |
| * target.def: Define new hook TARGET_HANDLE_GENERIC_ATTRIBUTE. |
| |
| 2019-09-03 Kamlesh Kumar <kamleshbhalui@gmail.com> |
| |
| PR tree-optimization/91504 |
| * match.pd: Add ((~a & b) ^a) --> (a | b). |
| |
| 2019-09-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/91604 |
| * config/i386/i386-expand.c (split_double_mode): If there is more than |
| one MEM operand and they are rtx_equal_p, reuse lo_half/hi_half from |
| already split matching MEM operand instead of calling adjust_address |
| again. |
| |
| 2019-09-03 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| * config.gcc: Obsolete spu target. Remove references to spu. |
| * configure.ac: Remove references to spu. |
| * configure: Regenerate. |
| * config/spu/: Remove directory. |
| * common/config/spu/: Remove directory. |
| |
| * doc/extend.texi: Remove references to spu. |
| * doc/invoke.texi: Likewise. |
| * doc/md.texi: Likewise. |
| * doc/sourcebuild.texi: Likewise. |
| |
| 2019-09-03 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR middle-end/91603 |
| PR middle-end/91612 |
| PR middle-end/91613 |
| * expr.c (expand_expr_real_1): Handle unaligned decl_rtl |
| and SSA_NAME referring to CONSTANT_P correctly. |
| |
| 2019-09-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.h (vn_nary_op_lookup): Remove. |
| (vn_nary_op_insert): Likewise. |
| * tree-ssa-sccvn.c (init_vn_nary_op_from_op): Remove. |
| (vn_nary_op_lookup): Likewise. |
| (vn_nary_op_insert): Likewise. |
| |
| 2019-09-03 Ilya Leoshkevich <iii@linux.ibm.com> |
| |
| * config/s390/s390.c (s390_canonicalize_comparison): Use XEXP |
| (*op0, 1) instead of XEXP (*op1, 0). |
| |
| 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define. |
| (aarch64_fjcvtzs): New define_insn. |
| * config/aarch64/aarch64.h (TARGET_JSCVT): Define. |
| * config/aarch64/aarch64-builtins.c (aarch64_builtins): |
| Add AARCH64_JSCVT. |
| (aarch64_init_builtins): Initialize __builtin_aarch64_jcvtzs. |
| (aarch64_expand_builtin): Handle AARCH64_JSCVT. |
| * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define |
| __ARM_FEATURE_JCVT where appropriate. |
| * config/aarch64/arm_acle.h (__jcvt): Define. |
| |
| 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_FRINT32Z, |
| UNSPEC_FRINT32X, UNSPEC_FRINT64Z, UNSPEC_FRINT64X. |
| (aarch64_<frintnzs_op><mode>): New define_insn. |
| * config/aarch64/aarch64.h (TARGET_FRINT): Define. |
| * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define |
| __ARM_FEATURE_FRINT when appropriate. |
| * config/aarch64/aarch64-simd-builtins.def: Add builtins for frint32z, |
| frint32x, frint64z, frint64x. |
| * config/aarch64/arm_acle.h (__rint32zf, __rint32z, __rint64zf, |
| __rint64z, __rint32xf, __rint32x, __rint64xf, __rint64x): Define. |
| * config/aarch64/arm_neon.h (vrnd32z_f32, vrnd32zq_f32, vrnd32z_f64, |
| vrnd32zq_f64, vrnd32x_f32, vrnd32xq_f32, vrnd32x_f64, vrnd32xq_f64, |
| vrnd64z_f32, vrnd64zq_f32, vrnd64z_f64, vrnd64zq_f64, vrnd64x_f32, |
| vrnd64xq_f32, vrnd64x_f64, vrnd64xq_f64): Define. |
| * config/aarch64/iterators.md (VSFDF): Define. |
| (FRINTNZX): Likewise. |
| (frintnzs_op): Likewise. |
| |
| 2019-09-03 Dennis Zhang <dennis.zhang@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (AARCH64_CORE): New entries |
| for Cortex-A77, Cortex-A76AE, Cortex-A65, Cortex-A65AE, and |
| Cortex-A34. |
| * config/aarch64/aarch64-tune.md: Regenerated. |
| * doc/invoke.texi: Document the new processors. |
| |
| 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-option-extensions.def (sb): Add feature |
| string. |
| (ssbs): Likewise. |
| (sve2): Likewise. |
| (sve2-sm4): Likewise. |
| (sveaes): Likewise. |
| (svesha3): Likewise. |
| (svebitperm): Likewise. |
| |
| 2019-09-03 Jakub Jelinek <jakub@redhat.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91597 |
| * tree-vrp.c (extract_range_from_binary_expr): Remove unsafe |
| BIT_AND_EXPR optimization for pointers, even if both operand |
| ranges don't include NULL, the result can be NULL. |
| |
| 2019-09-02 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR middle-end/91605 |
| * expr.c (addr_expr_of_non_mem_decl_p_1): Refactor into... |
| (non_mem_decl_p): ...this. |
| (mem_ref_refers_to_non_mem_p): Handle DECL_P as well as MEM_REF. |
| (expand_assignment): Call mem_ref_referes_to_non_mem_p |
| unconditionally as before. |
| |
| 2019-09-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/91323 |
| * doc/generic.texi (LTGT_EXPR): Merge with other comparison operators. |
| * rtl.def (LTGT): Likewise. Add note about floating-point exceptions. |
| * tree.def (LTGT_EXPR): Likewise. |
| * config/sparc/sparc.c (select_cc_mode): Return CCFPEmode for LTGT. |
| |
| 2019-09-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR go/91617 |
| * fold-const.c (range_check_type): For enumeral and boolean |
| type, pass 1 to type_for_size langhook instead of |
| TYPE_UNSIGNED (etype). Return unsigned_type_for result whenever |
| etype isn't TYPE_UNSIGNED INTEGER_TYPE. |
| (build_range_check): Don't call unsigned_type_for for pointer types. |
| * match.pd (X / C1 op C2): Don't call unsigned_type_for on |
| range_check_type result. |
| |
| 2019-09-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gimple-ssa-strength-reduction.c (valid_mem_ref_cand_p): New function. |
| (replace_ref): Do not replace a chain of only two candidates which are |
| valid memory references. |
| |
| 2019-09-02 Martin Liska <mliska@suse.cz> |
| |
| * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): |
| Bail out when we'll end up with the same number of clusters as |
| at the beginning. |
| (bit_test_cluster::find_bit_tests): Likewise for bit tests. |
| (jump_table_cluster::can_be_handled): Remove the guard |
| as it's already handled in ::is_enabled. Allocate output |
| after early bail out. |
| |
| 2019-09-02 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/91601 |
| * gcov.c (path_contains_zero_cycle_arc): Rename to ... |
| (path_contains_zero_or_negative_cycle_arc): ... this and handle |
| also negative edges. |
| (circuit): Handle also negative edges as they can happen |
| in some situations. |
| |
| 2019-09-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/91472 |
| * config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true |
| during LRA/reload in PIC mode if the PIC register hasn't been used yet. |
| (sparc_pic_register_p): Test reload_in_progress for consistency's sake. |
| |
| 2019-09-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/91623 |
| * optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only |
| EQ_EXPR/NE_EXPR is supported, verify that op0 only contains |
| zeros or negative elements and use NE_EXPR instead of LT_EXPR against |
| zero vector. |
| |
| PR lto/91572 |
| * tree.c (find_decls_types_in_node): Also walk TREE_PURPOSE of |
| GIMPLE_ASM TREE_LIST operands. |
| |
| 2019-08-31 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/generic.texi (Unary and Binary Expressions): Mark up |
| an instance of TYPE_MIN. |
| |
| 2019-08-31 Stafford Horne <shorne@gmail.com> |
| |
| * config/or1k/constraints.md (t): New constraint. |
| * config/or1k/or1k.h (GOT_REGS): New register class. |
| * config/or1k/or1k.md (set_got_tmp, set_got): Use t contraint. |
| |
| 2019-08-30 Jim Wilson <jimw@sifive.com> |
| |
| * config/riscv/riscv.c (riscv_option_override): If -msave-restore |
| and -fpic and -mplt then disable -msave-restore and warn. |
| |
| 2019-08-30 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/91599 |
| * tree-ssa-strlen.c (handle_store): Use a fallback location if |
| the statement doesn't have one. |
| * gimple-pretty-print.c (percent_G_format): Same. |
| |
| PR middle-end/91584 |
| * tree-vrp.c (vrp_prop::check_mem_ref): Normalize type domain bounds |
| before using them to validate MEM_REF offset. |
| |
| 2019-08-30 Marek Polacek <polacek@redhat.com> |
| |
| * doc/invoke.texi (-Wvolatile): Use @code for volatile. |
| |
| 2019-08-30 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| * config/arm/arm.md (unaligned_loaddi, |
| unaligned_storedi): New unspec insn patterns. |
| * config/arm/neon.md (unaligned_storev8qi): Likewise. |
| * config/arm/arm.c (gen_cpymem_ldrd_strd): Use unaligned_loaddi |
| and unaligned_storedi for 4-byte aligned memory. |
| (arm_block_set_aligned_vect): Use unaligned_storev8qi for |
| 4-byte aligned memory. |
| |
| 2019-08-30 Martin Jambor <mjambor@suse.cz> |
| |
| tree-optimization/91579 |
| * tree-tailcall.c (tailr_arg_needs_copy): New variable. |
| (find_tail_calls): Allocate tailr_arg_needs_copy and set its bits as |
| appropriate. |
| (arg_needs_copy_p): Removed. |
| (eliminate_tail_call): Test tailr_arg_needs_copy instead of calling |
| arg_needs_copy_p. |
| (tree_optimize_tail_calls_1): Likewise. Free tailr_arg_needs_copy. |
| |
| 2019-08-29 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-features.c |
| (general_scalar_chain::compute_convert_gain): |
| Correct cost for double-word shifts. |
| (general_scalar_to_vector_candidate_p): Reject count operands |
| greater or equal to mode bitsize. |
| |
| 2019-08-29 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (inline_secondary_memory_needed): Return true |
| for moves between SSE and non-general registers and between |
| mask and non-general registers. |
| (ix86_register_move_cost): Remove stalled comment. |
| |
| 2019-08-29 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386-features.c (general_scalar_chain::convert_insn): |
| Guard debug work with MAY_HAVE_DEBUG_BIND_INSNS. |
| |
| 2019-08-29 Richard Biener <rguenther@suse.de> |
| |
| PR bootstrap/91580 |
| * config/i386/i386-features.c (general_scalar_chain::convert_insn): |
| Do not emit scalar copies for debug-insns, instead replace |
| their uses with the reg copy used in the chain or reset them |
| if there is a reaching definition outside of the chain as well. |
| |
| 2019-08-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/91560 |
| * config/i386/i386-expand.c (expand_vec_perm_movs, |
| expand_vec_perm_blend, expand_vec_perm_vpermil, |
| expand_vec_perm_pshufb, expand_vec_perm_1, |
| expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr, |
| expand_vec_perm_interleave2, expand_vec_perm_vpermq_perm_1, |
| expand_vec_perm_vperm2f128, expand_vec_perm_interleave3, |
| expand_vec_perm_vperm2f128_vblend, expand_vec_perm_2vperm2f128_vshuf, |
| expand_vec_perm_even_odd, expand_vec_perm_broadcast): Adjust function |
| comments - replace ix86_expand_vec_perm_builtin_1 with |
| ix86_expand_vec_perm_const_1. |
| (expand_vec_perm2_vperm2f128_vblend): New function. |
| (ix86_expand_vec_perm_const_1): New forward declaration. Call |
| expand_vec_perm2_vperm2f128_vblend as last resort. |
| (canonicalize_perm): Formatting fix. |
| |
| PR tree-optimization/91351 |
| * tree-cfg.c (generate_range_test): Use range_check_type instead of |
| unsigned_type_for. |
| * tree-cfgcleanup.c (convert_single_case_switch): Punt if |
| range_check_type returns NULL. |
| * tree-switch-conversion.c (switch_conversion::build_one_array): |
| Use range_check_type instead of unsigned_type_for, don't perform |
| linear opt if it returns NULL. |
| (bit_test_cluster::find_bit_tests): Formatting fix. |
| (bit_test_cluster::emit): Use range_check_type instead of |
| unsigned_type_for. |
| (switch_decision_tree::try_switch_expansion): Punt if range_check_type |
| returns NULL. |
| |
| 2019-08-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91568 |
| * tree-vectorizer.h (_slp_tree::max_nunits): Add. |
| (vect_update_max_nunits): Add overload for poly_uint64. |
| * tree-vect-slp.c (vect_create_new_slp_node): Initialize it. |
| (vect_build_slp_tree): Record max_nunits into the subtree |
| and merge it upwards. |
| (vect_print_slp_tree): Print max_nunits. |
| |
| 2019-08-28 Marek Polacek <polacek@redhat.com> |
| |
| Implement P1152R4: Deprecating some uses of volatile. |
| PR c++/91361 |
| * doc/invoke.texi: Document -Wvolatile. |
| |
| 2019-08-28 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/91360 - Implement C++20 P1143R2: constinit. |
| * doc/invoke.texi: Document -Wc++20-compat. |
| |
| 2019-08-28 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/91457 |
| * builtins.c (component_size): New function. |
| (compute_objsize): Add argument. Handle ARRAY_REF and COMPONENT_REF. |
| * builtins.h (compute_objsize): Add argument. |
| * tree-ssa-strlen.c (handle_store): Handle no-warning bit. |
| * tree-vrp.c (vrp_prop::check_array_ref): Return warning result. |
| (vrp_prop::check_mem_ref): Same. |
| (vrp_prop::search_for_addr_array): Set no-warning bit. |
| (check_array_bounds): Same. |
| |
| 2019-08-28 Martin Sebor <msebor@redhat.com> |
| |
| PR driver/80545 |
| * opts-common.c (option_enabled): Correct checking for language |
| options. |
| |
| 2019-08-28 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_register_move_cost): Do not |
| limit the cost of moves to/from XMM register to minimum 8. |
| |
| 2019-08-28 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/91468 |
| * ipa-cp.c (merge_agg_lats_step): Removed redundant test, made a |
| checking assert a normal assert to test it really is redundant. |
| * ipa-prop.c (compute_complex_assign_jump_func): Removed |
| redundant test. |
| (update_jump_functions_after_inlining): Removed combining unary |
| arithmetic operations with an ancestor jump function. |
| (ipcp_modif_dom_walker::before_dom_children): Fix wrong use of rhs |
| instead of t. |
| |
| 2019-08-28 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386-features.c (convert_scalars_to_vector): Do not |
| add the MD problem. |
| |
| 2019-08-28 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| Richard Biener <rguenther@suse.de> |
| |
| * expr.c (expand_assignment): Handle misaligned DECLs. |
| (expand_expr_real_1): Handle FUNCTION_DECL as unaligned. |
| * function.c (assign_parm_adjust_stack_rtl): Check movmisalign optab |
| too. |
| (assign_parm_setup_stack): Allocate properly aligned stack slots. |
| * varasm.c (build_constant_desc): Align constants of misaligned types. |
| * config/arm/predicates.md (aligned_operand): New predicate. |
| * config/arm/arm.md (movdi, movsi, movhi, movhf, movsf, movdf): Use |
| aligned_operand to check restrictions on memory addresses. |
| * config/arm/neon.md (movti, mov<VSTRUCT>, mov<VH>): Likewise. |
| * config/arm/vec-common.md (mov<VALL>): Likewise. |
| |
| 2019-08-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR libgomp/91530 |
| * config/i386/sse.md (vec_shl_<mode>, vec_shr_<mode>): Use |
| V_128 iterator instead of VI_128. |
| |
| 2019-08-28 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/90970 |
| * builtins.c (check_access): Remove assignment to maxread |
| as it hasn't been used since when it was introduced in r255755. |
| |
| 2019-08-27 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/91567 |
| * gimple-ssa-sprintf.c (get_string_length): Handle more forms of lengths |
| of unknown strings. |
| * vr-values.c (vr_values::extract_range_basic): Set strlen upper bound |
| to PTRDIFF_MAX - 2. |
| |
| 2019-08-27 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-strlen.c (printf_strlen_execute): Initialize |
| the loop optimizer and SCEV before sizing ssa_ver_to_stridx. |
| |
| 2019-08-27 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/91528 |
| * config/i386/i386-features.c (convert_scalars_to_vector): |
| Update crtl->stack_realign_needed, crtl->stack_realign_tried and |
| crtl->stack_realign_processed. Update crtl->drap_reg by calling |
| targetm.calls.get_drap_rtx. If drap_rtx is non-null then |
| Update crtl->args.internal_arg_pointer and call fixup_tail_calls. |
| |
| 2019-08-27 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386-features.h |
| (general_scalar_chain::~general_scalar_chain): Add. |
| (general_scalar_chain::insns_conv): New bitmap. |
| (general_scalar_chain::n_sse_to_integer): New. |
| (general_scalar_chain::n_integer_to_sse): Likewise. |
| (general_scalar_chain::make_vector_copies): Adjust signature. |
| * config/i386/i386-features.c |
| (general_scalar_chain::general_scalar_chain): Outline, |
| initialize new members. |
| (general_scalar_chain::~general_scalar_chain): New. |
| (general_scalar_chain::mark_dual_mode_def): Record insns |
| we need to insert conversions at and count them. |
| (general_scalar_chain::compute_convert_gain): Account |
| for conversion instructions at chain boundary. |
| (general_scalar_chain::make_vector_copies): Generate a single |
| copy for a def by a specific insn. |
| (general_scalar_chain::convert_registers): First populate |
| defs_map, then make copies at out-of chain insns. |
| |
| 2019-08-27 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.md (stack_protect_set_insn): Add security-related |
| comment. |
| * config/aarch64/aarch64.md (stack_protect_set_<mode>): Likewise. |
| |
| 2019-08-27 Martin Liska <mliska@suse.cz> |
| |
| * cgraph.c (cgraph_node::remove): Remove dead assignment before |
| loop. |
| * config/i386/i386-features.c (scalar_chain::emit_conversion_insns): |
| Enclose in anonymous namespace. |
| * config/i386/x86-tune-costs.h (struct processor_costs): Wrap |
| hard_register initialization in braces. |
| * tree-vrp.h (value_range_base::supports_type_p): Return false |
| for function with boolean return type. |
| |
| 2019-08-26 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (emit_i387_cw_initialization) |
| <case I387_CW_ROUNDEVEN>: Fix masking operand value. |
| |
| 2019-08-26 Martin Sebor <msebor@redhat.com> |
| |
| PR c++/83431 |
| * gimple-ssa-sprintf.c (pass_data_sprintf_length): Remove object. |
| (sprintf_dom_walker): Remove class. |
| (get_int_range): Make argument const. |
| (directive::fmtfunc, directive::set_precision): Same. |
| (format_none): Same. |
| (build_intmax_type_nodes): Same. |
| (adjust_range_for_overflow): Same. |
| (format_floating): Same. |
| (format_character): Same. |
| (format_string): Same. |
| (format_plain): Same. |
| (get_int_range): Cast away constness. |
| (format_integer): Same. |
| (get_string_length): Call get_range_strlen_dynamic. Handle |
| null lendata.maxbound. |
| (should_warn_p): Adjust argument scope qualifier. |
| (maybe_warn): Same. |
| (format_directive): Same. |
| (parse_directive): Same. |
| (is_call_safe): Same. |
| (try_substitute_return_value): Same. |
| (sprintf_dom_walker::handle_printf_call): Rename... |
| (handle_printf_call): ...to this. Initialize target to host charmap |
| here instead of in pass_sprintf_length::execute. |
| (struct call_info): Make global. |
| (sprintf_dom_walker::compute_format_length): Make global. |
| (sprintf_dom_walker::handle_gimple_call): Same. |
| * passes.def (pass_sprintf_length): Replace with pass_strlen. |
| * print-rtl.c (print_pattern): Reduce the number of spaces to |
| avoid -Wformat-truncation. |
| * tree-pass.h (make_pass_warn_printf): New function. |
| * tree-ssa-strlen.c (strlen_optimize): New variable. |
| (get_string_length): Add comments. |
| (get_range_strlen_dynamic): New function. |
| (check_and_optimize_call): New function. |
| (handle_integral_assign): New function. |
| (strlen_check_and_optimize_stmt): Factor code out into |
| strlen_check_and_optimize_call and handle_integral_assign. |
| (strlen_dom_walker::evrp): New member. |
| (strlen_dom_walker::before_dom_children): Use evrp member. |
| (strlen_dom_walker::after_dom_children): Use evrp member. |
| (printf_strlen_execute): New function. |
| (pass_strlen::gate): Update to handle printf calls. |
| (dump_strlen_info): New function. |
| (pass_data_warn_printf): New variable. |
| (pass_warn_printf): New class. |
| * tree-ssa-strlen.h (get_range_strlen_dynamic): Declare. |
| (handle_printf_call): Same. |
| * tree-vrp.c (value_range_base::type): Adjust assertion. |
| * vr-values.c (vr_values::update_value_range): Use type of the first |
| argument rather than the second. |
| |
| 2019-08-26 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386-features.c (general_remove_non_convertible_regs): |
| Remove. |
| (convert_scalars_to_vector): Do not call it. |
| |
| 2019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| * builtins.c (mathfn_built_in_2): Change CASE_MATHFN to |
| CASE_MATHFN_FLOATN for roundeven. |
| * config/i386/i386.c (ix86_i387_mode_needed): Add case |
| I387_ROUNDEVEN. |
| (ix86_mode_needed): Likewise. |
| (ix86_mode_after): Likewise. |
| (ix86_mode_entry): Likewise. |
| (ix86_mode_exit): Likewise. |
| (ix86_emit_mode_set): Likewise. |
| (emit_i387_cw_initialization): Add case I387_CW_ROUNDEVEN. |
| * config/i386/i386.h (ix86_stack_slot): Add SLOT_CW_ROUNDEVEN. |
| (ix86_entity): Add I387_ROUNDEVEN. |
| (NUM_MODES_FOR_MODE_SWITCHING): Add I387_CW_ANY. |
| * config/i386/i386.md: Define UNSPEC_FRNDINT_ROUNDEVEN. |
| (define_int_iterator): Likewise. |
| (define_int_attr): Likewise for rounding_insn, rounding and ROUNDING. |
| (define_constant): Define ROUND_ROUNDEVEN mode. |
| (define_attr): Add roundeven mode for i387_cw. |
| (<rouding_insn><mode>2): Add condition for ROUND_ROUNDEVEN. |
| * internal-fn.def (ROUNDEVEN): New builtin function. |
| * optabs.def (roundeven_optab): New optab. |
| |
| 2019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com> |
| |
| * builtins.c (mathfn_built_in_2): Added CASE_MATHFN_FLOATN |
| for ROUNDEVEN. |
| * builtins.def: Added function definitions for roundeven function |
| variants. |
| * fold-const-call.c (fold_const_call_ss): Added case for roundeven |
| function call. Adjust condition for floor, ceil, trunc and round. |
| * fold-const.c (negate_mathfn_p): Added case for roundeven function. |
| (tree_call_nonnegative_warnv_p): Added case for roundeven function. |
| (integer_valued_real_call_p): Added case for roundeven function. |
| * real.c (is_even): New function. Returns true if real number is even, |
| otherwise returns false. |
| (is_halfway_below): New function. Returns true if real number is |
| halfway between two integers, else return false. |
| (real_roundeven): New function. Round real number to nearest integer, |
| rounding halfway cases towards even. |
| * real.h (real_value): Added descriptive comments. Added function |
| declaration for roundeven function. |
| * doc/extend.texi (Other Builtins): List roundeven variants among |
| functions which can be handled as builtins. |
| |
| 2019-08-26 Richard Biener <rguenther@suse.de> |
| |
| PR target/91522 |
| PR target/91527 |
| * config/i386/i386-features.h (general_scalar_chain::defs_map): |
| New member. |
| (general_scalar_chain::replace_with_subreg): Remove. |
| (general_scalar_chain::replace_with_subreg_in_insn): Likewise. |
| (general_scalar_chain::convert_reg): Adjust signature. |
| * config/i386/i386-features.c (scalar_chain::add_insn): Do not |
| iterate over all defs of a reg. |
| (general_scalar_chain::replace_with_subreg): Remove. |
| (general_scalar_chain::replace_with_subreg_in_insn): Likewise. |
| (general_scalar_chain::make_vector_copies): Populate defs_map, |
| place copy only after defs that are used as vectors in the chain. |
| (general_scalar_chain::convert_reg): Emit a copy for a specific |
| def in a specific instruction. |
| (general_scalar_chain::convert_op): All reg uses are converted here. |
| (general_scalar_chain::convert_insn): Emit copies for scalar |
| uses of defs here. Replace uses with the copies we created. |
| Replace and convert the def. Adjust REG_DEAD notes, remove |
| REG_EQUIV/EQUAL notes. |
| (general_scalar_chain::convert_registers): Only handle copies |
| into the chain here. |
| |
| 2019-08-26 Robin Dapp <rdapp@linux.ibm.com> |
| |
| * match.pd: Add (T)(A) + CST -> (T)(A + CST). |
| |
| 2019-08-26 Robin Dapp <rdapp@linux.ibm.com> |
| |
| * gimple-loop-versioning.cc (loop_versioning::record_address_fragment): |
| Add nop_convert case. |
| * tree-ssa-propagate.c (substitute_and_fold_dom_walker::before_dom_children): |
| Fold all statements if requested. |
| * tree-ssa-propagate.h (class substitute_and_fold_engine): |
| Allow to fold all statements. |
| * tree-vrp.c (class vrp_folder): |
| Let substitute_and_fold_engine fold all statements. |
| |
| 2019-08-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91526 |
| * passes.def: Note that after late FRE we do TODO_update_address_taken. |
| * tree-ssa-sccvn.c (pass_fre::execute): In late mode schedule |
| TODO_update_address_taken. |
| |
| 2019-08-26 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * config/i386/gmm_malloc.h: Only use <errno.h> and errno if |
| __STDC_HOSTED__. |
| |
| 2019-08-23 Mihailo Stojanovic <mistojanovic@wavecomp.com> |
| |
| * config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI |
| machine mode for unspec_volatile operand. |
| |
| 2019-08-23 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * gcc/doc/invoke.texi (mneon-for-64bits): Deprecate option. |
| * gcc/config/arm/arm.opt (mneon-for-64bits): Deprecate option. |
| * gcc/config/arm/arm.h (TARGET_PREFER_NEON_64BITS): Remove. |
| (prefer_neon_for_64bits): Remove. |
| * gcc/config/arm/arm.c (prefer_neon_for_64bits): Remove. |
| (tune_params): Remove PREF_NEON_64_FALSE uses. |
| (arm_option_override): Remove prefer_neon selection code. |
| (arm_print_tune_info): Remove prefer_neon_for_64bits. |
| * gcc/config/arm/arm-protos.h (tune_params): Remove |
| prefer_neon_for_64bits. |
| (prefer_neon_for_64bits): Remove. |
| |
| 2019-08-23 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR pch/61250 |
| * ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure |
| and issue any diagnostics needed before collecting the pre-PCH |
| state. |
| |
| 2019-08-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/91283 |
| * common.opt (fexcess-precision=): Add Optimization flag. Use |
| flag_excess_precision variable instead of |
| flag_excess_precision_cmdline. |
| * flags.h (class target_flag_state): Remove x_flag_excess_precision |
| member. |
| (flag_excess_precision): Don't define. |
| * langhooks.c (lhd_post_options): Set flag_excess_precision instead of |
| flag_excess_precision_cmdline. Remove comment. |
| * opts.c (set_fast_math_flags): Use frontend_set_flag_excess_precision |
| and x_flag_excess_precision instead of |
| frontend_set_flag_excess_precision_cmdline and |
| x_flag_excess_precision_cmdline. |
| (fast_math_flags_set_p): Use x_flag_excess_precision instead of |
| x_flag_excess_precision_cmdline. |
| * toplev.c (init_excess_precision): Remove. |
| (lang_dependent_init_target): Don't call it. |
| |
| 2019-08-23 Martin Liska <mliska@suse.cz> |
| |
| * lto-wrapper.c (run_gcc): When setting jobserver |
| set also parallel to 1. This was done so before r273908. |
| |
| 2019-08-23 Dennis Zhang <dennis.zhang@arm.com> |
| |
| * config/arm/arm-cpus.in (cortex-m35p): New entry. |
| (cortex-a76ae): Likewise. |
| (cortex-a77): Likewise |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm-tune.md: Likewise. |
| * doc/invoke.texi (ARM Options): Document cortex-m35p, cortx-a76ae, |
| cortex-a77 CPU options. |
| |
| 2019-08-23 Martin Liska <mliska@suse.cz> |
| |
| * profile.c (instrument_values): Do not set |
| 0 as last argument. |
| * tree-profile.c (gimple_gen_interval_profiler): Remove |
| last argument. |
| (gimple_gen_pow2_profiler): Likewise. |
| (gimple_gen_topn_values_profiler): Likewise. |
| (gimple_gen_ic_profiler): Likewise. |
| (gimple_gen_time_profiler): Likewise. |
| (gimple_gen_average_profiler): Likewise. |
| (gimple_gen_ior_profiler): Likewise. |
| * value-prof.c (dump_histogram_value): Use default |
| in switch statement instead of HIST_TYPE_MAX. |
| (stream_in_histogram_value): Likewise. |
| (gimple_duplicate_stmt_histograms): Do not |
| use NULL for implicitly set arguments. |
| (gimple_divmod_values_to_profile): Do not use |
| reserve+quick_push. |
| (gimple_indirect_call_to_profile): Likewise. |
| (gimple_find_values_to_profile): Use implicit |
| function call arguments. |
| * value-prof.h (gimple_alloc_histogram_value): |
| Set default values. |
| (gimple_gen_interval_profiler): Remove last argument. |
| (gimple_gen_pow2_profiler): Likewise. |
| (gimple_gen_topn_values_profiler): Likewise. |
| (gimple_gen_ic_profiler): Likewise. |
| (gimple_gen_time_profiler): Likewise. |
| (gimple_gen_average_profiler): Likewise. |
| (gimple_gen_ior_profiler): Likewise. |
| |
| 2019-08-22 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/91490 |
| * builtins.c (c_strlen): Rename argument and introduce new local. |
| Set no-warning bit on original argument. |
| * expr.c (string_constant): Pass argument type to fold_ctor_reference. |
| Fold empty and zero constructors into empty strings. |
| * gimple-fold.c (fold_nonarray_ctor_reference): Return a STRING_CST |
| for missing initializers. |
| * tree.c (build_string_literal): Handle optional argument. |
| * tree.h (build_string_literal): Add defaulted argument. |
| * gimple-ssa-warn-restrict.c (maybe_diag_access_bounds): Check |
| no-warning bit on original expression. |
| |
| 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/91481 |
| * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, |
| and UNSPEC_DARN_RAW. |
| (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and |
| UNSPECV_DARN_RAW. |
| (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32. |
| (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW. |
| (darn): Use an unspec_volatile, and UNSPECV_DARN. |
| |
| 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, |
| UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to... |
| * config/rs6000/rs6000.md (unspec): ... here. |
| * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb, |
| *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal, |
| cmpeqb, *cmpeqb_internal): Delete, move to... |
| * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb, |
| *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal, |
| cmpeqb, *cmpeqb_internal): ... here. |
| |
| 2019-08-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32 |
| intrinsics if __ARM_FP. |
| Use __ARM_FEATURE_CRC32 ifdef guard. |
| |
| 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/arm/arm.md (neon_for_64bits): Remove. |
| (avoid_neon_for_64bits): Remove. |
| (arm_adddi3): Always split early. |
| (arm_subdi3): Always split early. |
| (negdi2): Remove Neon expansion. |
| (split zero_extend): Split before reload. |
| (split sign_extend): Split before reload. |
| |
| 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/arm/iterators.md (qhs_extenddi_cstr): Update. |
| (qhs_extenddi_cstr): Likewise. |
| * config/arm/arm.md (ashldi3): Always expand early. |
| (ashlsi3): Likewise. |
| (ashrsi3): Likewise. |
| (zero_extend<mode>di2): Remove Neon variants. |
| (extend<mode>di2): Likewise. |
| * config/arm/neon.md (ashldi3_neon_noclobber): Remove. |
| (signed_shift_di3_neon): Likewise. |
| (unsigned_shift_di3_neon): Likewise. |
| (ashrdi3_neon_imm_noclobber): Likewise. |
| (lshrdi3_neon_imm_noclobber): Likewise. |
| (<shift>di3_neon): Likewise. |
| (split extend): Remove DI extend split patterns. |
| |
| 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/arm/arm.md (split and/eor/ior): Remove Neon check. |
| (split not): Add DImode not splitter. |
| (anddi3): Remove pattern. |
| (anddi3_insn): Likewise. |
| (anddi_zesidi_di): Likewise. |
| (anddi_sesdi_di): Likewise. |
| (anddi_notdi_di): Likewise. |
| (anddi_notzesidi_di): Likewise. |
| (anddi_notsesidi_di): Likewise. |
| (iordi3): Likewise. |
| (iordi3_insn): Likewise. |
| (iordi_zesidi_di): Likewise. |
| (iordi_sesidi_di): Likewise. |
| (xordi3): Likewise. |
| (xordi3_insn): Likewise. |
| (xordi_sesidi_di): Likewise. |
| (xordi_zesidi_di): Likewise. |
| (one_cmpldi2): Likewise. |
| (one_cmpldi2_insn): Likewise. |
| * config/arm/constraints.md: Remove De, Df, Dg constraints. |
| * config/arm/iwmmxt.md (iwmmxt_iordi3): Remove general register |
| alternative. |
| (iwmmxt_xordi3): Likewise. |
| (iwmmxt_anddi3): Likewise. |
| * config/arm/neon.md (orndi3_neon): Remove pattern. |
| (anddi_notdi_di): Likewise. |
| * config/arm/predicates.md (arm_anddi_operand_neon): Remove. |
| (arm_iordi_operand_neon): Likewise. |
| (arm_xordi_operand_neon): Likewise. |
| * config/arm/thumb2.md(iordi_notdi_di): Remove pattern. |
| (iordi_notzesidi_di): Likewise. |
| (iordi_notdi_zesidi): Likewise. |
| (iordi_notsesidi_di): Likewise. |
| |
| 2019-08-22 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.md (iorsi3_compare0): Add alternative for 16-bit thumb |
| insn. |
| (iorsi3_compare0_scratch): Likewise. |
| |
| 2019-08-22 Sylvia Taylor <sylvia.taylor@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def: |
| (ld1x4): New. |
| (st1x4): Likewise. |
| * config/aarch64/aarch64-simd.md: |
| (aarch64_ld1x4<VALLDIF:mode>): New pattern. |
| (aarch64_st1x4<VALLDIF:mode>): Likewise. |
| (aarch64_ld1_x4_<mode>): Likewise. |
| (aarch64_st1_x4_<mode>): Likewise. |
| * config/aarch64/arm_neon.h: |
| (vld1_s8_x4): New function. |
| (vld1q_s8_x4): Likewise. |
| (vld1_s16_x4): Likewise. |
| (vld1q_s16_x4): Likewise. |
| (vld1_s32_x4): Likewise. |
| (vld1q_s32_x4): Likewise. |
| (vld1_u8_x4): Likewise. |
| (vld1q_u8_x4): Likewise. |
| (vld1_u16_x4): Likewise. |
| (vld1q_u16_x4): Likewise. |
| (vld1_u32_x4): Likewise. |
| (vld1q_u32_x4): Likewise. |
| (vld1_f16_x4): Likewise. |
| (vld1q_f16_x4): Likewise. |
| (vld1_f32_x4): Likewise. |
| (vld1q_f32_x4): Likewise. |
| (vld1_p8_x4): Likewise. |
| (vld1q_p8_x4): Likewise. |
| (vld1_p16_x4): Likewise. |
| (vld1q_p16_x4): Likewise. |
| (vld1_s64_x4): Likewise. |
| (vld1_u64_x4): Likewise. |
| (vld1_p64_x4): Likewise. |
| (vld1q_s64_x4): Likewise. |
| (vld1q_u64_x4): Likewise. |
| (vld1q_p64_x4): Likewise. |
| (vld1_f64_x4): Likewise. |
| (vld1q_f64_x4): Likewise. |
| (vst1_s8_x4): Likewise. |
| (vst1q_s8_x4): Likewise. |
| (vst1_s16_x4): Likewise. |
| (vst1q_s16_x4): Likewise. |
| (vst1_s32_x4): Likewise. |
| (vst1q_s32_x4): Likewise. |
| (vst1_u8_x4): Likewise. |
| (vst1q_u8_x4): Likewise. |
| (vst1_u16_x4): Likewise. |
| (vst1q_u16_x4): Likewise. |
| (vst1_u32_x4): Likewise. |
| (vst1q_u32_x4): Likewise. |
| (vst1_f16_x4): Likewise. |
| (vst1q_f16_x4): Likewise. |
| (vst1_f32_x4): Likewise. |
| (vst1q_f32_x4): Likewise. |
| (vst1_p8_x4): Likewise. |
| (vst1q_p8_x4): Likewise. |
| (vst1_p16_x4): Likewise. |
| (vst1q_p16_x4): Likewise. |
| (vst1_s64_x4): Likewise. |
| (vst1_u64_x4): Likewise. |
| (vst1_p64_x4): Likewise. |
| (vst1q_s64_x4): Likewise. |
| (vst1q_u64_x4): Likewise. |
| (vst1q_p64_x4): Likewise. |
| (vst1_f64_x4): Likewise. |
| (vst1q_f64_x4): Likewise. |
| |
| 2019-08-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| * config/aarch64/aarch64-sve.md (vcond_mask): Add "@". |
| |
| 2019-08-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/88839 |
| * config/aarch64/aarch64.c (aarch64_evpc_sel): New function. |
| (aarch64_expand_vec_perm_const_1): Call aarch64_evpc_sel. |
| |
| 2019-08-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR target/90724 |
| * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y |
| in reg if it fails aarch64_plus_operand predicate. |
| |
| 2019-08-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91482 |
| * tree-ssa-ccp.c (ccp_folder::fold_stmt): Remove useless |
| BUILT_IN_ASSUME_ALIGNED calls. |
| |
| 2019-08-21 Richard Biener <rguenther@suse.de> |
| |
| PR target/91498 |
| PR target/91503 |
| * config/i386/i386-features.c |
| (general_scalar_chain::make_vector_copies): Copy stack temporary |
| rtx when using it multiple times. |
| (general_scalar_chain::convert_reg): Likewise. |
| |
| 2019-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| * function.c (assign_parm_find_stack_rtl): Use known_eq instead of ==. |
| |
| 2019-08-20 Matthew Beliveau <mbelivea@redhat.com> |
| |
| * tree-ssa-dse.c (dse_optimize_redundant_stores): Improved check to |
| catch more redundant zero initialization cases. |
| (dse_dom_walker::dse_optimize_stmt): Likewise. |
| |
| 2019-08-20 Richard Biener <rguenther@suse.de> |
| |
| PR lto/91307 |
| * ipa.c (cgraph_build_static_cdtor_1): Use names not recognizable |
| by collect2 when targetm.have_ctors_dtors which avoids dragging |
| in temporary filenames from LTO input objects. |
| |
| 2019-08-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/37242 |
| * tree-ssa-sccvn.c (visit_nary_op): Also CSE (T)(a + b) |
| to (T)a + (T)b if we know that a + b does not overflow. |
| |
| 2019-08-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/91347 |
| * dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls |
| before reload if HARD_FRAME_POINTER_IS_ARG_POINTER. |
| |
| 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * calls.h (function_arg_info): Add a pass_by_reference field, |
| defaulting to false. |
| * calls.c (apply_pass_by_reference_rules): Set pass_by_reference |
| when applying pass-by-reference semantics. |
| (initialize_argument_information): Likewise. |
| (emit_library_call_value_1): Likewise. |
| * function.c (assign_parm_data_one): Remove passed_pointer field. |
| (assign_parm_find_data_types): Don't set it. |
| (assign_parm_find_stack_rtl, assign_parm_adjust_stack_rtl) |
| (assign_parm_setup_reg, assign_parms, gimplify_parameters): Use |
| arg.pass_by_reference instead of passed_pointer. |
| |
| 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * calls.c (emit_library_call_value_1): Merge arg and orig_arg |
| into a single function_arg_info, updating its fields when we |
| apply pass-by-reference and promotion semantics. Use the |
| function_arg_info to track the mode rather than keeping it in |
| a separate local variable. |
| (initialize_argument_information): Likewise. Base the final |
| arg_to_skip on this new function_arg_info rather than creating |
| a new one from scratch. |
| |
| 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * function.c (assign_parm_data_one): Replace passed_type, |
| promoted_mode and named_arg with a function_arg_info field. |
| (assign_parm_find_data_types): Remove local variables and |
| assign directly to "data". Make data->passed_mode shadow |
| data->arg.mode until promotion, then assign the promoted |
| mode to data->arg.mode. |
| (assign_parms_setup_varargs, assign_parm_find_entry_rtl) |
| (assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl) |
| (assign_parm_remove_parallels, assign_parm_setup_block_p) |
| (assign_parm_setup_block, assign_parm_setup_reg) |
| (assign_parm_setup_stack, assign_parms, gimplify_parameters): Use |
| arg.mode instead of promoted_mode, arg.type instead of passed_type |
| and arg.named instead of named_arg. Use data->arg for |
| function_arg_info structures that had the field values passed_type, |
| promoted_mode and named_arg. Base other function_arg_infos on |
| data->arg, changing the necessary properties. |
| |
| 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * calls.h (apply_pass_by_reference_rules): Declare. |
| * calls.c (apply_pass_by_reference_rules): New function. |
| * config/c6x/c6x.c (c6x_call_saved_register_used): Use it. |
| * config/rs6000/rs6000-call.c (rs6000_parm_needs_stack): Likewise. |
| * config/s390/s390.c (s390_call_saved_register_used): Likewise. |
| * function.c (assign_parm_find_data_types): Likewise. |
| * var-tracking.c (prepare_call_arguments): Likewise. |
| |
| 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * target.def (must_pass_in_stack): Take a function_arg_info instead |
| of a mode and a type. |
| * doc/tm.texi: Regenerate. |
| * calls.h (must_pass_in_stack_var_size): Take a function_arg_info |
| instead of a mode and a type. |
| (must_pass_in_stack_var_size_or_pad): Likewise. |
| * calls.c (must_pass_in_stack_var_size): Likewise. |
| (must_pass_in_stack_var_size_or_pad): Likewise. |
| (initialize_argument_information): Update call to |
| targetm.calls.must_pass_in_stack. |
| (must_pass_va_arg_on_stack): Likewise. |
| * function.c (assign_parm_find_entry_rtl): Likewise. |
| * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Likewise. |
| * config/alpha/alpha.c (alpha_function_arg): Likewise. |
| (alpha_function_arg_advance): Likewise. |
| * config/cr16/cr16.c (cr16_function_arg): Likewise. |
| (cr16_function_arg_advance): Likewise. |
| * config/cris/cris.c (cris_pass_by_reference): Likewise. |
| (cris_arg_partial_bytes): Likewise. |
| * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise. |
| * config/lm32/lm32.c (lm32_function_arg): Likewise. |
| * config/mcore/mcore.c (mcore_num_arg_regs): Likewise. |
| (mcore_function_arg, mcore_arg_partial_bytes): Likewise. |
| * config/mips/mips.c (mips_pass_by_reference): Likewise. |
| * config/mmix/mmix.c (mmix_function_arg_advance): Likewise. |
| (mmix_function_arg_1, mmix_pass_by_reference): Likewise. |
| * config/sh/sh.c (sh_pass_by_reference): Likewise. |
| * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise. |
| * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise. |
| * config/arm/arm.c (arm_must_pass_in_stack): Take a function_arg_info |
| instead of a mode and a type. |
| * config/fr30/fr30.c (fr30_must_pass_in_stack): Likewise. |
| (fr30_num_arg_regs): Likewise. |
| (fr30_setup_incoming_varargs): Update calls accordingly. |
| (fr30_arg_partial_bytes, fr30_function_arg): Likewise. |
| (fr30_function_arg_advance): Likewise. |
| * config/frv/frv.c (frv_must_pass_in_stack): Take a function_arg_info |
| instead of a mode and a type. |
| * config/gcn/gcn.c (num_arg_regs): Likewise. |
| (gcn_function_arg, gcn_function_arg_advance): Update calls to |
| num_arg_regs and targetm.calls.must_pass_in_stack. |
| (gcn_arg_partial_bytes): Likewise. |
| * config/i386/i386.c (ix86_must_pass_in_stack): Take a |
| function_arg_info instead of a mode and a type. |
| (classify_argument): Update call accordingly. |
| * config/nds32/nds32.c (nds32_must_pass_in_stack): Take a |
| function_arg_info instead of a mode and a type. |
| * config/rs6000/rs6000-internal.h (rs6000_must_pass_in_stack): |
| Likewise. |
| * config/rs6000/rs6000-call.c (rs6000_must_pass_in_stack): Likewise. |
| (rs6000_parm_needs_stack): Update call accordingly. |
| (setup_incoming_varargs): Likewise. |
| |
| 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * target.def (callee_copies): Take a function_arg_info instead |
| of a mode, type and named flag. |
| * doc/tm.texi: Regenerate. |
| * targhooks.h (hook_callee_copies_named): Take a function_arg_info |
| instead of a mode, type and named flag. |
| (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete. |
| (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise. |
| (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function. |
| * targhooks.c (hook_callee_copies_named): Take a function_arg_info |
| instead of a mode, type and named flag. |
| (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete. |
| (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise. |
| (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function. |
| * calls.h (reference_callee_copied): Take a function_arg_info |
| instead of a mode, type and named flag. |
| * calls.c (reference_callee_copied): Likewise. |
| (initialize_argument_information): Update call accordingly. |
| (emit_library_call_value_1): Likewise. |
| * function.c (gimplify_parameters): Likewise. |
| * config/aarch64/aarch64.c (TARGET_CALLEE_COPIES): Define to |
| hook_bool_CUMULATIVE_ARGS_arg_info_false instead of |
| hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false. |
| * config/c6x/c6x.c (c6x_callee_copies): Delete. |
| (TARGET_CALLEE_COPIES): Define to |
| hook_bool_CUMULATIVE_ARGS_arg_info_true instead. |
| * config/epiphany/epiphany.c (TARGET_CALLEE_COPIES): Define to |
| hook_bool_CUMULATIVE_ARGS_arg_info_true instead of |
| hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true. |
| * config/mips/mips.c (mips_callee_copies): Take a function_arg_info |
| instead of a mode, type and named flag. |
| * config/mmix/mmix.c (TARGET_CALLEE_COPIES): Define to |
| hook_bool_CUMULATIVE_ARGS_arg_info_true instead of |
| hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true. |
| * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): Likewise. |
| * config/msp430/msp430.c (msp430_callee_copies): Delete. |
| (TARGET_CALLEE_COPIES): Define to |
| hook_bool_CUMULATIVE_ARGS_arg_info_true instead. |
| * config/pa/pa.c (pa_callee_copies): Take a function_arg_info |
| instead of a mode, type and named flag. |
| * config/sh/sh.c (sh_callee_copies): Likewise. |
| * config/v850/v850.c (TARGET_CALLEE_COPIES): Define to |
| hook_bool_CUMULATIVE_ARGS_arg_info_true instead of |
| hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true. |
| |
| 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * target.def (function_arg_advance): Take a function_arg_info instead |
| of a mode, type and named flag. |
| * doc/tm.texi: Regenerate. |
| * targhooks.h (default_function_arg_advance): Take a function_arg_info |
| instead of a mode, type and named flag. |
| * targhooks.c (default_function_arg_advance): Likewise. |
| * calls.c (initialize_argument_information): Update call to |
| targetm.calls.function_arg_advance. |
| (emit_library_call_value_1): Likewise. |
| * dse.c (get_call_args): Likewise. |
| * expr.c (block_move_libcall_safe_for_call_parm): Likewise. |
| * function.c (assign_parms, gimplify_parameters): Likewise. |
| * var-tracking.c (prepare_call_arguments): Likewise. |
| * config/aarch64/aarch64.c (aarch64_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| (aarch64_setup_incoming_varargs): Update call accordingly. |
| * config/alpha/alpha.c (alpha_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| (alpha_setup_incoming_varargs): Update call accordingly. |
| * config/arc/arc.c (arc_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| (arc_setup_incoming_varargs): Update call accordingly. |
| * config/arm/arm.c (arm_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| (cmse_func_args_or_return_in_stack): Update call accordingly. |
| (arm_function_ok_for_sibcall): Likewise. |
| (cmse_nonsecure_call_clear_caller_saved): Likewise. |
| * config/avr/avr.c (avr_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/bfin/bfin.c (bfin_function_arg_advance): Likewise. |
| * config/c6x/c6x.c (c6x_function_arg_advance): Likewise. |
| (c6x_call_saved_register_used): Update call accordingly. |
| * config/cr16/cr16.c (cr16_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/cris/cris.c (cris_function_arg_advance): Likewise. |
| * config/csky/csky.c (csky_function_arg_advance): Likewise. |
| (csky_setup_incoming_varargs): Update call accordingly. |
| * config/epiphany/epiphany.c (epiphany_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/fr30/fr30.c (fr30_function_arg_advance): Likewise. |
| * config/frv/frv.c (frv_function_arg_advance): Likewise. |
| * config/ft32/ft32.c (ft32_function_arg_advance): Likewise. |
| * config/gcn/gcn.c (gcn_function_arg_advance): Likewise. |
| * config/h8300/h8300.c (h8300_function_arg_advance): Likewise. |
| * config/i386/i386.c (ix86_function_arg_advance): Likewise. |
| (ix86_setup_incoming_varargs): Update call accordingly. |
| * config/ia64/ia64.c (ia64_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| (ia64_setup_incoming_varargs): Update call accordingly. |
| * config/iq2000/iq2000.c (iq2000_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| (iq2000_expand_prologue): Update call accordingly. |
| * config/lm32/lm32.c (lm32_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/m32c/m32c.c (m32c_function_arg_advance): Likewise. |
| * config/m32r/m32r.c (m32r_function_arg_advance): Likewise. |
| * config/m68k/m68k.c (m68k_function_arg_advance): Likewise. |
| * config/mcore/mcore.c (mcore_function_arg_advance): Likewise. |
| * config/microblaze/microblaze.c (microblaze_function_arg_advance): |
| Likewise. |
| (microblaze_expand_prologue): Update call accordingly. |
| * config/mips/mips.c (mips_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| (mips_setup_incoming_varargs): Update call accordingly. |
| (mips_output_args_xfer): Likewise. |
| * config/mmix/mmix.c (mmix_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/mn10300/mn10300.c (mn10300_function_arg_advance): Likewise. |
| * config/moxie/moxie.c (moxie_function_arg_advance): Likewise. |
| * config/msp430/msp430.c (msp430_function_arg_advance): Likewise. |
| * config/nds32/nds32.c (nds32_function_arg_advance): Likewise. |
| * config/nios2/nios2.c (nios2_function_arg_advance): Likewise. |
| (nios2_setup_incoming_varargs): Update call accordingly. |
| * config/nvptx/nvptx.c (nvptx_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/or1k/or1k.c (or1k_function_arg_advance): Likewise. |
| * config/pa/pa.c (pa_function_arg_advance): Likewise. |
| * config/pdp11/pdp11.c (pdp11_function_arg_advance): Likewise. |
| * config/pru/pru.c (pru_function_arg_advance): Likewise. |
| * config/riscv/riscv.c (riscv_function_arg_advance): Likewise. |
| (riscv_setup_incoming_varargs): Update call accordingly. |
| * config/rl78/rl78.c (rl78_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/rs6000/rs6000-internal.h (rs6000_function_arg_advance): |
| Likewise. |
| * config/rs6000/rs6000-call.c (rs6000_function_arg_advance): Likewise. |
| (rs6000_parm_needs_stack): Update call accordingly. |
| * config/rx/rx.c (rx_function_arg_advance): Take a function_arg_info |
| instead of a mode, type and named flag. |
| * config/s390/s390.c (s390_function_arg_advance): Likewise. |
| (s390_call_saved_register_used): Update call accordingly. |
| * config/sh/sh.c (sh_function_arg_advance): Take a function_arg_info |
| instead of a mode, type and named flag. |
| (sh_output_mi_thunk): Update call accordingly. |
| * config/sparc/sparc.c (sparc_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/spu/spu.c (spu_function_arg_advance): Likewise. |
| (spu_setup_incoming_varargs): Update call accordingly. |
| * config/stormy16/stormy16.c (xstormy16_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/tilegx/tilegx.c (tilegx_function_arg_advance): Likewise. |
| (tilegx_setup_incoming_varargs): Update call accordingly. |
| * config/tilepro/tilepro.c (tilepro_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| (tilegx_setup_incoming_varargs): Update call accordingly. |
| * config/v850/v850.c (v850_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/vax/vax.c (vax_function_arg_advance): Likewise. |
| * config/visium/visium.c (visium_function_arg_advance): Likewise. |
| (visium_setup_incoming_varargs): Update call accordingly. |
| * config/xtensa/xtensa.c (xtensa_function_arg_advance): Take a |
| function_arg_info instead of a mode, type and named flag. |
| |
| 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * target.def (function_arg, function_incoming_arg): Take a |
| function_arg_info instead of a mode, tree and named flag. |
| * doc/tm.texi: Regenerate. |
| * targhooks.h (default_function_arg): Take a function_arg_info |
| instead of a mode, tree and named flag. |
| (default_function_incoming_arg): Likewise. |
| * targhooks.c (default_function_arg): Likewise. |
| (default_function_incoming_arg): Likewise. |
| * calls.h (function_arg_info::end_marker_p): New function. |
| (function_arg_info::end_marker): Likewise. |
| * calls.c (prepare_call_address, initialize_argument_information) |
| (expand_call, emit_library_call_value_1): Update calls to |
| targetm.calls.function_arg and targetm.calls.function_incoming_arg. |
| * dse.c: Include calls.h. |
| (get_call_args): Update call to targetm.calls.function_arg. |
| * expr.c (block_move_libcall_safe_for_call_parm): Likewise. |
| * var-tracking.c (prepare_call_arguments): Likewise. |
| * function.c (assign_parm_find_entry_rtl): Update call to |
| targetm.calls.function_incoming_arg. |
| * config/aarch64/aarch64.c (aarch64_function_arg): Take a |
| function_arg_info instead of a mode, tree and named flag. |
| * config/alpha/alpha.c (alpha_function_arg): Likewise. |
| * config/arc/arc.c (arc_function_arg): Likewise. |
| * config/arm/arm.c (arm_function_arg): Likewise. |
| (cmse_func_args_or_return_in_stack): Update call accordingly. |
| (arm_function_ok_for_sibcall): Likewise. |
| (cmse_nonsecure_call_clear_caller_saved): Likewise. |
| * config/avr/avr.c (avr_function_arg): Take a function_arg_info |
| instead of a mode, tree and named flag. |
| * config/bfin/bfin.c (bfin_function_arg): Likewise. |
| * config/c6x/c6x.c (c6x_function_arg): Likewise. |
| (c6x_call_saved_register_used): Update call accordingly. |
| * config/cr16/cr16.c (cr16_function_arg): Take a function_arg_info |
| instead of a mode, tree and named flag. |
| * config/cris/cris.c (cris_function_arg, cris_function_incoming_arg) |
| (cris_function_arg_1): Likewise. |
| * config/csky/csky.c (csky_function_arg): Likewise. |
| * config/epiphany/epiphany.c (epiphany_function_arg): Likewise. |
| * config/fr30/fr30.c (fr30_function_arg): Likewise. |
| * config/frv/frv.c (frv_function_arg, frv_function_incoming_arg) |
| (frv_function_arg_1): Likewise. |
| * config/ft32/ft32.c (ft32_function_arg): Likewise. |
| * config/gcn/gcn.c (gcn_function_arg): Likewise. |
| * config/h8300/h8300.c (h8300_function_arg): Likewise. |
| * config/i386/i386.c (ix86_function_arg): Likewise. |
| * config/ia64/ia64.c (ia64_function_arg, ia64_function_incoming_arg) |
| (ia64_function_arg_1): Likewise. |
| * config/iq2000/iq2000.c (iq2000_function_arg): Likewise. |
| (iq2000_expand_prologue, iq2000_pass_by_reference): Update call |
| accordingly. |
| * config/lm32/lm32.c (lm32_function_arg): Take a function_arg_info |
| instead of a mode, tree and named flag. |
| * config/m32c/m32c.c (m32c_function_arg): Likewise. |
| * config/m32r/m32r.c (m32r_function_arg): Likewise. |
| * config/m68k/m68k.c (m68k_function_arg): Likewise. |
| * config/mcore/mcore.c (mcore_function_arg): Likewise. |
| * config/microblaze/microblaze.c (microblaze_function_arg): Likewise. |
| (microblaze_expand_prologue): Update call accordingly. |
| * config/mips/mips.c (mips_function_arg): Take a function_arg_info |
| instead of a mode, tree and named flag. |
| * config/mmix/mmix.c (mmix_function_incoming_arg, mmix_function_arg) |
| (mmix_function_arg_1): Likewise. |
| * config/mn10300/mn10300.c (mn10300_function_arg): Likewise. |
| * config/moxie/moxie.c (moxie_function_arg): Likewise. |
| * config/msp430/msp430.c (msp430_function_arg): Likewise. |
| * config/nds32/nds32.c (nds32_function_arg): Likewise. |
| * config/nios2/nios2.c (nios2_function_arg): Likewise. |
| * config/nvptx/nvptx.c (nvptx_function_arg): Likewise. |
| (nvptx_function_incoming_arg): Likewise. |
| * config/or1k/or1k.c (or1k_function_arg): Likewise. |
| * config/pa/pa.c (pa_function_arg): Likewise. |
| * config/pdp11/pdp11.c (pdp11_function_arg): Likewise. |
| * config/pru/pru.c (pru_function_arg): Likewise. |
| * config/riscv/riscv.c (riscv_function_arg): Likewise. |
| * config/rl78/rl78.c (rl78_function_arg): Likewise. |
| * config/rs6000/rs6000-internal.h (rs6000_function_arg): Likewise. |
| * config/rs6000/rs6000-call.c (rs6000_function_arg): Likewise. |
| (rs6000_parm_needs_stack): Update call accordingly. |
| * config/rx/rx.c (rx_function_arg): Take a function_arg_info |
| instead of a mode, tree and named flag. |
| * config/s390/s390.c (s390_function_arg): Likewise. |
| (s390_call_saved_register_used): Update call accordingly. |
| * config/sh/sh.c (sh_function_arg): Take a function_arg_info |
| instead of a mode, tree and named flag. |
| (sh_output_mi_thunk): Update call accordingly. |
| * config/sparc/sparc.c (sparc_function_arg_1, sparc_function_arg) |
| (sparc_function_incoming_arg): Take a function_arg_info instead of |
| a mode, tree and named flag. |
| * config/spu/spu.c (spu_function_arg): Likewise. |
| * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise. |
| * config/tilegx/tilegx.c (tilegx_function_arg): Likewise. |
| * config/tilepro/tilepro.c (tilepro_function_arg): Likewise. |
| * config/v850/v850.c (v850_function_arg): Likewise. |
| * config/vax/vax.c (vax_function_arg): Likewise. |
| * config/visium/visium.c (visium_function_arg): Likewise. |
| * config/xtensa/xtensa.c (xtensa_function_arg_1, xtensa_function_arg) |
| (xtensa_function_incoming_arg): Likewise. |
| |
| 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * target.def (setup_incoming_varargs): Take a function_arg_info |
| instead of a mode and tree. |
| * doc/tm.texi: Regenerate. |
| * targhooks.h (default_setup_incoming_varargs): Take a |
| function_arg_info instead of a mode and tree. |
| * targhooks.c (default_setup_incoming_varargs): Likewise. |
| * config/aarch64/aarch64.c (aarch64_setup_incoming_varargs): Likewise. |
| * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise. |
| * config/arc/arc.c (arc_setup_incoming_varargs): Likewise. |
| * config/arm/arm.c (arm_setup_incoming_varargs): Likewise. |
| * config/bfin/bfin.c (setup_incoming_varargs): Likewise. |
| * config/cris/cris.c (cris_setup_incoming_varargs): Likewise. |
| * config/csky/csky.c (csky_setup_incoming_varargs): Likewise. |
| * config/epiphany/epiphany.c (epiphany_setup_incoming_varargs): |
| Likewise. |
| * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise. |
| * config/frv/frv.c (frv_setup_incoming_varargs): Likewise. |
| * config/ft32/ft32.c (ft32_setup_incoming_varargs): Likewise. |
| * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise. |
| * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise. |
| * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise. |
| * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise. |
| * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise. |
| * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise. |
| * config/mips/mips.c (mips_setup_incoming_varargs): Likewise. |
| * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise. |
| * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise. |
| * config/nds32/nds32.c (nds32_setup_incoming_varargs): Likewise. |
| * config/nios2/nios2.c (nios2_setup_incoming_varargs): Likewise. |
| * config/riscv/riscv.c (riscv_setup_incoming_varargs): Likewise. |
| * config/rs6000/rs6000-internal.h (setup_incoming_varargs): Likewise. |
| * config/rs6000/rs6000-call.c (setup_incoming_varargs): Likewise. |
| * config/sh/sh.c (sh_setup_incoming_varargs): Likewise. |
| * config/spu/spu.c (spu_setup_incoming_varargs): Likewise. |
| * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs): Likewise. |
| * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs): Likewise. |
| * config/visium/visium.c (visium_setup_incoming_varargs): Likewise. |
| * function.c (assign_parms_setup_varargs): Update call to |
| targetm.calls.setup_incoming_varargs. |
| |
| 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * target.def (pass_by_reference): Take a function_arg_info instead |
| of a mode, type and named flag. |
| * doc/tm.texi: Regenerate. |
| * targhooks.h (hook_pass_by_reference_must_pass_in_stack): Update |
| accordingly. |
| (hook_bool_CUMULATIVE_ARGS_arg_info_false): Declare. |
| * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Take a |
| function_arg_info instead of a mode, type and named flag. |
| (hook_bool_CUMULATIVE_ARGS_arg_info_false): New function. |
| * calls.h (pass_by_reference): Take a function_arg_info instead of a |
| mode, type and named flag. |
| * calls.c (pass_by_reference): Likewise. |
| (pass_va_arg_by_reference): Update call accordingly. |
| (initialize_argument_information): Likewise. |
| (emit_library_call_value_1): Likewise. |
| * function.c (assign_parm_find_data_types): Likewise. |
| * var-tracking.c (prepare_call_arguments): Likewise. |
| * stor-layout.c: Include calls.h. |
| (compute_record_mode): Update call to targetm.calls.pass_by_reference. |
| * config/aarch64/aarch64.c (aarch64_pass_by_reference): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/alpha/alpha.c (alpha_pass_by_reference): Likewise. |
| * config/arc/arc.c (arc_pass_by_reference): Likewise. |
| * config/arm/arm.c (arm_pass_by_reference): Likewise. |
| * config/bfin/bfin.c (bfin_pass_by_reference): Likewise. |
| * config/c6x/c6x.c (c6x_pass_by_reference): Likewise. |
| (c6x_call_saved_register_used): Update call to pass_by_reference. |
| * config/cris/cris.c (cris_pass_by_reference): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/epiphany/epiphany.c (epiphany_pass_by_reference): Take a |
| function_arg_info instead of a mode, type and named flag. |
| (epiphany_arg_partial_bytes): Update call accordingly. |
| * config/ft32/ft32.c (ft32_pass_by_reference): Take a |
| function_arg_info instead of a mode, type and named flag. |
| (ft32_arg_partial_bytes): Update call accordingly. |
| * config/i386/i386.c (ix86_pass_by_reference): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise. |
| * config/m32c/m32c.c (m32c_pass_by_reference): Likewise. |
| * config/m32r/m32r.c (m32r_pass_by_reference): Likewise. |
| (m32r_return_in_memory): Update call accordingly. |
| * config/mips/mips.c (mips_pass_by_reference): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/mmix/mmix.c (mmix_pass_by_reference): Likewise. |
| * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise. |
| * config/moxie/moxie.c (moxie_pass_by_reference): Likewise. |
| (moxie_arg_partial_bytes): Update call accordingly. |
| * config/msp430/msp430.c (msp430_pass_by_reference): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/nvptx/nvptx.c (nvptx_pass_by_reference): Likewise. |
| * config/or1k/or1k.c (or1k_pass_by_reference): Likewise. |
| * config/pa/pa.c (pa_pass_by_reference): Likewise. |
| * config/riscv/riscv.c (riscv_pass_by_reference): Likewise. |
| (riscv_return_in_memory): Update call accordingly. |
| * config/rs6000/rs6000-internal.h (rs6000_pass_by_reference): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/rs6000/rs6000-call.c (rs6000_pass_by_reference): Likewise. |
| (rs6000_parm_needs_stack): Update call to pass_by_reference. |
| * config/s390/s390.c (s390_pass_by_reference): Take a |
| function_arg_info instead of a mode, type and named flag. |
| (s390_call_saved_register_used): Update call accordingly. |
| * config/sh/sh.c (sh_pass_by_reference): Take a function_arg_info |
| instead of a mode, type and named flag. |
| * config/sparc/sparc.c (sparc_pass_by_reference): Likewise. |
| * config/spu/spu.c (spu_pass_by_reference): Likewise. |
| * config/tilegx/tilegx.c (tilegx_pass_by_reference): Likewise. |
| * config/tilepro/tilepro.c (tilepro_pass_by_reference): Likewise. |
| * config/v850/v850.c (v850_pass_by_reference): Likewise. |
| * config/visium/visium.c (visium_pass_by_reference): Likewise. |
| |
| 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * target.def (arg_partial_bytes): Take a function_arg_info instead |
| of a mode, type and named flag. |
| * doc/tm.texi: Regenerate. |
| * target.h (function_arg_info): Declare. |
| * calls.h (function_arg_info): New class. |
| * targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete. |
| (hook_int_CUMULATIVE_ARGS_arg_info_0): Declare. |
| * targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete. |
| (hook_int_CUMULATIVE_ARGS_arg_info_0): New function. |
| * calls.c (initialize_argument_information): Update call to |
| targetm.calls.partial_bytes. |
| (emit_library_call_value_1): Likewise. |
| * expr.c (block_move_libcall_safe_for_call_parm): Likewise. |
| * function.c (assign_parm_find_entry_rtl): Likewise. |
| * config/alpha/alpha.c (alpha_arg_partial_bytes): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/arc/arc.c (arc_arg_partial_bytes): Likewise. |
| * config/arm/arm.c (arm_arg_partial_bytes): Likewise. |
| (cmse_func_args_or_return_in_stack): Update accordingly. |
| * config/bfin/bfin.c (bfin_arg_partial_bytes): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/cris/cris.c (cris_arg_partial_bytes): Likewise. |
| * config/csky/csky.c (csky_arg_partial_bytes): Likewise. |
| * config/epiphany/epiphany.c (epiphany_arg_partial_bytes): Likewise. |
| * config/fr30/fr30.c: Include calls.h. |
| (fr30_arg_partial_bytes): Take a function_arg_info instead of a mode, |
| type and named flag. |
| * config/frv/frv.c: Include calls.h. |
| (frv_arg_partial_bytes): Take a function_arg_info instead of a mode, |
| type and named flag. |
| * config/ft32/ft32.c (ft32_arg_partial_bytes): Likewise. |
| * config/gcn/gcn.c (gcn_arg_partial_bytes): Likewise. |
| * config/ia64/ia64.c (ia64_arg_partial_bytes): Likewise. |
| * config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Likewise. |
| * config/m32r/m32r.c (m32r_arg_partial_bytes): Likewise. |
| * config/mcore/mcore.c (mcore_arg_partial_bytes): Likewise. |
| * config/microblaze/microblaze.c (function_arg_partial_bytes): |
| Likewise. |
| * config/mips/mips.c (mips_arg_partial_bytes): Likewise. |
| * config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Likewise. |
| * config/moxie/moxie.c (moxie_arg_partial_bytes): Likewise. |
| * config/msp430/msp430.c (msp430_arg_partial_bytes): Likewise. |
| * config/nds32/nds32.c (nds32_arg_partial_bytes): Likewise. |
| * config/nios2/nios2.c (nios2_arg_partial_bytes): Likewise. |
| * config/pa/pa.c (pa_arg_partial_bytes): Likewise. |
| * config/pru/pru.c (pru_arg_partial_bytes): Likewise. |
| * config/riscv/riscv.c (riscv_arg_partial_bytes): Likewise. |
| * config/rs6000/rs6000-internal.h (rs6000_arg_partial_bytes): Likewise. |
| * config/rs6000/rs6000-call.c (rs6000_arg_partial_bytes): Likewise. |
| (rs6000_parm_needs_stack): Update call accordingly. |
| * config/sh/sh.c (sh_arg_partial_bytes): Take a |
| function_arg_info instead of a mode, type and named flag. |
| * config/sparc/sparc.c (sparc_arg_partial_bytes): Likewise. |
| * config/v850/v850.c (v850_arg_partial_bytes): Likewise. |
| |
| 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * calls.h (must_pass_va_arg_in_stack): Declare. |
| * calls.c (must_pass_va_arg_in_stack): New function. |
| * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use it. |
| * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise. |
| * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr): |
| Likewise. |
| * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise. |
| |
| 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * calls.h (pass_va_arg_by_reference): Declare. |
| * calls.c (pass_va_arg_by_reference): New function. |
| * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Use it. |
| * config/alpha/alpha.c (alpha_gimplify_va_arg): Likewise. |
| * config/gcn/gcn.c (gcn_gimplify_va_arg_expr): Likewise. |
| * config/i386/i386.c (ix86_gimplify_va_arg): Likewise. |
| * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. |
| * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Likewise. |
| (mips_gimplify_va_arg_expr): Likewise. |
| * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Likewise. |
| * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. |
| * config/rs6000/rs6000-call.c (rs6000_gimplify_va_arg): Likewise. |
| * config/s390/s390.c (s390_gimplify_va_arg): Likewise. |
| * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise. |
| * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise. |
| * config/tilegx/tilegx.c (tilegx_gimplify_va_arg_expr): Likewise. |
| * config/tilepro/tilepro.c (tilepro_gimplify_va_arg_expr): Likewise. |
| * config/visium/visium.c (visium_gimplify_va_arg): Likewise. |
| * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise. |
| * targhooks.c (std_gimplify_va_arg_expr): Likewise. |
| |
| 2019-08-20 Richard Biener <rguenther@suse.de> |
| |
| PR target/91498 |
| * config/i386/i386-features.c (general_scalar_chain::convert_op): |
| Use (vec_merge (vec_duplicate..)) style vector from scalar move. |
| (convert_scalars_to_vector): Add timode_p parameter and use it |
| to guard TImode-only operation. |
| (pass_stv::gate): Adjust so STV runs twice for TARGET_64BIT. |
| (pass_stv::execute): Pass down timode_p. |
| |
| 2019-08-20 Lili Cui <lili.cui@intel.com> |
| |
| * common/config/i386/i386-common.c |
| (processor_names): Add tigerlake and cooperlake. |
| (processor_alias_table): Add tigerlake and cooperlake. |
| * config.gcc: Add -march=tigerlake and cooperlake. |
| * config/i386/driver-i386.c |
| (host_detect_local_cpu): Detect tigerlake and cooperlake. |
| Add "has_avx" to classify processor. |
| * config/i386/i386-builtins.c (processor_model) : |
| Add M_INTEL_COREI7_TIGERLAKE and M_INTEL_COREI7_COOPERLAKE. |
| (arch_names_table): Add tigerlake and cooperlake. |
| (get_builtin_code_for_version) : Handle PROCESSOR_TIGERLAKE |
| and PROCESSOR_COOPERLAKE. |
| * config/i386/i386-c.c |
| (ix86_target_macros_internal): Handle tigerlake and cooperlake. |
| * config/i386/i386-options.c |
| (m_TIGERLAKE) : Define. |
| (m_COOPERLAKE) : Ditto. |
| (m_CORE_AVX512): Ditto. |
| (processor_cost_table): Add cascadelake. |
| (ix86_option_override_internal): Hadle PTA_MOVDIRI, PTA_MOVDIR64B. |
| * config/i386/i386.h |
| (ix86_size_cost) : Define TARGET_TIGERLAKE and TARGET_COOPERLAKE. |
| (processor_type) : Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE. |
| (PTA_MOVDIRI): Ditto. |
| (PTA_MOVDIR64B): Ditto. |
| (PTA_COOPERLAKE) : Ditto. |
| (PTA_TIGERLAKE) : Ditto. |
| (processor_type) : Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE. |
| * doc/extend.texi: Add tigerlake and cooperlake. |
| * doc/invoke.texi: Add tigerlake and cooperlake. |
| |
| 2019-08-20 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Specific, alpha): Remove note to use |
| binutils 2.11.2 or later. |
| |
| 2019-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR middle-end/89544 |
| * function.c (assign_parm_find_stack_rtl): Use larger alignment |
| when possible. |
| |
| 2019-08-19 Joel Hutton <Joel.Hutton@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow2_recip): New prototype |
| * config/aarch64/aarch64.c (aarch64_fpconst_pow2_recip): New function |
| * config/aarch64/aarch64.md (*aarch64_<su_optab>cvtf<fcvt_target><GPF:mode>2_mult): New pattern |
| (*aarch64_<su_optab>cvtf<fcvt_iesize><GPF:mode>2_mult): New pattern |
| * config/aarch64/constraints.md (Dt): New constraint |
| * config/aarch64/predicates.md (aarch64_fpconst_pow2_recip): New predicate |
| |
| 2019-08-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91403 |
| * tree-scalar-evolution.c (follow_ssa_edge_binary): Inline |
| cases we can handle with tail-recursion... |
| (follow_ssa_edge_expr): ... here. Do so. |
| |
| 2019-08-19 Kito Cheng <kito.cheng@sifive.com> |
| |
| PR target/91441 |
| * toplev.c (process_options): Check TARGET_ASAN_SHADOW_OFFSET is |
| implemented for -fsanitize=kernel-address, and merge check logic |
| with -fsanitize=address. |
| |
| 2019-08-18 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts |
| for cpu and machine. Factor 64/32b builtins. |
| |
| 2019-08-18 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Specific, bfin): blackfin.uclinux.org is |
| gone, point to sourceforge.net. |
| |
| 2019-08-17 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/ux.texi (User Experience Guidelines): Update reference. |
| |
| 2019-08-17 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/include/gpl_v3.texi (Copying): Adjust the link to "Why |
| not LGPL". |
| |
| 2019-08-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-sra.c (build_reconstructed_reference): Return NULL_TREE instead |
| of NULL. Add guard for broken VIEW_CONVERT_EXPRs. |
| |
| 2019-08-16 Martin Sebor <msebor@redhat.com> |
| |
| * tree.def (TYPE_SIZE): Clarify. |
| * tree.h (TYPE_SIZE, TYPE_SIZE_UNIT, DECL_SIZE): Add comments. |
| |
| 2019-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR tree-optimization/91109 |
| * lra-int.h (lra_need_for_scratch_reg_p): Declare. |
| * lra.c (lra): Use lra_need_for_scratch_reg_p. |
| * lra-spills.c (lra_need_for_scratch_reg_p): New function. |
| |
| 2019-08-16 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/mmx.md (mmxdoublemode): New mode attribute. |
| (mmx_uavg<mode>3): Macroize expaner from mmx_uavgv8qi3 and |
| mmx_uavgv4hi3 using MMXMODE12 mode iterator. |
| (uavg<mode>3_ceil): New expander. |
| * config/i386/sse.md (uavg<mode>3_ceil): Use ssedoublemode |
| mode iterator when creating CONST1_RTX. |
| (<sse2_avx2>_uavg<mode>3<mask_name>): Ditto. |
| (*<sse2_avx2>_uavg<mode>3<mask_name>): Use ssedoublemode |
| mode iterator for const1_operand predicate. |
| |
| 2019-08-16 Richard Biener <rguenther@suse.de> |
| |
| * tree-scalar-evolution.c (follow_ssa_edge_expr): Declare. |
| (follow_ssa_edge_binary): Call follow_ssa_edge_expr instead of |
| follow_ssa_edge. |
| (follow_ssa_edge_in_condition_phi_branch): Likewise. |
| (analyze_evolution_in_loop): Likewise. |
| (follow_ssa_edge, follow_ssa_edge_in_rhs): Inline into ... |
| (follow_ssa_edge_expr): ... here. Refactor code. |
| |
| 2019-08-16 Richard Biener <rguenther@suse.de> |
| |
| PR target/91469 |
| * config/i386/i386-features.c |
| (general_scalar_chain::replace_with_subreg): Stop at memory operands. |
| |
| 2019-08-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR other/91255 |
| * gensupport.c (has_subst_attribute): Error out on set_attr_alternative |
| only if subst_name matches curr_attr string. |
| |
| 2019-08-16 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c (simplify_builtin_call): Do not remove |
| stmt at gsi_p, instead replace it with a NOP removed later. |
| (pass_forwprop::execute): Fully propagate lattice, DCE stmts |
| that became dead because of that. |
| |
| 2019-08-16 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-ssa-evrp-analyze.c (record_ranges_from_phis): Skip PHIs |
| for which we can't represent a range. |
| * ipa-cp.c (ipcp_vr_lattice::set_to_bottom): Pass type to |
| set_varying. |
| * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): |
| Set VR_UNDEFINED if type is not supported. |
| * tree-ssanames.c (get_range_info): Pass type to set_varying. |
| * tree-vrp.c (value_range_base::check): Assert that a varying has |
| min/max set. |
| (value_range_base::equal_p): Early bail for undefines. |
| (value_range_base::set_varying): Accept a type. |
| (value_range::set_varying): Same. |
| (value_range_base::type): VARYING can have a type, while UNDEFINE |
| is typeless. |
| (value_range_base::dump): Print type for VARYING nodes. |
| (value_range_base::set): Add type to VARYING. |
| (extract_range_from_multiplicative_op): Pass type to set_varying. |
| (extract_range_from_binary_expr): Same. |
| (value_range_base::intersect_helper): Same. |
| (value_range_base::union_helper): Same. |
| (value_range_base::normalize_symbolics): Same. |
| (determine_value_range_1): Same. |
| * tree-vrp.h (class value_range_base): Add type to set_varying. |
| Add prototype for dump(void). |
| Add prototype for supports_type_p. |
| (class value_range): Add type to set_varying. |
| Add prototype for dump(void). |
| * vr-values.c (set_value_range_to_truthvalue): Pass type to |
| set_varying. |
| (vr_values::get_lattice_entry): Set varying even if propagation |
| finished. |
| Pass type to set_varying. |
| (vr_values::get_value_range): Remove vr_const_varying. |
| Reallocate the lattice if needed. |
| (vr_values::update_value_range): Pass type to set_varying. |
| (vr_values::extract_range_for_var_from_comparison_expr): Same. |
| (vr_values::extract_range_from_binary_expr): Same. |
| (vr_values::extract_range_from_unary_expr): Same. |
| (vr_values::extract_range_from_cond_expr): Same. |
| (vr_values::check_for_binary_op_overflow): Same. |
| (vr_values::extract_range_basic): Same. |
| (vr_values::extract_range_from_assignment): Same. |
| (vr_values::vr_values): Increase size of num_vr_values. |
| (vr_values::extract_range_from_phi_node): Pass type to |
| set_varying. |
| |
| 2019-08-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/90878 |
| * config/i386/i386.c (inline_memory_move_cost): Use hard_register |
| for costs of hard register moves. |
| (ix86_register_move_cost): Likewise. |
| * config/i386/i386.h (processor_costs): Move costs of hard |
| register moves to hard_register. Add int_load, int_store, |
| xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse, |
| sse_load, sse_store, sse_unaligned_load and sse_unaligned_store |
| for costs of RTL expressions. |
| * config/i386/x86-tune-costs.h: Move costs of hard register |
| moves to hard_register. Duplicate int_load, int_store, |
| xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse, |
| sse_load, sse_store for costs of RTL expressions. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * target.def (setup_incoming_vararg_bounds): Remove. |
| * doc/tm.texi.in (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Remove. |
| * doc/tm.texi: Regenerate. |
| * targhooks.c (default_setup_incoming_vararg_bounds): Delete. |
| * targhooks.h (default_setup_incoming_vararg_bounds): Likewise. |
| * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise. |
| (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise. |
| |
| 2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| MSP430: Fix lines over 80 characters long in |
| config/msp430/*.{c,h} files |
| |
| * config/msp430/driver-msp430.c (msp430_select_cpu): Fix format |
| specifier in string. |
| (msp430_select_hwmult_lib): Split line more than 80 characters long. |
| * config/msp430/msp430-devices.c (msp430_extract_mcu_data): Remove |
| redundant old comment. |
| * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common): |
| Split line more than 80 characters long. |
| * config/msp430/msp430.c (msp430_option_override): Likewise. |
| (msp430_return_in_memory): Likewise. |
| (msp430_gimplify_va_arg_expr): Likewise. |
| (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise. |
| (msp430_legitimate_constant): Likewise. |
| (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Likewise. |
| (msp430_attr): Likewise. |
| (msp430_data_attr): Likewise. |
| (msp430_start_function): Likewise. |
| (gen_prefix): Likewise. |
| (msp430_init_sections): Likewise. |
| (msp430_select_section): Likewise. |
| (msp430_function_section): Likewise. |
| (msp430_unique_section): Likewise. |
| (msp430_output_aligned_decl_common): Likewise. |
| (msp430_do_not_relax_short_jumps): Likewise. |
| (msp430_init_builtins): Likewise. |
| (msp430_expand_delay_cycles): Likewise. |
| (msp430_expand_prologue): Likewise. |
| (msp430_expand_epilogue): Likewise. |
| (msp430_expand_helper): Likewise. |
| (msp430_split_movsi): Likewise. |
| (msp430_print_operand): Likewise. |
| (msp430_return_addr_rtx): Likewise. |
| (msp430x_extendhisi): Likewise. |
| * config/msp430/msp430.h (STARTFILE_SPEC): Likewise. |
| (ASM_SPEC): Likewise. |
| Remove very obvious comments. |
| (LIB_SPEC): Split line more than 80 characters long. |
| (EH_RETURN_HANDLER_RTX): Likewise. |
| (HARD_REGNO_CALLER_SAVE_MODE): Likewise. |
| |
| 2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| MSP430: Fix whitespace errors and incorrect indentation in |
| config/msp430/*.{c,h} files |
| |
| * config/msp430/driver-msp430.c (msp430_select_cpu): Fix indentation. |
| (msp430_select_hwmult_lib): Likewise. |
| * config/msp430/msp430-devices.c (parse_devices_csv_1): Likewise. |
| (msp430_extract_mcu_data): Likewise. |
| (struct t_msp430_mcu_data): Likewise. |
| * config/msp430/msp430.c (struct machine_function): Remove whitespace |
| before left square bracket. |
| (msp430_option_override): Fix indentation. |
| (msp430_hard_regno_nregs_with_padding): Likewise. |
| (msp430_initial_elimination_offset): Likewise. |
| (msp430_special_register_convention_p): Remove whitespace before left |
| square bracket and after exclamation mark. |
| (msp430_evaluate_arg): Likewise. |
| (msp430_callee_copies): Fix indentation. |
| (msp430_gimplify_va_arg_expr): Likewise. |
| (msp430_function_arg_advance): Remove whitespace before left square |
| bracket. |
| (reg_ok_for_addr): Likewise. |
| (msp430_preserve_reg_p): Likewise. |
| (msp430_compute_frame_info): Likewise. |
| (msp430_asm_output_addr_const_extra): Add space between function name |
| and open parenthesis. |
| (has_section_name): Fix indentation. |
| (msp430_attr): Remove trailing whitespace. |
| (msp430_section_attr): Likewise. |
| (msp430_data_attr): Likewise. |
| (struct msp430_attribute_table): Fix comment and whitespace. |
| (msp430_start_function): Remove whitespace before left square bracket. |
| Add space between function name and open parenthesis. |
| (msp430_select_section): Remove trailing whitespace. |
| (msp430_section_type_flags): Remove trailing whitespace. |
| (msp430_unique_section): Remove space before closing parenthesis. |
| (msp430_output_aligned_decl_common): Change 8 spaces to a tab. |
| (msp430_builtins): Remove whitespace before left square bracket. |
| (msp430_init_builtins): Fix indentation. |
| (msp430_expand_prologue): Remove whitespace before left square bracket. |
| Remove space before closing parenthesis. |
| (msp430_expand_epilogue): Remove whitespace before left square bracket. |
| (msp430_split_movsi): Remove space before closing parenthesis. |
| (helper_function_name_mappings): Fix indentation. |
| (msp430_use_f5_series_hwmult): Fix whitespace. |
| (use_32bit_hwmult): Likewise. |
| (msp430_no_hwmult): Likewise. |
| (msp430_output_labelref): Remove whitespace before left square bracket. |
| (msp430_print_operand_raw): Likewise. |
| (msp430_print_operand_addr): Likewise. |
| (msp430_print_operand): Add two spaces after '.' in comment. |
| Fix trailing whitespace. |
| (msp430x_extendhisi): Fix indentation. |
| * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Change 8 spaces to |
| tab. |
| (PC_REGNUM): Likewise. |
| (STACK_POINTER_REGNUM): Likewise. |
| (CC_REGNUM): Likewise. |
| |
| 2019-08-15 Richard Biener <rguenther@suse.de> |
| |
| PR target/91454 |
| * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): New |
| helper. |
| (general_scalar_chain::make_vector_copies): Use it. |
| |
| 2019-08-15 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| * function.c (assign_parm_setup_reg): Handle misaligned stack arguments. |
| |
| 2019-08-15 Martin Liska <mliska@suse.cz> |
| |
| * tree-ssa-dce.c (propagate_necessity): We can't reach now |
| operators with no arguments. |
| (eliminate_unnecessary_stmts): Likewise here. |
| |
| 2019-08-15 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-features.c (general_scalar_chain::convert_insn) |
| <case COMPARE>: Revert 2019-08-14 change. |
| (convertible_comparison_p): Revert 2019-08-14 change. Return false |
| for (TARGET_64BIT || mode != DImode). |
| |
| 2019-08-15 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-vrp.c (value_range_base::set): Merge in code from |
| value_range_base::set_and_canonicalize. |
| Enforce canonicalization at set time. |
| Normalize [MIN, MAX] into VARYING and ~[MIN, MAX] into UNDEFINED. |
| (value_range_base::set_undefined): Inline call to set(). |
| (value_range_base::set_varying): Same. |
| (value_range_base::singleton_p): Handle VR_ANTI_RANGEs. |
| (vrp_val_max): New argument handle_pointers. |
| (vrp_val_min): Same. |
| (ranges_from_anti_range): Same. |
| (extract_range_into_wide_ints): Use tree argument instead of sign |
| and precision. |
| (extract_range_from_multiplicative_op): Take in tree type instead |
| of precision and sign. Adapt function for canonicalized ranges. |
| (extract_range_from_binary_expr): Pass type to |
| extract_range_from_multiplicative_op. |
| Adapt for canonicalized ranges. |
| (extract_range_from_unary_expr): Same. |
| (value_range_base::intersect_helper): Adjust for canonicalized |
| ranges. |
| (value_range_base::union_helper): Same. |
| (value_range_base::normalize_symbolics): New. |
| * tree-vrp.h (class value_range_base): Remove |
| set_and_canonicalize. |
| New prototype for normalize_symbolics. |
| (class value_range): Remove set_and_canonicalize. |
| (vrp_val_min): Adjust prototype. |
| (vrp_val_max): Same. |
| * vr-values.c |
| (vr_values::extract_range_for_var_from_comparison_expr): Call set |
| instead of set_and_canonicalize. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR middle-end/91444 |
| * tree-vect-stmts.c (vectorizable_call): Check that the function |
| is a BUILT_IN_MD function before passing it to |
| targetm.vectorize.builtin_md_vectorized_function. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_sve_mode_p): Declare. |
| * config/aarch64/aarch64.c (aarch64_sve_mode_p): New function. |
| (aarch64_select_early_remat_modes): Use it. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Return |
| 16 for SVE predicates even if they are fixed-length. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (and<PRED_ALL:mode>3): Make the |
| operand order match the MOV /Z alias. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_output_sve_cnt_immediate): Take |
| the vector pattern as an aarch64_svpattern argument. Update the |
| overloaded caller accordingly. |
| (aarch64_output_sve_scalar_inc_dec): Update call accordingly. |
| (aarch64_output_sve_vector_inc_dec): Likewise. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_add_offset): In the fallback |
| multiplication case, try to compute VG * (lowest set bit) directly |
| rather than always basing the multiplication on VG. Use |
| expand_mult for the multiplication if we can. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-protos.h |
| (aarch64_sve_scalar_inc_dec_immediate_p): Declare. |
| (aarch64_sve_inc_dec_immediate_p): Rename to... |
| (aarch64_sve_vector_inc_dec_immediate_p): ...this. |
| (aarch64_output_sve_addvl_addpl): Take a single rtx argument. |
| (aarch64_output_sve_scalar_inc_dec): Declare. |
| (aarch64_output_sve_inc_dec_immediate): Rename to... |
| (aarch64_output_sve_vector_inc_dec): ...this. |
| * config/aarch64/aarch64.c (aarch64_sve_scalar_inc_dec_immediate_p) |
| (aarch64_output_sve_scalar_inc_dec): New functions. |
| (aarch64_output_sve_addvl_addpl): Remove the base and offset |
| arguments. Only handle true ADDVL and ADDPL instructions; |
| don't emit an INC or DEC. |
| (aarch64_sve_inc_dec_immediate_p): Rename to... |
| (aarch64_sve_vector_inc_dec_immediate_p): ...this. |
| (aarch64_output_sve_inc_dec_immediate): Rename to... |
| (aarch64_output_sve_vector_inc_dec): ...this. Update call to |
| aarch64_sve_vector_inc_dec_immediate_p. |
| * config/aarch64/predicates.md (aarch64_sve_scalar_inc_dec_immediate) |
| (aarch64_sve_plus_immediate): New predicates. |
| (aarch64_pluslong_operand): Accept aarch64_sve_plus_immediate |
| rather than aarch64_sve_addvl_addpl_immediate. |
| (aarch64_sve_inc_dec_immediate): Rename to... |
| (aarch64_sve_vector_inc_dec_immediate): ...this. Update call to |
| aarch64_sve_vector_inc_dec_immediate_p. |
| (aarch64_sve_add_operand): Update accordingly. |
| * config/aarch64/constraints.md (Uai): New constraint. |
| (vsi): Update call to aarch64_sve_vector_inc_dec_immediate_p. |
| * config/aarch64/aarch64.md (add<GPI:mode>3): Don't force the second |
| operand into a register if it satisfies aarch64_sve_plus_immediate. |
| (*add<GPI:mode>3_aarch64, *add<GPI:mode>3_poly_1): Add an alternative |
| for Uai. Update calls to aarch64_output_sve_addvl_addpl. |
| * config/aarch64/aarch64-sve.md (add<mode>3): Call |
| aarch64_output_sve_vector_inc_dec instead of |
| aarch64_output_sve_inc_dec_immediate. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/iterators.md (UNSPEC_REVB, UNSPEC_REVH) |
| (UNSPEC_REVW): New constants. |
| (elem_bits): New mode attribute. |
| (SVE_INT_UNARY): New int iterator. |
| (optab): Handle UNSPEC_REV[BHW]. |
| (sve_int_op): New int attribute. |
| (min_elem_bits): Handle VNx16QI and the predicate modes. |
| * config/aarch64/aarch64-sve.md (*aarch64_sve_rev64<mode>) |
| (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Delete. |
| (@aarch64_pred_<SVE_INT_UNARY:optab><SVE_I:mode>): New pattern. |
| * config/aarch64/aarch64.c (aarch64_sve_data_mode): New function. |
| (aarch64_sve_int_mode, aarch64_sve_rev_unspec): Likewise. |
| (aarch64_split_sve_subreg_move): Use UNSPEC_REV[BHW] instead of |
| unspecs based on the total width of the reversed data. |
| (aarch64_evpc_rev_local): Likewise (for SVE only). Use a |
| reinterpret followed by a subreg on big-endian targets. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * config/aarch64/aarch64-sve.md |
| (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Add /z |
| alternatives in which one of the inputs is in the same register |
| as the output. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_ext) |
| (*aarch64_sve_ext<mode>): Add MOVPRFX alternatives. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (*sub<SVE_F:mode>3): Remove immediate |
| FADD and FSUB alternatives. Add a MOVPRFX alternative for FSUBR. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * config/aarch64/aarch64-sve.md (add<SVE_I:mode>3, sub<SVE_I:mode>3) |
| (<LOGICAL:optab><SVE_I:mode>3, *add<SVE_F:mode>3, *mul<SVE_F:mode>3) |
| (*fabd<SVE_F:mode>3): Add more MOVPRFX alternatives. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| * config/aarch64/aarch64-sve.md (*v<ASHIFT:optab><SVE_I:mode>3): |
| Add an alternative that uses reversed shifts. |
| |
| 2019-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (cortex-a76): Use neoversen1 tuning |
| struct. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Add |
| a commutativity marker. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_prepare_sve_int_fma) |
| (aarch64_prepare_sve_cond_int_fma): Declare. |
| * config/aarch64/aarch64.c (aarch64_convert_mult_to_shift) |
| (aarch64_prepare_sve_int_fma): New functions. |
| (aarch64_prepare_sve_cond_int_fma): Likewise. |
| * config/aarch64/aarch64-sve.md |
| (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Add a "@" marker. |
| (fma<SVE_I:mode>4, cond_fma<SVE_I:mode>, *cond_fma<SVE_I:mode>_2) |
| (*cond_fma<SVE_I:mode>_4, *cond_fma<SVE_I:mode>_any, fnma<SVE_I:mode>4) |
| (cond_fnma<SVE_I:mode>, *cond_fnma<SVE_I:mode>_2) |
| (*cond_fnma<SVE_I:mode>_4, *cond_fnma<SVE_I:mode>_any): New patterns. |
| (*madd<mode>): Rename to... |
| (*fma<mode>4): ...this. |
| (*msub<mode>): Rename to... |
| (*fnma<mode>4): ...this. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * config/aarch64/aarch64.c (aarch64_print_vector_float_operand): |
| Print 2.0 naturally. |
| (aarch64_sve_float_mul_immediate_p): Return true for 2.0. |
| * config/aarch64/predicates.md |
| (aarch64_sve_float_negated_arith_immediate): New predicate, |
| renamed from aarch64_sve_float_arith_with_sub_immediate. |
| (aarch64_sve_float_arith_with_sub_immediate): Test for both |
| positive and negative constants. |
| (aarch64_sve_float_arith_with_sub_operand): Redefine as a register |
| or an aarch64_sve_float_arith_with_sub_immediate. |
| * config/aarch64/constraints.md (vsN): Use |
| aarch64_sve_float_negated_arith_immediate. |
| * config/aarch64/iterators.md (SVE_COND_FP_BINARY_I1): New int |
| iterator. |
| (sve_pred_fp_rhs2_immediate): New int attribute. |
| * config/aarch64/aarch64-sve.md |
| (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>): Use |
| sve_pred_fp_rhs1_operand and sve_pred_fp_rhs2_operand. |
| (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_2_const) |
| (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_any_const) |
| (*cond_add<SVE_F:mode>_2_const, *cond_add<SVE_F:mode>_any_const) |
| (*cond_sub<mode>_3_const, *cond_sub<mode>_any_const): New patterns. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * config/aarch64/aarch64-sve.md (*aarch64_cond_abd<SVE_F:mode>_2) |
| (*aarch64_cond_abd<SVE_F:mode>_3) |
| (*aarch64_cond_abd<SVE_F:mode>_any): New patterns. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * config/aarch64/aarch64-sve.md (*aarch64_cond_<su>abd<mode>_2) |
| (*aarch64_cond_<su>abd<mode>_any): New patterns. |
| |
| 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> |
| Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| * internal-fn.def (IFN_COND_SHL, IFN_COND_SHR): New internal functions. |
| * internal-fn.c (FOR_EACH_CODE_MAPPING): Handle shifts. |
| * match.pd (UNCOND_BINARY, COND_BINARY): Likewise. |
| * optabs.def (cond_ashl_optab, cond_ashr_optab, cond_lshr_optab): New |
| optabs. |
| * optabs.h (create_convert_operand_from): Expand comment. |
| * optabs.c (maybe_legitimize_operand): Allow implicit broadcasts |
| when mapping scalar rtxes to vector operands. |
| * config/aarch64/iterators.md (SVE_INT_BINARY): Add ashift, |
| ashiftrt and lshiftrt. |
| (sve_int_op, sve_int_op_rev, sve_pred_int_rhs2_operand): Handle them. |
| * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_const) |
| (*cond_<optab><mode>_any_const): New patterns. |
| |
| 2019-08-15 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/91438 |
| * cgraph.c (cgraph_node::remove): When setting |
| n->origin = NULL for all nested functions, reset |
| also next_nested. |
| |
| 2019-08-15 Martin Liska <mliska@suse.cz> |
| |
| * cgraph.c (cgraph_node::verify_node): Verify origin, nested |
| and next_nested. |
| |
| 2019-08-15 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/91404 |
| * passes.c (order): Remove. |
| (uid_hash_t): Likewise). |
| (remove_cgraph_node_from_order): Remove from set |
| of pointers (cgraph_node *). |
| (insert_cgraph_node_to_order): New. |
| (duplicate_cgraph_node_to_order): New. |
| (do_per_function_toporder): Register all 3 cgraph hooks. |
| Skip removed_nodes now as we know about all of them. |
| |
| 2019-08-14 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-expand.c (ix86_expand_vector_init_one_nonzero) |
| <case E_V8QImode>: Use vector_set path for |
| TARGET_MMX_WITH_SSE && TARGET_SSE4_1. |
| (ix86_expand_vector_init_one_var) <case E_V8QImode>: |
| Do not widen for TARGET_MMX_WITH_SSE && TARGET_SSE4_1. |
| |
| 2019-08-14 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| * builtins.c (expand_builtin_init_descriptor): Set memory alignment. |
| |
| 2019-08-14 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/91294 |
| * tree-ssa-strlen.c (handle_store): Avoid treating lower bound of |
| source length as exact. |
| |
| 2019-08-14 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * doc/extend.texi: Add "noinit" attribute documentation. |
| * doc/sourcebuild.texi: Add noinit effective target documentation. |
| * varasm.c (default_section_type_flags): Add support for "noinit" |
| section. |
| (default_elf_select_section): Add support for "noinit" attribute. |
| * config/msp430/msp430.c (msp430_attribute_table): Remove |
| "noinit" entry. |
| |
| 2019-08-14 Richard Biener <rguenther@suse.de> |
| Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/91154 |
| * config/i386/i386-features.h (scalar_chain::scalar_chain): Add |
| mode arguments. |
| (scalar_chain::smode): New member. |
| (scalar_chain::vmode): Likewise. |
| (dimode_scalar_chain): Rename to... |
| (general_scalar_chain): ... this. |
| (general_scalar_chain::general_scalar_chain): Take mode arguments. |
| (timode_scalar_chain::timode_scalar_chain): Initialize scalar_chain |
| base with TImode and V1TImode. |
| * config/i386/i386-features.c (scalar_chain::scalar_chain): Adjust. |
| (general_scalar_chain::vector_const_cost): Adjust for SImode |
| chains. |
| (general_scalar_chain::compute_convert_gain): Likewise. Add |
| {S,U}{MIN,MAX} support. |
| (general_scalar_chain::replace_with_subreg): Use vmode/smode. |
| (general_scalar_chain::make_vector_copies): Likewise. Handle |
| non-DImode chains appropriately. |
| (general_scalar_chain::convert_reg): Likewise. |
| (general_scalar_chain::convert_op): Likewise. |
| (general_scalar_chain::convert_insn): Likewise. Add |
| fatal_insn_not_found if the result is not recognized. |
| (convertible_comparison_p): Pass in the scalar mode and use that. |
| (general_scalar_to_vector_candidate_p): Likewise. Rename from |
| dimode_scalar_to_vector_candidate_p. Add {S,U}{MIN,MAX} support. |
| (scalar_to_vector_candidate_p): Remove by inlining into single |
| caller. |
| (general_remove_non_convertible_regs): Rename from |
| dimode_remove_non_convertible_regs. |
| (remove_non_convertible_regs): Remove by inlining into single caller. |
| (convert_scalars_to_vector): Handle SImode and DImode chains |
| in addition to TImode chains. |
| * config/i386/i386.md (<maxmin><MAXMIN_IMODE>3): New expander. |
| (*<maxmin><MAXMIN_IMODE>3_1): New insn-and-split. |
| (*<maxmin>di3_doubleword): Likewise. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2) |
| (*cond_bic<mode>_any): New patterns. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_print_operand): Allow %e to |
| take the equivalent mask, as well as a bit count. |
| * config/aarch64/predicates.md (aarch64_sve_uxtb_immediate) |
| (aarch64_sve_uxth_immediate, aarch64_sve_uxt_immediate) |
| (aarch64_sve_pred_and_operand): New predicates. |
| * config/aarch64/iterators.md (sve_pred_int_rhs2_operand): New |
| code attribute. |
| * config/aarch64/aarch64-sve.md |
| (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Use it. |
| (*cond_uxt<mode>_2, *cond_uxt<mode>_any): New patterns. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md |
| (*cond_<SVE_COND_FCVTI:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>) |
| (*cond_<SVE_COND_ICVTF:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): |
| New patterns. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * config/aarch64/aarch64-sve.md |
| (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_2): New pattern. |
| (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_any): Likewise. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * config/aarch64/aarch64-sve.md |
| (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_2): New pattern. |
| (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_any): Likewise. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/iterators.md (SVE_COND_FP_ABS_CMP): New iterator. |
| * config/aarch64/aarch64-sve.md (*aarch64_pred_fac<cmp_op><mode>): |
| New pattern. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * config/aarch64/aarch64-sve.md (*aarch64_sel_dup<mode>): New pattern. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * config/aarch64/aarch64.c (aarch64_bit_representation): New function. |
| (aarch64_print_vector_float_operand): Also handle 8-bit floats. |
| (aarch64_print_operand): Add support for %I. |
| (aarch64_sve_dup_immediate_p): Handle scalars as well as vectors. |
| Bitcast floating-point constants to the corresponding integer constant. |
| (aarch64_float_const_representable_p): Handle vectors as well |
| as scalars. |
| (aarch64_expand_sve_vcond): Make sure that the operands are valid |
| for the new vcond_mask_<mode><vpred> expander. |
| * config/aarch64/predicates.md (aarch64_sve_dup_immediate): Also |
| test aarch64_float_const_representable_p. |
| (aarch64_sve_reg_or_dup_imm): New predicate. |
| * config/aarch64/aarch64-sve.md (vec_extract<vpred><Vel>): Use |
| gen_vcond_mask_<mode><vpred> instead of |
| gen_aarch64_sve_dup<mode>_const. |
| (vcond_mask_<mode><vpred>): Turn into a define_expand that |
| accepts aarch64_sve_reg_or_dup_imm and aarch64_simd_reg_or_zero |
| for operands 1 and 2 respectively. Force operand 2 into a |
| register if operand 1 is a register. Fold old define_insn... |
| (aarch64_sve_dup<mode>_const): ...and this define_insn... |
| (*vcond_mask_<mode><vpred>): ...into this new pattern. Handle |
| floating-point constants that can be moved as integers. Add |
| alternatives for MOV /M and FMOV /M. |
| (vcond<mode><v_int_equiv>, vcondu<mode><v_int_equiv>) |
| (vcond<mode><v_fp_equiv>): Accept nonmemory_operand for operands |
| 1 and 2 respectively. |
| * config/aarch64/constraints.md (Ufc): Handle vectors as well |
| as scalars. |
| (vss): New constraint. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/predicates.md (aarch64_sve_float_maxmin_immediate) |
| (aarch64_sve_float_maxmin_operand): New predicates. |
| * config/aarch64/constraints.md (vsB): New constraint. |
| (vsM): Fix typo. |
| * config/aarch64/iterators.md (sve_pred_fp_rhs2_operand): Use |
| aarch64_sve_float_maxmin_operand for UNSPEC_COND_FMAXNM and |
| UNSPEC_COND_FMINNM. |
| * config/aarch64/aarch64-sve.md (<maxmin_uns><SVE_F:mode>3): |
| Use aarch64_sve_float_maxmin_operand for operand 2. |
| (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Likewise. |
| Add alternatives for the constant forms. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/constraints.md (vsb): New constraint. |
| (vsm): Generalize description. |
| * config/aarch64/iterators.md (SVE_INT_BINARY_IMM): New code |
| iterator. |
| (sve_imm_con): Handle smax, smin, umax and umin. |
| (sve_imm_prefix): New code attribute. |
| * config/aarch64/predicates.md (aarch64_sve_vsb_immediate) |
| (aarch64_sve_vsb_operand): New predicates. |
| (aarch64_sve_mul_immediate): Rename to... |
| (aarch64_sve_vsm_immediate): ...this. |
| (aarch64_sve_mul_operand): Rename to... |
| (aarch64_sve_vsm_operand): ...this. |
| * config/aarch64/aarch64-sve.md (mul<mode>3): Generalize to... |
| (<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...this. |
| (*mul<mode>3, *post_ra_mul<mode>3): Generalize to... |
| (*<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3) |
| (*post_ra_<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...these and |
| add movprfx support for the immediate alternatives. |
| (<su><maxmin><mode>3, *<su><maxmin><mode>3): Delete in favor |
| of the above. |
| (*<SVE_INT_BINARY_SD:optab><SVE_SDI:mode>3): Fix incorrect predicate |
| for operand 3. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/predicates.md (aarch64_simd_imm_one): New predicate. |
| * config/aarch64/aarch64-sve.md (*cnot<mode>): New pattern. |
| (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/iterators.md (SVE_INT_UNARY): Add clrsb and clz. |
| (optab, sve_int_op): Handle them. |
| * config/aarch64/aarch64-sve.md: Expand comment. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/predicates.md (const_1_to_3_operand): New predicate. |
| * config/aarch64/aarch64-sve.md (*aarch64_adr_uxtw) |
| (*aarch64_adr<mode>_shift, *aarch64_adr_shift_uxtw): New patterns. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor) |
| (aarch64_expand_sve_const_pred_trn): New functions. |
| (aarch64_expand_sve_const_pred_1): Add a recurse_p parameter and |
| use the above functions when the parameter is true. |
| (aarch64_expand_sve_const_pred): Update call accordingly. |
| * config/aarch64/aarch64-sve.md (*aarch64_sve_<perm_insn><mode>): |
| Rename to... |
| (@aarch64_sve_<perm_insn><mode>): ...this. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_sve_same_pred_for_ptest_p): |
| Declare. |
| * config/aarch64/aarch64.c (aarch64_sve_same_pred_for_ptest_p) |
| (aarch64_sve_emit_int_cmp): New functions. |
| (aarch64_convert_sve_data_to_pred): Use aarch64_sve_emit_int_cmp. |
| (aarch64_sve_cmp_operand_p, aarch64_emit_sve_ptrue_op_cc): Delete. |
| (aarch64_expand_sve_vec_cmp_int): Use aarch64_sve_emit_int_cmp. |
| * config/aarch64/aarch64.md (UNSPEC_MERGE_PTRUE): Delete. |
| (UNSPEC_PRED_Z): New unspec. |
| (set_clobber_cc_nzc): Delete. |
| * config/aarch64/aarch64-sve.md: Add a block comment about |
| UNSPEC_PRED_Z. |
| (*cmp<SVE_INT_CMP:cmp_op><mode>): Rename to... |
| (@aarch64_pred_cmp<SVE_INT_CMP:cmp_op><mode>): ...this, replacing |
| the old pattern with that name. Use UNSPEC_PRED_Z instead of |
| UNSPEC_MERGE_PTRUE. |
| (*cmp<SVE_INT_CMP:cmp_op><mode>_cc): Use UNSPEC_PRED_Z instead of |
| UNSPEC_MERGE_PTRUE. Use aarch64_sve_same_pred_for_ptest_p to |
| check for compatible predicates. |
| (*cmp<cmp_op><SVE_INT_CMP:mode>_ptest): Likewise. |
| (*cmp<cmp_op><mode>_and): Match a known-ptrue UNSPEC_PRED_Z instead |
| of UNSPEC_MERGE_PTRUE. Split into the new form of predicated |
| comparisons above. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.md (UNSPEC_PRED_X): New unspec. |
| * config/aarch64/aarch64-sve.md: Add a section describing it. |
| (@aarch64_pred_mov<mode>, @aarch64_pred_mov<mode>) |
| (<SVE_INT_UNARY:optab><mode>2, *<SVE_INT_UNARY:optab><mode>2) |
| (aarch64_<su>abd<mode>_3, mul<SVE_I:mode>3, *mul<SVE_I:mode>3) |
| (<su>mul<mode>3_highpart, *<su>mul<mode>3_highpart) |
| (<SVE_INT_BINARY:optab><mode>3, *<SVE_INT_BINARY:optab><mode>3) |
| (*bic<mode>3, v<ASHIFT:optab><mode>3, *v<ASHIFT:optab><mode>3) |
| (<su><maxmin><mode>3, *<su><maxmin><mode>3, *madd<SVE_I:mode>) |
| (*msub<SVE_I:mode>3, *aarch64_sve_rev64<mode>) |
| (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Use |
| UNSPEC_PRED_X instead of UNSPEC_MERGE_PTRUE. |
| * config/aarch64/aarch64-sve2.md (<u>avg<mode>3_floor) |
| (<u>avg<mode>3_ceil, *<sur>h<addsub><mode>): Likewise. |
| * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move) |
| (aarch64_evpc_rev_local): Update accordingly. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/iterators.md (VNx4SI_ONLY, VNx2DF_ONLY): New mode |
| iterators. |
| (SVE_BHSI, SVE_SDI): Tweak comment. |
| (SVE_HSDI): Likewise. Fix definition. |
| (SVE_SDF): New mode iterator. |
| (elem_bits): New mode attribute. |
| (SVE_COND_FCVT): New int iterator. |
| * config/aarch64/aarch64-sve.md |
| (*<SVE_COND_ICVTF:optab>v16hsf<SVE_HSDI:mode>2) |
| (*<SVE_COND_ICVTF:optab>vnx4sf<SVE_SDI:mode>2) |
| (*<SVE_COND_ICVTF:optab>vnx2df<SVE_SDI:mode>2): Merge into... |
| (*aarch64_sve_<SVE_COND_ICVTF:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>) |
| (*aarch64_sve_<SVE_COND_ICVTF:optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): |
| ...these new patterns. |
| (*<SVE_COND_FCVTI:optab><SVE_HSDI:mode>vnx8hf2) |
| (*<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx4sf2) |
| (aarch64_sve_<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx2df2): |
| Merge into... |
| (*aarch64_sve_<SVE_COND_FCVTI:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>) |
| (aarch64_sve_<SVE_COND_FCVTI:optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): |
| ...these new patterns. |
| (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Update accordingly. |
| (*trunc<Vwide><SVE_SDF:mode>2): Replace with... |
| (*aarch64_sve_<SVE_COND_FCVT:optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): |
| ...this new pattern. |
| (aarch64_sve_extend<SVE_HSDF:mode><Vwide>2): Replace with... |
| (aarch64_sve_<SVE_COND_FCVT:optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): |
| ...this new pattern. |
| (vec_unpacks_<perm_hilo>_<mode>): Update accordingly. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.md (UNSPEC_FLOAT_CONVERT): Delete. |
| * config/aarch64/iterators.md (UNSPEC_COND_FCVT, UNSPEC_COND_FCVTZS) |
| (UNSPEC_COND_FCVTZU, UNSPEC_COND_SCVTF, UNSPEC_COND_UCVTF): New |
| unspecs. |
| (optab, su): Handle them. |
| (SVE_COND_FCVTI, SVE_COND_ICVTF): New int iterators. |
| * config/aarch64/aarch64-sve.md |
| (<fix_trunc_optab><SVE_F:mode><v_int_equiv>2): Replace with... |
| (<SVE_COND_FCVTI:optab><SVE_F:mode><v_int_equiv>2): ...this. |
| (*<fix_trunc_optab>v16hsf<:SVE_HSDImode>2): Replace with... |
| (*<SVE_COND_FCVTI:optab>v16hsf<SVE_F:mode>2): ...this. |
| (*<fix_trunc_optab>vnx4sf<SVE_SDI:mode>2): Replace with... |
| (*<SVE_COND_FCVTI:optab>vnx4sf<SVE_SDI:mode>2): ...this. |
| (*<fix_trunc_optab>vnx2df<SVE_SDI:mode>2): Replace with... |
| (*<SVE_COND_FCVTI:optab>vnx2df<SVE_SDI:mode>2): ...this. |
| (vec_pack_<su>fix_trunc_vnx2df): Use SVE_COND_FCVTI instead of |
| FIXUORS. |
| (<FLOATUORS:optab><v_int_equiv><SVE_F:mode>2): Replace with... |
| (<SVE_COND_ICVTF:optab><v_int_equiv><SVE_F:mode>2): ...this. |
| (*<FLOATUORS:optab><SVE_HSDI:mode>vnx8hf2): Replace with... |
| (*<SVE_COND_ICVTF:optab><SVE_HSDI:mode>vnx8hf2): ...this. |
| (*<FLOATUORS:optab><SVE_SDI:mode>vnx4sf2): Replace with... |
| (*<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx4sf2): ...this. |
| (aarch64_sve_<FLOATUORS:optab><SVE_SDI:mode>vnx2df2): Replace with... |
| (aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2): ...this. |
| (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Pass a GP strictness |
| operand to aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2. |
| (vec_pack_trunc_<SVE_HSF:Vwide>, *trunc<Vwide><SVE_HSF:mode>2) |
| (aarch64_sve_extend<mode><Vwide>2): Use UNSPEC_COND_FCVT instead |
| of UNSPEC_FLOAT_CONVERT. |
| (vec_unpacks_<perm_hilo>_<mode>): Pass a GP strictness operand to |
| aarch64_sve_extend<mode><Vwide>2. |
| |
| 2019-08-14 Richard Biener <rguenther@suse.de> |
| |
| PR target/91154 |
| * config/i386/i386-features.c |
| (dimode_scalar_chain::compute_convert_gain): Compute and dump |
| individual instruction gain. Fix reg-reg copy GRP cost. Use |
| ix86_cost->sse_op for vector instruction costs. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/iterators.md (UNSPEC_COND_FCMUO): New unspec. |
| (cmp_op): Handle it. |
| (SVE_COND_FP_CMP): Rename to... |
| (SVE_COND_FP_CMP_I0): ...this. |
| (SVE_FP_CMP): Remove. |
| * config/aarch64/aarch64-sve.md |
| (*fcm<SVE_FP_CMP:cmp_op><SVE_F:mode>): Replace with... |
| (*fcm<SVE_COND_FP_CMP_I0:cmp_op><SVE_F:mode>): ...this new pattern, |
| using unspecs to represent the comparison. |
| (*fcmuo<SVE_F:mode>): Use UNSPEC_COND_FCMUO. |
| (*fcm<cmp_op><mode>_and_combine, *fcmuo<mode>_and_combine): Update |
| accordingly. |
| * config/aarch64/aarch64.c (aarch64_emit_sve_ptrue_op): Delete. |
| (aarch64_unspec_cond_code): Move after integer code. Handle |
| UNORDERED. |
| (aarch64_emit_sve_predicated_cond): Replace with... |
| (aarch64_emit_sve_fp_cond): ...this new function. |
| (aarch64_emit_sve_or_conds): Replace with... |
| (aarch64_emit_sve_or_fp_conds): ...this new function. |
| (aarch64_emit_sve_inverted_cond): Replace with... |
| (aarch64_emit_sve_invert_fp_cond): ...this new function. |
| (aarch64_expand_sve_vec_cmp_float): Update accordingly. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/iterators.md (SVE_HSD): New mode iterator. |
| (V_FP_EQUIV, v_fp_equiv): Handle VNx8HI and VNx8HF. |
| * config/aarch64/aarch64-sve.md (vcond<mode><v_fp_equiv>): Use |
| SVE_HSD instead of SVE_SD. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * config/aarch64/iterators.md (SVE_COND_FP_BINARY_REG): New int |
| iterator. |
| (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs1_operand): New int |
| attributes. |
| * config/aarch64/aarch64-sve.md (add<SVE_F:mode>3, sub<SVE_F:mode>3) |
| (mul<SVE_F:mode>3, div<SVE_F:mode>3) |
| (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Merge into... |
| (<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this new expander. |
| (*div<SVE_F:mode>3): Generalize to... |
| (*<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * config/aarch64/aarch64.md (SVE_RELAXED_GP, SVE_STRICT_GP): New |
| constants. |
| * config/aarch64/predicates.md (aarch64_sve_gp_strictness): New |
| predicate. |
| * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p): |
| Declare. |
| * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): New |
| function. |
| * config/aarch64/aarch64-sve.md: Add a block comment about the |
| handling of predicated FP operations. |
| (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2, add<SVE_F:mode>3) |
| (sub<SVE_F:mode>3, mul<SVE_F:mode>3, div<SVE_F:mode>3) |
| (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3) |
| (<SVE_COND_FP_MAXMIN_PUBLIC:maxmin_uns><SVE_F:mode>3) |
| (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): Add an SVE_RELAXED_GP |
| operand. |
| (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>) |
| (cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>): Add an SVE_STRICT_GP |
| operand. |
| (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2) |
| (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_2) |
| (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_3) |
| (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_any) |
| (*fabd<SVE_F:mode>3, *div<SVE_F:mode>3) |
| (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3) |
| (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4) |
| (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_2) |
| (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_4) |
| (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Match the |
| strictness operands. Use aarch64_sve_pred_dominates_p to check |
| whether the predicate on the conditional operation is suitable |
| for merging. Split patterns into the canonical equal-predicate form. |
| (*add<SVE_F:mode>3, *sub<SVE_F:mode>3, *mul<SVE_F:mode>3): Likewise. |
| Restrict the unpredicated alternatives to SVE_RELAXED_GP. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * config/aarch64/aarch64-sve.md (add<mode>3, *add<mode>3) |
| (sub<mode>3, *sub<mode>3, *fabd<mode>3, mul<mode>3, *mul<mode>3) |
| (div<mode>3, *div<mode>3): Use SVE_COND_FP_* unspecs instead of |
| rtx codes. |
| (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_3) |
| (*cond_<optab><mode>_any): Add the predicate to the SVE_COND_FP_* |
| unspecs. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * config/aarch64/aarch64-sve.md (bic<mode>3): Rename to... |
| (*bic<SVE_I:mode>3): ...this. Match the form that an SVE inverse |
| actually has, rather than relying on REG_EQUAL notes. |
| Make the insn operand order match the SVE operand order. |
| (*<nlogical><PRED_ALL:mode>3): Make the insn operand order match |
| the SVE operand order. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_target_reg): New function. |
| (aarch64_emit_set_immediate): Likewise. |
| (aarch64_ptrue_reg): Build a VNx16BI constant and then bitcast it. |
| (aarch64_pfalse_reg): Likewise. |
| (aarch64_convert_sve_data_to_pred): New function. |
| (aarch64_sve_move_pred_via_while): Take an optional target register |
| and the required register mode. |
| (aarch64_expand_sve_const_pred_1): New function. |
| (aarch64_expand_sve_const_pred): Likewise. |
| (aarch64_expand_mov_immediate): Build an all-true predicate |
| if the significant bits of the immediate are all true. Use |
| aarch64_expand_sve_const_pred for all compile-time predicate constants. |
| (aarch64_mov_operand_p): Force predicate constants to be VNx16BI |
| before register allocation. |
| * config/aarch64/aarch64-sve.md (*vec_duplicate<mode>_reg): Use |
| a VNx16BI PTRUE when splitting the memory alternative. |
| (vec_duplicate<mode>): Update accordingly. |
| (*pred_cmp<cmp_op><mode>): Rename to... |
| (@aarch64_pred_cmp<cmp_op><mode>): ...this. |
| |
| 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_ptrue_all): Declare. |
| * config/aarch64/aarch64.c (aarch64_ptrue_all): New function. |
| * config/aarch64/aarch64.md (UNSPEC_PTEST_PTRUE): Delete. |
| (UNSPEC_PTEST): New unspec. |
| (SVE_MAYBE_NOT_PTRUE, SVE_KNOWN_PTRUE): New constants. |
| * config/aarch64/iterators.md (data_bytes): New mode attribute. |
| * config/aarch64/predicates.md (aarch64_sve_ptrue_flag): New predicate. |
| * config/aarch64/aarch64-sve.md: Add a new section describing the |
| handling of UNSPEC_PTEST. |
| (pred_<LOGICAL:optab><PRED_ALL:mode>3): Rename to... |
| (@aarch64_pred_<LOGICAL:optab><PRED_ALL:mode>_z): ...this. |
| (ptest_ptrue<mode>): Replace with... |
| (aarch64_ptest<mode>): ...this new pattern. |
| (cbranch<mode>4): Update after above changes. |
| (*<LOGICAL:optab><PRED_ALL:mode>3_cc): Use UNSPEC_PTEST instead of |
| UNSPEC_PTEST_PTRUE. |
| (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_cc): Likewise. |
| (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_ptest): Likewise. |
| (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Likewise. |
| |
| 2019-08-14 Xiong Hu Luo <luoxhu@linux.ibm.com> |
| |
| PR lto/91287 |
| * builtins.c (builtin_with_linkage_p): New function. |
| * builtins.h (builtin_with_linkage_p): New function. |
| * symtab.c (write_symbol): Remove redundant assert. |
| * lto-streamer-out.c (symtab_node::output_to_lto_symbol_table_p): |
| Remove FIXME and use builtin_with_linkage_p. |
| |
| 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR middle-end/91421 |
| * tree-core.h (function_decl::function_code): Change type to |
| unsigned int. |
| * tree.h (DECL_FUNCTION_CODE): Rename old definition to... |
| (DECL_UNCHECKED_FUNCTION_CODE): ...this. |
| (DECL_BUILT_IN_CLASS): Make an rvalue macro only. |
| (DECL_FUNCTION_CODE): New function. Assert that the built-in class |
| is BUILT_IN_NORMAL. |
| (DECL_MD_FUNCTION_CODE, DECL_FE_FUNCTION_CODE): New functions. |
| (set_decl_built_in_function, copy_decl_built_in_function): Likewise. |
| (fndecl_built_in_p): Change the type of the "name" argument to |
| unsigned int. |
| * builtins.c (expand_builtin): Move DECL_FUNCTION_CODE use |
| after check for DECL_BUILT_IN_CLASS. |
| * cgraphclones.c (build_function_decl_skip_args): Use |
| set_decl_built_in_function. |
| * ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise. |
| * ipa-split.c (split_function): Likewise. |
| * langhooks.c (add_builtin_function_common): Likewise. |
| * omp-simd-clone.c (simd_clone_create): Likewise. |
| * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise. |
| * config/darwin.c (darwin_init_cfstring_builtins): Likewise. |
| (darwin_fold_builtin): Use DECL_MD_FUNCTION_CODE instead of |
| DECL_FUNCTION_CODE. |
| * fold-const.c (operand_equal_p): Compare DECL_UNCHECKED_FUNCTION_CODE |
| instead of DECL_FUNCTION_CODE. |
| * lto-streamer-out.c (hash_tree): Use DECL_UNCHECKED_FUNCTION_CODE |
| instead of DECL_FUNCTION_CODE. |
| * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise. |
| * print-tree.c (print_node): Use DECL_MD_FUNCTION_CODE when |
| printing DECL_BUILT_IN_MD. Handle DECL_BUILT_IN_FRONTEND. |
| * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin) |
| (aarch64_fold_builtin, aarch64_gimple_fold_builtin): Use |
| DECL_MD_FUNCTION_CODE instead of DECL_FUNCTION_CODE. |
| * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise. |
| * config/alpha/alpha.c (alpha_expand_builtin, alpha_fold_builtin): |
| (alpha_gimple_fold_builtin): Likewise. |
| * config/arc/arc.c (arc_expand_builtin): Likewise. |
| * config/arm/arm-builtins.c (arm_expand_builtin): Likewise. |
| * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise. |
| * config/avr/avr.c (avr_expand_builtin, avr_fold_builtin): Likewise. |
| * config/bfin/bfin.c (bfin_expand_builtin): Likewise. |
| * config/c6x/c6x.c (c6x_expand_builtin): Likewise. |
| * config/frv/frv.c (frv_expand_builtin): Likewise. |
| * config/gcn/gcn.c (gcn_expand_builtin_1): Likewise. |
| (gcn_expand_builtin): Likewise. |
| * config/i386/i386-builtins.c (ix86_builtin_reciprocal): Likewise. |
| (fold_builtin_cpu): Likewise. |
| * config/i386/i386-expand.c (ix86_expand_builtin): Likewise. |
| * config/i386/i386.c (ix86_fold_builtin): Likewise. |
| (ix86_gimple_fold_builtin): Likewise. |
| * config/ia64/ia64.c (ia64_fold_builtin): Likewise. |
| (ia64_expand_builtin): Likewise. |
| * config/iq2000/iq2000.c (iq2000_expand_builtin): Likewise. |
| * config/mips/mips.c (mips_expand_builtin): Likewise. |
| * config/msp430/msp430.c (msp430_expand_builtin): Likewise. |
| * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise. |
| * config/nios2/nios2.c (nios2_expand_builtin): Likewise. |
| * config/nvptx/nvptx.c (nvptx_expand_builtin): Likewise. |
| * config/pa/pa.c (pa_expand_builtin): Likewise. |
| * config/pru/pru.c (pru_expand_builtin): Likewise. |
| * config/riscv/riscv-builtins.c (riscv_expand_builtin): Likewise. |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): |
| Likewise. |
| * config/rs6000/rs6000-call.c (htm_expand_builtin): Likewise. |
| (altivec_expand_dst_builtin, altivec_expand_builtin): Likewise. |
| (rs6000_gimple_fold_builtin, rs6000_expand_builtin): Likewise. |
| * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function) |
| (rs6000_builtin_reciprocal): Likewise. |
| * config/rx/rx.c (rx_expand_builtin): Likewise. |
| * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise. |
| * config/s390/s390.c (s390_expand_builtin): Likewise. |
| * config/sh/sh.c (sh_expand_builtin): Likewise. |
| * config/sparc/sparc.c (sparc_expand_builtin): Likewise. |
| (sparc_fold_builtin): Likewise. |
| * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise. |
| * config/spu/spu.c (spu_expand_builtin): Likewise. |
| * config/stormy16/stormy16.c (xstormy16_expand_builtin): Likewise. |
| * config/tilegx/tilegx.c (tilegx_expand_builtin): Likewise. |
| * config/tilepro/tilepro.c (tilepro_expand_builtin): Likewise. |
| * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise. |
| (xtensa_expand_builtin): Likewise. |
| |
| 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR middle-end/91421 |
| * attribs.c (decl_attributes): Check the DECL_BUILT_IN_CLASS |
| before the DECL_FUNCTION_CODE. |
| * calls.c (maybe_warn_alloc_args_overflow): Use fndecl_built_in_p |
| to check for a BUILT_IN_ALLOCA call. |
| * ipa-cp.c (ipa_get_indirect_edge_target_1): Likewise for |
| BUILT_IN_UNREACHABLE. Don't check for a FUNCTION_TYPE. |
| * ipa-devirt.c (possible_polymorphic_call_target_p): Likewise. |
| * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise. |
| * gimple-ssa-isolate-paths.c (is_addr_local): Check specifically |
| for BUILT_IN_NORMAL functions. |
| * trans-mem.c (expand_block_edges): Use gimple_call_builtin_p to |
| test for BUILT_IN_TM_ABORT. |
| * tree-ssa-ccp.c (optimize_stack_restore): Use fndecl_built_in_p |
| to check for a BUILT_IN_STACK_RESTORE call. |
| (optimize_stdarg_builtin): Remove redundant check for GIMPLE_CALL. |
| * tree-ssa-threadedge.c |
| (record_temporary_equivalences_from_stmts_at_dest): Check for a |
| BUILT_IN_NORMAL decl before checking its DECL_FUNCTION_CODE. |
| * tree-vect-patterns.c (vect_recog_pow_pattern): Use a positive |
| test for a BUILT_IN_NORMAL call instead of a negative test for |
| an internal function call. |
| |
| 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree.h (build_vector_a_then_b): Declare. |
| * tree.c (build_vector_a_then_b): New function. |
| * fold-const-call.c (fold_while_ult): Likewise. |
| (fold_const_call): Use it to handle IFN_WHILE_ULT. |
| * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPATTERN): New macro. |
| (aarch64_svpattern): New enum. |
| * config/aarch64/aarch64-sve.md (mov<PRED_ALL:mode>): Pass |
| constants through aarch64_expand_mov_immediate. |
| (*aarch64_sve_mov<PRED_ALL:mode>): Use aarch64_mov_operand rather |
| than general_operand as the predicate for operand 1. |
| (while_ult<GPI:mode><PRED_ALL:mode>): Add a '@' marker. |
| * config/aarch64/aarch64.c (simd_immediate_info::PTRUE): New |
| insn_type. |
| (simd_immediate_info::simd_immediate_info): New overload that |
| takes a scalar_int_mode and an svpattern. |
| (simd_immediate_info::u): Add a "pattern" field. |
| (svpattern_token): New function. |
| (aarch64_get_sve_pred_bits, aarch64_widest_sve_pred_elt_size) |
| (aarch64_partial_ptrue_length, aarch64_svpattern_for_vl) |
| (aarch64_sve_move_pred_via_while): New functions. |
| (aarch64_expand_mov_immediate): Try using |
| aarch64_sve_move_pred_via_while for predicates that contain N ones |
| followed by M zeros but that do not correspond to a VLnnn pattern. |
| (aarch64_sve_pred_valid_immediate): New function. |
| (aarch64_simd_valid_immediate): Use it instead of dealing directly |
| with PTRUE and PFALSE. |
| (aarch64_output_sve_mov_immediate): Handle new simd_immediate_info |
| forms. |
| |
| 2019-08-13 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c (machopic_indirect_call_target): Rename symbol stub |
| flag. |
| (darwin_override_options): Likewise. |
| * config/darwin.h: Likewise. |
| * config/darwin.opt: Likewise. |
| * config/i386/i386.c (output_pic_addr_const): Likewise. |
| * config/rs6000/darwin.h: Likewise. |
| * config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise. |
| * config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ... |
| ... this TARGET_MACHO_SYMBOL_STUBS. |
| (FUNCTION_PROFILER):Likewise. |
| * config/i386/i386.h: Likewise. |
| |
| 2019-08-13 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-expand.c (ix86_expand_vector_extract) |
| <case E_V2SImode>: Use vec_extr path for |
| TARGET_MMX_WITH_SSE && TARGET_SSE4_1. |
| <case E_V8QImode>: Ditto. |
| * config/i386/mmx.md (*mmx_pextrw_zext): Rename from mmx_pextrw. |
| Use SWI48 mode iterator. Use %k to output operand 0. |
| (*mmx_pextrw): New insn pattern. |
| (*mmx_pextrb): Ditto. |
| (*mmx_pextrb_zext): Ditto. |
| |
| 2019-08-13 Jonathan Wakely <jwakely@redhat.com> |
| |
| * target.def (libc_has_function, libc_has_fast_function): Improve |
| documentation strings. |
| * doc/tm.texi: Regenerate. |
| |
| 2019-08-13 Caroline Tice <cmtice@google.com> |
| |
| PR other/91396 |
| * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Only add the |
| vtv_end.o or vtv_end_preinit.o files if !static. |
| |
| 2019-08-13 Olivier Hainque <hainque@adacore.com> |
| |
| * rtl.h (tablejump_casesi_pattern): Move declaration to proper spot. |
| |
| 2019-08-13 Olivier Hainque <hainque@adacore.com> |
| |
| * rtlanal.c (tablejump_casesi_pattern): New function, to |
| determine if a tablejump insn is a casesi dispatcher. Extracted |
| from patch_jump_insn. |
| * rtl.h (tablejump_casesi_pattern): Declare. |
| * cfgrtl.c (patch_jump_insn): Use it. |
| * dwarf2cfi.c (create_trace_edges): Use it. |
| |
| 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR target/81800 |
| * gcc/config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF |
| operand is larger than a long int. |
| |
| 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * machmode.h (opt_mode::else_mode): New function. |
| (opt_mode::else_blk): Use it. |
| * config/aarch64/aarch64-protos.h (aarch64_vq_mode): Declare. |
| (aarch64_full_sve_mode, aarch64_sve_ld1rq_operand_p): Likewise. |
| (aarch64_gen_stepped_int_parallel): Likewise. |
| (aarch64_stepped_int_parallel_p): Likewise. |
| (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate |
| argument. |
| * config/aarch64/aarch64.c |
| (aarch64_expand_sve_widened_duplicate): Delete. |
| (aarch64_expand_sve_dupq, aarch64_expand_sve_ld1rq): New functions. |
| (aarch64_expand_sve_const_vector): Rewrite to handle more cases. |
| (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate |
| argument. Use early returns in the !CONST_INT_P handling. |
| Pass all SVE data vectors to aarch64_expand_sve_const_vector rather |
| than handling some inline. |
| (aarch64_full_sve_mode, aarch64_vq_mode): New functions, split out |
| from... |
| (aarch64_simd_container_mode): ...here. |
| (aarch64_gen_stepped_int_parallel, aarch64_stepped_int_parallel_p) |
| (aarch64_sve_ld1rq_operand_p): New functions. |
| * config/aarch64/predicates.md (descending_int_parallel) |
| (aarch64_sve_ld1rq_operand): New predicates. |
| * config/aarch64/constraints.md (UtQ): New constraint. |
| * config/aarch64/aarch64.md (UNSPEC_REINTERPRET): New unspec. |
| * config/aarch64/aarch64-sve.md (mov<SVE_ALL:mode>): Remove the |
| gen_vec_duplicate from call to aarch64_expand_mov_immediate. |
| (@aarch64_sve_reinterpret<mode>): New expander. |
| (*aarch64_sve_reinterpret<mode>): New pattern. |
| (@aarch64_vec_duplicate_vq<mode>_le): New pattern. |
| (@aarch64_vec_duplicate_vq<mode>_be): Likewise. |
| (*sve_ld1rq<Vesize>): Replace with... |
| (@aarch64_sve_ld1rq<mode>): ...this new pattern. |
| |
| 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (generic_tunings): Set function alignment to |
| 16:12. |
| |
| 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config/msp430/driver-msp430.c (msp430_set_driver_var): New. |
| * config/msp430/msp430-devices.c (canonicalize_path_dirsep): New. |
| (msp430_check_path_for_devices): New. |
| (parse_devices_csv_1): New. |
| (parse_devices_csv): New. |
| (msp430_extract_mcu_data): Try to find devices.csv and search for the |
| MCU data in devices.csv before using the hard-coded data. |
| Warn if devices.csv isn't found and the MCU wasn't found in the |
| hard-coded data either. |
| * config/msp430/msp430.h (DRIVER_SELF_SPECS): Call |
| msp430_set_driver_var for -mno-warn-devices-csv and -mdevices-csv-loc. |
| Search for devices.csv on -I and -L paths. |
| (EXTRA_SPEC_FUNCTIONS): Add msp430_check_path_for_devices and |
| msp430_set_driver_var. |
| * config/msp430/msp430.opt: Add -mwarn-devices-csv and |
| -mdevices-csv-loc=. |
| * doc/invoke.texi (-mmcu): Document that -I and -L paths are |
| searched for devices.csv. |
| (mwarn-devices-csv): Document option. |
| |
| 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_output_ptrue): Delete. |
| * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<PRED_ALL:mode>): |
| Use a single Dn alternative instead of separate Dz and Dm |
| alternatives. Use aarch64_output_sve_move_immediate. |
| * config/aarch64/aarch64.c (aarch64_sve_element_int_mode): New |
| function. |
| (aarch64_simd_valid_immediate): Fill in the simd_immediate_info |
| for predicates too. |
| (aarch64_output_sve_mov_immediate): Handle predicate modes. |
| (aarch64_output_ptrue): Delete. |
| |
| 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (simd_immediate_info::insn_type): Add |
| INDEX. |
| (simd_immediate_info::value, simd_immediate_info::step) |
| (simd_immediate_info::modifier, simd_immediate_info::shift): Replace |
| with... |
| (simd_immediate_info::u): ...this new union. |
| (simd_immediate_info::simd_immediate_info): Update accordingly. |
| (aarch64_output_simd_mov_immediate): Likewise. |
| (aarch64_output_sve_mov_immediate): Likewise. |
| |
| 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config.gcc (msp430*-*-*): Add msp430-devices.o to extra_objs and |
| extra_gcc_objs. |
| * config/msp430/driver-msp430.c: Remove msp430_mcu_data. |
| (msp430_select_cpu): New spec function. |
| (msp430_select_hwmult_lib): Use msp430_extract_mcu_data to extract |
| MCU data. |
| * config/msp430/msp430-devices.c: New file. |
| * config/msp430/msp430-devices.h: New file. |
| * config/msp430/msp430.c: Remove msp430_mcu_data. |
| (msp430_option_override): Use msp430_extract_mcu_data to extract |
| MCU data. |
| (msp430_use_f5_series_hwmult): Likewise. |
| (use_32bit_hwmult): Likewise. |
| (msp430_no_hwmult): Likewise. |
| * config/msp430/msp430.h (ASM_SPEC): Don't pass -mmcu to the |
| assembler. |
| (DRIVER_SELF_SPECS): Call msp430_select_cpu if -mmcu is used without |
| and -mcpu option. |
| (EXTRA_SPEC_FUNCTIONS): Add msp430_select_cpu. |
| * config/msp430/t-msp430: Add rule to build msp430-devices.o. |
| Remove hard-coded MCU multilib data. |
| |
| 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Switch |
| based on the mode instead of testing properties of it. |
| |
| 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/md.texi: Document the x and y constraints for AArch64. |
| * config/aarch64/aarch64.h (FP_LO8_REGNUM_P): New macro. |
| (FP_LO8_REGS): New reg_class. |
| (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add an entry for FP_LO8_REGS. |
| * config/aarch64/aarch64.c (aarch64_hard_regno_nregs) |
| (aarch64_regno_regclass, aarch64_class_max_nregs): Handle FP_LO8_REGS. |
| * config/aarch64/predicates.md (aarch64_simd_register): Use |
| FP_REGNUM_P instead of checking the classes manually. |
| * config/aarch64/constraints.md (y): New constraint. |
| |
| 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/iterators.md (perm_insn): Include the "1"/"2" suffix. |
| (perm_hilo): Remove UNSPEC_ZIP*, UNSEPC_TRN* and UNSPEC_UZP*. |
| * config/aarch64/aarch64-simd.md |
| (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Rename to.. |
| (aarch64_<PERMUTE:perm_insn><mode>): ...this and remove perm_hilo |
| from the asm template. |
| * config/aarch64/aarch64-sve.md |
| (aarch64_<perm_insn><perm_hilo><PRED_ALL:mode>): Rename to.. |
| (aarch64_<perm_insn><PRED_ALL:mode>): ...this and remove perm_hilo |
| from the asm template. |
| (aarch64_<perm_insn><perm_hilo><SVE_ALL:mode>): Rename to.. |
| (aarch64_<perm_insn><SVE_ALL:mode>): ...this and remove perm_hilo |
| from the asm template. |
| * config/aarch64/aarch64-simd-builtins.def: Update comment. |
| |
| 2019-08-13 Martin Liska <mliska@suse.cz> |
| |
| * value-prof.c (gimple_ic_transform): Add new line. |
| Print details with MSG_NOTE. |
| |
| 2019-08-13 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Document automatic detection of jobserver. |
| * lto-wrapper.c (run_gcc): Detect jobserver always. |
| |
| 2019-08-13 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-expand.c (ix86_expand_vector_set) |
| <case E_V2SImode>: Use vec_merge path for |
| TARGET_MMX_WITH_SSE && TARGET_SSE4_1. |
| <case E_V8QImode>: Ditto. |
| * config/i386/mmx.md (*mmx_pinsrd): New insn pattern. |
| (*mmx_pinsrb): Ditto. |
| |
| 2019-08-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/83250 |
| PR target/91340 |
| * config/i386/avxintrin.h (_mm256_zextpd128_pd256, |
| _mm256_zextps128_ps256, _mm256_zextsi128_si256): New intrinsics. |
| * config/i386/avx512fintrin.h (_mm512_zextpd128_pd512, |
| _mm512_zextps128_ps512, _mm512_zextsi128_si512, _mm512_zextpd256_pd512, |
| _mm512_zextps256_ps512, _mm512_zextsi256_si512): Likewise. |
| |
| 2019-08-12 Richard Biener <rguenther@suse.de> |
| |
| PR lto/91375 |
| * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on |
| flag_devirtualize. |
| |
| 2019-08-12 Richard Biener <rguenther@suse.de> |
| |
| PR driver/91130 |
| * lto-wrapper.c (get_options_from_collect_gcc_options): Remove |
| lang_mask option, always use CL_DRIVER. |
| (get_options_from_collect_gcc_options): Adjust. |
| (find_and_merge_options): Likewise. |
| (run_gcc): Likewise. |
| |
| 2019-08-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * ipa-predicate.c (add_condition): Restore inverted test. |
| |
| 2019-08-10 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DEVICE_TYPE. |
| (enum omp_clause_device_type_kind): New enum. |
| (struct tree_omp_clause): Add subcode.device_type_kind. |
| * tree.h (OMP_CLAUSE_DEVICE_TYPE_KIND): Define. |
| * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries |
| for device_type clause. |
| (walk_tree_1): Handle OMP_CLAUSE_DEVICE_TYPE. |
| * tree-pretty-print.c (dump_omp_clause): Likewise. |
| |
| PR target/91408 |
| * config/i386/mmx.md (usadv8qi): Use register_operand instead of |
| vector_operand. |
| |
| 2019-08-09 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * reload1.c (finish_spills): Do not check ira_conflicts_p when |
| handling spilled pseudos. |
| |
| 2019-08-09 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/91386 |
| * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Use copy_rtx |
| to preserve the contents of the original insns. |
| |
| 2019-08-09 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.md (addsi3_compare_op1): Add 16-bit thumb-2 variants. |
| (addsi3_compare_op2): Likewise. |
| |
| 2019-08-09 Martin Liska <mliska@suse.cz> |
| |
| * alias.c (alias_ptr_types_compatible_p): Strengten |
| type comparison in LTO mode. |
| |
| 2019-08-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR middle-end/90313 |
| * tree-tailcall.c (find_tail_calls): Reject calls that might |
| read from an escaped RESULT_DECL. |
| |
| 2019-08-09 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Document the option value. |
| * lto-wrapper.c (run_gcc): Set auto_parallel |
| only with -flto=auto. |
| |
| 2019-08-09 Martin Liska <mliska@suse.cz> |
| |
| * opts.c (common_handle_option): Error for an invalid argument |
| to -flto=. |
| |
| 2019-08-09 Martin Liska <mliska@suse.cz> |
| |
| * ipa-icf.c (sem_function::merge): Define AUTO_DUMP_SCOPE and |
| use dump_printf to report optimization. |
| (sem_variable::merge): Likwise. |
| (sem_item_optimizer::merge_classes): Use dump_printf to report |
| ICF hits. |
| |
| 2019-08-09 Martin Liska <mliska@suse.cz> |
| |
| * value-prof.c (gimple_divmod_fixed_value_transform): |
| Use dump_printf_loc. |
| (gimple_mod_pow2_value_transform): Likewise. |
| (gimple_mod_subtract_transform): Likewise. |
| (init_node_map): Likewise. |
| (gimple_ic_transform): Likewise. |
| (gimple_stringops_transform): Likewise. |
| |
| 2019-08-08 Mihailo Stojanovic <mistojanovic@wavecomp.com> |
| |
| * doc/extend.texi: Add const qualifier to ld intrinsics. |
| |
| 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/dfp.md (D64_D128): Rename to ... |
| (DDTD): ... this, throughout. |
| (dfp_suffix): Rename to ... |
| (q): ... this, throughout. |
| |
| 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/dfp.md (D64_D128): Move earlier in the file. |
| (dfp_suffix): Ditto. |
| (adddd3, addtd3): Merge to ... |
| (add<mode>3 for D64_D128): ... this. |
| (subdd3, subtd3): Merge to ... |
| (sub<mode>3 for D64_D128): ... this. |
| (muldd3, multd3): Merge to ... |
| (mul<mode>3 for D64_D128): ... this. |
| (divdd3, divtd3): Merge to ... |
| (div<mode>3 for D64_D128): ... this. |
| (*cmpdd_internal1, *cmptd_internal1): Merge to ... |
| (*cmp<mode>_internal1 for D64_D128): ... this. |
| (ftruncdd2, ftrunctd2): Merge to ... |
| (ftrunc<mode>2 for D64_D128): ... this. |
| (fixdddi2, fixtddi2): Merge to ... |
| (fix<mode>di2 for D64_D128): ... this. |
| |
| 2019-08-08 Jim Wilson <jimw@sifive.com> |
| |
| PR target/91229 |
| * config/riscv/riscv.c (riscv_flatten_aggregate_field): New arg |
| ignore_zero_width_bit_field_p. Skip zero size bitfields when true. |
| Pass into recursive call. |
| (riscv_flatten_aggregate_argument): New arg. Pass to |
| riscv_flatten_aggregate_field. |
| (riscv_pass_aggregate_in_fpr_pair_p): New local warned. Call |
| riscv_flatten_aggregate_argument twice, with false and true as last |
| arg. Process result twice. Compare results and warn if different. |
| (riscv_pass_aggregate_in_fpr_and_gpr_p): Likewise. |
| |
| 2019-08-08 Martin Liska <mliska@suse.cz> |
| |
| PR bootstrap/91352 |
| * gcc.c (driver::detect_jobserver): Use is_valid_fd. |
| * lto-wrapper.c (jobserver_active_p): Likewise. |
| |
| 2019-08-08 Martin Liska <mliska@suse.cz> |
| |
| * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop |
| IS_OPERATOR_NEW and IS_OPERATOR_DELETE. |
| (create_version_clone_with_body): Likewise. |
| |
| 2019-08-08 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.c (omp_add_variable): Use GOVD_PRIVATE | GOVD_EXPLICIT |
| for VLA helper variables on target data even if not GOVD_FIRSTPRIVATE. |
| (gimplify_scan_omp_clauses): For OMP_CLAUSE_USE_DEVICE_* use just |
| GOVD_EXPLICIT flags. |
| (gimplify_omp_workshare): For OMP_TARGET_DATA move all |
| OMP_CLAUSE_USE_DEVICE_* clauses to the end of clauses chain. |
| * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_USE_DEVICE_* |
| call install_var_field with mask 11 instead of 3. |
| (lower_omp_target): For OMP_CLAUSE_USE_DEVICE_* use pass |
| (splay_tree_key) &DECL_UID (var) to build_sender_ref instead of var. |
| |
| 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/constraints.md (Z): Handle floating-point zeros too. |
| * config/aarch64/predicates.md (aarch64_reg_or_zero): Likewise. |
| |
| 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): Add |
| MOVPRFX alternatives. Make the GPR alternatives more expensive |
| than the FPR ones. |
| |
| 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (fold_extract_last_<mode>): |
| Disparage the GPR alternative relative to the FPR one. |
| Fix handling of 8-bit and 16-bit FPR values. |
| |
| 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/iterators.md (BITWISEV): Delete. |
| (SVE_INT_REDUCTION, SVE_FP_REDUCTION): New int iterators. |
| (optab): Handle UNSPEC_UMAXV, UNSPEC_UMINV, UNSPEC_SMAXV, |
| UNSPEC_SMINV, UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV, |
| UNSPEC_FMINNMV, UNSPEC_FMINV. |
| (bit_reduc_op): Delete. |
| (sve_int_op): New int attribute. |
| (sve_fp_op): Handle UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV, |
| UNSPEC_FMINNMV, UNSPEC_FMINV. |
| * config/aarch64/aarch64-sve.md |
| (reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>) |
| (*reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>) |
| (reduc_<BITWISEV:optab>_scal_<SVE_I:mode>) |
| (*reduc_<BITWISEV:optab>_scal_<SVE_I:mode>): Merge into... |
| (reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>) |
| (*reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>): ...these |
| new patterns. |
| (reduc_plus_scal_<SVE_F:mode>, *reduc_plus_scal_<SVE_I:mode>) |
| (reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>) |
| (*reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>): Merge into... |
| (reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>) |
| (*reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>): ...these |
| new patterns. |
| |
| 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (fma<mode>4, *fma<mode>4) |
| (fnma<mode>4, *fnma<mode>4, fnms<mode>4, *fnms<mode>4) |
| (fms<mode>4, *fms<mode>4): Replace with... |
| (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4) |
| (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): ...these new patterns. |
| Use unspecs instead of rtx codes. |
| (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_4) |
| (*cond_<optab><mode>_any): Add the predicate to SVE_COND_FP_TERNARY. |
| |
| 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/iterators.md (SVE_COND_FP_MAXMIN_PUBLIC): New |
| int iterator. |
| (maxmin_uns_op): Handle UNSPEC_COND_FMAXNM and UNSPEC_COND_FMINNM. |
| * config/aarch64/aarch64-sve.md |
| (<FMAXMIN:su><FMAXMIN:maxmin><SVE_F:mode>3): Rename to... |
| (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): ...this and |
| use a single unspec for the rhs. |
| (*<su><maxmin><mode>3): Delete. |
| (<maxmin_uns><SVE_F:mode>3): Use a single unspec for the rhs. |
| |
| 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/iterators.md (UNSPEC_COND_FABS, UNSPEC_COND_FNEG) |
| (UNSPEC_COND_FRINTA, UNSPEC_COND_FRINTI, UNSPEC_COND_FRINTM) |
| (UNSPEC_COND_FRINTN, UNSPEC_COND_FRINTP, UNSPEC_COND_FRINTX) |
| (UNSPEC_COND_FRINTZ, UNSPEC_COND_FSQRT): New unspecs. |
| (optab, sve_fp_op): Handle them. |
| (SVE_FP_UNARY): Delete. |
| (optab): Remove sqrt entry. |
| (sve_fp_op): Remove neg, abs and sqrt entries. |
| (SVE_COND_FP_UNARY): New int iterator. |
| * config/aarch64/aarch64-sve.md (<frint_pattern><mode>2) |
| (*<frint_pattern><mode>2): Delete. |
| (<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with... |
| (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this. |
| (*<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with... |
| (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this. |
| |
| 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (*pred_fold_left_plus_<mode>): Delete. |
| |
| 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/iterators.md (UNSPEC_COND_ADD): Rename to... |
| (UNSPEC_COND_FADD): ...this. |
| (UNSPEC_COND_SUB): Rename to... |
| (UNSPEC_COND_FSUB): ...this. |
| (UNSPEC_COND_MUL): Rename to... |
| (UNSPEC_COND_FMUL): ...this. |
| (UNSPEC_COND_DIV): Rename to... |
| (UNSPEC_COND_FDIV): ...this. |
| (UNSPEC_COND_MAX): Rename to... |
| (UNSPEC_COND_FMAXNM): ...this. |
| (UNSPEC_COND_MIN): Rename to... |
| (UNSPEC_COND_FMINNM): ...this. |
| (UNSPEC_COND_LT): Rename to... |
| (UNSPEC_COND_FCMLT): ...this. |
| (UNSPEC_COND_LE): Rename to... |
| (UNSPEC_COND_FCMLE): ...this. |
| (UNSPEC_COND_EQ): Rename to... |
| (UNSPEC_COND_FCMEQ): ...this. |
| (UNSPEC_COND_NE): Rename to... |
| (UNSPEC_COND_FCMNE): ...this. |
| (UNSPEC_COND_GE): Rename to... |
| (UNSPEC_COND_FCMGE): ...this. |
| (UNSPEC_COND_GT): Rename to... |
| (UNSPEC_COND_FCMGT): ...this. |
| (SVE_COND_FP_BINARY, SVE_COND_FP_CMP, optab, cmp_op, sve_fp_op) |
| (sve_fp_op_rev): Update accordingly. |
| * config/aarch64/aarch64.c (aarch64_unspec_cond_code): Likewise. |
| |
| 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md: Reorganize contents and add |
| banner comments. |
| * config/aarch64/check-sve-md.awk: New file. |
| * config/aarch64/t-aarch64 (s-check-sve-md): New rule. |
| (insn-conditions.md): Depend on it. |
| |
| 2019-08-07 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/91385 |
| * config/i386/sse.md (*negsi2_1_zext): Simplify insn pattern. |
| (*negsi2_cmpz_zext): Ditto. |
| |
| 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/iterators.md (commutative): Remove. |
| |
| 2019-08-07 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR driver/91130 |
| * lto-wrapper.c (find_and_merge_options): Use CL_DRIVER when |
| processing COLLECT_GCC_OPTIONS. |
| (run_gcc): Likewise. |
| |
| 2019-08-07 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR tree-optimization/91109 |
| * lra-remat.c (update_scratch_ops): Remove assignment of the |
| hard register. |
| |
| 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * data-streamer.h (streamer_write_poly_uint64): Declare. |
| (streamer_read_poly_uint64): Likewise. |
| * data-streamer-in.c (streamer_read_poly_uint64): New function. |
| * data-streamer-out.c (streamer_write_poly_uint64): Likewise. |
| * ipa-predicate.h (condition::size): Turn into a poly_int64. |
| (add_condition): Take a poly_int64 size. |
| * ipa-predicate.c (add_condition): Likewise. |
| * ipa-prop.h (ipa_load_from_parm_agg): Take a poly_int64 size pointer. |
| * ipa-prop.c (ipa_load_from_parm_agg): Likewise. |
| (ipcp_modif_dom_walker::before_dom_children): Update accordingly. |
| * ipa-fnsummary.c (evaluate_conditions_for_known_args): Handle |
| condition::size as a poly_int64. |
| (unmodified_parm_1): Take a poly_int64 size pointer. |
| (unmodified_parm): Likewise. |
| (unmodified_parm_or_parm_agg_item): Likewise. |
| (set_cond_stmt_execution_predicate): Update accordingly. |
| (set_switch_stmt_execution_predicate): Likewise. |
| (will_be_nonconstant_expr_predicate): Likewise. |
| (will_be_nonconstant_predicate): Likewise. |
| (inline_read_section): Stream condition::size as a poly_int. |
| (ipa_fn_summary_write): Likewise. |
| |
| 2019-08-07 Martin Liska <mliska@suse.cz> |
| |
| * fold-const.c (twoval_comparison_p): Replace int |
| with bool as a return type. |
| (simple_operand_p): Likewise. |
| (operand_equal_p): Replace int with bool as a return type. |
| * fold-const.h (operand_equal_p): Likewise. |
| |
| 2019-08-07 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-core.h (enum omp_clause_code): Adjust OMP_CLAUSE_USE_DEVICE_PTR |
| OpenMP description. Add OMP_CLAUSE_USE_DEVICE_ADDR clause. |
| * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries |
| for OMP_CLAUSE_USE_DEVICE_ADDR clause. |
| (walk_tree_1): Handle OMP_CLAUSE_USE_DEVICE_ADDR. |
| * tree-pretty-print.c (dump_omp_clause): Likewise. |
| * tree-nested.c (convert_nonlocal_omp_clauses, |
| convert_local_omp_clauses): Likewise. |
| * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): |
| Likewise. |
| * omp-low.c (scan_sharing_clauses, lower_omp_target): Likewise. |
| Treat OMP_CLAUSE_USE_DEVICE_ADDR like OMP_CLAUSE_USE_DEVICE_PTR |
| clause with array or reference to array types, no matter what type |
| except for reference it has. |
| |
| 2019-08-07 Kewen Lin <linkw@gcc.gnu.org> |
| |
| * config/rs6000/vector.md (vrotr<mode>3): New define_expand. |
| |
| 2019-08-07 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/multilib-generator: (canonical_order): Add 'g'. |
| (arch_canonicalize): Support rv32g and rv64g and fix error |
| handling. |
| |
| 2019-08-06 Martin Liska <mliska@suse.cz> |
| |
| * cgraph.c (cgraph_node::dump): Dump DECL_IS_OPERATOR_NEW_P |
| and DECL_IS_OPERATOR_DELETE_P. |
| |
| 2019-08-06 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.h (OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV): Rename to ... |
| (OMP_CLAUSE_LASTPRIVATE_LOOP_IV): ... this. Adjust comment. |
| * gimplify.c (gimple_add_tmp_var): In SIMD contexts, turn addressable |
| new vars into GOVD_PRIVATE rather than GOVD_LOCAL. |
| (gimplify_omp_for): Don't do C++ random access iterator clause |
| adjustments on combined constructs from OMP_LOOP. For OMP_LOOP, |
| don't predetermine the artificial iterator in case of C++ random |
| access iterators as lastprivate, but private. For OMP_LOOP, force |
| bind expr around simd body and force for_pre_body before the |
| construct. Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV instead of |
| OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV. |
| (gimplify_omp_loop): Add firstprivate clauses on OMP_PARALLEL for |
| diff var of C++ random access iterators. Handle |
| OMP_CLAUSE_FIRSTPRIVATE. For OMP_CLAUSE_LASTPRIVATE_LOOP_IV, if |
| not outermost also add OMP_CLAUSE_FIRSTPRIVATE, and in both cases |
| clear OMP_CLAUSE_LASTPRIVATE_LOOP_IV on the lastprivate clause |
| on the OMP_FOR and OMP_DISTRIBUTE constructs if any. |
| * omp-low.c (lower_rec_input_clauses): For |
| OMP_CLAUSE_LASTPRIVATE_LOOP_IV on simd copy construct the private |
| variables instead of default constructing them. |
| (lower_lastprivate_clauses): Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV |
| instead of OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV and move the |
| is_taskloop_ctx check from the assert to the guarding condition. |
| |
| 2019-08-06 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/multilib-generator: (canonical_order): New. |
| (arch_canonicalize): Dito. |
| Apply arch_canonicalize for alts. |
| |
| 2019-08-05 Martin Sebor <msebor@redhat.com> |
| |
| * doc/extend.texi (Common Variable Attributes): Document alias |
| attribute. |
| |
| 2019-08-05 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/91338 - Implement P1161R3: Deprecate a[b,c]. |
| * doc/invoke.texi: Document -Wcomma-subscript. |
| |
| 2019-08-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-core.h (tree_function_decl): Make function_code an |
| independent field. Group the remaining bitfields into bytes |
| and move decl_type so that it contines to be at a byte boundary. |
| Leave 12 bits for future expansion. |
| |
| 2019-08-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * gimple-fold.c (gimple_fold_mask_load_store_mem_ref) |
| (gimple_fold_mask_load, gimple_fold_mask_store): New functions. |
| (gimple_fold_call): Use them to fold IFN_MASK_LOAD and |
| IFN_MASK_STORE. |
| |
| 2019-08-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * gimple.h (gimple_move_vops): Declare. |
| * gimple.c (gimple_move_vops): New function |
| * gimple-fold.c (replace_call_with_call_and_fold) |
| (gimple_fold_builtin_memory_op, gimple_fold_builtin_memset) |
| (gimple_fold_builtin_stpcpy, fold_builtin_atomic_compare_exchange) |
| (gimple_fold_call): Use it. |
| * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise. |
| * tree-call-cdce.c (use_internal_fn): Likewise. |
| * tree-if-conv.c (predicate_load_or_store): Likewise. |
| * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise. |
| * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. |
| * tree-ssa-propagate.c (finish_update_gimple_call): Likewise. |
| (update_call_from_tree): Likewise. |
| * tree-vect-stmts.c (vectorizable_load): Likewise. |
| * tree-vectorizer.c (adjust_simduid_builtins): Likewise. |
| |
| 2019-08-05 Martin Liska <mliska@suse.cz> |
| |
| PR c++/91334 |
| * tree-ssa-dce.c (propagate_necessity): Handle new operators |
| with not arguments. |
| (eliminate_unnecessary_stmts): Likewise. |
| |
| 2019-08-05 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/91169 |
| * fold-const.c (get_array_ctor_element_at_index): Create |
| offset_ints according to the sign of the index type and treat |
| that as signed if it is obviously so. |
| |
| 2019-08-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/91341 |
| * config/i386/avxintrin.h (_mm256_loadu2_m128, _mm256_storeu2_m128, |
| _mm256_loadu2_m128d, _mm256_storeu2_m128d, _mm256_loadu2_m128i, |
| _mm256_storeu2_m128i): New function. |
| |
| 2019-08-05 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv.c (riscv_promote_function_mode): New. |
| (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode. |
| |
| 2019-08-05 Alan Modra <amodra@gmail.com> |
| |
| PR target/91349 |
| * config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC), |
| (LINK_GCC_C_SEQUENCE_SPEC): Undef. |
| |
| 2019-08-04 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Prerequisites): Remove reference to Tcl 8.6 |
| bug that was fixed in Tcl 8.6.1. |
| |
| 2019-08-02 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/future.md: New file. |
| * config/rs6000/rs6000.md: Include future.md. |
| * config/rs6000/t-rs6000 (MD_INCLUDES): Add future.md. |
| |
| 2019-08-02 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| * function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT |
| check to use targetm.slow_unaligned_access instead. |
| |
| * function.c (assign_param_data_one): Remove unused data members. |
| |
| 2019-08-02 Steve Ellcey <sellcey@marvell.com> |
| |
| * omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to |
| build_distinct_type_copy. |
| (simd_clone_adjust_argument_types): Ditto. |
| (simd_clone_adjust): Call build_distinct_type_copy here. |
| (expand_simd_clones): Ditto. |
| |
| 2019-08-02 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/91201 |
| * config/i386/sse.md (*vec_extractv16qi_zext): New insn pattern. |
| |
| 2019-08-02 Alexander Monakov <amonakov@ispras.ru> |
| |
| * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Simplify casts |
| from 'const void *'. |
| (sort_locs_in_loop_postorder_cmp): Likewise. |
| |
| 2019-08-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/invoke.texi (hot-bb-count-fraction): Rework description. |
| (hot-bb-count-ws-permille): Likewise. |
| (hot-bb-frequency-fraction): Likewise. |
| (unlikely-bb-count-fraction): Likewise. |
| * params.def (hot-bb-count-fraction): Rework description. |
| (hot-bb-count-ws-permille): Likewise. |
| (hot-bb-frequency-fraction): Likewise. |
| (unlikely-bb-count-fraction): Likewise. Remove min and max values. |
| * predict.c (get_hot_bb_threshold): Deal with 0 HOT_BB_COUNT_FRACTION. |
| |
| 2019-08-02 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/91323 |
| * config/i386/i386-expand.c (ix86_unordered_fp_compare) <case LTGT>: |
| Return false. |
| |
| 2019-08-02 Richard Biener <rguenther@suse.de> |
| |
| * vec.h (vec::sort): Add gcc_qsort_r support. |
| (vec::bsearch): Add an overload with gcc_qsort_r style callbacks. |
| * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Adjust |
| to gcc_qsort_r style callback. |
| (sort_locs_in_loop_postorder_cmp): Likewise. |
| (analyze_memory_references): Use gcc_sort_r interfaces. |
| (find_ref_loc_in_loop_cmp): Use new bsearch overload. |
| |
| 2019-08-02 Martin Liska <mliska@suse.cz> |
| |
| PR lto/91313 |
| * gcc.c (driver::maybe_run_linker): Call detect_jobserver |
| to detect working job server. |
| (driver::detect_jobserver): Test whether jobserver |
| is active from GCC driver. That will prevent situation where |
| GCC is invoked from a LD plugin and the linker already uses |
| file descriptors suggested by make. That leads to a wrong |
| detection. |
| * gcc.h (driver): Add detect_jobserver. |
| * lto-wrapper.c (jobserver_active_p): Simplify sscanf by |
| not scanning for --jobserver-auth prefix. |
| |
| 2019-08-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/91201 |
| * config/i386/i386-expand.c (ix86_expand_vector_extract): For elt == 0 |
| V16QImode extraction without sse4.1 try to use V4SImode lowpart |
| extraction. |
| |
| 2019-08-01 Martin Sebor <msebor@redhat.com> |
| |
| PR c++/90947 |
| * tree.c (type_initializer_zero_p): Define. |
| * tree.h (type_initializer_zero_p): New function. |
| |
| 2019-08-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cfgrtl.c (relink_block_chain): Add line returns in dump file. |
| |
| 2019-08-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cgraph.h (cgraph_edge::maybe_hot_p): Tweak comment. |
| * cgraph.c (cgraph_edge::maybe_hot_p): Likewise. Remove useless test. |
| * predict.c (maybe_hot_count_p): Likewise. |
| (maybe_hot_bb_p): Tweak comment. |
| (maybe_hot_edge_p): Likewise. |
| (probably_never_executed): Likewise. Minor tweak. |
| (probably_never_executed_bb_p): Likewise. |
| (unlikely_executed_edge_p): Likewise. |
| (probably_never_executed_edge_p): Likewise. |
| (optimize_function_for_size_p): Likewise. |
| (optimize_function_for_speed_p): Likewise. |
| (function_optimization_type): Likewise. |
| (optimize_bb_for_size_p): Likewise. |
| (optimize_bb_for_speed_p): Likewise. |
| (bb_optimization_type): Likewise. |
| (optimize_edge_for_size_p): Likewise. |
| (optimize_edge_for_speed_p): Likewise. |
| (optimize_insn_for_size_p): Likewise. |
| (optimize_insn_for_speed_p): Likewise. |
| (optimize_loop_for_size_p): Likewise. |
| (optimize_loop_for_speed_p): Likewise. |
| (optimize_loop_nest_for_speed_p): Likewise. |
| (optimize_loop_nest_for_size_p): Likewise. |
| (predictable_edge_p): Likewise. |
| (handle_missing_profiles): Minor tweak. |
| |
| 2019-08-01 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/predicates.md (pcrel_external_address): Update |
| comment. |
| |
| 2019-08-01 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/85693 |
| * config/i386/mmx.md (usadv8qi): New expander. |
| |
| 2019-08-01 Matthew Beliveau <mbelivea@redhat.com> |
| |
| PR c++/90590 |
| * c-warn.c (c_do_switch_warnings): Suppress warning for enumerators |
| with reserved names that are in a system header. |
| |
| 2019-08-01 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/mmx.md (vec_extractv2si_0): Add (r,x) alternative. |
| (*vec_extractv2si_0_zext_sse4): New insn pattern. |
| (*vec_extractv2si_0_zext): Ditto. |
| (*vec_extractv2si_1): Add (rm,x) alternative. |
| (*vec_extractv2si_1_zext): New insn pattern. |
| (*vec_extractv2si_zext_mem): Add "TARGET_MMX || TARGET_MMX_WITH_SSE" |
| insn constraint. |
| |
| 2019-08-01 Richard Biener <rguenther@suse.de> |
| |
| * domwalk.c (bb_postorder): Remove static variable. |
| (cmp_bb_postorder): Adjust. |
| (sort_bbs_postorder): Adjust and use gcc_sort_r. |
| (dom_walker::walk): Adjust. |
| |
| 2019-08-01 Alexander Monakov <amonakov@ispras.ru> |
| |
| * sort.cc (sort_r_ctx): New struct. |
| (reorder23): Make templated on context type. |
| (reorder45): Ditto. |
| (cmp1): Ditto. Adjust signature. |
| (netsort): Ditto. |
| (mergesort): Ditto. |
| [CHECKING_P] (cmp2to3): New static function. Use it... |
| (gcc_qsort) [CHECKING_P]: ...here. |
| (gcc_sort_r): New function. |
| * system.h (sort_r_cmp_fn): New function typedef. |
| (qsort_chk): Adjust signature. |
| (gcc_sort_r): Declare. |
| * vec.c (qsort_chk_error): Adjust. |
| (qsort_chk): Adjust. |
| |
| 2019-08-01 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-pre.c (has_abnormal_preds): Remove global var. |
| (compute_antic): Localize it here. |
| |
| 2019-07-31 Maxim Blinov <maxim.blinov@embecosm.com> |
| |
| * common/config/riscv/riscv-common.c: Check -march string ends |
| with null. |
| |
| 2019-07-31 Alexander Monakov <amonakov@ispras.ru> |
| |
| * ipa-devirt.c (type_warning_cmp): Make static. |
| (decl_warning_cmp): Ditto. |
| |
| 2019-07-31 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR target/91050 |
| * config/rs6000/rs6000.opt (mdejagnu-cpu=): Delete option. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove |
| use of deleted rs6000_dejagnu_cpu_index variable. |
| * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Define. |
| (SUBTARGET_DRIVER_SELF_SPECS): Likewise. |
| * config/darwin.h (DRIVER_SELF_SPECS): Rename from this ... |
| (SUBTARGET_DRIVER_SELF_SPECS): ...to this. |
| * config/i386/i386.h (DRIVER_SELF_SPECS): Define. |
| (SUBTARGET_DRIVER_SELF_SPECS): Likewise. |
| |
| 2019-07-31 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91280 |
| * tree-ssa-structalias.c (get_constraint_for_component_ref): |
| Decompose MEM_REF manually for offset handling. |
| |
| 2019-07-31 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91293 |
| * tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands |
| of reduction stmts. |
| |
| 2019-07-31 Matt Thomas <matt@3am-software.com> |
| Nick Hudson <nick@nthcliff.demon.co.uk> |
| Matthew Green <mrg@eterna.com.au> |
| Maya Rashish <coypu@sdf.org> |
| |
| * config.gcc (hppa*-*-netbsd*): New target. |
| * config/pa/pa-netbsd.h: New file. |
| * config/pa/pa32-netbsd.h: New file. |
| |
| 2019-07-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/91201 |
| * config/i386/mmx.md (reduc_plus_scal_v8qi): New expander. |
| |
| 2019-07-31 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/gcn/gcn-valu.md |
| (scatter<mode>_insn_1offset<exec_scatter>): Remove s_waitcnt. |
| (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise. |
| (scatter<mode>_insn_2offsets<exec_scatter>): Likewise. |
| * config/gcn/gcn.c (gcn_md_reorg): Add delayeduse and reads to |
| struct ilist. Add nops for delayeduse insns. |
| * config/gcn/gcn.md (delayeduse): New attribute. |
| (*movbi): Remove s_waitcnt from stores. |
| (*mov<mode>_insn): Likewise. |
| (*movti_insn): Likewise. Add delayeduse attribute. |
| (sync_compare_and_swap<mode>_insn): Add delayeduse attribute. |
| (atomic_store<mode>): Remove or adjust s_waitcnt. |
| |
| 2019-07-31 Richard Biener <rguenther@suse.de> |
| |
| * vr-values.h (vr_values::swap_vr_value): New. |
| (vr_values::free_value_range): likewise. |
| * vr-values.c (vr_values::swap_vr_value): Implement. |
| * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::pop_value_range): |
| Do not return a range or take a var. |
| (evrp_range_analyzer::stack): Change back to recording a non-const |
| value_range *. |
| * gimple-ssa-evrp-analyze.c |
| (evrp_range_analyzer::record_ranges_from_stmt): Free unused |
| value-range. |
| (evrp_range_analyzer::pop_to_marker): Adjust. |
| (evrp_range_analyzer::push_value_range): Use new swap_vr_value. |
| (evrp_range_analyzer::pop_value_range): Likewise. Free the |
| no longer needed value-range. |
| |
| 2019-07-31 Martin Liska <mliska@suse.cz> |
| |
| * tree-ssa-dce.c (propagate_necessity): Delete operator can |
| have size and (or) alignment as 2nd and later arguments. |
| Mark all of them as necessary. |
| |
| 2019-07-31 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91178 |
| * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): |
| Use tail-recursion. |
| |
| 2019-07-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/91201 |
| * config/i386/sse.md (reduc_plus_scal_v16qi): New expander. |
| (REDUC_PLUS_MODE): Add V32QImode for TARGET_AVX and V64QImode for |
| TARGET_AVX512F. |
| (reduc_plus_scal_<mode>): Improve formatting by introducing |
| a temporary. |
| |
| 2019-07-31 Sudakshina Das <sudi.das@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add |
| AARCH64_TME_BUILTIN_TSTART, AARCH64_TME_BUILTIN_TCOMMIT, |
| AARCH64_TME_BUILTIN_TTEST and AARCH64_TME_BUILTIN_TCANCEL. |
| (aarch64_init_tme_builtins): New. |
| (aarch64_init_builtins): Call aarch64_init_tme_builtins. |
| (aarch64_expand_builtin_tme): New. |
| (aarch64_expand_builtin): Handle TME builtins. |
| * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define |
| __ARM_FEATURE_TME when enabled. |
| * config/aarch64/aarch64-option-extensions.def: Add "tme". |
| * config/aarch64/aarch64.h (AARCH64_FL_TME, AARCH64_ISA_TME): New. |
| (TARGET_TME): New. |
| * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_TTEST. |
| (define_c_enum "unspecv"): Add UNSPECV_TSTART, UNSPECV_TCOMMIT and |
| UNSPECV_TCANCEL. |
| (tstart, ttest, tcommit, tcancel): New instructions. |
| * config/aarch64/arm_acle.h (__tstart, __tcommit): New. |
| (__tcancel, __ttest): New. |
| (_TMFAILURE_REASON, _TMFAILURE_RTRY, _TMFAILURE_CNCL): New macro. |
| (_TMFAILURE_MEM, _TMFAILURE_IMP, _TMFAILURE_ERR): Likewise. |
| (_TMFAILURE_SIZE, _TMFAILURE_NEST, _TMFAILURE_DBG): Likewise. |
| (_TMFAILURE_INT, _TMFAILURE_TRIVIAL): Likewise. |
| * config/arm/types.md: Add new tme type attr. |
| * doc/invoke.texi: Document "tme". |
| |
| 2019-07-31 Joel Hutton <Joel.Hutton@arm.com> |
| |
| * config/arm/arm_cmse.h (cmse_nonsecure_caller): Add |
| warn_unused_result attribute. |
| (cmse_check_address_range): Add warn_unused_result attribute. |
| |
| 2019-07-31 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91257 |
| * tree-vrp.c (union_ranges): Unify equality and less tests |
| by using compare_values. Re-order cheap tests first. |
| |
| 2019-07-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/91301 |
| * gimplify.c (gimplify_omp_for): If for class iterator on |
| distribute parallel for there is no data sharing clause |
| on inner_for_stmt, look for private clause on combined |
| parallel too and if found, move it to inner_for_stmt. |
| |
| 2019-07-31 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * lra-int.h (lra_operand_data): Remove early_clobber field. |
| (lra_insn_reg): Likewise. |
| * lra.c (debug_operand_data): Update accordingly. |
| (setup_operand_alternative): Likewise. |
| (new_insn_reg): Likewise. Remove early_clobber parameter. |
| (collect_non_operand_hard_regs): Update call accordingly. |
| Don't assign to lra_insn_reg::early_clobber. |
| (add_regs_to_insn_regno_info): Remove early_clobber parameter |
| and update calls to new_insn_reg. |
| (lra_update_insn_regno_info): Update calls accordingly. |
| * lra-constraints.c (update_and_check_small_class_inputs): Take the |
| alternative number as a parameter and test whether the operand |
| is earlyclobbered in that particular alternative. |
| (process_alt_operands): Update call accordingly. Use per-alternative |
| checks for earyclobber here too. |
| * lra-lives.c (reg_early_clobber_p): Check early_clobber_alts |
| against zero for IRA_UNKNOWN_ALT. |
| |
| 2019-07-30 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.c (alpha_option_override): Quote a C type. |
| |
| 2019-07-30 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/arm/thumb2.md (thumb2_movsi_insn): Adjust literal offset. |
| * config/arm/vfp.md (thumb2_movsi_vfp): Likewise. |
| |
| 2019-07-30 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/89330 |
| * cgraph.c (cgraph_edge::make_direct): Use |
| edge->indirect_unknown_callee as edge->resolve_speculation can |
| deallocate edge which is this pointer. |
| |
| 2019-07-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91257 |
| * bitmap.c (bitmap_ior_and_compl_into): Open-code. |
| |
| 2019-07-30 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Document new behavior. |
| * lto-wrapper.c (cpuset_popcount): New function |
| is a copy of libgomp/config/linux/proc.c. |
| (init_num_threads): Likewise. |
| (run_gcc): Automatically detect core count for -flto. |
| (jobserver_active_p): New function. |
| |
| 2019-07-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91257 |
| * bitmap.h (bitmap_ior_into_and_free): Declare. |
| * bitmap.c (bitmap_list_unlink_element): Add defaulted param |
| whether to add the unliked element to the freelist. |
| (bitmap_list_insert_element_after): Add defaulted param for |
| an already allocated element. |
| (bitmap_ior_into_and_free): New function. |
| * tree-ssa-structalias.c (condense_visit): Reduce the |
| ponts-to and edge bitmaps of the SCC members in a |
| logarithmic fashion rather than all to one. |
| |
| 2019-07-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-ssa-math-opts.c (convert_mult_to_fma): Add a mul_cond |
| parameter. When nonnull, make sure that the addition or subtraction |
| has the same condition. |
| (math_opts_dom_walker::after_dom_children): Try convert_mult_to_fma |
| for CFN_COND_MUL too. |
| |
| 2019-07-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91291 |
| * tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Ignore |
| constant values. |
| |
| 2019-07-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/91216 |
| * omp-low.c (global_nonaddressable_vars): New variable. |
| (use_pointer_for_field): For global decls, if they are non-addressable, |
| remember it in the global_nonaddressable_vars bitmap, if they are |
| addressable and in the global_nonaddressable_vars bitmap, ignore their |
| TREE_ADDRESSABLE bit. |
| (omp_copy_decl_2): Clear TREE_ADDRESSABLE also on private copies of |
| vars in global_nonaddressable_vars bitmap. |
| (execute_lower_omp): Free global_nonaddressable_vars bitmap. |
| |
| PR target/91150 |
| * config/i386/i386-expand.c (expand_vec_perm_blend): Change mask type |
| from unsigned to unsigned HOST_WIDE_INT. For E_V64QImode cast |
| comparison to unsigned HOST_WIDE_INT before shifting it left. |
| |
| 2019-07-30 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (movstrict<mode>): Use register_operand |
| predicate for operand 0. Add expander condition. Assert that |
| operand 0 is a SUBREG RTX. |
| (*movstrict<mode>_1): Use register_operand predicate for operand 0. |
| Update operand constraints and insn condition. |
| (zero_extend<mode>si2_and): Do not call gen_movstrict<mode>. |
| (zero_extendqihi2_and): Do not call gen_movstrictqi. |
| (*setcc_qi_slp): Use register_operand predicate for operand 0. |
| Update operand 0 constraints. |
| (setcc_qi_slp splitters): Use register_operand predicate for operand 0. |
| |
| 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config/msp430/msp430.h (DRIVER_SELF_SPECS): Define and emit errors |
| when -m{code,data}-region are used without -mlarge. |
| * config/msp430/msp430.c (msp430_option_override): Error when a |
| non-default code or data region is used without -mlarge. |
| (msp430_section_attr): Emit a warning and do not add upper/lower/either |
| attributes when they are used without -mlarge. |
| |
| 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| PR target/70320 |
| * config/msp430/msp430.h: Define ADDITIONAL_REGISTER_NAMES. |
| |
| 2019-07-29 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR middle-end/91242 |
| * wide-int.h (generic_wide_int::sext_elt): New function. |
| * inchash.h (hash::add_wide_int): Use it instead of elt. |
| |
| 2019-07-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm-builtins.c (acle_builtin_data): Expand VAR1 to |
| CODE_FOR_arm_##. |
| * config/arm/arm.md (<crc_variant>): Rename to... |
| (arm_<crc_variant>): ... This. |
| (<cdp>): Rename to... |
| (arm_<cdp>): ... This. |
| (<ldc>): Rename to... |
| (arm_<ldc>): ... This. |
| (<stc>): Rename to... |
| (arm_<stc>): ... This. |
| (<mcr>): Rename to... |
| (arm_<mcr>): ... This. |
| (<mrc>): Rename to... |
| (arm_<mrc>): ... This. |
| (<mcrr>): Rename to... |
| (arm_<mcrr>): ... This. |
| (<mrrc>): Rename to... |
| (arm_<mrrc>): ... This. |
| |
| 2019-07-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91257 |
| * tree-ssa-sccvn.h (struct vn_avail): New. |
| (struct vn_ssa_aux): Add avail member. |
| * tree-ssa-sccvn.c (class rpo_elim): Remove m_rpo_avail |
| member, add m_avail_freelist one. |
| (rpo_elim::~rpo_elim): Remove. |
| (rpo_elim::eliminate_avail): Adjust to new avail tracking |
| data structure. |
| (rpo_elim::eliminate_push_avail): Likewise. |
| (do_unwind): Likewise. |
| (do_rpo_vn): Likewise. |
| |
| 2019-07-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91257 |
| * tree-vrp.c (operand_less_p): Avoid dispatching to fold for |
| most cases, instead call compare_values which handles the |
| symbolic ranges we handle specially. |
| (compare_values_warnv): Do not call operand_less_p but open-code |
| the effective fold calls. Avoid converting so much. |
| |
| 2019-07-29 Martin Liska <mliska@suse.cz> |
| |
| * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not |
| remove LHS of operator new call. It's handled latter. |
| |
| 2019-07-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91267 |
| * vr-values.c (vr_values::update_value_range): Add early return |
| for effectively VARYING lattice entry. |
| |
| 2019-07-29 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR debug/86638 |
| * tree-ssa-dce.c (keep_all_vdefs_p): New function. |
| (mark_stmt_if_obviously_necessary): Mark all stmts with vdefs as |
| necessary if keep_all_vdefs_p is true. |
| (mark_aliased_reaching_defs_necessary): Add a gcc_checking_assert |
| that keep_all_vdefs_p is false. |
| (mark_all_reaching_defs_necessary): Likewise. |
| (propagate_necessity): Skip the vuse scan if keep_all_vdefs_p is true. |
| |
| 2019-07-29 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * common.opt (Og): Change the initial value of flag_dse to 0. |
| * opts.c (default_options_table): Move OPT_ftree_dse from |
| OPT_LEVELS_1_PLUS to OPT_LEVELS_1_PLUS_NOT_DEBUG. Also add |
| OPT_fdse to OPT_LEVELS_1_PLUS_NOT_DEBUG. Put the OPT_ftree_pta |
| entry before the OPT_ftree_sra entry. |
| * doc/invoke.texi (Og): Add -fdse and -ftree-dse to the list |
| of flags disabled by Og. |
| |
| 2019-07-29 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-cfg.c (execute_fixup_cfg): Don't delete stores to write-only |
| variables for -Og. |
| |
| 2019-07-29 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/sourcebuild.texi (check-function-bodies): Document. |
| |
| 2019-07-29 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * simplify-rtx.c (simplify_const_unary_operation): Fold a |
| VEC_DUPLICATE of a fixed-length vector even if the result |
| is variable-length. Likewise fold a duplicate of a |
| variable-length vector if the variable-length vector is |
| itself a duplicate of a fixed-length sequence. |
| (test_vector_ops_duplicate): Test more cases. |
| |
| 2019-07-29 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * vector-builder.h (vector_builder): Add a shape template parameter. |
| (vector_builder::new_unary_operation): New function, generalizing |
| the old tree_vector_builder function. |
| (vector_builder::new_binary_operation): Likewise. |
| (vector_builder::binary_encoded_nelts): Likewise. |
| * int-vector-builder.h (int_vector_builder): Update template |
| parameters to vector_builder. |
| (int_vector_builder::shape_nelts): New function. |
| * rtx-vector-builder.h (rtx_vector_builder): Update template |
| parameters to vector_builder. |
| (rtx_vector_builder::shape_nelts): New function. |
| (rtx_vector_builder::nelts_of): Likewise. |
| (rtx_vector_builder::npatterns_of): Likewise. |
| (rtx_vector_builder::nelts_per_pattern_of): Likewise. |
| * tree-vector-builder.h (tree_vector_builder): Update template |
| parameters to vector_builder. |
| (tree_vector_builder::shape_nelts): New function. |
| (tree_vector_builder::nelts_of): Likewise. |
| (tree_vector_builder::npatterns_of): Likewise. |
| (tree_vector_builder::nelts_per_pattern_of): Likewise. |
| * tree-vector-builder.c (tree_vector_builder::new_unary_operation) |
| (tree_vector_builder::new_binary_operation): Delete. |
| (tree_vector_builder::binary_encoded_nelts): Likewise. |
| * simplify-rtx.c: Include rtx-vector-builder.h. |
| (distributes_over_addition_p): New function. |
| (simplify_const_unary_operation) |
| (simplify_const_binary_operation): Generalize handling of vector |
| constants to include variable-length vectors. |
| (test_vector_ops_series): Add more tests. |
| |
| 2019-07-28 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/91222 |
| * ipa-devirt.c (warn_types_mismatch): Compare indentifiers |
| than INDENTIFIER_POINTER. |
| |
| 2019-07-28 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/89330 |
| * cgraph.c (symbol_table::create_edge): Always allocate |
| a cgraph_edge. |
| (symbol_table::free_edge): Store summary_id to |
| edge_released_summary_ids if != -1; |
| * cgraph.h (NEXT_FREE_NODE): Remove. |
| (SET_NEXT_FREE_NODE): Likewise. |
| (NEXT_FREE_EDGE): Likewise. |
| (symbol_table::release_symbol): Store summary_id to |
| cgraph_released_summary_ids if != -1; |
| (symbol_table::allocate_cgraph_symbol): Always allocate |
| a cgraph_node. |
| |
| 2019-07-28 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use |
| gen_sibcall. |
| |
| 2019-07-28 Alan Modra <amodra@gmail.com> |
| |
| PR target/91135 |
| * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't |
| define. |
| * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Invoke |
| GNU_USER_TARGET_OS_CPP_BUILTINS for aixdesc abi. |
| (GNU_USER_TARGET_D_OS_VERSIONS): Don't define. |
| |
| 2019-07-28 Alan Modra <amodra@gmail.com> |
| |
| PR target/91050 |
| * config/rs6000/sysv4.h (ASM_DEFAULT_SPEC): Modify if -m64. |
| * config/rs6000/default64.h (ASM_DEFAULT_SPEC): Define. |
| * config/rs6000/freebsd64.h (ASM_DEFAULT_SPEC): Don't define. |
| * config/rs6000/linux64.h (ASM_DEFAULT_SPEC): Likewise. |
| * config/rs6000/rtems.h (ASM_DEFAULT_SPEC): Likewise. |
| * config/rs6000/rs6000.h (ASM_DEFAULT_EXTRA): Define and use |
| in asm_default spec. |
| * config/rs6000/eabialtivec.h (ASM_DEFAULT_EXTRA): Redefine. |
| * config/rs6000/linuxaltivec.h (ASM_DEFAULT_EXTRA): Redefine. |
| |
| 2019-07-28 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/include/gpl_v3.texi (Copying): Use https for www.gnu.org. |
| |
| 2019-07-26 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/89517 |
| * config.gcc: Relax parsing of AARCH64_OPT_EXTENSION. |
| * config/aarch64/aarch64-option-extensions.def: Add new comments |
| and restore easier to read options. |
| |
| 2019-07-26 Tamar Christina <tamar.christina@arm.com> |
| |
| * convert.c (convert_to_real_1): Move part of conversion code... |
| * match.pd: ...To here. |
| |
| 2019-07-26 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/89330 |
| * ipa-inline-transform.c (check_speculations_1): New function. |
| (push_all_edges_in_set_to_vec): Likewise. |
| (check_speculations): Use check_speculations_1, new parameter |
| new_edges. |
| (inline_call): Pass new_edges to check_speculations. |
| * ipa-inline.c (add_new_edges_to_heap): Assert edge_callee is not |
| NULL. |
| (speculation_useful_p): Early return true if edge is inlined, remove |
| later checks for inline_failed. |
| |
| 2019-07-25 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/91223 |
| * lra-constraints.c (process_alt_operands): Fail for unsuccessful |
| matching with INOUT operand. |
| |
| 2019-07-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * stmt.c (expand_case): Try to narrow the index type if it's larger |
| than a word. Tidy up. |
| |
| 2019-07-25 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cif-code.def (NEVER_CALL): New code. |
| * ipa-inline.c (want_inline_small_function_p): Fix formatting issues. |
| Set the failure to CIF_NEVER_CALL if the IPA count is zero. |
| |
| 2019-07-25 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/arm/thumb2.md (thumb2_movsi_insn): Fix load/store low reg. |
| * config/arm/vfp.md (thumb2_movsi_vfp): Likewise. |
| |
| 2019-07-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-devirt.c (add_type_duplicate): Fix return value. |
| |
| 2019-07-25 Richard Biener <rguenther@suse.de> |
| |
| * tree-vrp.c (extract_range_from_multiplicative_op): Add |
| type parameter and use it instead of guessing expression |
| type from the first operand. |
| (extract_range_from_binary_expr): Pass expr_type down. |
| |
| 2019-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm.md (SATrev): Change to code attribute. |
| (*satsi_<SAT:code>): Adjust for the above. |
| (*satsi_<SAT:code>_shift): Likewise. |
| |
| 2019-07-25 Richard Biener <rguenther@suse.de> |
| |
| * gimple-loop-versioning.cc (loop_versioning::prune_loop_conditions): |
| Make value_range * temporary const. |
| * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range): |
| Likewise. |
| (evrp_range_analyzer::record_ranges_from_): Likewise. |
| (evrp_range_analyzer::pop_value_range): Return a const value_range *, |
| deal with having recorded a const one. |
| * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::get_value_range): |
| Return a const value_range *. |
| (evrp_range_analyzer::pop_value_range): Likewise. |
| (evrp_range_analyzer::stack): Record const value_range *s. |
| * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): |
| Adjust. |
| * gimple-ssa-sprintf.c (get_int_range): Likewise. |
| (format_integer): Likewise. |
| (sprintf_dom_walker::handle_gimple_call): Likewise. |
| * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise. |
| * tree-vrp.c (vrp_prop::set_def_to_varying): Add. |
| (vrp_prop::get_value_range): Adjust. |
| (vrp_prop::vrp_initialize): Use set_def_to_varying instead of |
| modifying the lattice in-place. |
| (vrp_prop::visit_stmt): Likewise. |
| * vr-values.c (vr_values::get_lattice_entry): New private method. |
| (vr_values::get_value_range): Wrap it and return a const |
| value_range *. |
| (vr_values::set_def_to_varying): New. |
| (vr_values::set_defs_to_varying): Use it. |
| (vr_values::update_value_range): Likewise. |
| (vr_values::vrp_stmt_computes_nonzero): Adjust. |
| (values::op_with_constant_singleton_va): Likewise. |
| (vr_values::extract_range_for_var_from_co): Likewise. |
| (vr_values::extract_range_from_ssa_name): Likewise. |
| (vr_values::extract_range_from_cond_expr): Likewise. |
| (vr_values::extract_range_basic): Likewise. |
| (compare_ranges): Take const value_range *, adjust. |
| (compare_range_with_value): Likewise. |
| (vrp_valueize): Adjust. |
| (vrp_valueize_1): Likewise. |
| (vr_values::get_vr_for_comparison): Return a const value_range *. |
| (vr_values::compare_name_with_value): Adjust. |
| (vr_values::compare_names): Likewise. |
| (vr_values::vrp_evaluate_conditional_warnv_with_ops_using_ranges): |
| Likewise. |
| (vr_values::vrp_evaluate_conditional): Likewise. |
| (find_case_label_ranges): Take a const value_range *. |
| (vr_values::vrp_visit_switch_stmt): Adjust. |
| (vr_values::extract_range_from_phi_node): Likewise. |
| (vr_values::simplify_div_or_mod_using_ran): Likewise. |
| (vr_values::simplify_abs_using_ranges): Likewise. |
| (test_for_singularity): Take a const value_range *. |
| (range_fits_type_p): Likewise. |
| (vr_values::simplify_cond_using_ranges_1): Adjust. |
| (vr_values::simplify_cond_using_ranges_2): Likewise. |
| (vr_values::simplify_switch_using_ranges): Likewise. |
| (vr_values::simplify_float_conversion_usi): Likewise. |
| (vr_values::two_valued_val_range_p): Likewise. |
| * vr-values.h (vr_values::get_value_range): Return a const |
| value_range *. |
| (vr_values::set_def_to_varying): New. |
| (vr_values::get_lattice_entry): New private method. |
| (vr_values::get_vr_for_comparison): Return a const value_range *. |
| |
| 2019-07-25 Martin Liska <mliska@suse.cz> |
| Dominik Infuhr <dominik.infuehr@theobroma-systems.com> |
| |
| PR c++/23383 |
| * common.opt: Add -fallocation-dce |
| * gimple.c (gimple_call_operator_delete_p): New. |
| * gimple.h (gimple_call_operator_delete_p): Likewise. |
| * tree-core.h (enum function_decl_type): Add OPERATOR_DELETE. |
| * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle |
| DECL_IS_OPERATOR_DELETE_P. |
| (mark_all_reaching_defs_necessary_1): Likewise. |
| (propagate_necessity): Likewise. |
| (eliminate_unnecessary_stmts): Handle |
| gimple_call_operator_delete_p. |
| * tree-streamer-in.c (unpack_ts_function_decl_value_fields): |
| Add packing of OPERATOR_DELETE. |
| * tree-streamer-out.c (pack_ts_function_decl_value_fields): |
| Similarly here. |
| * tree.h (DECL_IS_OPERATOR_DELETE_P): New. |
| (DECL_SET_IS_OPERATOR_DELETE): New. |
| (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): Likewise. |
| |
| 2019-07-25 Martin Liska <mliska@suse.cz> |
| |
| * calls.c (maybe_warn_alloc_args_overflow): Use new macros |
| (e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P). |
| * coverage.c (coverage_begin_function): Likewise. |
| * fold-const.c (tree_expr_nonzero_warnv_p): Likewise. |
| * gimple.c (gimple_call_nonnull_result_p): Likewise. |
| * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Likewise. |
| (sem_item::hash_referenced_symbol_properties): Likewise. |
| * lto-streamer-out.c (hash_tree): Likewise. |
| * predict.c (expr_expected_value_1): Likewise. |
| * tree-inline.c (expand_call_inline): Likewise. |
| * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise. |
| * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise. |
| * tree-core.h (enum function_decl_type): New enum. |
| (struct tree_function_decl): Remove operator_new_flag and lambda_function. |
| * tree.h (FUNCTION_DECL_DECL_TYPE): New. |
| (set_function_decl_type): Likewise. |
| (DECL_IS_OPERATOR_NEW_P): New. |
| (DECL_SET_IS_OPERATOR_NEW): Likewise. |
| (DECL_LAMBDA_FUNCTION): Likewise. |
| (DECL_LAMBDA_FUNCTION_P): Likewise. |
| (DECL_IS_OPERATOR_NEW): Remove. |
| (DECL_SET_LAMBDA_FUNCTION): Likewise. |
| |
| 2019-07-25 Xiong Hu Luo <luoxhu@linux.ibm.com> |
| |
| * ipa-profile.c (get_most_common_single_value): Use |
| get_nth_most_common_value. |
| * profile.c (sort_hist_value): New function. |
| (compute_value_histograms): Call sort_hist_value to sort the |
| values after loading from disk. |
| * value-prof.c (get_most_common_single_value): Rename to ... |
| get_nth_most_common_value. Add input params n, return |
| the n_th value and count. |
| (gimple_divmod_fixed_value_transform): Use |
| get_nth_most_common_value. |
| (gimple_ic_transform): Likewise. |
| (gimple_stringops_transform): Likewise. |
| * value-prof.h (get_most_common_single_value): Add input params |
| n, default to 0. |
| |
| 2019-07-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91236 |
| * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix |
| size of CONSTRUCTOR write. Fix buffer size we pass to |
| native_encode_expr. |
| |
| 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config.gcc (msp430*-*-*): Fix non-GNU style in r273774. |
| * config/msp430/msp430.h (ENDFILE_SPEC): Fix non-GNU style in |
| r273773. |
| |
| 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config.gcc (msp430*-*-*): Enable initfini_array by default unless |
| explicitly disabled with --disable-initfini-array. |
| |
| 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config/msp430/msp430.h (ENDFILE_SPEC): Wrap uses of crtn*.o in |
| if-exists. |
| |
| 2019-07-24 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/91183 |
| PR tree-optimization/86688 |
| * builtins.c (compute_objsize): Handle MEM_REF. |
| * tree-ssa-strlen.c (class ssa_name_limit_t): New. |
| (get_min_string_length): Remove. |
| (count_nonzero_bytes): New function. |
| (handle_char_store): Rename... |
| (handle_store): to this. Handle multibyte stores via integer types. |
| (strlen_check_and_optimize_stmt): Adjust conditional and the called |
| function name. |
| |
| 2019-07-24 Martin Sebor <msebor@redhat.com> |
| |
| PR driver/80545 |
| * diagnostic.c (diagnostic_classify_diagnostic): Use lang_mask. |
| (diagnostic_report_diagnostic): Same. |
| * diagnostic.h (diagnostic_context::option_enabled): Add an argument. |
| (diagnostic_context::lang_mask): New data member. |
| * ipa-pure-const.c (suggest_attribute): Use |
| lang_hooks.option_lang_mask (). |
| * opts-common.c (option_enabled): Handle new argument. |
| (get_option_state): Pass an additional argument. |
| * opts.c (print_filtered_help): Print supported languages for |
| unsupported options. Adjust printing of current state. |
| * opts.h (option_enabled): Add argument. |
| * toplev.c (print_switch_values): Use lang_mask. |
| (general_init): Set global_dc->lang_mask. |
| |
| 2019-07-24 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR bootstrap/87030 |
| * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749. |
| |
| 2019-07-24 Giuliano Belinassi <giuliano.belinassi@usp.br> |
| |
| * cgraphunit.c (symbol_table::compile): Start and stop |
| TV_CGRAPH_IPA_PASSES and TV_CGRAPH_FUNC_EXPANSION timers. |
| * timevar.def (TV_CGRAPH_IPA_PASSES, TV_CGRAPH_FUNC_EXPANSION): New. |
| |
| 2019-07-24 Oliver Browne <oliverbrowne62@gmail.com> |
| |
| * gimplify.c (flag_instrument_functions_exclude_p): Include |
| namespace/class information in the printable name. |
| * opts.c (add_comma_separated_to_vector): Add NUL terminator |
| to tokens entered into the vector. |
| |
| 2019-07-24 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-nested.c (build_simple_mem_ref_notrap): New function. |
| (get_static_chain): Call it instead of build_simple_mem_ref. |
| (get_frame_field): Likewise. |
| (get_nonlocal_debug_decl): Likewise. |
| (convert_nonlocal_reference_op): Likewise. |
| |
| 2019-07-24 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc-protos.h (arc_output_function_epilogue): Delete |
| declaration. |
| (arc_compute_frame_size): Millicode is disabled when compiling |
| ISR. |
| (arc_return_address_register): Likewise. |
| (arc_compute_function_type): Likewise. |
| (arc_compute_frame_size): Likewise. |
| (secondary_reload_info): Likewise. |
| (arc_get_unalign): Likewise. |
| (arc_can_use_return_insn): Declare. |
| * config/arc/arc.c (AUX_LP_START): Define |
| (AUX_LP_END): Likewise. |
| (arc_frame_info): Update gmask member to 64-bit datum. |
| (GMASK_LEN): Update. |
| (arc_compute_function_type): Make it static, move it forward. |
| (arc_must_save_register): Update, consider the extra regs. |
| (arc_compute_millicode_save_restore_regs): Update to use the 64 |
| bit gmask. |
| (arc_compute_frame_size): Likewise. |
| (arc_enter_leave_p): Likewise. |
| (arc_save_callee_saves): Likewise. |
| (arc_restore_callee_saves): Likewise. |
| (arc_save_callee_enter): Likewise. |
| (arc_restore_callee_leave): Likewise. |
| (arc_save_callee_milli): Likewise. |
| (arc_restore_callee_milli): Likewise. |
| (arc_expand_prologue): Add new interrupt handling. |
| (arc_return_address_register): Make it static, move it forward. |
| (arc_expand_epilogue): Add new interrupt handling. |
| (arc_get_unalign): Delete. |
| (arc_epilogue_uses): Make sure we do not remove the extra |
| saved/restored registers when interrupt. |
| (arc_can_use_return_insn): New function. |
| (push_reg): Likewise. |
| (pop_reg): Likewise. |
| (arc_save_callee_saves): Add ZOL and FPX aux registers saving |
| procedures. |
| (arc_restore_callee_saves): Likewise, but restoring. |
| * config/arc/arc.md (VUNSPEC_ARC_ARC600_RTIE): Define. |
| (R33_REG): Likewise. |
| (R34_REG): Likewise. |
| (R35_REG): Likewise. |
| (R36_REG): Likewise. |
| (R37_REG): Likewise. |
| (R38_REG): Likewise. |
| (R39_REG): Likewise. |
| (R45_REG): Likewise. |
| (R46_REG): Likewise. |
| (R47_REG): Likewise. |
| (R48_REG): Likewise. |
| (R49_REG): Likewise. |
| (R50_REG): Likewise. |
| (R51_REG): Likewise. |
| (R52_REG): Likewise. |
| (R53_REG): Likewise. |
| (R54_REG): Likewise. |
| (R55_REG): Likewise. |
| (R56_REG): Likewise. |
| (R58_REG): Likewise. |
| (type): Add rtie attribute. |
| (in_call_delay_slot): Use RETURN_ADDR_REGNUM. |
| (movsi_insn): Accept moves to lp_count. |
| (rtie): Update pattern. |
| (simple_return): Simplify it, don't use this pattern as a return |
| from an interrupt. |
| (arc600_rtie): New pattern. |
| (p_return_i): Clean up. |
| (return): Likewise. |
| * config/arc/builtins.def (rtie): Only available for non ARC6xx |
| family CPUs. |
| * config/arc/predicates.md (move_src_operand): Consider lp_count |
| as a register. |
| |
| 2019-07-24 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/predicates.md (addv_const_operand): New predicate. |
| * config/s390/s390-modes.def (CCO): New condition code mode. |
| * config/s390/s390.c (s390_match_ccmode_set): Handle E_CCOmode. |
| (s390_branch_condition_mask): Likewise. |
| * config/s390/s390.md ("addv<mode>4", "subv<mode>4") |
| ("mulv<mode>4"): New expanders. |
| ("*addv<mode>3_ccoverflow", "*addv<mode>3_ccoverflow_const") |
| ("*subv<mode>3_ccoverflow", "*mulv<mode>3_ccoverflow"): New |
| pattern definitions. |
| |
| 2019-07-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR middle-end/91166 |
| * match.pd (vec_perm_expr(v, v, mask) -> v): New pattern. |
| (define_predicates): Add entry for uniform_vector_p. |
| (vec_same_elem_p): New match pattern. |
| |
| 2019-07-24 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR bootstrap/87030 |
| * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here... |
| * config/i386/darwin32-biarch.h .. to here. |
| * config/i386/darwin64-biarch.h: Adjust comments. |
| * config/rs6000/darwin32-biarch.h: Likewise. |
| * config/rs6000/darwin64-biarch.h: Likewise. |
| * config.gcc: Missed commit from r273746 |
| (*-*-darwin*): Don't include CPU t-darwin here. |
| (i[34567]86-*-darwin*): Adjust to use biarch files. Produce |
| an error message if i686-darwin configuration is attempted for |
| Darwin >= 18. |
| |
| 2019-07-23 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR bootstrap/87030 |
| * config.gcc (*-*-darwin*): Don't include CPU t-darwin here. |
| (i[34567]86-*-darwin*): Adjust to use biarch files. Produce |
| an error message if i686-darwin configuration is attempted for |
| Darwin >= 18. |
| (x86_64-*-darwin*): Switch to single multilib for Darwin >= 18. |
| (powerpc-*-darwin*): Use biarch files where needed. |
| (powerpc64-*-darwin*): Likewise. |
| * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file. |
| (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single |
| arch case. |
| * config/i386/darwin32-biarch.h: New. |
| * config/i386/darwin64.h: Rename. |
| * config/i386/darwin64-biarch.h: To this. |
| * config/i386/t-darwin: Rename. |
| * config/i386/t-darwin32-biarch: To this. |
| * config/i386/t-darwin64: Rename. |
| * config/i386/t-darwin64-biarch: To this. |
| * config/rs6000/darwin32-biarch.h: New. |
| * config/rs6000/darwin64.h: Rename. |
| * config/rs6000/darwin64-biarch.h: To this. |
| (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single |
| arch case. |
| * config/rs6000/t-darwin8: Rename. |
| * config/rs6000/t-darwin32-biarch: To this. |
| * config/rs6000/t-darwin64 Rename. |
| * config/rs6000/t-darwin64-biarch: To this. |
| |
| 2019-07-23 Martin Sebor <msebor@redhat.com> |
| |
| * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Revert r273311. |
| |
| 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru> |
| |
| * gdbinit.in (reload-gdbhooks): New command with an attached doc string. |
| (rh): New alias for it. |
| |
| 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru> |
| |
| * gdbhooks.py: Pass replace=True to |
| gdb.printing.register_pretty_printer. |
| |
| 2019-07-23 Richard Biener <rguenther@suse.de> |
| |
| PR debug/91231 |
| * lto-streamer-in.c (input_function): Drop inline-entry markers |
| that ended up with an unknown location block. |
| |
| 2019-07-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/83518 |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle aggregate |
| init from a constant even when partial defs are already recorded. |
| |
| 2019-07-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2. |
| * config/i386/znver1.md: Enable patterns for znver2 and add store |
| variants which use extra AGU unit. |
| |
| 2019-07-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/i386-options.c (ix86_option_override_internal): Default |
| PARAM_AVOID_FMA_MAX_BITS to 256 for znver2. |
| * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Set |
| for ZNVER2. |
| |
| 2019-07-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * config/i386/x86-tune-costs.h (znver2_memcpy): Update. |
| (znver2_costs): Update 256 bit SSE costs and multiplication. |
| |
| 2019-07-23 Jan Beulich <jbeulich@suse.com> |
| |
| * config/i386/sse.md (<avx512>_cvtmask2<ssemodesuffix><mode>): |
| Require only AVX512F. |
| (*<avx512>_cvtmask2<ssemodesuffix><mode>): Likewise. Add |
| alternative expanding to vpternlog. |
| |
| 2019-07-23 Martin Liska <mliska@suse.cz> |
| |
| * dwarf2out.c (gen_producer_string): Canonize -flto=N |
| to -flto in dwarf producer string. |
| |
| 2019-07-23 Richard Biener <rguenther@suse.de> |
| |
| * tree-cfg.c (label_for_bb): Remove global var. |
| (main_block_label): Take label_for_bb as argument. |
| (cleanup_dead_labels_eh): Likewise, adjust. |
| (cleanup_dead_labels): Adjust. |
| |
| 2019-07-22 Paul A. Clarke <pc@us.ibm.com> |
| |
| * doc/extend.texi (Basic PowerPC Built-in Functions Available on all |
| Configurations): Add documentation for __builtin_mtfsf. |
| |
| 2019-07-22 Ilia Diachkov <ilia.diachkov@optimitech.com> |
| |
| * config/riscv/riscv-opts.h (struct riscv_align_data): New. |
| * config/riscv/riscv.c (riscv_constant_alignment): Use |
| riscv_align_data_type. |
| * config/riscv/riscv.h (RISCV_EXPAND_ALIGNMENT): New. |
| (DATA_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT. |
| (LOCAL_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT. |
| * config/riscv/riscv.opt (malign-data): New. |
| * doc/invoke.texi (RISC-V Options): Document -malign-data=. |
| |
| 2019-07-02 Giuliano Belinassi <giuliano.belinassi@usp.br> |
| |
| * cgraph.c (dump_graphviz): New function. |
| * cgraph.h (dump_graphviz): New function. |
| * symtab.c (dump_graphviz): New function. |
| |
| 2019-07-22 Sylvia Taylor <sylvia.taylor@arm.com> |
| |
| * config/aarch64/aarch64-simd.md |
| (*aarch64_simd_sra<mode>): New. |
| * config/aarch64/iterators.md |
| (SHIFTRT): New iterator. |
| (sra_op): New attribute. |
| |
| 2019-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config/msp430/msp430.c (msp430_preserve_reg_p): Don't save |
| callee-saved regs R4->R10 in an interrupt function that calls another |
| function. |
| |
| 2019-07-22 Paul A. Clarke <pc@us.ibm.com> |
| |
| * config/rs6000/smmintrin.h (_mm_blend_epi16): New. |
| (_mm_blendv_epi8): New. |
| |
| 2019-07-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91221 |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Appropriately |
| restrict partial-def handling of empty constructors and |
| memset to refs with known offset. |
| |
| 2019-07-22 Jan Beulich <jbeulich@suse.com> |
| |
| * config/i386/sse.md (ternlogsuffix): New. |
| (one_cmpl<mode>2): Don't force CONSTM1_RTX into a register when |
| AVX512F is in use. |
| (<mask_codefor>one_cmpl<mode>2<mask_name>): New. |
| |
| 2019-07-22 Martin Liska <mliska@suse.cz> |
| |
| * config/avr/avr.c (avr_asm_output_aligned_decl_common): Update |
| comment. |
| * toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol. |
| |
| 2019-07-22 Martin Liska <mliska@suse.cz> |
| |
| * lto-section-in.c (lto_get_section_data): |
| Use new function get_compression. |
| * lto-streamer-out.c (produce_lto_section): Use |
| set_compression to encode compression algorithm. |
| * lto-streamer.h (struct lto_section): Do not |
| use bitfields in the format. |
| |
| 2019-07-22 Martin Liska <mliska@suse.cz> |
| |
| PR driver/91172 |
| * opts-common.c (decode_cmdline_option): Decode |
| argument of -Werror and check it for a wrong language. |
| * opts-global.c (complain_wrong_lang): Remove such case. |
| |
| 2019-07-22 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (prepare_move_operands): Always use an |
| intermediate register when storing a TLS symbols. |
| |
| 2019-07-22 Stafford Horne <shorne@gmail.com> |
| |
| * config/or1k/or1k.c (or1k_expand_compare): Check for int before |
| force_reg. |
| |
| 2019-07-22 Stafford Horne <shorne@gmail.com> |
| |
| * config.gcc (or1k*-*-*): Add mhard-float, mdouble-float, msoft-float |
| and munordered-float validations. |
| * config/or1k/constraints.md (d): New register constraint. |
| * config/or1k/predicates.md (fp_comparison_operator): New. |
| * config/or1k/or1k.c (or1k_print_operand): Add support for printing 'd' |
| operands. |
| (or1k_expand_compare): Normalize unordered comparisons. |
| * config/or1k/or1k.h (reg_class): Define DOUBLE_REGS. |
| (REG_CLASS_NAMES): Add "DOUBLE_REGS". |
| (REG_CLASS_CONTENTS): Add contents for DOUBLE_REGS. |
| * config/or1k/or1k.md (type): Add fpu. |
| (fpu): New instruction reservation. |
| (F, f, fr, fi, FI, FOP, fop): New. |
| (<fop><F:mode>3): New ALU instruction definition. |
| (float<fi><F:mode>2): New conversion instruction definition. |
| (fix_trunc<F:mode><fi>2): New conversion instruction definition. |
| (fpcmpcc): New code iterator. |
| (*sf_fp_insn): New instruction definition. |
| (cstore<F:mode>4): New expand definition. |
| (cbranch<F:mode>4): New expand definition. |
| * config/or1k/or1k.opt (msoft-float, mhard-float, mdouble-float, |
| munordered-float): New options. |
| * doc/invoke.texi: Document msoft-float, mhard-float, mdouble-float and |
| munordered-float. |
| |
| 2019-07-22 Stafford Horne <shorne@gmail.com> |
| |
| * config.gcc (or1k*-*-*): Add mrori and mror to validation. |
| * doc/invoke.texi (OpenRISC Options): Add mrori option, rewrite all |
| documenation to be more clear. |
| * config/or1k/elf.opt (mboard=, mnewlib): Rewrite documentation to be |
| more clear. |
| * config/or1k/or1k.opt (mrori): New option. |
| (mhard-div, msoft-div, mhard-mul, msoft-mul, mcmov, mror, msext, |
| msfimm, mshftimm): Rewrite documentation to be more clear. |
| * config/or1k/or1k.md (insn_support): Add ror and rori. |
| (enabled): Add conditions for ror and rori. |
| (rotrsi3): Replace condition for shftimm with ror and rori. |
| |
| 2019-07-22 Stafford Horne <shorne@gmail.com> |
| |
| PR target/90363 |
| * config/or1k/or1k.md (zero_extend<mode>si2): Update predicate. |
| (extend<mode>si2): Update predicate. |
| * config/or1k/predicates.md (volatile_mem_operand): New. |
| (reg_or_mem_operand): New. |
| |
| 2019-07-21 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/rs6000.c (TARGET_NO_PROTOTYPE): Move from here... |
| * config/rs6000/rs6000-call.c: ... to here. |
| |
| 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/predicates.md (offsettable_mem_operand): Allow volatile |
| memory. |
| |
| 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/predicates.md (input_operand): Allow volatile memory. |
| |
| 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/predicates.md (lwa_operand): Allow volatile memory. |
| |
| 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/predicates.md (volatile_mem_operand): Modernize syntax. |
| (any_memory_operand): New predicate. |
| (reg_or_mem_operand): Use it. |
| |
| 2019-07-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/91204 |
| * optabs.c (expand_unop): As fallback, expand ~op0 as op0 ^ -1. |
| |
| 2019-07-20 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.h (hppa_profile_hook): Delete declaration. |
| * config/pa/pa-protos.h (hppa_profile_hook): Add declaration. |
| |
| 2019-07-20 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.def (OMP_LOOP): New tree code. |
| * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_BIND. |
| (enum omp_clause_bind_kind): New enum. |
| (struct tree_omp_clause): Add subcode.bind_kind. |
| * tree.h (OMP_LOOP_CHECK): Rename to ... |
| (OMP_LOOPING_CHECK): ... this. |
| (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND, |
| OMP_FOR_INCR, OMP_FOR_PRE_BODY, OMP_FOR_ORIG_DECLS): Use |
| OMP_LOOPING_CHECK instead of OMP_LOOP_CHECK. |
| (OMP_CLAUSE_BIND_KIND): Define. |
| * tree.c (omp_clause_num_ops, omp_clause_code_name): Add |
| bind clause entries. |
| (walk_tree_1): Handle OMP_CLAUSE_BIND. |
| * tree-pretty-print.c (dump_omp_clause): Likewise. |
| (dump_generic_node): Handle OMP_LOOP. |
| * gimplify.c (enum omp_region_type): Add ORT_IMPLICIT_TARGET. |
| (in_omp_construct): New variable. |
| (is_gimple_stmt): Handle OMP_LOOP. |
| (gimplify_scan_omp_clauses): For lastprivate don't set |
| check_non_private if code == OMP_LOOP. For reduction clause |
| on OMP_LOOP combined with parallel or teams propagate as shared |
| on the combined construct. Handle OMP_CLAUSE_BIND. |
| (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_BIND. |
| (gimplify_omp_for): Pass OMP_LOOP instead of OMP_{FOR,DISTRIBUTE} |
| for constructs from a loop construct to gimplify_scan_omp_clauses. |
| Don't predetermine iterator linear on OMP_SIMD from loop construct. |
| (replace_reduction_placeholders, gimplify_omp_loop): New functions. |
| (gimplify_omp_workshare): Use ORT_IMPLICIT_TARGET instead of trying |
| to match the implicit ORT_TARGET construct around whole body. |
| Temporarily clear in_omp_construct when processing body. |
| (gimplify_expr): Handle OMP_LOOP. For OMP_MASTER, OMP_TASKGROUP |
| etc. temporarily set in_omp_construct when processing body. |
| (gimplify_body): Create ORT_IMPLICIT_TARGET instead of ORT_TARGET. |
| * omp-low.c (struct omp_context): Add loop_p. |
| (build_outer_var_ref): Treat ctx->loop_p similarly to simd construct |
| in that the original var might be private. |
| (scan_sharing_clauses): Handle OMP_CLAUSE_BIND. |
| (check_omp_nesting_restrictions): Adjust nesting restrictions for |
| addition of loop construct. |
| (scan_omp_1_stmt): Allow setjmp inside of loop construct. |
| |
| * omp-low.c (lower_rec_input_clauses): Don't force simd arrays for |
| lastprivate non-addressable iterator of a collapse(1) simd. |
| |
| 2019-07-17 Bill Seurer <seurer@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (HAVE_AS_GNU_ATTRIBUTE): define value |
| as in rs6000.c. |
| |
| 2019-07-19 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.h (DRIVER_SELF_SPECS): Ignore X and Mach specs which |
| refer to default conditions. Warn for the 'y' spec which is ignored |
| by current linkers. |
| |
| 2019-07-19 Bill Seurer <seurer@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (builtin_description, cpu_is_info, |
| cpu_supports_info, builtin_hash_struct, builtin_hasher, |
| builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info, |
| rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate, |
| rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest, |
| init_cumulative_args, rs6000_promote_function_mode, |
| rs6000_must_pass_in_stack, is_complex_IBM_long_double, |
| abi_v4_pass_in_fpr, rs6000_function_arg_padding, |
| rs6000_function_arg_boundary, rs6000_parm_offset, |
| rs6000_parm_start, rs6000_arg_size, |
| rs6000_darwin64_record_arg_advance_flush, |
| rs6000_darwin64_record_arg_advance_recurse, |
| rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1, |
| rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush, |
| rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg, |
| rs6000_mixed_function_arg, rs6000_psave_function_arg, |
| rs6000_finish_function_arg, rs6000_function_arg, |
| rs6000_arg_partial_bytes, rs6000_pass_by_reference, |
| rs6000_parm_needs_stack, rs6000_function_parms_need_stack, |
| rs6000_reg_parm_stack_space, rs6000_move_block_from_reg, |
| setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start, |
| rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst, |
| bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg, |
| bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name, |
| rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin, |
| rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin, |
| rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin, |
| altivec_expand_abs_builtin, rs6000_expand_binop_builtin, |
| altivec_expand_predicate_builtin, swap_endian_selector_for_mode, |
| altivec_expand_lv_builtin, altivec_expand_stxvl_builtin, |
| altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode, |
| htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin, |
| altivec_expand_dst_builtin, altivec_expand_vec_init_builtin, |
| get_element_number, altivec_expand_vec_set_builtin, |
| altivec_expand_vec_ext_builtin, altivec_expand_builtin, |
| rs6000_builtin_is_supported_p, rs6000_invalid_builtin, |
| rs6000_fold_builtin, rs6000_builtin_valid_without_lhs, |
| fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper, |
| fold_mergeeo_helper, rs6000_gimple_fold_builtin, |
| rs6000_expand_builtin, rs6000_vector_type, |
| rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins, |
| htm_init_builtins, builtin_function_type, rs6000_common_init_builtins, |
| rs6000_internal_arg_pointer, rs6000_output_mi_thunk): Move |
| to rs6000-call.c. |
| * config/rs6000/rs6000-call.c (builtin_description, cpu_is_info, |
| cpu_supports_info, builtin_hash_struct, builtin_hasher, |
| builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info, |
| rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate, |
| rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest, |
| init_cumulative_args, rs6000_promote_function_mode, |
| rs6000_must_pass_in_stack, is_complex_IBM_long_double, |
| abi_v4_pass_in_fpr, rs6000_function_arg_padding, |
| rs6000_function_arg_boundary, rs6000_parm_offset, |
| rs6000_parm_start, rs6000_arg_size, |
| rs6000_darwin64_record_arg_advance_flush, |
| rs6000_darwin64_record_arg_advance_recurse, |
| rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1, |
| rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush, |
| rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg, |
| rs6000_mixed_function_arg, rs6000_psave_function_arg, |
| rs6000_finish_function_arg, rs6000_function_arg, |
| rs6000_arg_partial_bytes, rs6000_pass_by_reference, |
| rs6000_parm_needs_stack, rs6000_function_parms_need_stack, |
| rs6000_reg_parm_stack_space, rs6000_move_block_from_reg, |
| setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start, |
| rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst, |
| bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg, |
| bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name, |
| rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin, |
| rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin, |
| rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin, |
| altivec_expand_abs_builtin, rs6000_expand_binop_builtin, |
| altivec_expand_predicate_builtin, swap_endian_selector_for_mode, |
| altivec_expand_lv_builtin, altivec_expand_stxvl_builtin, |
| altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode, |
| htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin, |
| altivec_expand_dst_builtin, altivec_expand_vec_init_builtin, |
| get_element_number, altivec_expand_vec_set_builtin, |
| altivec_expand_vec_ext_builtin, altivec_expand_builtin, |
| rs6000_builtin_is_supported_p, rs6000_invalid_builtin, |
| rs6000_fold_builtin, rs6000_builtin_valid_without_lhs, |
| fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper, |
| fold_mergeeo_helper, rs6000_gimple_fold_builtin, |
| rs6000_expand_builtin, rs6000_vector_type, |
| rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins, |
| htm_init_builtins, builtin_function_type, rs6000_common_init_builtins, |
| rs6000_internal_arg_pointer, rs6000_output_mi_thunk: Move |
| to here from rs6000.c. |
| * config/rs6000/rs6000-internal.h: (rs6000_darwin64_struct_check_p, |
| rs6000_discover_homogeneous_aggregate, rs6000_output_mi_thunk, |
| rs6000_output_addr_const_extra, rs6000_gimple_fold_builtin, |
| rs6000_invalid_builtin, rs6000_build_builtin_va_list, rs6000_va_start, |
| rs6000_gimplify_va_arg, rs6000_promote_function_mode, |
| rs6000_return_in_memory, rs6000_return_in_msb, |
| rs6000_pass_by_reference, setup_incoming_varargs, |
| rs6000_function_arg_boundary, rs6000_must_pass_in_stack, |
| rs6000_arg_partial_bytes, rs6000_function_arg_advance, |
| rs6000_function_arg_padding, rs6000_function_arg, |
| rs6000_darwin64_record_arg, rs6000_internal_arg_pointer, |
| rs6000_init_builtins, rs6000_builtin_decl, rs6000_expand_builtin, |
| rs6000_fold_builtin, rs6000_passes_ieee128, rs6000_passes_float, |
| rs6000_passes_long_double, rs6000_passes_vector, |
| rs6000_returns_struct, cpu_builtin_p, tree builtin_mode_to_type, |
| altivec_builtin_mask_for_load) Add declarations. |
| * config/rs6000/t-rs6000: Add new source file rs6000-call.c. |
| * config/config.gcc: Add new source file rs6000-call.c to garbage |
| collector and extra_objs. |
| |
| 2019-07-19 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/86061 |
| * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle |
| strncpy. Drop some trivial dead code. |
| (maybe_trim_memstar_call): Handle strncpy. |
| |
| 2019-07-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91211 |
| * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix |
| memset encoding size. |
| |
| 2019-07-19 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/91204 |
| * config/i386/mmx.md (one_cmpl<mode>2): New expander. |
| |
| 2019-07-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/91194 |
| * ipa-inline.c (recursive_inlining): Fix limits check. |
| |
| 2019-07-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91200 |
| * tree-ssa-phiopt.c (cond_store_replacement): Check we have |
| no PHI nodes in middle-bb. |
| |
| 2019-07-19 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/invoke.texi: Rename the AArch64 +bitperm extension flag |
| to +sve-bitperm. |
| * config/aarch64/aarch64-option-extensions.def: Likewise. |
| |
| 2019-07-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/91190 |
| * function.c (insert_temp_slot_address): Store into the hash table |
| a copy of address to avoid RTL sharing issues. |
| |
| 2019-07-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91207 |
| Revert |
| 2019-07-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91178 |
| * tree-vect-stmts.c (get_group_load_store_type): For SLP |
| loads with a gap larger than the vector size always use |
| VMAT_STRIDED_SLP. |
| (vectorizable_load): For VMAT_STRIDED_SLP with a permutation |
| avoid loading vectors that are only contained in the gap |
| and thus are not needed. |
| |
| 2019-07-18 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*addqi_2_slp): Remove. |
| (*<code>qi_2_slp): Ditto. |
| |
| 2019-07-18 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/predicates.md (prefixed_mem_operand): Call |
| rs6000_prefixed_address_mode_p instead of rs6000_prefixed_address. |
| * config/rs6000/rs6000-protos.h (rs6000_prefixed_address_mode_p): |
| Rename function from rs6000_prefixed_address. |
| * config/rs6000/aix.h (TARGET_HAS_TOC): Rename TARGET_TOC to |
| TARGET_HAS_TOC. |
| (TARGET_TOC): Likewise. |
| (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in |
| rs6000.h. |
| * config/rs6000/darwin.h (TARGET_HAS_TOC): Rename TARGET_TOC to |
| TARGET_HAS_TOC. |
| (TARGET_TOC): Likewise. |
| (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in |
| rs6000.h. |
| * config/rs6000/linux64.h (TARGET_HAS_TOC): Rename TARGET_TOC to |
| TARGET_HAS_TOC. |
| (TARGET_TOC): Likewise. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Add |
| check to require -mcmodel=medium for pc-relative addressing. |
| (create_TOC_reference): Add assertion for TARGET_TOC. |
| (rs6000_legitimize_address): Use TARGET_NO_TOC_OR_PCREL instead of |
| TARGET_NO_TOC. |
| (rs6000_emit_move): Likewise. |
| (TOC_alias_set): Rename TOC alias set static variable from 'set' |
| to 'TOC_alias_set'. |
| (get_TOC_alias_set): Likewise. |
| (output_toc): Use TARGET_NO_TOC_OR_PCREL instead of |
| TARGET_NO_TOC. |
| (rs6000_can_eliminate): Likewise. |
| (rs6000_prefixed_address_mode_p): Rename function from |
| rs6000_prefixed_address. |
| * config/rs6000/rs6000.h (TARGET_TOC): Define in terms of |
| TARGET_HAS_TOC and not pc-relative. |
| (TARGET_NO_TOC_OR_PCREL): New macro to replace TARGET_NO_TOC. |
| * config/rs6000/sysv4.h (TARGET_HAS_TOC): Rename TARGET_TOC to |
| TARGET_HAS_TOC. |
| (TARGET_TOC): Likewise. |
| (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in |
| rs6000.h. |
| |
| 2019-07-18 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/91188 |
| * config/i386/i386.md (*addqi_1_slp): Use register_operand predicate |
| for operand 0. Do not use (match_dup) to match operand 1 with |
| operand 0. Add check in insn constraint that either input operand |
| matches operand 0. Use SWI12 mode iterator to also handle |
| HImode operands. |
| (*and<mode>_1_slp): Ditto. |
| (*<code>qi_1_slp): Ditto. |
| (*sub<mode>_1_slp): Use register_operand predicate for operand 0. |
| Do not use (match_dup) to match operand 1 with operand 0. Add |
| check in insn constraint that operand 1 matches operand 0. |
| Use SWI12 mode iterator to also handle HImode operands. |
| (*ashl<mode>3_1_slp): Ditto. |
| (*<shift_insn><mode>3_1_slp): Ditto. |
| (*<rotate_insn><mode>3_1_slp): Ditto. |
| |
| 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com> |
| |
| * config/arm/arm-builtins.c |
| (arm_expand_ternop_builtin): Remove explicit sha1 builtin handling. |
| (arm_expand_unop_builtin): Likewise. |
| * config/arm/crypto.md |
| (crypto_sha1h): Convert from define_insn to define_expand. |
| (crypto_<crypto_pattern>): Likewise. |
| (crypto_sha1h_lb): New define_insn. |
| (crypto_<crypto_pattern>_lb): Likewise. |
| |
| 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com> |
| |
| PR target/90317 |
| * config/arm/arm_neon.h (vsha1h_u32): Refactor. |
| (vsha1cq_u32): Likewise. |
| (vsha1pq_u32): Likewise. |
| (vsha1mq_u32): Likewise. |
| * config/arm/crypto.md (crypto_sha1h): Remove zero extend, correct |
| vec select. |
| (crypto_sha1c): Correct vec select. |
| (crypto_sha1m): Likewise. |
| (crypto_sha1p): Likewise. |
| |
| 2019-07-18 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/predicates.md (arm_borrow_operation): New predicate. |
| * config/arm/arm.c (subdi3_compare1): Use CCmode for the split. |
| (arm_subdi3, subdi_di_zesidi, subdi_di_sesidi): Likewise. |
| (subdi_zesidi_zesidi): Likewise. |
| (negdi2_compare, negdi2_insn): Likewise. |
| (negdi_extensidi): Likewise. |
| (negdi_zero_extendsidi): Likewise. |
| (arm_cmpdi_insn): Likewise. |
| (subsi3_carryin): Use arm_borrow_operation. |
| (subsi3_carryin_const): Likewise. |
| (subsi3_carryin_const0): Likewise. |
| (subsi3_carryin_compare): Likewise. |
| (subsi3_carryin_compare_const): Likewise. |
| (subsi3_carryin_compare_const0): Likewise. |
| (subsi3_carryin_shift): Likewise. |
| (rsbsi3_carryin_shift): Likewise. |
| (negsi2_carryin_compare): Likewise. |
| |
| 2019-07-18 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/91137 |
| * tree-ssa-loop-ivopts.c (struct ivopts_data): New field. |
| (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize): |
| Init, use and fini the above new field. |
| (determine_base_object_1): New function. |
| (determine_base_object): Reimplement using walk_tree. |
| |
| 2019-07-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * basic-block.h (CLEANUP_FORCE_FAST_DCE): New macro. |
| * cfgcleanup.c (cleanup_cfg): Call run_fast_dce if |
| CLEANUP_FORCE_FAST_DCE is set. |
| * ifcvt.c (rest_of_handle_if_conversion): Pass |
| CLEANUP_FORCE_FAST_DCE to the final cleanup_cfg call if |
| if-conversion succeeded. |
| |
| 2019-07-18 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Refactor |
| branches to make code less indented. |
| |
| 2019-07-17 Alexandre Oliva <oliva@adacore.com> |
| |
| PR middle-end/81824 |
| * attribs.c (decls_mismatched_attributes): Simplify the logic |
| that avoids duplicates and false positives. |
| |
| 2019-07-17 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.c (pa_som_asm_init_sections): Don't force all constant |
| data into data section when generating PIC code. |
| (pa_select_section): Use pa_reloc_rw_mask() to qualify relocs. |
| (pa_reloc_rw_mask): Return 3 when generating PIC code and when |
| generating code for SOM targets earlier than HP-UX 11. Otherwise, |
| return 2 for SOM and 0 for other targets. |
| |
| 2019-07-17 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dse.c (initialize_ao_ref_for_dse): Fix formatting. |
| (dse_walker::dse_optimize_stmt): Likewise. Add missing return to |
| avoid unexpected switch statement fallthru. |
| |
| 2019-07-17 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*add<dwi>3_doubleword): |
| Remove redundant constraints. |
| (*add<mode>_1): Ditto. |
| (*addhi_1): Ditto. |
| (*addqi_1): Ditto. |
| (*addqi_1_slp): Ditto. |
| (*add<mode>_2): Ditto. |
| (*addv<mode>4): Ditto. |
| (*sub<dwi>3_doubleword): Ditto. |
| (*sub<mode>_1): Ditto. |
| (*subqi_1_slp): Ditto. |
| (*sub<mode>_2): Ditto. |
| (*subv<mode>4): Ditto. |
| (*sub<mode>_3): Ditto. |
| (@add<mode>3_carry): Ditto. |
| (@sub<mode>3_carry): Ditto. |
| (*add<mode>3_cc_overflow_1): Ditto. |
| (*add<mode>3_zext_cc_overflow_2): Ditto. |
| (*anddi_1): Ditto. |
| (*and<mode>_1): Ditto. |
| (*andqi_1): Ditto. |
| (*andqi_1_slp): Ditto. |
| (*anddi_2): Ditto. |
| (*andqi_2_maybe_si): Ditto. |
| (*and<mode>_2): Ditto. |
| (*andqi_2_slp): Ditto. |
| (*<code><mode>_1): Ditto. |
| (*<code>qi_1): Ditto. |
| (*<code>qi_1_slp): Ditto. |
| (*<code><mode>_2): Ditto. |
| (*<code>qi_2_slp): Ditto. |
| |
| 2019-07-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * alias.c (record_component_aliases): Do not simplify pointed-to |
| types of ODR types. |
| |
| 2019-07-17 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*andqi_2_maybe_si): Handle potential |
| partial reg stall on alternative 2. |
| |
| 2019-07-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91178 |
| * tree-ssa.c (release_defs_bitset): Iterate from higher to |
| lower SSA names to avoid quadratic behavior in the common case. |
| * tree-data-ref.c (split_constant_offset): Add limit argument |
| and pass it down. Initialize it from PARAM_SSA_NAME_DEF_CHAIN_LIMIT. |
| (split_constant_offset_1): Add limit argument and use it to |
| limit SSA def walking. Optimize the common plus/minus case. |
| |
| 2019-07-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91178 |
| * tree-vect-stmts.c (get_group_load_store_type): For SLP |
| loads with a gap larger than the vector size always use |
| VMAT_STRIDED_SLP. |
| (vectorizable_load): For VMAT_STRIDED_SLP with a permutation |
| avoid loading vectors that are only contained in the gap |
| and thus are not needed. |
| |
| 2019-07-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91180 |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix offset |
| computation for memset partial defs. |
| |
| 2019-07-17 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple.h (enum gf_mask): Remove GF_OMP_FOR_SIMD, change |
| GF_OMP_FOR_KIND_SIMD to a value serially after other kinds, |
| divide GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_COMBINED, |
| GF_OMP_FOR_COMBINED_INTO, GF_OMP_FOR_GRID_PHONY, |
| GF_OMP_FOR_GRID_INTRA_GROUP and GF_OMP_FOR_GRID_GROUP_ITER by two. |
| * omp-grid.c (grid_process_grid_body, |
| grid_eliminate_combined_simd_part): Use GF_OMP_FOR_KIND_SIMD instead |
| of GF_OMP_FOR_SIMD, don't test & GF_OMP_FOR_SIMD but |
| == GF_OMP_FOR_KIND_SIMD. |
| * omp-low.c (build_outer_var_ref, scan_sharing_clauses, |
| check_omp_nesting_restrictions, scan_omp_1_stmt, |
| lower_rec_input_clauses, lower_lastprivate_conditional_clauses, |
| lower_lastprivate_clauses, lower_reduction_clauses, lower_omp_scan, |
| omp_find_scan): Likewise. |
| * omp-expand.c (expand_omp_for): Likewise. |
| * omp-general.c (omp_extract_for_data): Likewise. |
| |
| PR tree-optimization/91157 |
| * tree-vect-generic.c (expand_vector_comparison): Handle lhs being |
| a vector boolean with scalar mode. |
| (expand_vector_condition): Handle first operand being a vector boolean |
| with scalar mode. |
| (expand_vector_operations_1): For comparisons, don't bail out early |
| if the return type is vector boolean with scalar mode, but comparison |
| operand type is not. |
| |
| 2019-07-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91181 |
| * tree-vect-slp.c (vect_build_slp_tree_1): Do not compare |
| IFN_LOADs as calls. |
| |
| 2019-07-16 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*testdi_1): Match CCZmode for |
| constants that might have the SImode sign bit set. |
| (*testqi_1_maybe_si): Remove "!" constraint modifier. |
| Use correct constraints for pentium pairing. |
| (*test<mode>_1): Ditto. |
| |
| 2019-07-16 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/91173 |
| * tree-ssa-address.c (addr_for_mem_ref): If the base is an |
| SSA_NAME with a constant value, fold its value into the offset |
| and clear the base before calling gen_addr_rtx. |
| |
| 2019-07-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/91164 |
| * dse.c (rest_of_handle_dse): If dead edges have been purged, |
| invalidate dominance info. |
| |
| 2019-07-16 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * read-md.h (md_reader::record_potential_iterator_use): Add a |
| file_location parameter. |
| * read-rtl.c (attribute_use::loc): New field. |
| (map_attr_string): Take a file_location parameter. Report cases |
| in which attributes map to multiple distinct values. |
| (apply_attribute_uses): Update call accordingly. |
| (md_reader::handle_overloaded_name): Likewise. |
| (md_reader::apply_iterator_to_string): Likewise. Skip empty |
| nonnull strings. |
| (record_attribute_use): Take a file_location parameter. |
| Initialize attribute_use::loc. |
| (md_reader::record_potential_iterator_use): Take a file_location |
| parameter. Update call to record_attribute_use. |
| (rtx_reader::rtx_alloc_for_name): Update call accordingly. |
| (rtx_reader::read_rtx_code): Likewise. |
| (rtx_reader::read_rtx_operand): Likewise. Record a location |
| for implicitly-expanded empty strings. |
| |
| 2019-07-16 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * read-md.h (md_reader::ptr_loc): Moved from read-md.c. |
| Use file_location instead of separate fields. |
| (md_reader::set_md_ptr_loc): Take a file_location instead of a |
| separate filename and line number. |
| * read-md.c (ptr_loc): As above. |
| (md_reader::copy_md_ptr_loc): Update for new ptr_loc layout. |
| (md_reader::fprint_md_ptr_loc): Likewise. |
| (md_reader::set_md_ptr_loc): Likewise. Take a file_location |
| instead of a separate filename and line number. |
| (md_reader::read_string): Update call accordingly. |
| |
| 2019-07-16 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/rs6000/rs6000.md (*mov<mode>_update1): Explicitly |
| use <SFDF:mode>, <SFDF:MODE>, <SFDF:Ff> and <SFDF:bits> rather than |
| leaving the choice between SFDF and P implicit. |
| (*mov<mode>_update2): Likewise. |
| (*cmp<IBM128:mode>_internal2): Explicitly use <IBM128:MODE> |
| rather than leaving the choice betweem IBM128 and GPR implicit. |
| (*fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Explicitly use |
| <IEEE128:MODE> rather than leaving the choice between IEEE128 and |
| QHSI implicit. |
| (AltiVec define_peephole2s): Explicitly use <ALTIVEC_DFORM:MODE> |
| rather than leaving the choice between ALTIVEC_DFORM and P implicit. |
| * config/rs6000/vsx.md |
| (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>) |
| (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Explicitly |
| use <FL_CONV:VSisa> rather than leaving the choice between FL_CONV |
| and VSX_EXTRACT_I implicit. |
| |
| 2019-07-16 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/mips/micromips.md (*movep<MOVEP1:mode><MOVEP2:mode>): |
| Explicitly use <MOVEP1:MODE> for the mode attribute. |
| |
| 2019-07-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR bootstrap/91176 |
| * ipa-fnsummary.c (analyze_function_body): Skip debug stmts |
| |
| 2019-07-15 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/91050 |
| * config/rs6000/rs6000.c (rs6000_file_start): Never skip emitting a |
| .machine directive. |
| |
| 2019-07-15 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (@test<mode>_ccno_1): |
| Rename from test<mode>_ccno_1. |
| (*testdi_1): Remove redundant alternatives. Remove modrm attribute. |
| (*testqi_1_maybe_si): Remove modrm attribute. |
| (*test<mode>_1): Ditto. |
| * config/i386/i386-expand.c (ix86_split_idivmod): Use |
| gen_test_ccno_1 and gen_extend_insn. |
| |
| 2019-07-15 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (aliasing_component_refs_walk): Initialize same_p |
| to 0. |
| |
| 2019-07-15 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/91162 |
| * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI |
| node make sure to replace all uses with something valid. |
| |
| 2019-07-15 Kewen Lin <linkw@gcc.gnu.org> |
| |
| PR tree-optimization/88497 |
| * tree-ssa-reassoc.c (reassociate_bb): Swap the positions of |
| GIMPLE_BINARY_RHS check and gimple_visited_p check, call new |
| function undistribute_bitref_for_vector. |
| (undistribute_bitref_for_vector): New function. |
| (cleanup_vinfo_map): Likewise. |
| (sort_by_mach_mode): Likewise. |
| |
| 2019-07-14 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (nonmemory_szext_operand): New mode attribute. |
| (test<mode>_ccno_1): Macroize insn pattern from testsi_ccno_1 |
| and testdi_ccno_1 using SWI48 mode attribute. |
| (*testdi_1): Use x86_64_szext_nonmemory_operand instead of |
| x86_64_szext_general_operand. |
| (*testqi_1_maybe_si): Use nonmemory_operand instead of general_operand. |
| (*test<mode>_1): Use nonmemory_szext_operand mode attribute |
| instead of genera_operand mode attribute. |
| |
| 2019-07-14 Vladislav Ivanishin <vlad@ispras.ru> |
| |
| * gdbhooks.py (DumpFn.invoke): Add explicit casts of return values of |
| fopen and fclose to their respective types. |
| (DotFn.invoke): Ditto. |
| |
| 2019-07-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-fnsummary.c (ipa_dump_hints): Do not dump array_index. |
| (ipa_fn_summary::~ipa_fn_summary): Do not destroy array_index. |
| (ipa_fn_summary_t::duplicate): Do not duplicate array_index. |
| (array_index_predicate): Remove. |
| (analyze_function_body): Account cost for variable ofsetted array |
| indexing. |
| (estimate_node_size_and_time): Do not compute array index hint. |
| (ipa_merge_fn_summary_after_inlining): Do not merge array index hint. |
| (inline_read_section): Do not read array index hint. |
| (ipa_fn_summary_write): Do not write array index hint. |
| * doc/invoke.texi (ipa-cp-array-index-hint-bonus): Remove. |
| * ipa-cp.c (hint_time_bonus): Remove. |
| * ipa-fnsummary.h (ipa_hints_vals): Remove array_index. |
| (ipa_fnsummary): Remove array_index. |
| * ipa-inline.c (want_inline_small_function_p): Do not use |
| array_index. |
| (edge_badness): Likewise. |
| * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Remove. |
| |
| 2019-07-14 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/91148 |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Remove |
| superfluous "builtin function" phrasing. |
| |
| 2019-07-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (component_ref_to_zero_sized_trailing_array_p): |
| Break out from ... |
| (aliasing_component_refs_walk): Break out from ... |
| (aliasing_component_refs_p): ... here. |
| |
| 2019-07-13 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/91148 |
| * config/rs6000/rs6000.c (rs6000_invalid_builtin): Remove superfluous |
| "builtin function" phrasing. |
| |
| 2019-07-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR target/90723 |
| * recog.h (temporary_volatile_ok): New class. |
| * config/aarch64/aarch64.c (aarch64_emit_sve_pred_move): Set |
| volatile_ok temporarily to true using temporary_volatile_ok. |
| * expr.c (emit_block_move_via_cpymem): Likewise. |
| * optabs.c (maybe_legitimize_operand): Likewise. |
| |
| 2019-07-13 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.c (struct gimplify_omp_ctx): Add order_concurrent member. |
| (omp_notice_threadprivate_variable): Diagnose threadprivate variable |
| uses inside of order(concurrent) constructs. |
| (gimplify_scan_omp_clauses): Set ctx->order_concurrent if |
| OMP_CLAUSE_ORDER is seen. |
| * omp-low.c (struct omp_context): Add order_concurrent member. |
| (scan_sharing_clauses): Set ctx->order_concurrent if |
| OMP_CLAUSE_ORDER is seen. |
| (check_omp_nesting_restrictions): Diagnose ordered or atomic inside |
| of simd order(concurrent). Diagnose constructs not allowed inside of |
| for order(concurrent). |
| (setjmp_or_longjmp_p): Add a context and TREE_PUBLIC check to avoid |
| complaining about static double setjmp (double); or class static |
| methods or non-global namespace setjmps. |
| (omp_runtime_api_call): New function. |
| (scan_omp_1_stmt): Diagnose OpenMP runtime API calls inside of |
| order(concurrent) loops. |
| |
| 2019-07-12 Martin Sebor <msebor@redhat.com> |
| |
| * doc/invoke.texi (ssa-name-def-chain-limit): Document new --param. |
| * params.def (PARAM_SSA_NAME_DEF_CHAIN_LIMIT): Add new --param. |
| * tree-vrp.c (vrp_prop::check_mem_ref): Use |
| PARAM_SSA_NAME_DEF_CHAIN_LIMIT. |
| |
| 2019-07-12 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-alias.c (same_tmr_indexing_p): Break out from ... |
| (indirect_refs_may_alias_p): ... here. |
| (nonoverlapping_component_refs_since_match_p): Support also non-trivial |
| mem refs in the access paths. |
| |
| 2019-07-12 Jiangning Liu <jiangning.liu@amperecomputing.com> |
| |
| PR tree-optimization/89430 |
| * tree-ssa-phiopt.c (cond_store_replacement): Support conditional |
| store elimination for local variable without address escape. |
| |
| 2019-07-12 Jeff Law <law@redhat.com> |
| |
| * config/c6x/c6x.c (c6x_section_type): Clear SECTION_NOTYPE |
| for the ".far" section. |
| |
| 2019-07-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91145 |
| * tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction |
| chain check. |
| |
| 2019-07-12 Alexandre Oliva <oliva@adacore.com> |
| |
| * tree-eh.c (honor_protect_cleanup_actions): Use outer_ |
| rather than this_state as the lowering context for the ELSE |
| seq in a GIMPLE_EH_ELSE. |
| |
| 2019-07-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * vector-builder.h (vector_builder::elt): Allow already-supplied |
| elements to be read back before building is complete. |
| |
| 2019-07-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/91136 |
| * df-core.c (ACCESSING REFS): Fix typos in comment. |
| * resource.c (mark_target_live_reg): Add artificial defs that occur at |
| the beginning of the block to the initial set of live registers. |
| |
| 2019-07-12 Richard Biener <rguenther@suse.de> |
| |
| * fold-const.h (get_array_ctor_element_at_index): Adjust. |
| * fold-const.c (get_array_ctor_element_at_index): Add |
| ctor_idx output parameter informing the caller where in |
| the constructor the element was (not) found. Add early exit |
| for when the ctor is sorted. |
| * gimple-fold.c (fold_array_ctor_reference): Support constant |
| folding across multiple array elements. |
| |
| 2019-07-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cfgexpand.c (expand_gimple_stmt_1) <GIMPLE_RETURN>: If the statement |
| doesn't have location, set the current location to the function's end. |
| |
| 2019-07-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.md (*compare_condjump<mode>) |
| (loadwb_pair<GPI:mode>_<P:mode>, loadwb_pair<GPF:mode>_<P:mode>) |
| (storewb_pair<GPI:mode>_<P:mode>, storewb_pair<GPF:mode>_<P:mode>) |
| (*ands<mode>_compare0): Fix ambiguous uses of .md attributes. |
| * config/aarch64/aarch64-simd.md |
| (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise. |
| (*aarch64_get_lane_zero_extend<GPI:mode><VDQQH:mode>): Likewise. |
| * config/aarch64/aarch64-sve.md |
| (while_ult<GPI:mode><PRED_ALL:mode>): Likewise. |
| (*cond_<optab><mode>_any): Fix SVE_I/SVE_SDI typo. |
| |
| 2019-07-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/md.texi: Document that @ patterns can have different |
| numbers of operands. |
| * genemit.c (handle_overloaded_gen): Handle this case. |
| * genopinit.c (handle_overloaded_gen): Likewise. |
| * gensupport.c (replace_operands_with_dups): Iterate over |
| the new rtx's format rather than the old one's. |
| |
| 2019-07-12 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_ORDER. |
| * tree.c (omp_clause_num_ops, omp_clause_code_name): Add |
| order clause entries. |
| (walk_tree_1): Handle OMP_CLAUSE_ORDER. |
| * tree-pretty-print.c (dump_omp_clause): Likewise. |
| * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): |
| Likewise. |
| * omp-low.c (scan_sharing_clauses): Likewise. |
| * tree-nested.c (convert_nonlocal_omp_clauses, |
| convert_local_omp_clauses): Likewise. |
| |
| 2019-07-12 Kewen Lin <linkw@gcc.gnu.org> |
| |
| * cfgrtl.c (print_rtl_with_bb): Emit a hint if the |
| fallthrough target of current basic block isn't the placed |
| right next. |
| |
| 2019-07-11 Sunil K Pandey <sunil.k.pandey@intel.com> |
| |
| PR target/90980 |
| * config/i386/avx512fintrin.h (_mm512_loadu_epi64): New. |
| (_mm512_storeu_epi64): Likewise. |
| (_mm512_loadu_epi32): Likewise. |
| (_mm512_storeu_epi32): Likewise. |
| * config/i386/avx512vlintrin.h (_mm256_storeu_epi64): New. |
| (_mm_storeu_epi64): Likewise. |
| (_mm256_storeu_epi32): Likewise. |
| (_mm_storeu_epi32): Likewise. |
| |
| 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000-logue.c: Add Modula-2 to comment. |
| |
| 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000-logue.c (rs6000_output_function_epilogue): |
| Handle Modula-2. |
| |
| 2019-07-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/91124 |
| * config/i386/sse.md (sse2_cvtpd2dq<mask_name>): Change into ... |
| (sse2_cvtpd2dq): ... this. Remove mask substitution macros. |
| (sse2_cvtpd2dq_mask, sse2_cvtpd2dq_mask_1): New define_insns. |
| (ufix_notruncv2dfv2si2<mask_name>): Change into ... |
| (ufix_notruncv2dfv2si2): ... this. Remove mask substitution macros. |
| (ufix_notruncv2dfv2si2_mask, ufix_notruncv2dfv2si2_mask_1): New |
| define_insns. |
| (ufix_truncv2dfv2si2<mask_name>): Change into ... |
| (ufix_truncv2dfv2si2): ... this. Remove mask substitution macros. |
| (ufix_truncv2dfv2si2_mask, ufix_truncv2dfv2si2_mask_1): New |
| define_insns. |
| (sse2_cvttpd2dq<mask_name>): Change into ... |
| (sse2_cvttpd2dq): ... this. Remove mask substitution macros. |
| (sse2_cvttpd2dq_mask, sse2_cvttpd2dq_mask_1): New define_insns. |
| (*sse2_cvtpd2dq<mask_name>): Change into ... |
| (*sse2_cvtpd2dq): ... this. Remove mask substitution macros. |
| Add "C" constraint to const0_operand. |
| (*sse2_cvtpd2dq_mask, *sse2_cvtpd2dq_mask_1): New define_insns. |
| (sse2_cvtpd2ps_mask): Adjust expand to match *sse2_cvtpd2ps_mask |
| changes. |
| |
| PR target/91124 |
| * config/i386/i386-builtin-types.def |
| (V32HI_FTYPE_V32HI_V32HI_V32HI_INT, |
| V16HI_FTYPE_V16HI_V16HI_V16HI_INT, V8HI_FTYPE_V8HI_V8HI_V8HI_INT, |
| V8SI_FTYPE_V8SI_V8SI_V8SI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT, |
| V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V16SI_FTYPE_V16SI_V16SI_V16SI_INT, |
| V2DI_FTYPE_V2DI_V2DI_V2DI_INT, V4SI_FTYPE_V4SI_V4SI_V4SI_INT): Remove. |
| * config/i386/i386-builtin.def (__builtin_ia32_vpshrdv_v32hi_mask, |
| __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshrdv_v16hi_mask, |
| __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi_mask, |
| __builtin_ia32_vpshrdv_v8hi_maskz, __builtin_ia32_vpshrdv_v16si_mask, |
| __builtin_ia32_vpshrdv_v16si_maskz, __builtin_ia32_vpshrdv_v8si_mask, |
| __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si_mask, |
| __builtin_ia32_vpshrdv_v4si_maskz, __builtin_ia32_vpshrdv_v8di_mask, |
| __builtin_ia32_vpshrdv_v8di_maskz, __builtin_ia32_vpshrdv_v4di_mask, |
| __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di_mask, |
| __builtin_ia32_vpshrdv_v2di_maskz, __builtin_ia32_vpshldv_v32hi_mask, |
| __builtin_ia32_vpshldv_v32hi_maskz, __builtin_ia32_vpshldv_v16hi_mask, |
| __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi_mask, |
| __builtin_ia32_vpshldv_v8hi_maskz, __builtin_ia32_vpshldv_v16si_mask, |
| __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si_mask, |
| __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si_mask, |
| __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di_mask, |
| __builtin_ia32_vpshldv_v8di_maskz, __builtin_ia32_vpshldv_v4di_mask, |
| __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di_mask, |
| __builtin_ia32_vpshldv_v2di_maskz, __builtin_ia32_vpdpbusd_v16si_mask, |
| __builtin_ia32_vpdpbusd_v16si_maskz, __builtin_ia32_vpdpbusd_v8si_mask, |
| __builtin_ia32_vpdpbusd_v8si_maskz, __builtin_ia32_vpdpbusd_v4si_mask, |
| __builtin_ia32_vpdpbusd_v4si_maskz, |
| __builtin_ia32_vpdpbusds_v16si_mask, |
| __builtin_ia32_vpdpbusds_v16si_maskz, |
| __builtin_ia32_vpdpbusds_v8si_mask, |
| __builtin_ia32_vpdpbusds_v8si_maskz, |
| __builtin_ia32_vpdpbusds_v4si_mask, |
| __builtin_ia32_vpdpbusds_v4si_maskz, |
| __builtin_ia32_vpdpwssd_v16si_mask, |
| __builtin_ia32_vpdpwssd_v16si_maskz, __builtin_ia32_vpdpwssd_v8si_mask, |
| __builtin_ia32_vpdpwssd_v8si_maskz, __builtin_ia32_vpdpwssd_v4si_mask, |
| __builtin_ia32_vpdpwssd_v4si_maskz, |
| __builtin_ia32_vpdpwssds_v16si_mask, |
| __builtin_ia32_vpdpwssds_v16si_maskz, |
| __builtin_ia32_vpdpwssds_v8si_mask, |
| __builtin_ia32_vpdpwssds_v8si_maskz, |
| __builtin_ia32_vpdpwssds_v4si_mask, |
| __builtin_ia32_vpdpwssds_v4si_maskz): Use *_USI, *_UHI or *_UQI |
| suffixed types rather than *_INT. |
| * config/i386/i386-expand.c (ix86_expand_args_builtin): Don't handle |
| V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT, |
| V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT, |
| V4DI_FTYPE_V4DI_V4DI_V4DI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI_INT, |
| V16SI_FTYPE_V16SI_V16SI_V16SI_INT, V2DI_FTYPE_V2DI_V2DI_V2DI_INT |
| and V4SI_FTYPE_V4SI_V4SI_V4SI_INT. |
| |
| 2019-07-11 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-vrp.c (intersect_ranges): If we know the intersection is |
| empty, there is no need to conservatively add anything else to |
| the set. |
| |
| 2019-07-11 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/91131 |
| * gimplify.c (gimplify_compound_literal_expr): Force a temporary |
| when the object is volatile and we have not cleared it even though |
| there are no nonzero elements. |
| |
| 2019-07-10 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/predicates.md (cint34_operand): Update |
| SIGNED_34BIT_OFFSET_P call. |
| (pcrel_address): Update SIGNED_34BIT_OFFSET_P call. |
| (pcrel_external_address): Update SIGNED_34BIT_OFFSET_P call. |
| * config/rs6000/rs6000.c (rs6000_prefixed_address): Update |
| SIGNED_16BIT_OFFSET_P and SIGNED_34BIT_OFFSET_P calls. |
| * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): Remove EXTRA |
| argument. |
| (SIGNED_34BIT_OFFSET_P): Remove EXTRA argument. |
| (SIGNED_16BIT_OFFSET_EXTRA_P): New macro, like |
| SIGNED_16BIT_OFFSET_P with an EXTRA argument. |
| (SIGNED_34BIT_OFFSET_EXTRA_P): New macro, like |
| SIGNED_34BIT_OFFSET_P with an EXTRA argument. |
| |
| 2019-07-10 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/darwin.h (LIB_SPEC): Collate this spec here. |
| * config/rs6000/darwin7.h (LIB_SPEC): Remove. |
| * config/rs6000/darwin8.h (LIB_SPEC): Remove. |
| (DEF_MIN_OSX_VERSION): New. |
| |
| 2019-07-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * fold-const.c (fold_relational_const): Fix folding of |
| vector-to-scalar NE_EXPRs. |
| (test_vector_folding): Add more tests. |
| |
| 2019-07-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/91060 |
| * config/arm/iterators.md (V2DI_ONLY): New mode iterator. |
| * config/arm/neon.md (vec_set<mode>_internal): Add a '@' prefix. |
| (vec_setv2di_internal): Reexpress as... |
| (@vec_set<V2DI_ONLY:mode>_internal): ...this. |
| * config/arm/arm.c (neon_expand_vector_init): Use gen_vec_set_internal |
| rather than gen_neon_vset_lane<mode>. |
| |
| 2019-07-10 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/91102 |
| * lra-constraints.c (process_alt_operands): Don't match user |
| defined regs only if they are early clobbers. |
| |
| 2019-07-10 Marc Glisse <marc.glisse@inria.fr> |
| |
| * wide-int.h (wi::lshift): Reject negative values for the fast path. |
| |
| 2019-07-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91126 |
| * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust |
| native encoding offset for BYTES_BIG_ENDIAN. |
| (vn_reference_lookup_3): Likewise. |
| |
| 2019-07-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Look at valueized |
| LHS whenever possible. |
| |
| 2019-07-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (nonoverlapping_component_refs_p_1): Break out |
| from ...; work also on duplicated types. |
| (nonoverlapping_component_refs_since_match): ... here |
| (ncr_type_uid): Break out from ... |
| (ncr_compar): ... here; look for TYPE_UID of canonical type if |
| available. |
| (nonoverlapping_component_refs_p): Use same_type_for_tbaa to match |
| the types and nonoverlapping_component_refs_p_1 to disambiguate. |
| |
| 2019-07-09 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/90989 |
| * tree-ssa-strlen.c (handle_char_store): Constrain a single character |
| optimization to just single character stores. |
| |
| 2019-07-09 Joern Rennecke <joern.rennecke@riscy-ip.com> |
| |
| * tree-vect-stmts.c (vectorizable_comparison) <!slp_node>: |
| Swap operands only once. |
| |
| 2019-07-09 Dragan Mladjenovic <dmladjenovic@wavecomp.com> |
| |
| * cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal |
| for both call instructions. |
| |
| 2019-07-09 John Darrington <john@darrington.wattle.id.au> |
| |
| * simplify-rtx.c (simplify_unary_operation_1): Use GET_MODE_PRECISION |
| rather than GET_MODE_BITSIZE to better handle partial integer modes. |
| |
| 2019-07-09 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/rs6000-internal.h (create_TOC_reference): Delete. |
| * config/rs6000/rs6000-logue.c (create_TOC_reference): Move |
| function from rs6000-logue.c back to rs6000.c. |
| * config/rs6000/rs6000.c (create_TOC_reference): Likewise. |
| |
| 2019-07-09 Martin Sebor <msebor@redhat.com> |
| |
| PR c++/61339 |
| * auto-profile.c: Change class-key of PODs to struct and others |
| to class. |
| * basic-block.h: Same. |
| * bitmap.c (bitmap_alloc): Same. |
| * bitmap.h: Same. |
| * builtins.c (expand_builtin_prefetch): Same. |
| (expand_builtin_interclass_mathfn): Same. |
| (expand_builtin_strlen): Same. |
| (expand_builtin_mempcpy_args): Same. |
| (expand_cmpstr): Same. |
| (expand_builtin___clear_cache): Same. |
| (expand_ifn_atomic_bit_test_and): Same. |
| (expand_builtin_thread_pointer): Same. |
| (expand_builtin_set_thread_pointer): Same. |
| * caller-save.c (setup_save_areas): Same. |
| (replace_reg_with_saved_mem): Same. |
| (insert_restore): Same. |
| (insert_save): Same. |
| (add_used_regs): Same. |
| * cfg.c (get_bb_copy): Same. |
| (set_loop_copy): Same. |
| * cfg.h: Same. |
| * cfganal.h: Same. |
| * cfgexpand.c (alloc_stack_frame_space): Same. |
| (add_stack_var): Same. |
| (add_stack_var_conflict): Same. |
| (add_scope_conflicts_1): Same. |
| (update_alias_info_with_stack_vars): Same. |
| (expand_used_vars): Same. |
| * cfghooks.c (redirect_edge_and_branch_force): Same. |
| (delete_basic_block): Same. |
| (split_edge): Same. |
| (make_forwarder_block): Same. |
| (force_nonfallthru): Same. |
| (duplicate_block): Same. |
| (lv_flush_pending_stmts): Same. |
| * cfghooks.h: Same. |
| * cfgloop.c (flow_loops_cfg_dump): Same. |
| (flow_loop_nested_p): Same. |
| (superloop_at_depth): Same. |
| (get_loop_latch_edges): Same. |
| (flow_loop_dump): Same. |
| (flow_loops_dump): Same. |
| (flow_loops_free): Same. |
| (flow_loop_nodes_find): Same. |
| (establish_preds): Same. |
| (flow_loop_tree_node_add): Same. |
| (flow_loop_tree_node_remove): Same. |
| (flow_loops_find): Same. |
| (find_subloop_latch_edge_by_profile): Same. |
| (find_subloop_latch_edge_by_ivs): Same. |
| (mfb_redirect_edges_in_set): Same. |
| (form_subloop): Same. |
| (merge_latch_edges): Same. |
| (disambiguate_multiple_latches): Same. |
| (disambiguate_loops_with_multiple_latches): Same. |
| (flow_bb_inside_loop_p): Same. |
| (glb_enum_p): Same. |
| (get_loop_body_with_size): Same. |
| (get_loop_body): Same. |
| (fill_sons_in_loop): Same. |
| (get_loop_body_in_dom_order): Same. |
| (get_loop_body_in_custom_order): Same. |
| (release_recorded_exits): Same. |
| (get_loop_exit_edges): Same. |
| (num_loop_branches): Same. |
| (remove_bb_from_loops): Same. |
| (find_common_loop): Same. |
| (delete_loop): Same. |
| (cancel_loop): Same. |
| (verify_loop_structure): Same. |
| (loop_preheader_edge): Same. |
| (loop_exit_edge_p): Same. |
| (single_exit): Same. |
| (loop_exits_to_bb_p): Same. |
| (loop_exits_from_bb_p): Same. |
| (get_loop_location): Same. |
| (record_niter_bound): Same. |
| (get_estimated_loop_iterations_int): Same. |
| (max_stmt_executions_int): Same. |
| (likely_max_stmt_executions_int): Same. |
| (get_estimated_loop_iterations): Same. |
| (get_max_loop_iterations): Same. |
| (get_max_loop_iterations_int): Same. |
| (get_likely_max_loop_iterations): Same. |
| * cfgloop.h (simple_loop_desc): Same. |
| (get_loop): Same. |
| (loop_depth): Same. |
| (loop_outer): Same. |
| (loop_iterator::next): Same. |
| (loop_outermost): Same. |
| * cfgloopanal.c (mark_irreducible_loops): Same. |
| (num_loop_insns): Same. |
| (average_num_loop_insns): Same. |
| (expected_loop_iterations_unbounded): Same. |
| (expected_loop_iterations): Same. |
| (mark_loop_exit_edges): Same. |
| (single_likely_exit): Same. |
| * cfgloopmanip.c (fix_bb_placement): Same. |
| (fix_bb_placements): Same. |
| (remove_path): Same. |
| (place_new_loop): Same. |
| (add_loop): Same. |
| (scale_loop_frequencies): Same. |
| (scale_loop_profile): Same. |
| (create_empty_if_region_on_edge): Same. |
| (create_empty_loop_on_edge): Same. |
| (loopify): Same. |
| (unloop): Same. |
| (fix_loop_placements): Same. |
| (copy_loop_info): Same. |
| (duplicate_loop): Same. |
| (duplicate_subloops): Same. |
| (loop_redirect_edge): Same. |
| (can_duplicate_loop_p): Same. |
| (duplicate_loop_to_header_edge): Same. |
| (mfb_keep_just): Same. |
| (has_preds_from_loop): Same. |
| (create_preheader): Same. |
| (create_preheaders): Same. |
| (lv_adjust_loop_entry_edge): Same. |
| (loop_version): Same. |
| * cfgloopmanip.h: Same. |
| * cgraph.h: Same. |
| * cgraphbuild.c: Same. |
| * combine.c (make_extraction): Same. |
| * config/i386/i386-features.c: Same. |
| * config/i386/i386-features.h: Same. |
| * config/i386/i386.c (ix86_emit_outlined_ms2sysv_save): Same. |
| (ix86_emit_outlined_ms2sysv_restore): Same. |
| (ix86_noce_conversion_profitable_p): Same. |
| (ix86_init_cost): Same. |
| (ix86_simd_clone_usable): Same. |
| * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Add -Wclass-is-pod and |
| Wstruct-not-pod. |
| * coretypes.h: Same. |
| * data-streamer-in.c (string_for_index): Change class-key of PODs |
| to struct and others to class. |
| (streamer_read_indexed_string): Same. |
| (streamer_read_string): Same. |
| (bp_unpack_indexed_string): Same. |
| (bp_unpack_string): Same. |
| (streamer_read_uhwi): Same. |
| (streamer_read_hwi): Same. |
| (streamer_read_gcov_count): Same. |
| (streamer_read_wide_int): Same. |
| * data-streamer.h (streamer_write_bitpack): Same. |
| (bp_unpack_value): Same. |
| (streamer_write_char_stream): Same. |
| (streamer_write_hwi_in_range): Same. |
| (streamer_write_record_start): Same. |
| * ddg.c (create_ddg_dep_from_intra_loop_link): Same. |
| (add_cross_iteration_register_deps): Same. |
| (build_intra_loop_deps): Same. |
| * df-core.c (df_analyze): Same. |
| (loop_post_order_compute): Same. |
| (loop_inverted_post_order_compute): Same. |
| * df-problems.c (df_rd_alloc): Same. |
| (df_rd_simulate_one_insn): Same. |
| (df_rd_local_compute): Same. |
| (df_rd_init_solution): Same. |
| (df_rd_confluence_n): Same. |
| (df_rd_transfer_function): Same. |
| (df_rd_free): Same. |
| (df_rd_dump_defs_set): Same. |
| (df_rd_top_dump): Same. |
| (df_lr_alloc): Same. |
| (df_lr_reset): Same. |
| (df_lr_local_compute): Same. |
| (df_lr_init): Same. |
| (df_lr_confluence_n): Same. |
| (df_lr_free): Same. |
| (df_lr_top_dump): Same. |
| (df_lr_verify_transfer_functions): Same. |
| (df_live_alloc): Same. |
| (df_live_reset): Same. |
| (df_live_init): Same. |
| (df_live_confluence_n): Same. |
| (df_live_finalize): Same. |
| (df_live_free): Same. |
| (df_live_top_dump): Same. |
| (df_live_verify_transfer_functions): Same. |
| (df_mir_alloc): Same. |
| (df_mir_reset): Same. |
| (df_mir_init): Same. |
| (df_mir_confluence_n): Same. |
| (df_mir_free): Same. |
| (df_mir_top_dump): Same. |
| (df_word_lr_alloc): Same. |
| (df_word_lr_reset): Same. |
| (df_word_lr_init): Same. |
| (df_word_lr_confluence_n): Same. |
| (df_word_lr_free): Same. |
| (df_word_lr_top_dump): Same. |
| (df_md_alloc): Same. |
| (df_md_simulate_one_insn): Same. |
| (df_md_reset): Same. |
| (df_md_init): Same. |
| (df_md_free): Same. |
| (df_md_top_dump): Same. |
| * df-scan.c (df_insn_delete): Same. |
| (df_insn_rescan): Same. |
| (df_notes_rescan): Same. |
| (df_sort_and_compress_mws): Same. |
| (df_install_mws): Same. |
| (df_refs_add_to_chains): Same. |
| (df_ref_create_structure): Same. |
| (df_ref_record): Same. |
| (df_def_record_1): Same. |
| (df_find_hard_reg_defs): Same. |
| (df_uses_record): Same. |
| (df_get_conditional_uses): Same. |
| (df_get_call_refs): Same. |
| (df_recompute_luids): Same. |
| (df_get_entry_block_def_set): Same. |
| (df_entry_block_defs_collect): Same. |
| (df_get_exit_block_use_set): Same. |
| (df_exit_block_uses_collect): Same. |
| (df_mws_verify): Same. |
| (df_bb_verify): Same. |
| * df.h (df_scan_get_bb_info): Same. |
| * doc/tm.texi: Same. |
| * dse.c (record_store): Same. |
| * dumpfile.h: Same. |
| * emit-rtl.c (const_fixed_hasher::equal): Same. |
| (set_mem_attributes_minus_bitpos): Same. |
| (change_address): Same. |
| (adjust_address_1): Same. |
| (offset_address): Same. |
| * emit-rtl.h: Same. |
| * except.c (dw2_build_landing_pads): Same. |
| (sjlj_emit_dispatch_table): Same. |
| * explow.c (allocate_dynamic_stack_space): Same. |
| (emit_stack_probe): Same. |
| (probe_stack_range): Same. |
| * expmed.c (store_bit_field_using_insv): Same. |
| (store_bit_field_1): Same. |
| (store_integral_bit_field): Same. |
| (extract_bit_field_using_extv): Same. |
| (extract_bit_field_1): Same. |
| (emit_cstore): Same. |
| * expr.c (emit_block_move_via_cpymem): Same. |
| (expand_cmpstrn_or_cmpmem): Same. |
| (set_storage_via_setmem): Same. |
| (emit_single_push_insn_1): Same. |
| (expand_assignment): Same. |
| (store_constructor): Same. |
| (expand_expr_real_2): Same. |
| (expand_expr_real_1): Same. |
| (try_casesi): Same. |
| * flags.h: Same. |
| * function.c (try_fit_stack_local): Same. |
| (assign_stack_local_1): Same. |
| (assign_stack_local): Same. |
| (cut_slot_from_list): Same. |
| (insert_slot_to_list): Same. |
| (max_slot_level): Same. |
| (move_slot_to_level): Same. |
| (temp_address_hasher::equal): Same. |
| (remove_unused_temp_slot_addresses): Same. |
| (assign_temp): Same. |
| (combine_temp_slots): Same. |
| (update_temp_slot_address): Same. |
| (preserve_temp_slots): Same. |
| * function.h: Same. |
| * fwprop.c: Same. |
| * gcc-rich-location.h: Same. |
| * gcov.c: Same. |
| * genattrtab.c (check_attr_test): Same. |
| (check_attr_value): Same. |
| (convert_set_attr_alternative): Same. |
| (convert_set_attr): Same. |
| (check_defs): Same. |
| (copy_boolean): Same. |
| (get_attr_value): Same. |
| (expand_delays): Same. |
| (make_length_attrs): Same. |
| (min_fn): Same. |
| (make_alternative_compare): Same. |
| (simplify_test_exp): Same. |
| (tests_attr_p): Same. |
| (get_attr_order): Same. |
| (clear_struct_flag): Same. |
| (gen_attr): Same. |
| (compares_alternatives_p): Same. |
| (gen_insn): Same. |
| (gen_delay): Same. |
| (find_attrs_to_cache): Same. |
| (write_test_expr): Same. |
| (walk_attr_value): Same. |
| (write_attr_get): Same. |
| (eliminate_known_true): Same. |
| (write_insn_cases): Same. |
| (write_attr_case): Same. |
| (write_attr_valueq): Same. |
| (write_attr_value): Same. |
| (write_dummy_eligible_delay): Same. |
| (next_comma_elt): Same. |
| (find_attr): Same. |
| (make_internal_attr): Same. |
| (copy_rtx_unchanging): Same. |
| (gen_insn_reserv): Same. |
| (check_tune_attr): Same. |
| (make_automaton_attrs): Same. |
| (handle_arg): Same. |
| * genextract.c (gen_insn): Same. |
| (VEC_char_to_string): Same. |
| * genmatch.c (print_operand): Same. |
| (lower): Same. |
| (parser::parse_operation): Same. |
| (parser::parse_capture): Same. |
| (parser::parse_c_expr): Same. |
| (parser::parse_simplify): Same. |
| (main): Same. |
| * genoutput.c (output_operand_data): Same. |
| (output_get_insn_name): Same. |
| (compare_operands): Same. |
| (place_operands): Same. |
| (process_template): Same. |
| (validate_insn_alternatives): Same. |
| (validate_insn_operands): Same. |
| (gen_expand): Same. |
| (note_constraint): Same. |
| * genpreds.c (write_one_predicate_function): Same. |
| (add_constraint): Same. |
| (process_define_register_constraint): Same. |
| (write_lookup_constraint_1): Same. |
| (write_lookup_constraint_array): Same. |
| (write_insn_constraint_len): Same. |
| (write_reg_class_for_constraint_1): Same. |
| (write_constraint_satisfied_p_array): Same. |
| * genrecog.c (optimize_subroutine_group): Same. |
| * gensupport.c (process_define_predicate): Same. |
| (queue_pattern): Same. |
| (remove_from_queue): Same. |
| (process_rtx): Same. |
| (is_predicable): Same. |
| (change_subst_attribute): Same. |
| (subst_pattern_match): Same. |
| (alter_constraints): Same. |
| (alter_attrs_for_insn): Same. |
| (shift_output_template): Same. |
| (alter_output_for_subst_insn): Same. |
| (process_one_cond_exec): Same. |
| (subst_dup): Same. |
| (process_define_cond_exec): Same. |
| (mnemonic_htab_callback): Same. |
| (gen_mnemonic_attr): Same. |
| (read_md_rtx): Same. |
| * ggc-page.c: Same. |
| * gimple-loop-interchange.cc (dump_reduction): Same. |
| (dump_induction): Same. |
| (loop_cand::~loop_cand): Same. |
| (free_data_refs_with_aux): Same. |
| (tree_loop_interchange::interchange_loops): Same. |
| (tree_loop_interchange::map_inductions_to_loop): Same. |
| (tree_loop_interchange::move_code_to_inner_loop): Same. |
| (compute_access_stride): Same. |
| (compute_access_strides): Same. |
| (proper_loop_form_for_interchange): Same. |
| (tree_loop_interchange_compute_ddrs): Same. |
| (prune_datarefs_not_in_loop): Same. |
| (prepare_data_references): Same. |
| (pass_linterchange::execute): Same. |
| * gimple-loop-jam.c (bb_prevents_fusion_p): Same. |
| (unroll_jam_possible_p): Same. |
| (fuse_loops): Same. |
| (adjust_unroll_factor): Same. |
| (tree_loop_unroll_and_jam): Same. |
| * gimple-loop-versioning.cc (loop_versioning::~loop_versioning): Same. |
| (loop_versioning::expensive_stmt_p): Same. |
| (loop_versioning::version_for_unity): Same. |
| (loop_versioning::dump_inner_likelihood): Same. |
| (loop_versioning::find_per_loop_multiplication): Same. |
| (loop_versioning::analyze_term_using_scevs): Same. |
| (loop_versioning::record_address_fragment): Same. |
| (loop_versioning::analyze_expr): Same. |
| (loop_versioning::analyze_blocks): Same. |
| (loop_versioning::prune_conditions): Same. |
| (loop_versioning::merge_loop_info): Same. |
| (loop_versioning::add_loop_to_queue): Same. |
| (loop_versioning::decide_whether_loop_is_versionable): Same. |
| (loop_versioning::make_versioning_decisions): Same. |
| (loop_versioning::implement_versioning_decisions): Same. |
| * gimple-ssa-evrp-analyze.c |
| (evrp_range_analyzer::record_ranges_from_phis): Same. |
| * gimple-ssa-store-merging.c (split_store::split_store): Same. |
| (count_multiple_uses): Same. |
| (split_group): Same. |
| (imm_store_chain_info::output_merged_store): Same. |
| (pass_store_merging::process_store): Same. |
| * gimple-ssa-strength-reduction.c (slsr_process_phi): Same. |
| * gimple-ssa-warn-alloca.c (adjusted_warn_limit): Same. |
| (is_max): Same. |
| (alloca_call_type): Same. |
| (pass_walloca::execute): Same. |
| * gimple-streamer-in.c (input_phi): Same. |
| (input_gimple_stmt): Same. |
| * gimple-streamer.h: Same. |
| * godump.c (go_force_record_alignment): Same. |
| (go_format_type): Same. |
| (go_output_type): Same. |
| (go_output_fndecl): Same. |
| (go_output_typedef): Same. |
| (keyword_hash_init): Same. |
| (find_dummy_types): Same. |
| * graph.c (draw_cfg_nodes_no_loops): Same. |
| (draw_cfg_nodes_for_loop): Same. |
| * hard-reg-set.h (hard_reg_set_iter_next): Same. |
| * hsa-brig.c: Same. |
| * hsa-common.h (hsa_internal_fn_hasher::equal): Same. |
| * hsa-dump.c (dump_hsa_cfun): Same. |
| * hsa-gen.c (gen_function_def_parameters): Same. |
| * hsa-regalloc.c (dump_hsa_cfun_regalloc): Same. |
| * input.c (dump_line_table_statistics): Same. |
| (test_lexer): Same. |
| * input.h: Same. |
| * internal-fn.c (get_multi_vector_move): Same. |
| (expand_load_lanes_optab_fn): Same. |
| (expand_GOMP_SIMT_ENTER_ALLOC): Same. |
| (expand_GOMP_SIMT_EXIT): Same. |
| (expand_GOMP_SIMT_LAST_LANE): Same. |
| (expand_GOMP_SIMT_ORDERED_PRED): Same. |
| (expand_GOMP_SIMT_VOTE_ANY): Same. |
| (expand_GOMP_SIMT_XCHG_BFLY): Same. |
| (expand_GOMP_SIMT_XCHG_IDX): Same. |
| (expand_addsub_overflow): Same. |
| (expand_neg_overflow): Same. |
| (expand_mul_overflow): Same. |
| (expand_call_mem_ref): Same. |
| (expand_mask_load_optab_fn): Same. |
| (expand_scatter_store_optab_fn): Same. |
| (expand_gather_load_optab_fn): Same. |
| * ipa-cp.c (ipa_get_parm_lattices): Same. |
| (print_all_lattices): Same. |
| (ignore_edge_p): Same. |
| (build_toporder_info): Same. |
| (free_toporder_info): Same. |
| (push_node_to_stack): Same. |
| (ipcp_lattice<valtype>::set_contains_variable): Same. |
| (set_agg_lats_to_bottom): Same. |
| (ipcp_bits_lattice::meet_with): Same. |
| (set_single_call_flag): Same. |
| (initialize_node_lattices): Same. |
| (ipa_get_jf_ancestor_result): Same. |
| (ipcp_verify_propagated_values): Same. |
| (propagate_scalar_across_jump_function): Same. |
| (propagate_context_across_jump_function): Same. |
| (propagate_bits_across_jump_function): Same. |
| (ipa_vr_operation_and_type_effects): Same. |
| (propagate_vr_across_jump_function): Same. |
| (set_check_aggs_by_ref): Same. |
| (set_chain_of_aglats_contains_variable): Same. |
| (merge_aggregate_lattices): Same. |
| (agg_pass_through_permissible_p): Same. |
| (propagate_aggs_across_jump_function): Same. |
| (call_passes_through_thunk_p): Same. |
| (propagate_constants_across_call): Same. |
| (devirtualization_time_bonus): Same. |
| (good_cloning_opportunity_p): Same. |
| (context_independent_aggregate_values): Same. |
| (gather_context_independent_values): Same. |
| (perform_estimation_of_a_value): Same. |
| (estimate_local_effects): Same. |
| (value_topo_info<valtype>::add_val): Same. |
| (add_all_node_vals_to_toposort): Same. |
| (value_topo_info<valtype>::propagate_effects): Same. |
| (ipcp_propagate_stage): Same. |
| (ipcp_discover_new_direct_edges): Same. |
| (same_node_or_its_all_contexts_clone_p): Same. |
| (cgraph_edge_brings_value_p): Same. |
| (gather_edges_for_value): Same. |
| (create_specialized_node): Same. |
| (find_more_scalar_values_for_callers_subset): Same. |
| (find_more_contexts_for_caller_subset): Same. |
| (copy_plats_to_inter): Same. |
| (intersect_aggregates_with_edge): Same. |
| (find_aggregate_values_for_callers_subset): Same. |
| (cgraph_edge_brings_all_agg_vals_for_node): Same. |
| (decide_about_value): Same. |
| (decide_whether_version_node): Same. |
| (spread_undeadness): Same. |
| (identify_dead_nodes): Same. |
| (ipcp_store_vr_results): Same. |
| * ipa-devirt.c (final_warning_record::grow_type_warnings): Same. |
| * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Same. |
| (redirect_to_unreachable): Same. |
| (edge_set_predicate): Same. |
| (evaluate_conditions_for_known_args): Same. |
| (evaluate_properties_for_edge): Same. |
| (ipa_fn_summary_t::duplicate): Same. |
| (ipa_call_summary_t::duplicate): Same. |
| (dump_ipa_call_summary): Same. |
| (ipa_dump_fn_summary): Same. |
| (eliminated_by_inlining_prob): Same. |
| (set_cond_stmt_execution_predicate): Same. |
| (set_switch_stmt_execution_predicate): Same. |
| (compute_bb_predicates): Same. |
| (will_be_nonconstant_expr_predicate): Same. |
| (phi_result_unknown_predicate): Same. |
| (analyze_function_body): Same. |
| (compute_fn_summary): Same. |
| (estimate_edge_devirt_benefit): Same. |
| (estimate_edge_size_and_time): Same. |
| (estimate_calls_size_and_time): Same. |
| (estimate_node_size_and_time): Same. |
| (remap_edge_change_prob): Same. |
| (remap_edge_summaries): Same. |
| (ipa_merge_fn_summary_after_inlining): Same. |
| (ipa_fn_summary_generate): Same. |
| (inline_read_section): Same. |
| (ipa_fn_summary_read): Same. |
| (ipa_fn_summary_write): Same. |
| * ipa-fnsummary.h: Same. |
| * ipa-hsa.c (ipa_hsa_read_section): Same. |
| * ipa-icf-gimple.c (func_checker::compare_loops): Same. |
| * ipa-icf.c (sem_function::param_used_p): Same. |
| * ipa-inline-analysis.c (do_estimate_edge_time): Same. |
| * ipa-inline.c (edge_badness): Same. |
| (inline_small_functions): Same. |
| * ipa-polymorphic-call.c |
| (ipa_polymorphic_call_context::stream_out): Same. |
| * ipa-predicate.c (predicate::remap_after_duplication): Same. |
| (predicate::remap_after_inlining): Same. |
| (predicate::stream_out): Same. |
| * ipa-predicate.h: Same. |
| * ipa-profile.c (ipa_profile_read_summary): Same. |
| * ipa-prop.c (ipa_get_param_decl_index_1): Same. |
| (count_formal_params): Same. |
| (ipa_dump_param): Same. |
| (ipa_alloc_node_params): Same. |
| (ipa_print_node_jump_functions_for_edge): Same. |
| (ipa_print_node_jump_functions): Same. |
| (ipa_load_from_parm_agg): Same. |
| (get_ancestor_addr_info): Same. |
| (ipa_compute_jump_functions_for_edge): Same. |
| (ipa_analyze_virtual_call_uses): Same. |
| (ipa_analyze_stmt_uses): Same. |
| (ipa_analyze_params_uses_in_bb): Same. |
| (update_jump_functions_after_inlining): Same. |
| (try_decrement_rdesc_refcount): Same. |
| (ipa_impossible_devirt_target): Same. |
| (update_indirect_edges_after_inlining): Same. |
| (combine_controlled_uses_counters): Same. |
| (ipa_edge_args_sum_t::duplicate): Same. |
| (ipa_write_jump_function): Same. |
| (ipa_write_indirect_edge_info): Same. |
| (ipa_write_node_info): Same. |
| (ipa_read_edge_info): Same. |
| (ipa_prop_read_section): Same. |
| (read_replacements_section): Same. |
| * ipa-prop.h (ipa_get_param_count): Same. |
| (ipa_get_param): Same. |
| (ipa_get_type): Same. |
| (ipa_get_param_move_cost): Same. |
| (ipa_set_param_used): Same. |
| (ipa_get_controlled_uses): Same. |
| (ipa_set_controlled_uses): Same. |
| (ipa_get_cs_argument_count): Same. |
| * ipa-pure-const.c (analyze_function): Same. |
| (pure_const_read_summary): Same. |
| * ipa-ref.h: Same. |
| * ipa-reference.c (ipa_reference_read_optimization_summary): Same. |
| * ipa-split.c (test_nonssa_use): Same. |
| (dump_split_point): Same. |
| (dominated_by_forbidden): Same. |
| (split_part_set_ssa_name_p): Same. |
| (find_split_points): Same. |
| * ira-build.c (finish_loop_tree_nodes): Same. |
| (low_pressure_loop_node_p): Same. |
| * ira-color.c (ira_reuse_stack_slot): Same. |
| * ira-int.h: Same. |
| * ira.c (setup_reg_equiv): Same. |
| (print_insn_chain): Same. |
| (ira): Same. |
| * loop-doloop.c (doloop_condition_get): Same. |
| (add_test): Same. |
| (record_reg_sets): Same. |
| (doloop_optimize): Same. |
| * loop-init.c (loop_optimizer_init): Same. |
| (fix_loop_structure): Same. |
| * loop-invariant.c (merge_identical_invariants): Same. |
| (compute_always_reached): Same. |
| (find_exits): Same. |
| (may_assign_reg_p): Same. |
| (find_invariants_bb): Same. |
| (find_invariants_body): Same. |
| (replace_uses): Same. |
| (can_move_invariant_reg): Same. |
| (free_inv_motion_data): Same. |
| (move_single_loop_invariants): Same. |
| (change_pressure): Same. |
| (mark_ref_regs): Same. |
| (calculate_loop_reg_pressure): Same. |
| * loop-iv.c (biv_entry_hasher::equal): Same. |
| (iv_extend_to_rtx_code): Same. |
| (check_iv_ref_table_size): Same. |
| (clear_iv_info): Same. |
| (latch_dominating_def): Same. |
| (iv_get_reaching_def): Same. |
| (iv_constant): Same. |
| (iv_subreg): Same. |
| (iv_extend): Same. |
| (iv_neg): Same. |
| (iv_add): Same. |
| (iv_mult): Same. |
| (get_biv_step): Same. |
| (record_iv): Same. |
| (analyzed_for_bivness_p): Same. |
| (record_biv): Same. |
| (iv_analyze_biv): Same. |
| (iv_analyze_expr): Same. |
| (iv_analyze_def): Same. |
| (iv_analyze_op): Same. |
| (iv_analyze): Same. |
| (iv_analyze_result): Same. |
| (biv_p): Same. |
| (eliminate_implied_conditions): Same. |
| (simplify_using_initial_values): Same. |
| (shorten_into_mode): Same. |
| (canonicalize_iv_subregs): Same. |
| (determine_max_iter): Same. |
| (check_simple_exit): Same. |
| (find_simple_exit): Same. |
| (get_simple_loop_desc): Same. |
| * loop-unroll.c (report_unroll): Same. |
| (decide_unrolling): Same. |
| (unroll_loops): Same. |
| (loop_exit_at_end_p): Same. |
| (decide_unroll_constant_iterations): Same. |
| (unroll_loop_constant_iterations): Same. |
| (compare_and_jump_seq): Same. |
| (unroll_loop_runtime_iterations): Same. |
| (decide_unroll_stupid): Same. |
| (unroll_loop_stupid): Same. |
| (referenced_in_one_insn_in_loop_p): Same. |
| (reset_debug_uses_in_loop): Same. |
| (analyze_iv_to_split_insn): Same. |
| * lra-eliminations.c (lra_debug_elim_table): Same. |
| (setup_can_eliminate): Same. |
| (form_sum): Same. |
| (lra_get_elimination_hard_regno): Same. |
| (lra_eliminate_regs_1): Same. |
| (eliminate_regs_in_insn): Same. |
| (update_reg_eliminate): Same. |
| (init_elimination): Same. |
| (lra_eliminate): Same. |
| * lra-int.h: Same. |
| * lra-lives.c (initiate_live_solver): Same. |
| * lra-remat.c (create_remat_bb_data): Same. |
| * lra-spills.c (lra_spill): Same. |
| * lra.c (lra_set_insn_recog_data): Same. |
| (lra_set_used_insn_alternative_by_uid): Same. |
| (init_reg_info): Same. |
| (expand_reg_info): Same. |
| * lto-cgraph.c (output_symtab): Same. |
| (read_identifier): Same. |
| (get_alias_symbol): Same. |
| (input_node): Same. |
| (input_varpool_node): Same. |
| (input_ref): Same. |
| (input_edge): Same. |
| (input_cgraph_1): Same. |
| (input_refs): Same. |
| (input_symtab): Same. |
| (input_offload_tables): Same. |
| (output_cgraph_opt_summary): Same. |
| (input_edge_opt_summary): Same. |
| (input_cgraph_opt_section): Same. |
| * lto-section-in.c (lto_free_raw_section_data): Same. |
| (lto_create_simple_input_block): Same. |
| (lto_free_function_in_decl_state_for_node): Same. |
| * lto-streamer-in.c (lto_tag_check_set): Same. |
| (lto_location_cache::revert_location_cache): Same. |
| (lto_location_cache::input_location): Same. |
| (lto_input_location): Same. |
| (stream_input_location_now): Same. |
| (lto_input_tree_ref): Same. |
| (lto_input_eh_catch_list): Same. |
| (input_eh_region): Same. |
| (lto_init_eh): Same. |
| (make_new_block): Same. |
| (input_cfg): Same. |
| (fixup_call_stmt_edges): Same. |
| (input_struct_function_base): Same. |
| (input_function): Same. |
| (lto_read_body_or_constructor): Same. |
| (lto_read_tree_1): Same. |
| (lto_read_tree): Same. |
| (lto_input_scc): Same. |
| (lto_input_tree_1): Same. |
| (lto_input_toplevel_asms): Same. |
| (lto_input_mode_table): Same. |
| (lto_reader_init): Same. |
| (lto_data_in_create): Same. |
| * lto-streamer-out.c (output_cfg): Same. |
| * lto-streamer.h: Same. |
| * modulo-sched.c (duplicate_insns_of_cycles): Same. |
| (generate_prolog_epilog): Same. |
| (mark_loop_unsched): Same. |
| (dump_insn_location): Same. |
| (loop_canon_p): Same. |
| (sms_schedule): Same. |
| * omp-expand.c (expand_omp_for_ordered_loops): Same. |
| (expand_omp_for_generic): Same. |
| (expand_omp_for_static_nochunk): Same. |
| (expand_omp_for_static_chunk): Same. |
| (expand_omp_simd): Same. |
| (expand_omp_taskloop_for_inner): Same. |
| (expand_oacc_for): Same. |
| (expand_omp_atomic_pipeline): Same. |
| (mark_loops_in_oacc_kernels_region): Same. |
| * omp-offload.c (oacc_xform_loop): Same. |
| * omp-simd-clone.c (simd_clone_adjust): Same. |
| * optabs-query.c (get_traditional_extraction_insn): Same. |
| * optabs.c (expand_vector_broadcast): Same. |
| (expand_binop_directly): Same. |
| (expand_twoval_unop): Same. |
| (expand_twoval_binop): Same. |
| (expand_unop_direct): Same. |
| (emit_indirect_jump): Same. |
| (emit_conditional_move): Same. |
| (emit_conditional_neg_or_complement): Same. |
| (emit_conditional_add): Same. |
| (vector_compare_rtx): Same. |
| (expand_vec_perm_1): Same. |
| (expand_vec_perm_const): Same. |
| (expand_vec_cond_expr): Same. |
| (expand_vec_series_expr): Same. |
| (maybe_emit_atomic_exchange): Same. |
| (maybe_emit_sync_lock_test_and_set): Same. |
| (expand_atomic_compare_and_swap): Same. |
| (expand_atomic_load): Same. |
| (expand_atomic_store): Same. |
| (maybe_emit_op): Same. |
| (valid_multiword_target_p): Same. |
| (create_integer_operand): Same. |
| (maybe_legitimize_operand_same_code): Same. |
| (maybe_legitimize_operand): Same. |
| (create_convert_operand_from_type): Same. |
| (can_reuse_operands_p): Same. |
| (maybe_legitimize_operands): Same. |
| (maybe_gen_insn): Same. |
| (maybe_expand_insn): Same. |
| (maybe_expand_jump_insn): Same. |
| (expand_insn): Same. |
| * optabs.h (create_expand_operand): Same. |
| (create_fixed_operand): Same. |
| (create_output_operand): Same. |
| (create_input_operand): Same. |
| (create_convert_operand_to): Same. |
| (create_convert_operand_from): Same. |
| * optinfo.h: Same. |
| * poly-int.h: Same. |
| * predict.c (optimize_insn_for_speed_p): Same. |
| (optimize_loop_for_size_p): Same. |
| (optimize_loop_for_speed_p): Same. |
| (optimize_loop_nest_for_speed_p): Same. |
| (get_base_value): Same. |
| (predicted_by_loop_heuristics_p): Same. |
| (predict_extra_loop_exits): Same. |
| (predict_loops): Same. |
| (predict_paths_for_bb): Same. |
| (predict_paths_leading_to): Same. |
| (propagate_freq): Same. |
| (pass_profile::execute): Same. |
| * predict.h: Same. |
| * profile-count.c (profile_count::differs_from_p): Same. |
| (profile_probability::differs_lot_from_p): Same. |
| * profile-count.h: Same. |
| * profile.c (branch_prob): Same. |
| * regrename.c (free_chain_data): Same. |
| (mark_conflict): Same. |
| (create_new_chain): Same. |
| (merge_overlapping_regs): Same. |
| (init_rename_info): Same. |
| (merge_chains): Same. |
| (regrename_analyze): Same. |
| (regrename_do_replace): Same. |
| (scan_rtx_reg): Same. |
| (record_out_operands): Same. |
| (build_def_use): Same. |
| * regrename.h: Same. |
| * reload.h: Same. |
| * reload1.c (init_reload): Same. |
| (maybe_fix_stack_asms): Same. |
| (copy_reloads): Same. |
| (count_pseudo): Same. |
| (count_spilled_pseudo): Same. |
| (find_reg): Same. |
| (find_reload_regs): Same. |
| (select_reload_regs): Same. |
| (spill_hard_reg): Same. |
| (fixup_eh_region_note): Same. |
| (set_reload_reg): Same. |
| (allocate_reload_reg): Same. |
| (compute_reload_subreg_offset): Same. |
| (reload_adjust_reg_for_icode): Same. |
| (emit_input_reload_insns): Same. |
| (emit_output_reload_insns): Same. |
| (do_input_reload): Same. |
| (inherit_piecemeal_p): Same. |
| * rtl.h: Same. |
| * sanopt.c (maybe_get_dominating_check): Same. |
| (maybe_optimize_ubsan_ptr_ifn): Same. |
| (can_remove_asan_check): Same. |
| (maybe_optimize_asan_check_ifn): Same. |
| (sanopt_optimize_walker): Same. |
| * sched-deps.c (add_dependence_list): Same. |
| (chain_to_prev_insn): Same. |
| (add_insn_mem_dependence): Same. |
| (create_insn_reg_set): Same. |
| (maybe_extend_reg_info_p): Same. |
| (sched_analyze_reg): Same. |
| (sched_analyze_1): Same. |
| (get_implicit_reg_pending_clobbers): Same. |
| (chain_to_prev_insn_p): Same. |
| (deps_analyze_insn): Same. |
| (deps_start_bb): Same. |
| (sched_free_deps): Same. |
| (init_deps): Same. |
| (init_deps_reg_last): Same. |
| (free_deps): Same. |
| * sched-ebb.c: Same. |
| * sched-int.h: Same. |
| * sched-rgn.c (add_branch_dependences): Same. |
| (concat_insn_mem_list): Same. |
| (deps_join): Same. |
| (sched_rgn_compute_dependencies): Same. |
| * sel-sched-ir.c (reset_target_context): Same. |
| (copy_deps_context): Same. |
| (init_id_from_df): Same. |
| (has_dependence_p): Same. |
| (change_loops_latches): Same. |
| (bb_top_order_comparator): Same. |
| (make_region_from_loop_preheader): Same. |
| (sel_init_pipelining): Same. |
| (get_loop_nest_for_rgn): Same. |
| (make_regions_from_the_rest): Same. |
| (sel_is_loop_preheader_p): Same. |
| * sel-sched-ir.h (inner_loop_header_p): Same. |
| (get_all_loop_exits): Same. |
| * selftest.h: Same. |
| * sese.c (sese_build_liveouts): Same. |
| (sese_insert_phis_for_liveouts): Same. |
| * sese.h (defined_in_sese_p): Same. |
| * sreal.c (sreal::stream_out): Same. |
| * sreal.h: Same. |
| * streamer-hooks.h: Same. |
| * target-globals.c (save_target_globals): Same. |
| * target-globals.h: Same. |
| * target.def: Same. |
| * target.h: Same. |
| * targhooks.c (default_has_ifunc_p): Same. |
| (default_empty_mask_is_expensive): Same. |
| (default_init_cost): Same. |
| * targhooks.h: Same. |
| * toplev.c: Same. |
| * tree-affine.c (aff_combination_mult): Same. |
| (aff_combination_expand): Same. |
| (aff_combination_constant_multiple_p): Same. |
| * tree-affine.h: Same. |
| * tree-cfg.c (build_gimple_cfg): Same. |
| (replace_loop_annotate_in_block): Same. |
| (replace_uses_by): Same. |
| (remove_bb): Same. |
| (dump_cfg_stats): Same. |
| (gimple_duplicate_sese_region): Same. |
| (gimple_duplicate_sese_tail): Same. |
| (move_block_to_fn): Same. |
| (replace_block_vars_by_duplicates): Same. |
| (move_sese_region_to_fn): Same. |
| (print_loops_bb): Same. |
| (print_loop): Same. |
| (print_loops): Same. |
| (debug): Same. |
| (debug_loops): Same. |
| * tree-cfg.h: Same. |
| * tree-chrec.c (chrec_fold_plus_poly_poly): Same. |
| (chrec_fold_multiply_poly_poly): Same. |
| (chrec_evaluate): Same. |
| (chrec_component_in_loop_num): Same. |
| (reset_evolution_in_loop): Same. |
| (is_multivariate_chrec): Same. |
| (chrec_contains_symbols): Same. |
| (nb_vars_in_chrec): Same. |
| (chrec_convert_1): Same. |
| (chrec_convert_aggressive): Same. |
| * tree-chrec.h: Same. |
| * tree-core.h: Same. |
| * tree-data-ref.c (dump_data_dependence_relation): Same. |
| (canonicalize_base_object_address): Same. |
| (data_ref_compare_tree): Same. |
| (prune_runtime_alias_test_list): Same. |
| (get_segment_min_max): Same. |
| (create_intersect_range_checks): Same. |
| (conflict_fn_no_dependence): Same. |
| (object_address_invariant_in_loop_p): Same. |
| (analyze_ziv_subscript): Same. |
| (analyze_siv_subscript_cst_affine): Same. |
| (analyze_miv_subscript): Same. |
| (analyze_overlapping_iterations): Same. |
| (build_classic_dist_vector_1): Same. |
| (add_other_self_distances): Same. |
| (same_access_functions): Same. |
| (build_classic_dir_vector): Same. |
| (subscript_dependence_tester_1): Same. |
| (subscript_dependence_tester): Same. |
| (access_functions_are_affine_or_constant_p): Same. |
| (get_references_in_stmt): Same. |
| (loop_nest_has_data_refs): Same. |
| (graphite_find_data_references_in_stmt): Same. |
| (find_data_references_in_bb): Same. |
| (get_base_for_alignment): Same. |
| (find_loop_nest_1): Same. |
| (find_loop_nest): Same. |
| * tree-data-ref.h (dr_alignment): Same. |
| (ddr_dependence_level): Same. |
| * tree-if-conv.c (fold_build_cond_expr): Same. |
| (add_to_predicate_list): Same. |
| (add_to_dst_predicate_list): Same. |
| (phi_convertible_by_degenerating_args): Same. |
| (idx_within_array_bound): Same. |
| (all_preds_critical_p): Same. |
| (pred_blocks_visited_p): Same. |
| (predicate_bbs): Same. |
| (build_region): Same. |
| (if_convertible_loop_p_1): Same. |
| (is_cond_scalar_reduction): Same. |
| (predicate_scalar_phi): Same. |
| (remove_conditions_and_labels): Same. |
| (combine_blocks): Same. |
| (version_loop_for_if_conversion): Same. |
| (versionable_outer_loop_p): Same. |
| (ifcvt_local_dce): Same. |
| (tree_if_conversion): Same. |
| (pass_if_conversion::gate): Same. |
| * tree-if-conv.h: Same. |
| * tree-inline.c (maybe_move_debug_stmts_to_successors): Same. |
| * tree-loop-distribution.c (bb_top_order_cmp): Same. |
| (free_rdg): Same. |
| (stmt_has_scalar_dependences_outside_loop): Same. |
| (copy_loop_before): Same. |
| (create_bb_after_loop): Same. |
| (const_with_all_bytes_same): Same. |
| (generate_memset_builtin): Same. |
| (generate_memcpy_builtin): Same. |
| (destroy_loop): Same. |
| (build_rdg_partition_for_vertex): Same. |
| (compute_access_range): Same. |
| (data_ref_segment_size): Same. |
| (latch_dominated_by_data_ref): Same. |
| (compute_alias_check_pairs): Same. |
| (fuse_memset_builtins): Same. |
| (finalize_partitions): Same. |
| (find_seed_stmts_for_distribution): Same. |
| (prepare_perfect_loop_nest): Same. |
| * tree-parloops.c (lambda_transform_legal_p): Same. |
| (loop_parallel_p): Same. |
| (reduc_stmt_res): Same. |
| (add_field_for_name): Same. |
| (create_call_for_reduction_1): Same. |
| (replace_uses_in_bb_by): Same. |
| (transform_to_exit_first_loop_alt): Same. |
| (try_transform_to_exit_first_loop_alt): Same. |
| (transform_to_exit_first_loop): Same. |
| (num_phis): Same. |
| (gen_parallel_loop): Same. |
| (gather_scalar_reductions): Same. |
| (get_omp_data_i_param): Same. |
| (try_create_reduction_list): Same. |
| (oacc_entry_exit_single_gang): Same. |
| (parallelize_loops): Same. |
| * tree-pass.h: Same. |
| * tree-predcom.c (determine_offset): Same. |
| (last_always_executed_block): Same. |
| (split_data_refs_to_components): Same. |
| (suitable_component_p): Same. |
| (valid_initializer_p): Same. |
| (find_looparound_phi): Same. |
| (insert_looparound_copy): Same. |
| (add_looparound_copies): Same. |
| (determine_roots_comp): Same. |
| (predcom_tmp_var): Same. |
| (initialize_root_vars): Same. |
| (initialize_root_vars_store_elim_1): Same. |
| (initialize_root_vars_store_elim_2): Same. |
| (finalize_eliminated_stores): Same. |
| (initialize_root_vars_lm): Same. |
| (remove_stmt): Same. |
| (determine_unroll_factor): Same. |
| (execute_pred_commoning_cbck): Same. |
| (base_names_in_chain_on): Same. |
| (combine_chains): Same. |
| (pcom_stmt_dominates_stmt_p): Same. |
| (try_combine_chains): Same. |
| (prepare_initializers_chain_store_elim): Same. |
| (prepare_initializers_chain): Same. |
| (prepare_initializers): Same. |
| (prepare_finalizers_chain): Same. |
| (prepare_finalizers): Same. |
| (insert_init_seqs): Same. |
| * tree-scalar-evolution.c (loop_phi_node_p): Same. |
| (compute_overall_effect_of_inner_loop): Same. |
| (add_to_evolution_1): Same. |
| (add_to_evolution): Same. |
| (follow_ssa_edge_binary): Same. |
| (follow_ssa_edge_expr): Same. |
| (backedge_phi_arg_p): Same. |
| (follow_ssa_edge_in_condition_phi_branch): Same. |
| (follow_ssa_edge_in_condition_phi): Same. |
| (follow_ssa_edge_inner_loop_phi): Same. |
| (follow_ssa_edge): Same. |
| (analyze_evolution_in_loop): Same. |
| (analyze_initial_condition): Same. |
| (interpret_loop_phi): Same. |
| (interpret_condition_phi): Same. |
| (interpret_rhs_expr): Same. |
| (interpret_expr): Same. |
| (interpret_gimple_assign): Same. |
| (analyze_scalar_evolution_1): Same. |
| (analyze_scalar_evolution): Same. |
| (analyze_scalar_evolution_for_address_of): Same. |
| (get_instantiated_value_entry): Same. |
| (loop_closed_phi_def): Same. |
| (instantiate_scev_name): Same. |
| (instantiate_scev_poly): Same. |
| (instantiate_scev_binary): Same. |
| (instantiate_scev_convert): Same. |
| (instantiate_scev_not): Same. |
| (instantiate_scev_r): Same. |
| (instantiate_scev): Same. |
| (resolve_mixers): Same. |
| (initialize_scalar_evolutions_analyzer): Same. |
| (scev_reset_htab): Same. |
| (scev_reset): Same. |
| (derive_simple_iv_with_niters): Same. |
| (simple_iv_with_niters): Same. |
| (expression_expensive_p): Same. |
| (final_value_replacement_loop): Same. |
| * tree-scalar-evolution.h (block_before_loop): Same. |
| * tree-ssa-address.h: Same. |
| * tree-ssa-dce.c (find_obviously_necessary_stmts): Same. |
| * tree-ssa-dom.c (edge_info::record_simple_equiv): Same. |
| (record_edge_info): Same. |
| * tree-ssa-live.c (var_map_base_fini): Same. |
| (remove_unused_locals): Same. |
| * tree-ssa-live.h: Same. |
| * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Same. |
| (pass_ch_vect::execute): Same. |
| (pass_ch::process_loop_p): Same. |
| * tree-ssa-loop-im.c (mem_ref_hasher::hash): Same. |
| (movement_possibility): Same. |
| (outermost_invariant_loop): Same. |
| (stmt_cost): Same. |
| (determine_max_movement): Same. |
| (invariantness_dom_walker::before_dom_children): Same. |
| (move_computations): Same. |
| (may_move_till): Same. |
| (force_move_till_op): Same. |
| (force_move_till): Same. |
| (memref_free): Same. |
| (record_mem_ref_loc): Same. |
| (set_ref_stored_in_loop): Same. |
| (mark_ref_stored): Same. |
| (sort_bbs_in_loop_postorder_cmp): Same. |
| (sort_locs_in_loop_postorder_cmp): Same. |
| (analyze_memory_references): Same. |
| (mem_refs_may_alias_p): Same. |
| (find_ref_loc_in_loop_cmp): Same. |
| (rewrite_mem_ref_loc::operator): Same. |
| (first_mem_ref_loc_1::operator): Same. |
| (sm_set_flag_if_changed::operator): Same. |
| (execute_sm_if_changed_flag_set): Same. |
| (execute_sm): Same. |
| (hoist_memory_references): Same. |
| (ref_always_accessed::operator): Same. |
| (refs_independent_p): Same. |
| (record_dep_loop): Same. |
| (ref_indep_loop_p_1): Same. |
| (ref_indep_loop_p): Same. |
| (can_sm_ref_p): Same. |
| (find_refs_for_sm): Same. |
| (loop_suitable_for_sm): Same. |
| (store_motion_loop): Same. |
| (store_motion): Same. |
| (fill_always_executed_in): Same. |
| * tree-ssa-loop-ivcanon.c (constant_after_peeling): Same. |
| (estimated_unrolled_size): Same. |
| (loop_edge_to_cancel): Same. |
| (remove_exits_and_undefined_stmts): Same. |
| (remove_redundant_iv_tests): Same. |
| (unloop_loops): Same. |
| (estimated_peeled_sequence_size): Same. |
| (try_peel_loop): Same. |
| (canonicalize_loop_induction_variables): Same. |
| (canonicalize_induction_variables): Same. |
| * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher::equal): Same. |
| (name_info): Same. |
| (stmt_after_inc_pos): Same. |
| (contains_abnormal_ssa_name_p): Same. |
| (niter_for_exit): Same. |
| (find_bivs): Same. |
| (mark_bivs): Same. |
| (find_givs_in_bb): Same. |
| (find_induction_variables): Same. |
| (find_interesting_uses_cond): Same. |
| (outermost_invariant_loop_for_expr): Same. |
| (idx_find_step): Same. |
| (add_candidate_1): Same. |
| (add_iv_candidate_derived_from_uses): Same. |
| (alloc_use_cost_map): Same. |
| (prepare_decl_rtl): Same. |
| (generic_predict_doloop_p): Same. |
| (computation_cost): Same. |
| (determine_common_wider_type): Same. |
| (get_computation_aff_1): Same. |
| (get_use_type): Same. |
| (determine_group_iv_cost_address): Same. |
| (iv_period): Same. |
| (difference_cannot_overflow_p): Same. |
| (may_eliminate_iv): Same. |
| (determine_set_costs): Same. |
| (cheaper_cost_pair): Same. |
| (compare_cost_pair): Same. |
| (iv_ca_cand_for_group): Same. |
| (iv_ca_recount_cost): Same. |
| (iv_ca_set_remove_invs): Same. |
| (iv_ca_set_no_cp): Same. |
| (iv_ca_set_add_invs): Same. |
| (iv_ca_set_cp): Same. |
| (iv_ca_add_group): Same. |
| (iv_ca_cost): Same. |
| (iv_ca_compare_deps): Same. |
| (iv_ca_delta_reverse): Same. |
| (iv_ca_delta_commit): Same. |
| (iv_ca_cand_used_p): Same. |
| (iv_ca_delta_free): Same. |
| (iv_ca_new): Same. |
| (iv_ca_free): Same. |
| (iv_ca_dump): Same. |
| (iv_ca_extend): Same. |
| (iv_ca_narrow): Same. |
| (iv_ca_prune): Same. |
| (cheaper_cost_with_cand): Same. |
| (iv_ca_replace): Same. |
| (try_add_cand_for): Same. |
| (get_initial_solution): Same. |
| (try_improve_iv_set): Same. |
| (find_optimal_iv_set_1): Same. |
| (create_new_iv): Same. |
| (rewrite_use_compare): Same. |
| (remove_unused_ivs): Same. |
| (determine_scaling_factor): Same. |
| * tree-ssa-loop-ivopts.h: Same. |
| * tree-ssa-loop-manip.c (create_iv): Same. |
| (compute_live_loop_exits): Same. |
| (add_exit_phi): Same. |
| (add_exit_phis): Same. |
| (find_uses_to_rename_use): Same. |
| (find_uses_to_rename_def): Same. |
| (find_uses_to_rename_in_loop): Same. |
| (rewrite_into_loop_closed_ssa): Same. |
| (check_loop_closed_ssa_bb): Same. |
| (split_loop_exit_edge): Same. |
| (ip_end_pos): Same. |
| (ip_normal_pos): Same. |
| (copy_phi_node_args): Same. |
| (gimple_duplicate_loop_to_header_edge): Same. |
| (can_unroll_loop_p): Same. |
| (determine_exit_conditions): Same. |
| (scale_dominated_blocks_in_loop): Same. |
| (niter_for_unrolled_loop): Same. |
| (tree_transform_and_unroll_loop): Same. |
| (rewrite_all_phi_nodes_with_iv): Same. |
| * tree-ssa-loop-manip.h: Same. |
| * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Same. |
| (number_of_iterations_ne): Same. |
| (assert_no_overflow_lt): Same. |
| (assert_loop_rolls_lt): Same. |
| (number_of_iterations_lt): Same. |
| (adjust_cond_for_loop_until_wrap): Same. |
| (tree_simplify_using_condition): Same. |
| (simplify_using_initial_conditions): Same. |
| (simplify_using_outer_evolutions): Same. |
| (loop_only_exit_p): Same. |
| (ssa_defined_by_minus_one_stmt_p): Same. |
| (number_of_iterations_popcount): Same. |
| (number_of_iterations_exit): Same. |
| (find_loop_niter): Same. |
| (finite_loop_p): Same. |
| (chain_of_csts_start): Same. |
| (get_val_for): Same. |
| (loop_niter_by_eval): Same. |
| (derive_constant_upper_bound_ops): Same. |
| (do_warn_aggressive_loop_optimizations): Same. |
| (record_estimate): Same. |
| (get_cst_init_from_scev): Same. |
| (record_nonwrapping_iv): Same. |
| (idx_infer_loop_bounds): Same. |
| (infer_loop_bounds_from_ref): Same. |
| (infer_loop_bounds_from_array): Same. |
| (infer_loop_bounds_from_pointer_arith): Same. |
| (infer_loop_bounds_from_signedness): Same. |
| (bound_index): Same. |
| (discover_iteration_bound_by_body_walk): Same. |
| (maybe_lower_iteration_bound): Same. |
| (estimate_numbers_of_iterations): Same. |
| (estimated_loop_iterations): Same. |
| (estimated_loop_iterations_int): Same. |
| (max_loop_iterations): Same. |
| (max_loop_iterations_int): Same. |
| (likely_max_loop_iterations): Same. |
| (likely_max_loop_iterations_int): Same. |
| (estimated_stmt_executions_int): Same. |
| (max_stmt_executions): Same. |
| (likely_max_stmt_executions): Same. |
| (estimated_stmt_executions): Same. |
| (stmt_dominates_stmt_p): Same. |
| (nowrap_type_p): Same. |
| (loop_exits_before_overflow): Same. |
| (scev_var_range_cant_overflow): Same. |
| (scev_probably_wraps_p): Same. |
| (free_numbers_of_iterations_estimates): Same. |
| * tree-ssa-loop-niter.h: Same. |
| * tree-ssa-loop-prefetch.c (release_mem_refs): Same. |
| (idx_analyze_ref): Same. |
| (analyze_ref): Same. |
| (gather_memory_references_ref): Same. |
| (mark_nontemporal_store): Same. |
| (emit_mfence_after_loop): Same. |
| (may_use_storent_in_loop_p): Same. |
| (mark_nontemporal_stores): Same. |
| (should_unroll_loop_p): Same. |
| (volume_of_dist_vector): Same. |
| (add_subscript_strides): Same. |
| (self_reuse_distance): Same. |
| (insn_to_prefetch_ratio_too_small_p): Same. |
| * tree-ssa-loop-split.c (split_at_bb_p): Same. |
| (patch_loop_exit): Same. |
| (find_or_create_guard_phi): Same. |
| (easy_exit_values): Same. |
| (connect_loop_phis): Same. |
| (connect_loops): Same. |
| (compute_new_first_bound): Same. |
| (split_loop): Same. |
| (tree_ssa_split_loops): Same. |
| * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Same. |
| (is_maybe_undefined): Same. |
| (tree_may_unswitch_on): Same. |
| (simplify_using_entry_checks): Same. |
| (tree_unswitch_single_loop): Same. |
| (tree_unswitch_loop): Same. |
| (tree_unswitch_outer_loop): Same. |
| (empty_bb_without_guard_p): Same. |
| (used_outside_loop_p): Same. |
| (get_vop_from_header): Same. |
| (hoist_guard): Same. |
| * tree-ssa-loop.c (gate_oacc_kernels): Same. |
| (get_lsm_tmp_name): Same. |
| * tree-ssa-loop.h: Same. |
| * tree-ssa-reassoc.c (add_repeat_to_ops_vec): Same. |
| (build_and_add_sum): Same. |
| (no_side_effect_bb): Same. |
| (get_ops): Same. |
| (linearize_expr): Same. |
| (should_break_up_subtract): Same. |
| (linearize_expr_tree): Same. |
| * tree-ssa-scopedtables.c: Same. |
| * tree-ssa-scopedtables.h: Same. |
| * tree-ssa-structalias.c (condense_visit): Same. |
| (label_visit): Same. |
| (dump_pred_graph): Same. |
| (perform_var_substitution): Same. |
| (move_complex_constraints): Same. |
| (remove_preds_and_fake_succs): Same. |
| * tree-ssa-threadupdate.c (dbds_continue_enumeration_p): Same. |
| (determine_bb_domination_status): Same. |
| (duplicate_thread_path): Same. |
| (thread_through_all_blocks): Same. |
| * tree-ssa-threadupdate.h: Same. |
| * tree-streamer-in.c (streamer_read_string_cst): Same. |
| (input_identifier): Same. |
| (unpack_ts_type_common_value_fields): Same. |
| (unpack_ts_block_value_fields): Same. |
| (unpack_ts_translation_unit_decl_value_fields): Same. |
| (unpack_ts_omp_clause_value_fields): Same. |
| (streamer_read_tree_bitfields): Same. |
| (streamer_alloc_tree): Same. |
| (lto_input_ts_common_tree_pointers): Same. |
| (lto_input_ts_vector_tree_pointers): Same. |
| (lto_input_ts_poly_tree_pointers): Same. |
| (lto_input_ts_complex_tree_pointers): Same. |
| (lto_input_ts_decl_minimal_tree_pointers): Same. |
| (lto_input_ts_decl_common_tree_pointers): Same. |
| (lto_input_ts_decl_non_common_tree_pointers): Same. |
| (lto_input_ts_decl_with_vis_tree_pointers): Same. |
| (lto_input_ts_field_decl_tree_pointers): Same. |
| (lto_input_ts_function_decl_tree_pointers): Same. |
| (lto_input_ts_type_common_tree_pointers): Same. |
| (lto_input_ts_type_non_common_tree_pointers): Same. |
| (lto_input_ts_list_tree_pointers): Same. |
| (lto_input_ts_vec_tree_pointers): Same. |
| (lto_input_ts_exp_tree_pointers): Same. |
| (lto_input_ts_block_tree_pointers): Same. |
| (lto_input_ts_binfo_tree_pointers): Same. |
| (lto_input_ts_constructor_tree_pointers): Same. |
| (lto_input_ts_omp_clause_tree_pointers): Same. |
| (streamer_read_tree_body): Same. |
| * tree-streamer.h: Same. |
| * tree-switch-conversion.c (bit_test_cluster::is_beneficial): Same. |
| * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Same. |
| (vect_analyze_possibly_independent_ddr): Same. |
| (vect_analyze_data_ref_dependence): Same. |
| (vect_compute_data_ref_alignment): Same. |
| (vect_enhance_data_refs_alignment): Same. |
| (vect_analyze_data_ref_access): Same. |
| (vect_check_gather_scatter): Same. |
| (vect_find_stmt_data_reference): Same. |
| (vect_create_addr_base_for_vector_ref): Same. |
| (vect_setup_realignment): Same. |
| (vect_supportable_dr_alignment): Same. |
| * tree-vect-loop-manip.c (rename_variables_in_bb): Same. |
| (adjust_phi_and_debug_stmts): Same. |
| (vect_set_loop_mask): Same. |
| (add_preheader_seq): Same. |
| (vect_maybe_permute_loop_masks): Same. |
| (vect_set_loop_masks_directly): Same. |
| (vect_set_loop_condition_masked): Same. |
| (vect_set_loop_condition_unmasked): Same. |
| (slpeel_duplicate_current_defs_from_edges): Same. |
| (slpeel_add_loop_guard): Same. |
| (slpeel_can_duplicate_loop_p): Same. |
| (create_lcssa_for_virtual_phi): Same. |
| (iv_phi_p): Same. |
| (vect_update_ivs_after_vectorizer): Same. |
| (vect_gen_vector_loop_niters_mult_vf): Same. |
| (slpeel_update_phi_nodes_for_loops): Same. |
| (slpeel_update_phi_nodes_for_guard1): Same. |
| (find_guard_arg): Same. |
| (slpeel_update_phi_nodes_for_guard2): Same. |
| (slpeel_update_phi_nodes_for_lcssa): Same. |
| (vect_do_peeling): Same. |
| (vect_create_cond_for_alias_checks): Same. |
| (vect_loop_versioning): Same. |
| * tree-vect-loop.c (vect_determine_vf_for_stmt): Same. |
| (vect_inner_phi_in_double_reduction_p): Same. |
| (vect_analyze_scalar_cycles_1): Same. |
| (vect_fixup_scalar_cycles_with_patterns): Same. |
| (vect_get_loop_niters): Same. |
| (bb_in_loop_p): Same. |
| (vect_get_max_nscalars_per_iter): Same. |
| (vect_verify_full_masking): Same. |
| (vect_compute_single_scalar_iteration_cost): Same. |
| (vect_analyze_loop_form_1): Same. |
| (vect_analyze_loop_form): Same. |
| (vect_active_double_reduction_p): Same. |
| (vect_analyze_loop_operations): Same. |
| (neutral_op_for_slp_reduction): Same. |
| (vect_is_simple_reduction): Same. |
| (vect_model_reduction_cost): Same. |
| (get_initial_def_for_reduction): Same. |
| (get_initial_defs_for_reduction): Same. |
| (vect_create_epilog_for_reduction): Same. |
| (vectorize_fold_left_reduction): Same. |
| (vectorizable_reduction): Same. |
| (vectorizable_induction): Same. |
| (vectorizable_live_operation): Same. |
| (loop_niters_no_overflow): Same. |
| (vect_get_loop_mask): Same. |
| (vect_transform_loop_stmt): Same. |
| (vect_transform_loop): Same. |
| * tree-vect-patterns.c (vect_reassociating_reduction_p): Same. |
| (vect_determine_precisions): Same. |
| (vect_pattern_recog_1): Same. |
| * tree-vect-slp.c (vect_analyze_slp_instance): Same. |
| * tree-vect-stmts.c (stmt_vectype): Same. |
| (process_use): Same. |
| (vect_init_vector_1): Same. |
| (vect_truncate_gather_scatter_offset): Same. |
| (get_group_load_store_type): Same. |
| (vect_build_gather_load_calls): Same. |
| (vect_get_strided_load_store_ops): Same. |
| (vectorizable_simd_clone_call): Same. |
| (vectorizable_store): Same. |
| (permute_vec_elements): Same. |
| (vectorizable_load): Same. |
| (vect_transform_stmt): Same. |
| (supportable_widening_operation): Same. |
| * tree-vectorizer.c (vec_info::replace_stmt): Same. |
| (vec_info::free_stmt_vec_info): Same. |
| (vect_free_loop_info_assumptions): Same. |
| (vect_loop_vectorized_call): Same. |
| (set_uid_loop_bbs): Same. |
| (vectorize_loops): Same. |
| * tree-vectorizer.h (STMT_VINFO_BB_VINFO): Same. |
| * tree.c (add_tree_to_fld_list): Same. |
| (fld_type_variant_equal_p): Same. |
| (fld_decl_context): Same. |
| (fld_incomplete_type_of): Same. |
| (free_lang_data_in_binfo): Same. |
| (need_assembler_name_p): Same. |
| (find_decls_types_r): Same. |
| (get_eh_types_for_runtime): Same. |
| (find_decls_types_in_eh_region): Same. |
| (find_decls_types_in_node): Same. |
| (assign_assembler_name_if_needed): Same. |
| * value-prof.c (stream_out_histogram_value): Same. |
| * value-prof.h: Same. |
| * var-tracking.c (use_narrower_mode): Same. |
| (prepare_call_arguments): Same. |
| (vt_expand_loc_callback): Same. |
| (resolve_expansions_pending_recursion): Same. |
| (vt_expand_loc): Same. |
| * varasm.c (const_hash_1): Same. |
| (compare_constant): Same. |
| (tree_output_constant_def): Same. |
| (simplify_subtraction): Same. |
| (get_pool_constant): Same. |
| (output_constant_pool_2): Same. |
| (output_constant_pool_1): Same. |
| (mark_constants_in_pattern): Same. |
| (mark_constant_pool): Same. |
| (get_section_anchor): Same. |
| * vr-values.c (compare_range_with_value): Same. |
| (vr_values::extract_range_from_phi_node): Same. |
| * vr-values.h: Same. |
| * web.c (unionfind_union): Same. |
| * wide-int.h: Same. |
| |
| 2019-07-09 Martin Sebor <msebor@redhat.com> |
| |
| PR c++/61339 |
| * align.h: Change class-key from class to struct and vice versa |
| to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod. |
| * alloc-pool.h: Same. |
| * asan.c (shadow_mem_size): Same. |
| * auto-profile.c: Same. |
| * basic-block.h: Same. |
| * bitmap.h: Same. |
| * cfgexpand.c (set_rtl): Same. |
| (expand_one_stack_var_at): Same. |
| * cfghooks.h: Same. |
| * cfgloop.h: Same. |
| * cgraph.h: Same. |
| * config/i386/i386.h: Same. |
| * df-problems.c (df_print_bb_index): Same. |
| * df-scan.c: Same. |
| * df.h (df_single_use): Same. |
| * diagnostic-show-locus.c (layout::print_annotation_line): Same. |
| (layout::annotation_line_showed_range_p): Same. |
| (get_printed_columns): Same. |
| (correction::ensure_terminated): Same. |
| (line_corrections::~line_corrections): Same. |
| * dojump.h: Same. |
| * dse.c: Same. |
| * dump-context.h: Same. |
| * dumpfile.h: Same. |
| * dwarf2out.c: Same. |
| * edit-context.c: Same. |
| * fibonacci_heap.c (test_union_of_equal_heaps): Same. |
| * flags.h: Same. |
| * function.c (assign_stack_local): Same. |
| * function.h: Same. |
| * gcc.c: Same. |
| * gcov.c (block_info::block_info): Same. |
| * genattrtab.c: Same. |
| * genextract.c: Same. |
| * genmatch.c (comparison_code_p): Same. |
| (id_base::id_base): Same. |
| (decision_tree::print): Same. |
| * genoutput.c: Same. |
| * genpreds.c (write_one_predicate_function): Same. |
| * genrecog.c (validate_pattern): Same. |
| (find_operand_positions): Same. |
| (optimize_subroutine_group): Same. |
| (merge_pattern_transition::merge_pattern_transition): Same. |
| (merge_pattern_info::merge_pattern_info): Same. |
| (merge_state_result::merge_state_result): Same. |
| (merge_into_state): Same. |
| * gensupport.c: Same. |
| * gensupport.h: Same. |
| * ggc-common.c (init_ggc_heuristics): Same. |
| * ggc-tests.c (test_union): Same. |
| * gimple-loop-interchange.cc (dump_induction): Same. |
| * gimple-loop-versioning.cc: Same. |
| * gimple-match.h (gimple_match_cond::any_else): Same. |
| * gimple-ssa-backprop.c: Same. |
| * gimple-ssa-sprintf.c: Same. |
| * gimple-ssa-store-merging.c (store_operand_info::store_operand_info): |
| Same. |
| (store_immediate_info::store_immediate_info): Same. |
| (merged_store_group::apply_stores): Same. |
| (get_location_for_stmts): Same. |
| * gimple-ssa-strength-reduction.c: Same. |
| * gimple-ssa-warn-alloca.c: Same. |
| * gimple-ssa-warn-restrict.c (pass_wrestrict::execute): Same. |
| * godump.c (go_type_decl): Same. |
| * hash-map-tests.c (test_map_of_strings_to_int): Same. |
| * hash-map.h: Same. |
| * hash-set-tests.c (test_set_of_strings): Same. |
| * hsa-brig.c: Same. |
| * hsa-common.h: Same. |
| * hsa-gen.c (transformable_switch_to_sbr_p): Same. |
| * input.c (assert_loceq): Same. |
| * input.h: Same. |
| * ipa-cp.c: Same. |
| * ipa-devirt.c (possible_polymorphic_call_targets_1): Same. |
| * ipa-fnsummary.h: Same. |
| * ipa-inline.h: Same. |
| * ipa-prop.h: Same. |
| * ipa-split.c (visit_bb): Same. |
| * ira-int.h (minmax_set_iter_next): Same. |
| * loop-invariant.c: Same. |
| * loop-iv.c: Same. |
| * lra-eliminations.c: Same. |
| * lra-int.h: Same. |
| * lra-lives.c (mark_regno_dead): Same. |
| * lra-remat.c: Same. |
| * lra-spills.c: Same. |
| * lto-streamer.h: Same. |
| * mem-stats.h: Same. |
| * omp-grid.c (omp_grid_lastprivate_predicate): Same. |
| * omp-low.c (omp_clause_aligned_alignment): Same. |
| * optabs-query.h (get_vcond_eq_icode): Same. |
| * optabs.h: Same. |
| * opts.c (wrap_help): Same. |
| * poly-int.h: Same. |
| * predict.c (predict_paths_leading_to_edge): Same. |
| * pretty-print.h: Same. |
| * profile-count.h: Same. |
| * read-md.h: Same. |
| * read-rtl-function.c: Same. |
| * ree.c: Same. |
| * reginfo.c: Same. |
| * regrename.c: Same. |
| * regrename.h: Same. |
| * reload.h: Same. |
| * rtl-iter.h: Same. |
| * rtl.h (costs_add_n_insns): Same. |
| * sanopt.c: Same. |
| * sched-int.h: Same. |
| * sel-sched-ir.h: Same. |
| * selftest.h: Same. |
| * sese.h (vec_find): Same. |
| * stmt.c: Same. |
| * target-globals.h: Same. |
| * tree-affine.c (aff_combination_find_elt): Same. |
| * tree-affine.h: Same. |
| * tree-data-ref.h: Same. |
| * tree-outof-ssa.c (ssa_is_replaceable_p): Same. |
| * tree-predcom.c: Same. |
| * tree-scalar-evolution.c (find_var_scev_info): Same. |
| * tree-ssa-alias.h: Same. |
| * tree-ssa-ccp.c: Same. |
| * tree-ssa-coalesce.c (ssa_conflicts_dump): Same. |
| * tree-ssa-loop-im.c (for_all_locs_in_loop): Same. |
| (rewrite_mem_refs): Same. |
| (execute_sm_if_changed): Same. |
| (hoist_memory_references): Same. |
| * tree-ssa-loop-ivopts.c (operator<=): Same. |
| * tree-ssa-loop.h: Same. |
| * tree-ssa-pre.c (get_or_alloc_expr_for_name): Same. |
| * tree-ssa-structalias.c: Same. |
| * tree-switch-conversion.h (cluster::cluster): Same. |
| (simple_cluster::simple_cluster): Same. |
| * tree-vect-patterns.c (type_conversion_p): Same. |
| * tree-vectorizer.c (dump_stmt_cost): Same. |
| * tree-vectorizer.h (loop_vec_info_for_loop): Same. |
| * tree.c (protected_set_expr_location): Same. |
| * tree.h (desired_pro_or_demotion_p): Same. |
| (fndecl_built_in_p): Same. |
| * unique-ptr-tests.cc: Same. |
| * var-tracking.c (delete_variable_part): Same. |
| * varasm.c (assemble_real): Same. |
| (tree_output_constant_def): Same. |
| * vec.c: Same. |
| * wide-int-bitmask.h: Same. |
| * wide-int.h (decompose): Same. |
| |
| 2019-07-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91114 |
| * tree-vect-data-refs.c (vect_analyze_data_refs): Failure to |
| find a vector type isn't fatal. |
| |
| 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com> |
| |
| * config/aarch64/aarch64-simd.md |
| (aarch64_crypto_aes<aes_op>v16qi): Redefine pattern with xor. |
| (aarch64_crypto_aes<aesmc_op>v16qi): Remove attribute enabled. |
| (*aarch64_crypto_aes<aes_op>v16qi_xor_combine): Remove both. |
| (*aarch64_crypto_aese_fused, |
| *aarch64_crypto_aesd_fused): Update to new definition. |
| * config/aarch64/aarch64.c |
| (aarch_macro_fusion_pair_p): Remove aese/aesmc fusion check. |
| |
| 2019-07-09 Richard Biener <rguenther@suse.de> |
| |
| * gimple-match.h (gimple_match_op::resimplify): New. |
| (gimple_resimplify1, gimple_resimplify2, gimple_resimplify3, |
| gimple_resimplify4, gimple_resimplify5): Remove. |
| * gimple-match-head.c (gimple_resimplify1, gimple_resimplify2, |
| gimple_resimplify3, gimple_resimplify4, gimple_resimplify5): |
| Make static. |
| (gimple_match_op::resimplify): New. |
| * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize |
| according to availability. Use gimple_match_op::resimplify. |
| |
| 2019-07-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * ira-emit.c (emit_moves): Skip DEBUG_INSNs when setting the location. |
| |
| 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com> |
| |
| * config/arm/crypto.md: |
| (crypto_<crypto_pattern>): Redefine aese/aesd pattern with xor. |
| (crypto_<crypto_pattern>): Remove attribute enabled for aesmc. |
| (crypto_<crypto_pattern>): Split CRYPTO_BINARY into 2 patterns. |
| (*aarch32_crypto_aese_fused, *aarch32_crypto_aesd_fused): New. |
| * config/arm/arm.c |
| (aarch_macro_fusion_pair_p): Remove aes/aesmc fusion check. |
| * config/arm/aarch-common-protos.h |
| (aarch_crypto_can_dual_issue): Remove. |
| * config/arm/aarch-common.c |
| (aarch_crypto_can_dual_issue): Likewise. |
| * config/arm/exynos-m1.md: Remove aese/aesmc fusion. |
| * config/arm/cortex-a53.md: Likewise. |
| * config/arm/cortex-a57.md: Likewise. |
| * config/arm/iterators.md: |
| (CRYPTO_BINARY): Redefine. |
| (CRYPTO_UNARY): Removed. |
| (CRYPTO_AES, CRYPTO_AESMC): New. |
| |
| 2019-07-09 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add orig_ref member. |
| (vn_reference_lookup_3): If the main ref has no access path recorded |
| but orig_ref has use it to do access-path based disambiguation. |
| (vn_reference_lookup_pieces): Adjust. |
| (vn_reference_lookup): Pass down original ref if we valueized. |
| |
| 2019-07-09 Martin Liska <mliska@suse.cz> |
| |
| * doc/extend.texi: Document influence on loop |
| optimizers. |
| |
| 2019-07-09 Martin Liska <mliska@suse.cz> |
| |
| * lto-compress.c (lto_normalized_zstd_level): Do not use |
| ZSTD_CLEVEL_DEFAULT as it is not default in old releases |
| of libzstd. One can use 0 as a default compression level. |
| |
| 2019-07-09 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Add link from -fprofile-dir option. |
| Use better wording for 'gcno filename'. |
| |
| 2019-07-08 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/71924 |
| PR middle-end/90549 |
| * gimple-ssa-isolate-paths.c (isolate_path): Add attribute. Update |
| comment. |
| (args_loc_t): New type. |
| (args_loc_t, locmap_t): same. |
| (diag_returned_locals): New function. |
| (is_addr_local): Same. |
| (handle_return_addr_local_phi_arg, warn_return_addr_local): Same. |
| (find_implicit_erroneous_behavior): Call warn_return_addr_local_phi_arg. |
| (find_explicit_erroneous_behavior): Call warn_return_addr_local. |
| |
| 2019-07-08 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vect-stmts.c (scan_operand_equal_p): Look through MEM_REF |
| with SSA_NAME address of POINTER_PLUS_EXPR. Handle MULT_EXPR |
| and casts in offset when different, both through gimple stmts |
| and through trees. Rewritten using loops to minimize code duplication |
| for each operand. |
| |
| 2019-07-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * emit-rtl.c (set_insn_locations): New function moved from... |
| * function.c (set_insn_locations): ...here. |
| * ira-emit.c (emit_moves): Propagate location of the first instruction |
| to the inserted move instructions. |
| * reg-stack.c (compensate_edge): Set the location if the sequence is |
| inserted on the edge. |
| * rtl.h (set_insn_locations): Declare. |
| |
| 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_machine_from_flags): Ignore |
| OPTION_MASK_PPC_GFXOPT and OPTION_MASK_PPC_GPOPT for selecting the |
| .machine string. |
| |
| 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/88233 |
| * common.opt (fsplit-wide-types-early): New option. |
| * common/config/rs6000/rs6000-common.c |
| (rs6000_option_optimization_table): Add OPT_fsplit_wide_types_early for |
| OPT_LEVELS_ALL. |
| * doc/invoke.texi (Optimization Options): Add -fsplit-wide-types-early. |
| * lower-subreg.c (pass_lower_subreg2::gate): Add test for |
| flag_split_wide_types_early. |
| (pass_data_lower_subreg3): New. |
| (pass_lower_subreg3): New. |
| (make_pass_lower_subreg3): New. |
| * passes.def (pass_lower_subreg2): Move after the loop passes. |
| (pass_lower_subreg3): New, inserted where pass_lower_subreg2 was. |
| * tree-pass.h (make_pass_lower_subreg2): Move up, to its new place in |
| the pass pipeline; its previous place is taken by ... |
| (make_pass_lower_subreg3): ... this. |
| |
| 2019-07-08 Robin Dapp <rdapp@linux.ibm.com> |
| |
| * config/s390/s390.c (s390_shift_truncation_mask): Define. |
| (TARGET_SHIFT_TRUNCATION_MASK): Define. |
| |
| 2019-07-08 Robin Dapp <rdapp@linux.ibm.com> |
| |
| * config/s390/constraints.md: Add new jsc constraint. |
| * config/s390/predicates.md: New predicates. |
| * config/s390/s390-protos.h (s390_valid_shift_count): New function. |
| * config/s390/s390.c (s390_valid_shift_count): New function. |
| (print_shift_count_operand): Use s390_valid_shift_count. |
| (print_operand): Likewise. |
| * config/s390/s390.md: Use new predicate. |
| * config/s390/subst.md: Remove addr_style_op and masked_op substs. |
| * config/s390/vector.md: Use new predicate. |
| |
| 2019-07-08 Andrew Waterman <andrew@sifive.com> |
| Jim Wilson <jimw@sifive.com> |
| |
| * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): Use operands[1] |
| bitsize instead of BITS_PER_WORD. |
| |
| 2019-07-08 Martin Liska <mliska@suse.cz> |
| |
| * collect2.c (defined): Revert to before r254460. |
| (scan_prog_file): Revert to before r254460. |
| |
| 2019-07-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/83518 |
| * tree-ssa-sccvn.c: Include splay-tree.h. |
| (struct pd_range, struct pd_data): New. |
| (struct vn_walk_cb_data): Add data to track partial definitions. |
| (vn_walk_cb_data::~vn_walk_cb_data): New. |
| (vn_walk_cb_data::push_partial_def): New. |
| (pd_tree_alloc, pd_tree_dealloc, pd_range_compare): New. |
| (vn_reference_lookup_2): When partial defs are registered give up. |
| (vn_reference_lookup_3): Track partial defs for memset and |
| constructor zeroing and for defs from constants. |
| |
| 2019-07-08 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/install.texi (bootstrap-Og): Document. |
| |
| 2019-07-08 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/riscv/pic.md (*local_pic_load_s<mode>) |
| (*local_pic_load_u<mode>): Explicitly specify the mode iterator |
| referenced by <mode>, giving... |
| (*local_pic_load_s<SUBX:mode>, *local_pic_load_u<SUBX:mode>): ...these. |
| * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>) |
| (*slt<u>_<X:mode><GPR:mode>, *sle<u>_<X:mode><GPR:mode>): Explicitly |
| use <X:MODE> for the mode attribute. |
| |
| 2019-07-07 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/91090 |
| * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Fix logic error |
| in handling of ranges to simplify switch statements. |
| |
| 2019-07-07 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c (darwin_override_options): Make a final check on PIC |
| options. |
| |
| 2019-07-07 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c (darwin_override_options): Don't jam symbol stubs |
| on for kernel code. |
| |
| 2019-07-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR target/91068 |
| * config/mips/mips.md (*mul_acc_si, *mul_acc_si_r3900, *macc) |
| (*msac, *msac_using_macc, *mul_sub_si): Use "l" for input operands |
| instead of matching them to "l" output operands. |
| |
| 2019-07-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/mips/mips.c (mips_split_move): Zero-initialize addr |
| and check whether addr.reg is nonnull before using it. |
| |
| 2019-07-06 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-low.c (lower_rec_input_clauses): For lastprivate clauses in |
| ctx->for_simd_scan_phase simd copy the outer var to the privatized |
| variable(s). For conditional lastprivate look through outer |
| GIMPLE_OMP_SCAN context. |
| (lower_omp_1): For conditional lastprivate look through outer |
| GIMPLE_OMP_SCAN context. |
| |
| * omp-low.c (struct omp_context): Rename combined_into_simd_safelen0 |
| member to combined_into_simd_safelen1. |
| (lower_rec_input_clauses, lower_omp_1): Adjust uses. |
| (lower_lastprivate_clauses): Likewise. For conditional lastprivate |
| clauses if ctx->combined_into_simd_safelen1 put statements after the |
| predicate conditionalized block rather than into it. |
| |
| 2019-07-06 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/s390/s390.md (*negabs<FP:mode>2_nocc): Use FP for |
| operand 1. |
| * config/s390/vx-builtins.md (*vec_cmp<insn_cmp><mode>_cconly): |
| Make the choice of <mode> explicit, giving... |
| (*vec_cmp<insn_cmp><VF_HW:mode>_cconly): ...this. |
| |
| 2019-07-06 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/i386/i386.md (*fop_<X87MODEF:mode>_3_i387) |
| (l<rounding_insn><MODEF:mode><SWI48:mode>2): Fix ambiguous uses |
| of .md attributes. |
| * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask) |
| (*avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask) |
| (*avx512pf_scatterpf<mode>df_mask, *avx2_gathersi<mode>) |
| (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>) |
| (*avx2_gatherdi<mode>_2, *avx2_gatherdi<mode>_3): Likewise. |
| (*avx2_gatherdi<mode>_4, *avx512f_gathersi<mode>): Likewise. |
| (*avx512f_gathersi<mode>_2, *avx512f_gatherdi<mode>): Likewise. |
| (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>): Likewise. |
| (*avx512f_scatterdi<mode>): Likewise. |
| (*andnot<mode>3_bcst): Fix VI/VI48_AVX512VL typo. |
| |
| 2019-07-06 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/h8300/h8300.md (*push1_h8300hs_<mode>): Explicitly |
| specify the mode iterator referenced by <mode>, giving... |
| (*push1_h8300hs_<QHI:mode>): ...this. |
| |
| 2019-07-06 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/gcn/gcn-valu.md |
| (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Use |
| gen_vec_cmp<VEC_1REG_ALT:mode>di rather than (implicitly) |
| gen_vec_cmp<VEC_1REG_MODE:mode>di. Explicitly use |
| gen_vcond_mask_<VEC_1REG_MODE:mode>di. |
| (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise, |
| but using the _exec comparison patterns. |
| (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>): Use |
| gen_vec_cmp<VEC_1REG_INT_ALT:mode>di rather than (implicitly) |
| gen_vec_cmp<VEC_1REG_INT_MODE:mode>di. Explicitly use |
| gen_vcond_mask_<VEC_1REG_INT_MODE:mode>di. |
| (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise, |
| but using the _exec comparison patterns. |
| |
| 2019-07-06 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/arm/sync.md |
| (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Use |
| <NARROW:sync_predtab> instead of (implicitly) <CCSI:sync_predtab>. |
| (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise use |
| <SIDI:sync_predtab>. Use <SIDI:cas_cmp_operand> and |
| <SIDI:cas_cmp_str>. |
| |
| 2019-07-06 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-low.c (struct omp_context): Add for_simd_scan_phase member. |
| (maybe_lookup_ctx): Add forward declaration. |
| (omp_find_scan): Likewise. Walk into body of simd if composited |
| with worksharing loop. |
| (scan_omp_simd_scan): New function. |
| (scan_omp_1_stmt): Call it. |
| (lower_rec_simd_input_clauses): Don't create rvar nor rvar2 if |
| ctx->for_simd_scan_phase. |
| (lower_rec_input_clauses): Do much less work for inscan reductions |
| in ctx->for_simd_scan_phase is_simd regions. |
| (lower_omp_scan): Set is_simd also on simd constructs composited |
| with worksharing loop, unless ctx->for_simd_scan_phase. Never emit |
| a sorry message. Don't change GIMPLE_OMP_SCAN stmts into nops and |
| emit their body after in simd constructs composited with worksharing |
| loop. |
| (lower_omp_for_scan): Handle worksharing loop composited with simd. |
| |
| * omp-low.c (omp_find_scan): Make static. |
| (lower_omp_for_scan): Fix order of merge arguments in input phase of |
| the second loop, var2 represents the first partial sum and so needs |
| to go before rprivb[ivar]. |
| |
| 2019-07-05 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/rs6000-logue.c: Remove unused code. |
| |
| 2019-07-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-ssa-loop-manip.c (create_iv): Add missing guard for gsi_end_p. |
| |
| 2019-07-05 Sam Tebbs <sam.tebbs@arm.com> |
| |
| PR target/90712 |
| * config/aarch64/aarch64.c (aarch64_post_cfi_startproc): Replace thunk |
| check with a frame laid out check. |
| |
| 2019-07-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize RHS |
| when comparing against a store with possibly the same value. |
| |
| 2019-07-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91091 |
| * tree-ssa-alias.h (get_continuation_for_phi): Add tbaa_p parameter. |
| (walk_non_aliased_vuses): Likewise. |
| * tree-ssa-alias.c (maybe_skip_until): Pass down tbaa_p. |
| (get_continuation_for_phi): New tbaa_p parameter and pass |
| it down. |
| (walk_non_aliased_vuses): Likewise. |
| * ipa-prop.c (determine_known_aggregate_parts): Adjust. |
| * tree-ssa-pre.c (translate_vuse_through_block): Likewise. |
| * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): |
| Likewise. |
| * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add tbaa_p flag. |
| (adjust_offsets_for_equal_base_address): New function. |
| (vn_reference_lookup_3): Use it to catch more base equivalences. |
| Handle and pass down tbaa_p flag. |
| (vn_reference_lookup_pieces): Adjust. |
| (vn_reference_lookup): Remove alias-set altering, instead pass |
| down false as tbaa_p. |
| |
| 2019-07-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/91091 |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Overlap of |
| accesses can happen with -fno-strict-aliasing. |
| |
| 2019-07-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (alias_stats): Add |
| nonoverlapping_component_refs_since_match_p_must_overlap. |
| (dump_alias_stats): Print it. |
| (nonoverlapping_component_refs_since_match_p): Add early exit. |
| (nonoverlapping_component_refs_p): Do not account early exit. |
| |
| 2019-07-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * except.c (emit_to_new_bb_before): Make sure to put a location on SEQ. |
| * tree-eh.c (replace_goto_queue_1) <GIMPLE_GOTO>: Propagate location. |
| (emit_eh_dispatch): Delete. |
| (lower_catch): Emit the eh_dispatch manually and set the location of |
| the first catch statement onto it. |
| (lower_eh_filter): Emit the eh_dispatch manually and set location. |
| (lower_eh_dispatch): Propagate location. |
| * tree-outof-ssa.c (set_location_for_edge): Handle EH edges specially. |
| (eliminate_build): Likewise. |
| |
| 2019-07-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-cfg.c (gimple_make_forwarder_block): Propagate location info on |
| phi nodes if possible. |
| * tree-scalar-evolution.c (final_value_replacement_loop): Propagate |
| location info on the newly created statement. |
| * tree-ssa-loop-manip.c (create_iv): Propagate location info on the |
| newly created increment if needed. |
| |
| 2019-07-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/78884 |
| * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member. |
| (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd |
| loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE. |
| (gimplify_adjust_omp_clauses): Add safelen (1) clause if |
| ctx->add_safelen1 is set. |
| |
| * omp-expand.c (expand_omp_for_static_nochunk): Don't emit |
| GOMP_loop_start at the start of second worksharing loop in a scan. |
| For nowait, don't emit GOMP_loop_end_nowait at the end of first |
| worksharing loop in a scan even if there are conditional lastprivates, |
| and do emit GOMP_loop_end_nowait at the end of second worksharing loop. |
| |
| 2019-07-04 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p): |
| Fix check for match in the ref walk. |
| |
| 2019-07-04 Martin Liska <mliska@suse.cz> |
| |
| * tree-ssa-loop-niter.c |
| (get_upper_bound_based_on_builtin_expr_with_prob): New function. |
| (estimate_numbers_of_iterations): |
| Support __builtin_expect_with_probability for analysis |
| of # of loop iterations. |
| |
| 2019-07-04 Alexandre Oliva <oliva@adacore.com> |
| |
| * doc/generic.texi (Cleanups): Document EH_ELSE_EXPR. |
| * except.c: Likewise. |
| * expr.c (expand_expr_real_1): Reject it. |
| * gimplify.c (gimplify_expr): Gimplify it, within |
| TRY_FINALLY_EXPR. |
| * tree-dump.c (dequeue_and_dump): Dump it. |
| * tree-pretty-print.c (dump_generic_node): Likewise. |
| * tree.c (block_may_fallthru): Handle it. |
| * tree.def (EH_ELSE_EXPR): Introduce it. |
| * gimple-pretty-print.c (dump_gimple_try): Dump TRY_FINALLY |
| with GIMPLE_EH_ELSE as try/finally/else. |
| |
| 2019-07-04 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/91062 |
| * tree-pass.h (execute_all_ipa_transforms): Add a flag |
| parameter whether to disable GC collection. |
| * passes.c (execute_one_ipa_transform_pass): Likewise, and |
| honor it. |
| (execute_all_ipa_transforms): Likewise and pass it down. |
| * cgraph.c (cgraph_node::get_body): Do not invoke garbage |
| collection from applying IPA transforms. |
| * cgraphunit.c (cgraph_node::expand): Allow garbage collection |
| from applying IPA transforms. |
| |
| 2019-07-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90911 |
| * tree-vectorizer.h (_loop_vec_info::scalar_loop_scaling): New field. |
| (LOOP_VINFO_SCALAR_LOOP_SCALING): new. |
| * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize |
| scalar_loop_scaling. |
| (vect_transform_loop): Scale scalar loop profile if needed. |
| * tree-vect-loop-manip.c (vect_loop_versioning): When re-using |
| the loop copy from if-conversion adjust edge probabilities |
| and scale the vectorized loop body profile, queue the scalar |
| profile for updating after peeling. |
| |
| 2019-07-04 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-alias.c (decl_refs_may_alias_p): Add size1 and size2 |
| parameters; return early for must-alias. |
| (indirect_ref_may_alias_decl_p): Likewise; when establishing |
| outer types match, try nonoverlapping_component_refs |
| if must-alias is not obvious. |
| (indirect_refs_may_alias_p): Likewise. |
| (refs_may_alias_p_2): Likewise. |
| |
| 2019-07-04 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr |
| argument. |
| * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move |
| globals into... |
| (struct vn_walk_cb_data): New callback data struct. |
| (vn_reference_lookup_2): Adjust. |
| (vn_reference_lookup_3): Likewise. |
| (vn_reference_lookup_pieces): Likewise. |
| (vn_reference_lookup): Likewise, get last_vuse_ptr argument. |
| (visit_reference_op_load): Adjust. |
| |
| 2019-07-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/91063 |
| * tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove |
| stmt from stmts sequence before calling vect_init_vector_1. |
| Formatting fix. |
| |
| 2019-07-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR target/88833 |
| * fwprop.c (reg_single_def_p): New function. |
| (propagate_rtx_1): Add unconditional else inside RTX_EXTRA case. |
| (forward_propagate_into): New parameter reg_prop_only |
| with default value false. |
| Propagate def's src into loop only if SET_SRC and SET_DEST |
| of def_set have single definitions. |
| Likewise if reg_prop_only is set to true. |
| (fwprop): New param fwprop_addr_p. |
| Integrate fwprop_addr into fwprop. |
| (fwprop_addr): Remove. |
| (pass_rtl_fwprop_addr::execute): Call fwprop with arg set |
| to true. |
| (pass_rtl_fwprop::execute): Call fwprop with arg set to false. |
| * simplify-rtx.c (simplify_subreg): Add case for vector comparison. |
| * config/i386/sse.md (UNSPEC_BLENDV): Adjust pattern. |
| |
| 2019-07-04 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-low.c (lower_omp_scan): Call lower_omp on stmt's body |
| in worksharing loop scans. |
| |
| PR tree-optimization/91074 |
| * omp-low.c (lower_omp_for_scan): Set DECL_GIMPLE_REG_P on cplx |
| temporary. |
| |
| PR rtl-optimization/90756 |
| * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it |
| for VECTOR_TYPE_P. |
| |
| 2019-07-03 Dennis Zhang <dennis.zhang@arm.com> |
| |
| * config/aarch64/aarch64.md: Remove redundant constraints from |
| define_expand but keep some patterns untouched if they are |
| specially selected by TARGET_SECONDARY_RELOAD hook. |
| * config/aarch64/aarch64-sve.md: Likewise. |
| * config/aarch64/atomics.md: Remove redundant constraints from |
| define_expand. |
| * config/aarch64/aarch64-simd.md: Likewise. |
| |
| 2019-07-03 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases. |
| (RDYNAMIC): Rename to, DARWIN_RDYNAMIC. |
| (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker |
| clauses. |
| (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and |
| DARWIN_NOPIE_SPEC. |
| |
| 2019-07-03 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin. |
| (STARTFILE_SPEC): Split crt3 into a separate spec. |
| (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec. |
| (DARWIN_CRT2_SPEC): New. |
| (DARWIN_CRT3_SPEC): New. |
| (MIN_LD64_OMIT_STUBS): Revise to 62.1. |
| * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions. |
| (DARWIN_CRT3_SPEC): New. |
| |
| 2019-07-03 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/altivec.md (altivec_mov<mode>, VM2 iterator): |
| Change the RTL attribute "length" from "4" to "*" to allow the |
| length attribute to be adjusted automatically for prefixed load, |
| store, and add immediate instructions. |
| * config/rs6000/rs6000.md (extendhi<mode>2, EXTHI iterator): |
| Likewise. |
| (extendsi<mode>2, EXTSI iterator): Likewise. |
| (movsi_internal1): Likewise. |
| (movsi_from_sf): Likewise. |
| (movdi_from_sf_zero_ext): Likewise. |
| (mov<mode>_internal): Likewise. |
| (movcc_internal1, QHI iterator): Likewise. |
| (mov<mode>_softfloat, FMOVE32 iterator): Likewise. |
| (movsf_from_si): Likewise. |
| (mov<mode>_hardfloat32, FMOVE64 iterator): Likewise. |
| (mov<mode>_softfloat64, FMOVE64 iterator): Likewise. |
| (mov<mode>, FMOVE128 iterator): Likewise. |
| (movdi_internal64): Likewise. |
| * config/rs6000/vsx.md (vsx_le_permute_<mode>, VSX_TI iterator): |
| Likewise. |
| (vsx_le_undo_permute_<mode>, VSX_TI iterator): Likewise. |
| (vsx_mov<mode>_64bit, VSX_M iterator): Likewise. |
| (vsx_mov<mode>_32bit, VSX_M iterator): Likewise. |
| (vsx_splat_v4sf): Likewise. |
| |
| 2019-07-03 Mark Wielaard <mark@klomp.org> |
| |
| PR debug/90981 |
| * dwarf2out.c (add_top_level_skeleton_die_attrs): Only add |
| DW_AT_addr_base if there is actually a .debug_addr section with |
| addresses. |
| (output_addr_table): Add DWARF5 table header generation here after |
| checking there are actually any addresses from... |
| (dwarf2out_finish): ...here. |
| |
| 2019-07-03 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/91069 |
| * match.pd (vec_perm -> bit_insert): Fix element read from |
| first vector. |
| |
| 2019-07-03 Martin Liska <mliska@suse.cz> |
| |
| * dbgcnt.def (DEBUG_COUNTER): Add match debug counter. |
| * genmatch.c (dt_simplify::gen_1): Generate dbgcnt |
| condition. |
| * generic-match-head.c: Include dbgcnt.h. |
| * gimple-match-head.c: Likewise. |
| |
| 2019-07-03 Martin Liska <mliska@suse.cz> |
| |
| * gcov-counter.def (GCOV_COUNTER_V_SINGLE): Remove. |
| (GCOV_COUNTER_V_TOPN): New. |
| (GCOV_COUNTER_V_INDIR): Use _topn. |
| * gcov-io.h (GCOV_DISK_SINGLE_VALUES): Remove. |
| (GCOV_TOPN_VALUES): New. |
| (GCOV_SINGLE_VALUE_COUNTERS): Remove. |
| (GCOV_TOPN_VALUES_COUNTERS): New. |
| * profile.c (instrument_values): Use HIST_TYPE_TOPN_VALUES. |
| * tree-profile.c: |
| (gimple_init_gcov_profiler): Rename variables from one_value |
| to topn_values. |
| (gimple_gen_one_value_profiler): Remove. |
| (gimple_gen_topn_values_profiler): New function. |
| * value-prof.c (dump_histogram_value): Use TOPN_VALUES |
| names instead of SINGLE_VALUE. |
| (stream_out_histogram_value): Likewise. |
| (stream_in_histogram_value): Likewise. |
| (get_most_common_single_value): Likewise. |
| (gimple_divmod_fixed_value_transform): Likewise. |
| (gimple_stringops_transform): Likewise. |
| (gimple_divmod_values_to_profile): Likewise. |
| (gimple_stringops_values_to_profile): Likewise. |
| (gimple_find_values_to_profile): Likewise. |
| * value-prof.h (enum hist_type): Rename to TOPN. |
| (gimple_gen_one_value_profiler): Remove. |
| (gimple_gen_topn_values_profiler): New. |
| |
| 2019-07-03 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE |
| if it has the DW_AT_data_member_location attribute. |
| |
| 2019-07-03 Richard Biener <rguenther@suse.de> |
| |
| * gimple-pretty-print.c (dump_ternary_rhs): Fix BIT_INSERT_EXPR |
| dumping. |
| |
| 2019-07-03 Sylvia Taylor <sylvia.taylor@arm.com> |
| |
| * config/aarch64/aarch64.md (FP_REGNUM): New constant. |
| (tlsdesc_small_advsimd_<mode>): Add use of FP_REGNUM. |
| (tlsdesc_small_sve_<mode>): Likewise. |
| |
| 2019-07-03 Martin Liska <mliska@suse.cz> |
| |
| * Makefile.in: Define ZSTD_LIB. |
| * common.opt: Adjust compression level |
| to support also zstd levels. |
| * config.in: Regenerate. |
| * configure: Likewise. |
| * configure.ac: Add --with-zstd and --with-zstd-include options |
| and detect ZSTD. |
| * doc/install.texi: Mention zstd dependency. |
| * gcc.c: Print supported LTO compression algorithms. |
| * lto-compress.c (lto_normalized_zstd_level): Likewise. |
| (lto_compression_zstd): Likewise. |
| (lto_uncompression_zstd): Likewise. |
| (lto_end_compression): Dispatch in between zlib and zstd. |
| (lto_compression_zlib): Mark with ATTRIBUTE_UNUSED. |
| (lto_uncompression_zlib): Make it static. |
| * lto-compress.h (lto_end_uncompression): Fix GNU coding style. |
| * lto-section-in.c (lto_get_section_data): Pass info |
| about used compression. |
| * lto-streamer-out.c: By default use zstd when possible. |
| * timevar.def (TV_IPA_LTO_DECOMPRESS): Rename to decompression |
| (TV_IPA_LTO_COMPRESS): Likewise for compression. |
| |
| 2019-07-03 Martin Liska <mliska@suse.cz> |
| |
| * lto-section-in.c (lto_get_section_data): Add "lto" section. |
| * lto-section-out.c (lto_destroy_simple_output_block): Never |
| compress LTO_section_lto section. |
| * lto-streamer-out.c (produce_asm): Do not set major_version |
| and minor_version. |
| (lto_output_toplevel_asms): Likewise. |
| (produce_lto_section): New function. |
| (lto_output): Call produce_lto_section. |
| (lto_write_mode_table): Do not set major_version and |
| minor_version. |
| (produce_asm_for_decls): Likewise. |
| * lto-streamer.h (enum lto_section_type): Add LTO_section_lto |
| type. |
| (struct lto_header): Remove. |
| (struct lto_section): New struct. |
| (struct lto_simple_header): Do not inherit from lto_header. |
| (struct lto_file_decl_data): Add lto_section_header field. |
| |
| 2019-07-03 Martin Liska <mliska@suse.cz> |
| |
| * lra-eliminations.c (eliminate_regs_in_insn): Remove |
| dead assignemts. |
| * reg-stack.c (check_asm_stack_operands): Likewise. |
| * tree-ssa-structalias.c (create_function_info_for): Likewise. |
| * tree-vect-generic.c (expand_vector_operations_1): Likewise. |
| * config/i386/i386-expand.c (ix86_expand_sse2_mulvxdi3): Use |
| force_expand_binop. |
| |
| 2019-07-03 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/90892 |
| * builtins.c (inline_expand_builtin_string_cmp): Handle '\0' |
| in string constants. |
| |
| 2019-07-03 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/90899 |
| * multiple_target.c (create_dispatcher_calls): Add to comdat |
| group only if set for ifunc. |
| |
| 2019-07-03 Martin Liska <mliska@suse.cz> |
| |
| PR target/88056 |
| * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): |
| Define local_object_name in outer scope in order to handle |
| use-after-scope issue. |
| |
| 2019-07-03 Martin Liska <mliska@suse.cz> |
| |
| * common.opt: Add fprofile-note. |
| * coverage.c (coverage_init): Append the option |
| to bbg_file_name. |
| * doc/invoke.texi: Document -fprofile-note. |
| |
| 2019-07-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/91033 |
| * tree-vectorizer.h (vect_mark_stmts_to_be_vectorized, |
| vect_analyze_data_refs): Add bool * arguments. |
| * tree-vect-data-refs.c (vect_analyze_data_refs): Add fatal argument, |
| if failure is due to scatter/gather, set *fatal to false if non-NULL. |
| * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise. |
| * tree-vect-loop.c (vect_analyze_loop_2): Adjust |
| vect_mark_stmts_to_be_vectorized and vect_analyze_data_refs callers. |
| * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust |
| vect_analyze_data_refs caller. |
| |
| * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SCANTEMP_ |
| clause. |
| * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__SCANTEMP_ instead of |
| OMP_CLAUSE__CONDTEMP_ as range's upper bound. |
| (OMP_CLAUSE__SCANTEMP__ALLOC, OMP_CLAUSE__SCANTEMP__CONTROL): Define. |
| * tree.c (omp_clause_num_ops, omp_clause_code_name): Add |
| OMP_CLAUSE__SCANTEMP_ entry. |
| (walk_tree_1): Handle OMP_CLAUSE__SCANTEMP_. |
| * tree-pretty-print.c (dump_omp_clause): Likewise. |
| * tree-nested.c (convert_nonlocal_omp_clauses, |
| convert_local_omp_clauses): Likewise. |
| * omp-general.h (struct omp_for_data): Add have_scantemp and |
| have_nonctrl_scantemp members. |
| * omp-general.c (omp_extract_for_data): Initialize them. |
| * omp-low.c (struct omp_context): Add scan_exclusive member. |
| (scan_omp_1_stmt): Don't unnecessarily mask gimple_omp_for_kind |
| result again with GF_OMP_FOR_KIND_MASK. Initialize also |
| ctx->scan_exclusive. |
| (lower_rec_simd_input_clauses): Use ctx->scan_exclusive instead |
| of !ctx->scan_inclusive. |
| (lower_rec_input_clauses): Simplify gimplification of dtors using |
| gimplify_and_add. For non-is_simd test OMP_CLAUSE_REDUCTION_INSCAN |
| rather than rvarp. Handle OMP_CLAUSE_REDUCTION_INSCAN in worksharing |
| loops. Don't add barrier for reduction_omp_orig_ref if |
| ctx->scan_??xclusive. |
| (lower_reduction_clauses): Don't do anything for ctx->scan_??xclusive. |
| (lower_omp_scan): Use ctx->scan_exclusive instead |
| of !ctx->scan_inclusive. Handle worksharing loops with inscan |
| reductions. Use new_vard != new_var instead of repeated |
| omp_is_reference calls. |
| (omp_find_scan, lower_omp_for_scan): New functions. |
| (lower_omp_for): Call lower_omp_for_scan for worksharing loops with |
| inscan reductions. |
| * omp-expand.c (expand_omp_scantemp_alloc): New function. |
| (expand_omp_for_static_nochunk): Handle fd->have_nonctrl_scantemp |
| and fd->have_scantemp. |
| |
| * gimplify.c (gimplify_scan_omp_clauses): For inscan reductions |
| on worksharing loop propagate it as shared clause to containing |
| combined parallel. |
| |
| * omp-expand.c (expand_omp_for_static_nochunk, |
| expand_omp_for_static_chunk): For nowait worksharing loop with |
| conditional lastprivate clause(s), emit GOMP_loop_end_nowait call |
| at the end. |
| |
| 2019-07-02 qing zhao <qing.zhao@oracle.com> |
| |
| PR preprocessor/90581 |
| * doc/cppopts.texi: Add document for -fmax-include-depth. |
| * doc/invoke.texi (Preprocessor Options): List -fmax-include-depth. |
| |
| 2019-07-02 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/mmx.md (mmx_pack<s_trunsuffix>swb): |
| Use TARGET_SSE2 && SSE_REGNO_P in split condition. |
| (mmx_packssdw): Ditto. |
| (mmx_punpckhbw): Ditto. |
| (mmx_punpcklbw): Ditto. |
| (mmx_punpckhwd): Ditto. |
| (mmx_punpcklwd): Ditto. |
| (mmx_punpckhdq): Ditto. |
| (mmx_punpckldq): Ditto. |
| (*vec_dupv4hi): Ditto. |
| (*vec_dupv2si): Ditto. |
| (mmx_pmovmskb): Ditto. |
| * config/i386/sse.md (sse_cvtpi2ps): Use |
| TARGET_SSE2 && SSE_REG_P in split condition. |
| (ssse3_ph<plusminus_mnemonic>wv4hi3): Use |
| TARGET_SSSE3 && SSE_REGNO_P in split condition. |
| (ssse3_ph<plusminus_mnemonic>dv2si3): Ditto. |
| (ssse3_pshufbv8qi3): Ditto. |
| (ssse3_palignrdi): Ditto. |
| |
| 2019-07-02 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn |
| with inlined save and restore. |
| |
| 2019-07-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cfgexpand.c (pass_expand::execute): Deal specially with instructions |
| to be inserted on single successor edge of the entry block. Then call |
| commit_edge_insertions instead of inserting the instructions manually. |
| * cfgrtl.c (commit_edge_insertions): Do not verify flow info during |
| RTL expansion and rebuild jump labels chain. |
| |
| 2019-07-02 Richard Biener <rguenther@suse.de> |
| |
| * tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and |
| TI_CHREC_KNOWN. |
| * tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known): |
| Define here. |
| * tree.c (build_common_tree_nodes): Initialize them. |
| * tree-chrec.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known): |
| Make declarations comments. |
| * tree-scalar-evolution.c (chrec_not_analyzed_yet, chrec_dont_know, |
| chrec_known): Remove definitions. |
| (initialize_scalar_evolutions_analyzer): Remove. |
| (scev_initialize): Do not call initialize_scalar_evolutions_analyzer. |
| * tree-streamer.c (preload_common_nodes): Do not preload |
| TI_CHREC_DONT_KNOW or TI_CHREC_KNOWN. |
| |
| 2019-07-02 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten |
| sanity check. |
| |
| 2019-07-02 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename |
| to .. |
| (nonoverlapping_component_refs_since_match_p): ... this one; |
| handle also non-decl bases; return -1 if search gave up. |
| (alias_stats): Rename nonoverlapping_component_refs_of_decl_p_may_alias, |
| nonoverlapping_component_refs_of_decl_p_no_alias to |
| nonoverlapping_component_refs_since_match_p_may_alias, |
| nonoverlapping_component_refs_since_match_p_no_alias. |
| (dump_alias_stats): Update dumping. |
| (aliasing_matching_component_refs_p): Break out from ...; |
| dispatch to nonoverlapping_component_refs_for_decl_p |
| and nonoverlapping_component_refs_since_match_p. |
| (aliasing_component_refs_p): ... here; call |
| nonoverlapping_component_refs_p in scenarios where we can not |
| precisely determine base match. |
| (decl_refs_may_alias_p): Use |
| nonoverlapping_component_refs_since_match_p. |
| (indirect_ref_may_alias_decl_p): Do not call |
| nonoverlapping_component_refs_p. |
| (indirect_refs_may_alias_p): Likewise. |
| |
| 2019-07-02 Jan Hubicka <jh@suse.cz> |
| |
| * tree-inline.c (remap_gimple_stmt): Do not subtitute handled components |
| to clobber of return value. |
| |
| 2019-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/cortex-a57.md (cortex_a57_neon_type): Use neon_arith_basic |
| for is_neon_type instructions that have not already been categorized. |
| |
| 2019-07-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/58483 |
| * tree-ssa-scopedtables.c (avail_expr_hash): Use OEP_ADDRESS_OF |
| for MEM_REF base hashing. |
| (equal_mem_array_ref_p): Likewise for base comparison. |
| |
| 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (signbit<mode>2_dm): Make this a |
| parameterized name. |
| (signbit<mode>2): Use that name. Simplify. |
| |
| 2019-07-01 Joern Rennecke <joern.rennecke@riscy-ip.com> |
| |
| PR middle-end/66726 |
| * tree-ssa-phiopt.c (factor_out_conditional_conversion): |
| Tune heuristic from PR71016 to allow MIN / MAX. |
| |
| 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (ieee_128bit_vsx_abs<mode>2): Make this a |
| parameterized name. |
| (abs<mode>2): Use that name. Simplify. |
| |
| 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2): Make this a |
| parameterized name. |
| (neg<mode>2): Use that name. Simplify. |
| |
| 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (abs<mode>2_hw): Make this a parameterized |
| name. |
| (abs<mode>2): Use that name. Simplify. |
| |
| 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (neg<mode>2_hw): Make this a parameterized |
| name. |
| (neg<mode>2): Use that name. Simplify. |
| |
| 2019-07-01 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md ("isa" attribute): Add sse_noavx. |
| ("enabled" attribute): Handle sse_noavx isa attribute. |
| * config/i386/mmx.md (*vec_dupv2sf): Add "isa" attribute. |
| Use TARGET_SSE && SSE_REGNO_P in split condition. |
| (*vec_dupv2sf): Ditto. |
| |
| 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (extenddf<mode>2): Make this a parameterized |
| name. |
| (floatsi<mode>2): Use that name. Simplify. |
| |
| 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (extenddf<mode>2_fprs): Make this a |
| parameterized name. |
| (extenddf<mode>2_vsx): Make this a parameterized name. |
| (extenddf<mode>2): Use those names. Simplify. |
| |
| 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (eh_set_lr_<mode>): Make this a parameterized |
| name. |
| (eh_return): Use that name. Simplify. |
| |
| 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (ctr<mode>): Make this a parameterized name. |
| (doloop_end): Use that name. Simplify. |
| |
| 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (indirect_jump<mode>_nospec): Make this a |
| parameterized name. |
| (indirect_jump): Use that name. Simplify. |
| |
| 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (abs<mode>2_internal): Make this a |
| parameterized name. |
| (abs<mode>2): Use that name. Simplify. |
| |
| 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (fix_trunc<mode>si2_fprs): Make this a |
| parameterized name. |
| (fix_trunc<mode>si2): Use that name. Simplify. |
| |
| 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (neg<mode>2): Make this a parameterized name. |
| (allocate_stack): Use that name. Simplify. |
| |
| 2019-07-01 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/90923 |
| * hash-map.h (hash_map::put): On insertion invoke element ctor. |
| (hash_map::get_or_insert): Same. Reformat comment. |
| * hash-set.h (hash_set::add): On insertion invoke element ctor. |
| * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): New. |
| * hash-set-tests.c (test_map_of_type_with_ctor_and_dtor): New. |
| * hash-table.h (hash_table::operator=): Prevent copy assignment. |
| (hash_table::hash_table (const hash_table&)): Use copy ctor |
| instead of assignment to copy elements. |
| |
| 2019-07-01 Wilco Dijkstra <wdijkstr@arm.com> |
| John David Anglin <danglin@gcc.gnu.org> |
| |
| PR target/90963 |
| * config/pa/pa.md (builtin_longjmp): Restore hard_frame_pointer_rtx |
| using saved frame pointer. |
| |
| 2019-07-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/64242 |
| * config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last. |
| Add frame clobber and schedule blockage. |
| |
| 2019-07-01 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * doc/invoke.texi (Link Options): Further editorial changes to |
| -flinker-output docs. |
| |
| 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem): |
| Load both operands of a PLUS into registers separately. |
| |
| 2019-07-01 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/vector.md: Fix shift count operand printing. |
| |
| 2019-07-01 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * ira-lives.c (process_bb_node_lives): Use ira_setup_alts. |
| |
| 2019-07-01 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * ira.c (ira_get_dup_out_num): Don't punt for earlyclobbers. |
| Use recog_data to test for an output operand. |
| |
| 2019-07-01 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * ira.c (ira_setup_alts): If any valid alternatives have zero cost, |
| exclude any others that are disparaged or that are bound to need |
| a reload or spill. |
| (ira_get_dup_out_num): Expand comment. |
| |
| 2019-07-01 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * ira.c (ira_setup_alts): Use preprocess_constraints to get the |
| constraint string for each operand/alternative combo. Only handle |
| '%' at the start of constraint strings, and look for it outside |
| the main loop. |
| |
| 2019-07-01 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * ira-int.h (ira_setup_alts, ira_get_dup_out_num): Use |
| alternative_mask instead of HARD_REG_SET to represent a |
| bitmask of alternatives. |
| * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise. |
| * ira-conflicts.c (add_insn_allocno_copies): Likewise. |
| |
| 2019-07-01 Martin Liska <mliska@suse.cz> |
| |
| * edit-context.c (test_applying_fixits_unreadable_file): Do not |
| use () for a constructor call. |
| (test_applying_fixits_line_out_of_range): Likewise. |
| * ggc-page.c (alloc_page): Use (void *) for %p printf format |
| argument. |
| (free_page): Likewise. |
| |
| 2019-07-01 Vladislav Ivanishin <vlad@ispras.ru> |
| |
| * gdbhooks.py (GdbPrettyPrinters.add_printer_for_types): Reorder |
| parameter names to match usage (no functional change). |
| (GdbPrettyPrinters.add_printer_for_regex): Ditto. |
| |
| 2019-07-01 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (class pass_fre): Add may_iterate |
| pass parameter. |
| (pass_fre::execute): Honor it. |
| * passes.def: Adjust pass_fre invocations to allow iterating, |
| add non-iterating pass_fre before late threading/dom. |
| |
| 2019-07-01 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Adjust |
| TARGET_MEM_REF handling to also handle address-taken ones. |
| |
| 2019-07-01 Hongtao Liu <hongtao.liu@intel.com> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords, Other |
| hardware attributes): Document avx512vp2intersect. |
| |
| 2019-06-30 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2. |
| (abs<mode>2): New expander. |
| * config/i386/i386-builtin.def (__builtin_ia32_pabsb): |
| Use CODE_FOR_ssse3_absv8qi2. |
| (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2. |
| (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2. |
| |
| 2019-06-30 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx |
| to sse, sse_noavx and avx. Update all uses. |
| |
| 2019-06-30 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/mmx.md (sse_movntq): Add "isa" attribute. |
| (*mmx_<plusminus_insn><mode>3): Ditto. |
| (*mmx_mulv4hi3"): Ditto. |
| (*mmx_smulv4hi3_highpart): Ditto. |
| (*mmx_umulv4hi3_highpart): Ditto. |
| (*mmx_pmaddwd): Ditto. |
| (*sse2_umulv1siv1di3): Ditto. |
| (*mmx_<code>v4hi3): Ditto. |
| (*mmx_<code>v8qi3): Ditto. |
| (mmx_ashr<mode>3): Ditto. |
| ("mmx_<shift_insn><mode>3): Ditto. |
| (*mmx_eq<mode>3): Ditto. |
| (mmx_gt<mode>3): Ditto. |
| (mmx_andnot<mode>3): Ditto. |
| (*mmx_<code><mode>3): Ditto. |
| (*mmx_pinsrw): Ditto. |
| (*mmx_pextrw): Ditto. |
| (mmx_pshufw_1): Ditto. |
| (*mmx_uavgv8qi3): Ditto. |
| (*mmx_uavgv4hi3): Ditto. |
| ("mmx_psadbw): Ditto. |
| * config/i386/sse.md (sse_cvtps2pi): Ditto. |
| (sse_cvttps2pi): Ditto. |
| (ssse3_pmaddubsw): Ditto. |
| (*ssse3_pmulhrswv4hi3): Ditto. |
| (ssse3_psign<mode>3): Ditto. |
| |
| 2019-06-29 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * expr.c (expand_expr_real_1) <BIT_FIELD_REF>: Apply the big-endian |
| adjustment for bit-fields to all aggregate types. |
| |
| 2019-06-28 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/predicates.md (pcrel_address): Use |
| SYMBOL_REF_LOCAL_P to determine if a label is local. |
| (pcrel_external_address): New predicate. |
| (non_prefixed_mem_operand): Delete, predicate not used. |
| * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL_P): Delete, we now use |
| SYMBOL_REF_LOCAL_P to determine if we can use pc-relative |
| addressing. |
| (SYMBOL_REF_PCREL_P): Likewise. |
| |
| PR target/91009 |
| * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX |
| alternative. |
| (floatsi<mode>2_lfiwax_mem): Add non-VSX alternative. |
| (floatunssi<mode>2_lfiwzx): Add non-VSX alternative. |
| (floatunssi<mode>2_lfiwzx_mem): Add non-VSX alternative. |
| |
| 2019-06-28 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove |
| override on extra_headers. |
| |
| 2019-06-28 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin-c.c (pop_field_alignment): Quote #pragma options. |
| * config/darwin-driver.c (darwin_default_min_version): Remove newline |
| from warning. |
| (darwin_driver_init): Likewise. |
| |
| 2019-06-28 Jan Beulich <jbeulich@suse.com> |
| |
| * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>, |
| vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>): |
| Eliminate redundant alternative. |
| |
| 2019-06-28 Jan Beulich <jbeulich@suse.com> |
| |
| * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>, |
| vgf2p8affineqb_<mode><mask_name>): Drop % constraint modifier. |
| Use vector_operand. |
| |
| 2019-06-28 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_rtx_costs): All short instructions are |
| having a lower cost regardless of the speed option. |
| |
| 2019-06-28 Jan Beulich <jbeulich@suse.com> |
| |
| * config/i386/sse.md (sse2_cvtpd2pi, sse2_cvttpd2pi): Use |
| vector_operand plus, on both alternatives, "Bm" constraint. |
| |
| 2019-06-28 Dennis Zhang <dennis.zhang@arm.com> |
| |
| * config/arm/arm.md: Remove redundant constraints from |
| define_expand but leave reload_inm and reload_outm patterns |
| untouched since they need special constraints to work. |
| * config/arm/arm-fixed.md: Remove redundant constraints from |
| define_expand. |
| * config/arm/iwmmxt.md: Likewise. |
| * config/arm/neon.md: Likewise. |
| * config/arm/sync.md: Likewise. |
| * config/arm/thumb1.md: Likewise. |
| * config/arm/vec-common.md: Likewise. |
| |
| 2019-06-27 Ilia Diachkov <ilia.diachkov@optimitech.com> |
| |
| * doc/install.texi: Document --disable-tm-clone-registry. |
| |
| 2019-06-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/91024 |
| * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT |
| statements. |
| |
| PR tree-optimization/91010 |
| * tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2, |
| return true. Otherwise, don't call operand_equal_p if offset1 or |
| offset2 is NULL and just return false. |
| |
| 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour |
| user-specified float mode choice for kernel mode code. |
| |
| 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the |
| spec. |
| |
| 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not |
| use longcall for 64b code. |
| |
| 2019-06-27 Aaron Sawdey <acsawdey@linux.ibm.com> |
| |
| * builtins.c (get_memory_rtx): Fix comment. |
| * optabs.def (movmem_optab): Change to cpymem_optab. |
| * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem. |
| (emit_block_move_hints): Change movmem to cpymem. |
| * defaults.h: Change movmem to cpymem. |
| * targhooks.c (get_move_ratio): Change movmem to cpymem. |
| (default_use_by_pieces_infrastructure_p): Ditto. |
| * config/aarch64/aarch64-protos.h: Change movmem to cpymem. |
| * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem |
| to cpymem. |
| * config/aarch64/aarch64.h: Change movmem to cpymem. |
| * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi. |
| * config/alpha/alpha.h: Change movmem to cpymem in comment. |
| * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change |
| movmem to cpymem. |
| * config/arc/arc-protos.h: Change movmem to cpymem. |
| * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem. |
| * config/arc/arc.h: Change movmem to cpymem in comment. |
| * config/arc/arc.md (movmemsi): Change movmem to cpymem. |
| * config/arm/arm-protos.h: Change movmem to cpymem in names. |
| * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi, |
| gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem. |
| * config/arm/arm.md (movmemqi): Change movmem to cpymem. |
| * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem. |
| * config/avr/avr-protos.h: Change movmem to cpymem. |
| * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi, |
| avr_out_movmem): Change movmem to cpymem. |
| * config/avr/avr.md (movmemhi, movmem_<mode>, movmemx_<mode>): |
| Change movmem to cpymem. |
| * config/bfin/bfin-protos.h: Change movmem to cpymem. |
| * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem): |
| Change movmem to cpymem. |
| * config/bfin/bfin.h: Change movmem to cpymem in comment. |
| * config/bfin/bfin.md (movmemsi): Change name to cpymemsi. |
| * config/c6x/c6x-protos.h: Change movmem to cpymem. |
| * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem. |
| * config/c6x/c6x.md (movmemsi): Change name to cpymemsi. |
| * config/frv/frv.md (movmemsi): Change name to cpymemsi. |
| * config/ft32/ft32.md (movmemsi): Change name to cpymemsi. |
| * config/h8300/h8300.md (movmemsi): Change name to cpymemsi. |
| * config/i386/i386-expand.c (expand_set_or_movmem_via_loop, |
| expand_set_or_movmem_via_rep, expand_movmem_epilogue, |
| expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue, |
| expand_small_cpymem_or_setmem, |
| expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves, |
| expand_set_or_cpymem_constant_prologue, |
| ix86_expand_set_or_cpymem): Change movmem to cpymem. |
| * config/i386/i386-protos.h: Change movmem to cpymem. |
| * config/i386/i386.h: Change movmem to cpymem in comment. |
| * config/i386/i386.md (movmem<mode>): Change name to cpymem. |
| (setmem<mode>): Change expansion function name. |
| * config/lm32/lm32.md (movmemsi): Change name to cpymemsi. |
| * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op, |
| movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem. |
| * config/m32c/m32c-protos.h: Change movmem to cpymem. |
| * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem. |
| * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem. |
| * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem |
| to cpymem. |
| * config/mcore/mcore.md (movmemsi): Change name to cpymemsi. |
| * config/microblaze/microblaze.c: Change movmem to cpymem in comment. |
| * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi. |
| * config/mips/mips.c (mips_use_by_pieces_infrastructure_p): |
| Change movmem to cpymem. |
| * config/mips/mips.h: Change movmem to cpymem. |
| * config/mips/mips.md (movmemsi): Change name to cpymemsi. |
| * config/nds32/nds32-memory-manipulation.c |
| (nds32_expand_movmemsi_loop_unknown_size, |
| nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop, |
| nds32_expand_movmemsi_unroll, |
| nds32_expand_movmemsi): Change movmem to cpymem. |
| * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi. |
| * config/nds32/nds32-protos.h: Change movmem to cpymem. |
| * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem. |
| (pa_adjust_insn_length): Change call to compute_movmem_length. |
| * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload, |
| movmemdi, movmemdi_prereload, |
| movmemdi_postreload): Change movmem to cpymem. |
| * config/pdp11/pdp11.md (movmemhi, movmemhi1, |
| movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem. |
| * config/riscv/riscv.c: Change movmem to cpymem in comment. |
| * config/riscv/riscv.h: Change movmem to cpymem. |
| * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi. |
| * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi. |
| * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change |
| movmem to cpymem. |
| * config/s390/s390-protos.h: Change movmem to cpymem. |
| * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem, |
| s390_expand_insv): Change movmem to cpymem. |
| * config/s390/s390.md (movmem<mode>, movmem_short, *movmem_short, |
| movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem. |
| * config/sh/sh.md (movmemsi): Change name to cpymemsi. |
| * config/sparc/sparc.h: Change movmem to cpymem in comment. |
| * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype |
| for nonexistent function. |
| * config/vax/vax.h: Change movmem to cpymem in comment. |
| * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem. |
| * config/visium/visium.h: Change movmem to cpymem in comment. |
| * config/visium/visium.md (movmemsi): Change name to cpymemsi. |
| * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi. |
| * doc/md.texi: Change movmem to cpymem and update description to match. |
| * doc/rtl.texi: Change movmem to cpymem. |
| * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem. |
| * doc/tm.texi: Regenerate. |
| |
| 2019-06-27 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable |
| -fvariable-expansion-in-unroller by default. |
| * doc/invoke.texi (-fvariable-expansion-in-unroller): Document new |
| default for Power. |
| |
| 2019-06-27 David Edelsohn <dje.gcc@gmail.com> |
| |
| Revert |
| 2019-06-26 David Edelsohn <dje.gcc@gmail.com> |
| * config.gcc (powerpc-ibm-aix*): Define target_gtfiles. |
| |
| * config.gcc(rs6000-*-*): Define target_gtfiles. |
| |
| 2019-06-27 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-devirt.c (odr_type_d): Add tbaa_enabled flag. |
| (add_type_duplicate): When odr hash is not allocated, to nothing. |
| (odr_based_tbaa_p): New function. |
| (set_type_canonical_for_odr_type): New function. |
| * ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p, |
| set_type_canonical_for_odr_type): New. |
| * tree.c (gimple_canonical_types_compatible_p): ODR types with |
| ODR based TBAA are not equivalent to non-ODR types. |
| |
| 2019-06-27 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/90974 |
| PR rtl-optimization/90975 |
| PR rtl-optimization/90976 |
| PR target/91016 |
| PR tree-optimization/91017 |
| * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove |
| unused tmp. |
| * lra.c (lra_set_insn_recog_data): Remove a leftover from |
| initial commit of IRA. |
| * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead |
| of op0 and op1. |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): |
| Remove unused mode1. |
| * tree-vect-stmts.c (vectorizable_call): Remove dead assignment |
| to new_stmt_info. |
| |
| 2019-06-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/90991 |
| * config/i386/sse.md (avx_vec_concat<mode>): Use nonimmediate_operand |
| instead of register_operand for operands[1], add m to its constraints |
| if operands[2] uses "C" constraint. Ensure in condition that if |
| operands[2] is not 0, then operands[1] is not a MEM. For last two |
| alternatives, use unaligned loads instead of aligned if operands[1] is |
| misaligned_operand. |
| |
| 2019-06-27 Martin Liska <mliska@suse.cz> |
| |
| * asan.c (asan_emit_allocas_unpoison): Remove obviously |
| dead assignments. |
| * bt-load.c (move_btr_def): Likewise. |
| * builtins.c (expand_builtin_apply_args_1): Likewise. |
| (expand_builtin_apply): Likewise. |
| * cfgexpand.c (expand_asm_stmt): Likewise. |
| (construct_init_block): Likewise. |
| * cfghooks.c (verify_flow_info): Likewise. |
| * cfgloopmanip.c (remove_path): Likewise. |
| * cfgrtl.c (rtl_verify_bb_layout): Likewise. |
| * cgraph.c (cgraph_node::set_pure_flag): Likewise. |
| * combine.c (simplify_if_then_else): Likewise. |
| * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise. |
| (choose_basereg): Likewise. |
| (ix86_expand_prologue): Likewise. |
| (ix86_preferred_output_reload_class): Likewise. |
| * cselib.c (cselib_record_sets): Likewise. |
| * df-scan.c (df_scan_alloc): Likewise. |
| * dojump.c (do_jump_by_parts_greater_rtx): Likewise. |
| * early-remat.c (early_remat::record_equiv_candidates): Likewise. |
| * emit-rtl.c (try_split): Likewise. |
| * graphite-scop-detection.c (assign_parameter_index_in_region): |
| Likewise. |
| * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Likewise. |
| * ira-color.c (setup_profitable_hard_regs): Likewise. |
| * ira.c (rtx_moveable_p): Likewise. |
| * lra-eliminations.c (eliminate_regs_in_insn): Likewise. |
| * read-rtl.c (read_subst_mapping): Likewise. |
| * regrename.c (scan_rtx): Likewise. |
| * reorg.c (fill_slots_from_thread): Likewise. |
| * tree-inline.c (tree_function_versioning): Likewise. |
| * tree-ssa-reassoc.c (optimize_ops_list): Likewise. |
| * tree-ssa-sink.c (statement_sink_location): Likewise. |
| * tree-ssa-threadedge.c (thread_across_edge): Likewise. |
| * tree-vect-loop.c (vect_get_loop_niters): Likewise. |
| (vect_create_epilog_for_reduction): Likewise. |
| * tree.c (build_nonstandard_integer_type): Likewise. |
| |
| 2019-06-27 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS. |
| |
| 2019-06-27 Jun Ma <JunMa@linux.alibaba.com> |
| |
| PR tree-optimization/89772 |
| * gimple-fold.c (gimple_fold_builtin_memchr): consider trailing nuls in |
| out-of-bound accesses checking. |
| |
| 2019-06-27 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/91014 |
| * tree-ssa-dse.c (initialize_ao_ref_for_dse): Bail out |
| when LHS is NULL_TREE. |
| |
| 2019-06-27 Martin Liska <mliska@suse.cz> |
| |
| * symbol-summary.h (traverse): Pass |
| argument a to the call of callback. |
| (gt_ggc_mx): Mark arguments as unused. |
| (gt_pch_nx): Likewise. |
| |
| 2019-06-27 Kewen Lin <linkw@gcc.gnu.org> |
| |
| PR target/62147 |
| * loop-iv.c (find_simple_exit): Call finite_loop_p to update |
| finiteness. |
| |
| 2019-06-26 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/90883 |
| * tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature. |
| (delete_dead_or_redundant_assignment): Likewise. |
| |
| PR tree-optimization/90883 |
| * tree-ssa-alias.c (stmt_kills_ref_p): Handle BUILT_IN_CALLOC. |
| * tree-ssa-dse.c: Update various comments to distinguish between |
| dead and redundant stores. |
| (initialize_ao_ref_for_dse): Handle BUILT_IN_CALLOC. |
| (dse_optimize_redundant_stores): New function. |
| (delete_dead_or_redundant_call): Renamed from delete_dead_call. |
| Distinguish between dead and redundant calls in dump output. All |
| callers updated. |
| (delete_dead_or_redundant_assignment): Similarly for assignments. |
| (dse_optimize_stmt): Handle _CHK variants. For statements which |
| store 0 into multiple memory locations, try to prove a subsequent |
| store is redundant. |
| |
| 2019-06-26 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89021 |
| * config/i386/i386.c (ix86_autovectorize_vector_sizes): |
| Autovectorize 8-byte vectors for TARGET_MMX_WITH_SSE. |
| |
| 2019-06-26 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/rs6000-internal.h (branch_island): New typedef. |
| (branch_islands): New extern. |
| * config/rs6000/rs6000-logue.c (macho_branch_islands): Moved from |
| * config/rs6000/rs6000.c: .. here. |
| |
| 2019-06-26 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config.gcc (powerpc*-*-linux*): Move target_gtfiles from here.. |
| (powerpc*-*-*) ... to here. |
| |
| 2019-06-26 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of |
| memcpy, memmove and memset builtins. |
| (maybe_trim_memstar_call): Likewise. |
| |
| 2019-06-26 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL. |
| |
| 2019-06-26 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config.gcc (powerpc-ibm-aix*): Define target_gtfiles. |
| |
| 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000-internal.h (rs6000_keep_leaf_when_profiled): New |
| declaration. |
| * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Remove |
| "static". |
| * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Delete |
| declaration. |
| |
| 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c: Fix previous commit, it missed some changes. |
| |
| 2019-06-26 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/90982 |
| * tree-inline.c (remap_ssa_name): Copy SSA range info. |
| |
| 2019-06-26 Richard Biener <rguenther@suse.de> |
| |
| * lto-streamer.h (lto_bitmap_alloc): Remove. |
| (lto_bitmap_free): Likewise. |
| * lto-streamer.c (lto_bitmap_alloc): Remove. |
| (lto_bitmap_free): Likewise. |
| (lto_obstack): Likewise. |
| (lto_obstack_initialized): Likewise. |
| * lto-streamer-out.c (lto_output): Use own obstack for local |
| bitmap, free it consistently. |
| |
| 2019-06-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/90991 |
| * config/i386/sse.md |
| (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Use vmovupd, |
| vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned |
| insns if operands[2] is misaligned_operand. |
| |
| 2019-06-26 Li Jia He <helijia@linux.ibm.com> |
| |
| * config/rs6000/rs6000.h (TARGET_MADDLD): Remove the restriction of |
| TARGET_POWERPC64. |
| * config/rs6000/rs6000.md (maddld): Change maddld match_operand from DI |
| to GPR. |
| |
| 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * doc/invoke.texi (Warning Options): Fix some @opindex syntax. |
| |
| 2019-06-26 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/90973 |
| * tree-vect-loop.c (vect_get_known_peeling_cost): Use |
| epilogue_cost_vec instead of prologue_cost_vec for |
| a epilogue cost. |
| |
| 2019-06-26 Martin Liska <mliska@suse.cz> |
| |
| * bb-reorder.c (connect_better_edge_p): Add missing else |
| statement in the middle of if-else statements. |
| |
| 2019-06-25 Hongtao Liu <hongtao.liu@intel.com> |
| H.J. Lu <hongjiu.lu@intel.com> |
| Olga Makhotina <olga.makhotina@intel.com> |
| |
| * common/config/i386/i386-common.c |
| (OPTION_MASK_ISA_AVX512VP2INTERSECT_SET, |
| OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET): New macros. |
| (OPTION_MASK_ISA2_AVX512F_UNSET): Add |
| OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET. |
| (ix86_handle_option): Handle -mavx512vp2intersect. |
| * config/i386/avx512vp2intersectintrin.h: New. |
| * config/i386/avx512vp2intersectvlintrin.h: New. |
| * config/i386/cpuid.h (bit_AVX512VP2INTERSECT): New. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect |
| AVX512VP2INTERSECT. |
| * config/i386/i386-builtin-types.def: Add new types. |
| * config/i386/i386-builtin.def: Add new builtins. |
| * config/i386/i386-builtins.c: (enum processor_features): Add |
| F_AVX512VP2INTERSECT. |
| (static const _isa_names_table isa_names_table): Ditto. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Define |
| __AVX512VP2INTERSECT__. |
| * config/i386/i386-expand.c (ix86_expand_builtin): Expand |
| IX86_BUILTIN_2INTERSECTD512, IX86_BUILTIN_2INTERSECTQ512, |
| IX86_BUILTIN_2INTERSECTD256, IX86_BUILTIN_2INTERSECTQ256, |
| IX86_BUILTIN_2INTERSECTD128, IX86_BUILTIN_2INTERSECTQ128. |
| * config/i386/i386-modes.def (P2QI, P2HI): New modes. |
| * config/i386/i386-options.c (ix86_target_string): Add |
| -mavx512vp2intersect. |
| (ix86_option_override_internal): Handle AVX512VP2INTERSECT. |
| * config/i386/i386.c (ix86_hard_regno_nregs): Allocate two regs for |
| P2HImode and P2QImode. |
| (ix86_hard_regno_mode_ok): Register pair only starts at even hardreg |
| number for P2QImode and P2HImode. |
| (ix86_regmode_natural_size): New function. |
| * config/i386/i386.h (TARGET_AVX512VP2INTERSECT, |
| TARGET_AVX512VP2INTERSECT_P, PTA_AVX512VP2INTERSECT |
| REGMODE_NATURAL_SIZE, MASK_PAIR_REGNO_P): New. |
| * config/i386/i386-protos.h (ix86_regmode_natural_size): Declare |
| * config/i386/i386.opt: Add -mavx512vp2intersect. |
| * config/i386/immintrin.h: Include avx512vp2intersectintrin.h and |
| avx512vp2intersectvlintrin.h. |
| * config/i386/sse.md (define_c_enum "unspec"): Add UNSPEC_VP2INTERSECT. |
| (define_mode_iterator VI48_AVX512VP2VL): New. |
| (avx512vp2intersect_2intersect<mode>, |
| avx512vp2intersect_2intersectv16si): New define_insn patterns. |
| * config.gcc: Add avx512vp2intersectvlintrin.h and |
| avx512vp2intersectintrin.h to extra_headers. |
| * doc/invoke.texi: Document -mavx512vp2intersect. |
| |
| 2019-06-25 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/darwin.h (ENDFILE_SPEC): New. |
| |
| 2019-06-25 Bill Seurer <seurer@linux.vnet.ibm.com> |
| |
| * config/rs6000/rs6000.c (stack_info, rs6000_pic_labelno, |
| savres_routine_syms, savres_routine_name, morestack_ref, |
| rs6000_init_machine_status, save_reg_p, first_reg_to_save, |
| first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask, |
| compute_save_world_info, is_altivec_return_reg, fixed_reg_p, |
| rs6000_savres_strategy, rs6000_stack_info, debug_stack_info, |
| rs6000_return_addr, rs6000_decl_ok_for_sibcall, |
| rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed, |
| rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC, |
| create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref, |
| rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1, |
| get_stack_clash_protection_probe_interval, |
| get_stack_clash_protection_guard_size, |
| rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack, |
| rs6000_emit_probe_stack_range, output_probe_stack_range_1, |
| interesting_frame_related_regno, output_probe_stack_range_stack_clash, |
| output_probe_stack_range, rs6000_frame_related, generate_set_vrsave, |
| gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save, |
| gen_frame_mem_offset, rs6000_savres_routine_name, |
| rs6000_savres_routine_sym, rs6000_emit_stack_reset, |
| ptr_regno_for_savres, rs6000_emit_savres_rtx, |
| rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p, |
| rs6000_global_entry_point_prologue_needed_p, |
| rs6000_get_separate_components, rs6000_components_for_bb, |
| rs6000_disqualify_components, rs6000_emit_prologue_components, |
| rs6000_emit_epilogue_components, rs6000_set_handled_components, |
| emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue, |
| rs6000_output_savres_externs, rs6000_output_function_prologue, |
| rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr, |
| load_lr_save, restore_saved_lr, add_crlr_cfa_restore, |
| offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue, |
| rs6000_output_function_epilogue, gen_add3_const, |
| rs6000_expand_split_stack_prologue, rs6000_live_on_entry, |
| rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved |
| to rs6000-logue.c. |
| (machine_function): Moved to rs6000.h. |
| (rs6000_stack_t, ALTIVEC_REG_BIT, quad_address_offset_p) Moved to |
| rs6000-internal.h. |
| * config/rs6000/rs6000-logue.c(stack_info, rs6000_pic_labelno, |
| savres_routine_syms, savres_routine_name, morestack_ref, |
| rs6000_init_machine_status, save_reg_p, first_reg_to_save, |
| first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask, |
| compute_save_world_info, is_altivec_return_reg, fixed_reg_p, |
| rs6000_savres_strategy, rs6000_stack_info, debug_stack_info, |
| rs6000_return_addr, rs6000_decl_ok_for_sibcall, |
| rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed, |
| rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC, |
| create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref, |
| rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1, |
| get_stack_clash_protection_probe_interval, |
| get_stack_clash_protection_guard_size, |
| rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack, |
| rs6000_emit_probe_stack_range, output_probe_stack_range_1, |
| interesting_frame_related_regno, output_probe_stack_range_stack_clash, |
| output_probe_stack_range, rs6000_frame_related, generate_set_vrsave, |
| gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save, |
| gen_frame_mem_offset, rs6000_savres_routine_name, |
| rs6000_savres_routine_sym, rs6000_emit_stack_reset, |
| ptr_regno_for_savres, rs6000_emit_savres_rtx, |
| rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p, |
| rs6000_global_entry_point_prologue_needed_p, |
| rs6000_get_separate_components, rs6000_components_for_bb, |
| rs6000_disqualify_components, rs6000_emit_prologue_components, |
| rs6000_emit_epilogue_components, rs6000_set_handled_components, |
| emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue, |
| rs6000_output_savres_externs, rs6000_output_function_prologue, |
| rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr, |
| load_lr_save, restore_saved_lr, add_crlr_cfa_restore, |
| offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue, |
| rs6000_output_function_epilogue, gen_add3_const, |
| rs6000_expand_split_stack_prologue, rs6000_live_on_entry, |
| rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved |
| to here from rs6000.c. |
| * config/rs6000/rs6000.h (machine_function): Moved to here from rs6000.c. |
| * config/rs6000/rs6000-internal.h: (rs6000_stack_t, ALTIVEC_REG_BIT, |
| quad_address_offset_p) Moved to here from rs6000.c. |
| * config/rs6000/t-rs6000: Add new source file rs6000-logue.c. |
| * config/config.gcc: Add new source file rs6000-logue.c to garbage |
| collector. |
| |
| 2019-06-25 Martin Liska <mliska@suse.cz> |
| |
| * hash-table.c (hashtab_chk_error): Move here from ... |
| * hash-table.h (hashtab_chk_error): ... here. |
| |
| 2019-06-25 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/90978 |
| * df-scan.c (df_update_entry_block_defs): Remove dead else |
| branch. |
| (df_update_exit_block_uses): Likewise. |
| |
| 2019-06-25 Kwok Cheung Yeung <kcy@codesourcery.com> |
| Andrew Stubbs <ams@codesourcery.com> |
| |
| * config.gcc (thread_file): Set to gcn for AMD GCN. |
| * config/gcn/gcn.c (gcn_emutls_var_init): New function. |
| (TARGET_EMUTLS_VAR_INIT): New hook. |
| |
| 2019-06-25 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/90939 |
| * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert. |
| |
| 2019-06-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90930 |
| * tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression |
| into parallel form in the last pass instance. |
| |
| 2019-06-25 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_symbol_binds_local_p): New function. |
| (arc_legitimize_pic_address): Simplify and cleanup the function. |
| (SYMBOLIC_CONST): Remove. |
| (prepare_pic_move): Likewise. |
| (prepare_move_operands): Handle complex mov cases here. |
| (arc_legitimize_address_0): Remove call to |
| arc_legitimize_pic_address. |
| (arc_legitimize_address): Remove call to |
| arc_legitimize_tls_address. |
| * config/arc/arc.md (movqi_insn): Allow Cm3 match. |
| (movhi_insn): Likewise. |
| |
| 2019-06-25 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config/msp430/msp430.h: Use __int20__ for SIZE_TYPE and |
| PTRDIFF_TYPE. |
| * gimple-ssa-sprintf.c (build_intmax_type_nodes): Accept "__intN__" |
| format of "__intN" types for UINTMAX_TYPE. |
| * stor-layout.c (initialize_sizetypes): Accept "__intN__" |
| format of "__intN" types for SIZETYPE. |
| * tree.c (build_common_tree_nodes): Accept "__intN__" |
| format of "__intN" types for SIZE_TYPE and PTRDIFF_TYPE. |
| * doc/invoke.texi: Document that __intN__ disables pedantic |
| warnings. |
| |
| 2019-06-25 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Check that |
| base2_alias_set is non-zero before doing TBAA based disambiguation. |
| |
| 2019-06-25 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/90973 |
| * tree-vect-loop.c (vect_get_known_peeling_cost): Sum retval |
| of prologue and epilogue. |
| |
| 2019-06-24 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-utils.h (type_with_linkage_p): Verify that type is |
| CXX_ODR_P. |
| (odr_type_p): Remove extra return. |
| * lto-streamer-out.c (hash_tree): Hash TYPE_CXX_ODR_P; |
| hash STRING_FLAG only for arrays and integers. |
| * tree-stremaer-in.c (unpack_ts_type_common_value_fields): |
| Update analogously. |
| * tree-streamer-out.c (pack_ts_type_common_value_fields): |
| Likewise. |
| * print-tree.c (print_node): Print cxx-odr-p |
| and string-flag. |
| * tree.c (need_assembler_name_p): Also check that type |
| is CXX_ODR_TYPE_P |
| (verify_type_variant): Update verification of SRING_FLAG; |
| also check CXX_ODR_P. |
| * tree.h (ARRAY_OR_INTEGER_TYPE_CHECK): New macro. |
| (TYPE_STRING_FLAG): Use it. |
| (TYPE_CXX_ODR_P): New macro. |
| * dwarf2out.c (gen_array_type_die): First check that type |
| is an array and then test string flag. |
| |
| 2019-06-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90972 |
| * tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P |
| in common code, dealing with STRING_CST properly. |
| |
| 2019-06-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90930 |
| PR tree-optimization/90316 |
| * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing |
| decrement of limit. |
| |
| 2019-06-24 Martin Sebor <msebor@redhat.com> |
| |
| * tree-pretty-print.h: Remove unnecessary punctuation characters |
| from a diagnostic. |
| * tree-ssa.c (release_defs_bitset): Correct preprocessor conditional. |
| |
| 2019-06-24 Jonathan Wakely <jwakely@redhat.com> |
| |
| * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG) |
| (FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN) |
| (DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17. |
| |
| 2019-06-23 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/darwin.h: Handle GCC target pragma. |
| |
| 2019-06-23 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/darwin.h: (__PPC__, __PPC64__): New. |
| |
| 2019-06-22 Jeff Law <law@redhat.com> |
| |
| * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. |
| |
| 2019-06-22 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not |
| give up on bitfields; continue searching for different refs |
| appearing later. |
| |
| 2019-06-21 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle |
| even zero DR_OFFSET, but DR_BASE_ADDRESS of POINTER_PLUS_EXPR |
| containing the offset as possible simd lane access. Look through |
| widening conversion. Move the |
| TREE_CODE (DR_INIT (newdr)) == INTEGER_CST test earlier and reindent. |
| |
| 2019-06-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90930 |
| * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited |
| flag on new stmts to avoid re-processing them. |
| |
| 2019-06-21 Matthew Beliveau <mbelivea@redhat.com> |
| |
| PR c++/90875 - added -Wswitch-outside-range option |
| * doc/invoke.texi (Wswitch-outside-range): Document. |
| |
| 2019-06-21 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/90949 |
| * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info. |
| * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state. |
| |
| 2019-06-21 Richard Biener <rguenther@suse.de> |
| |
| PR debug/90914 |
| * dwarf2out.c (prune_unused_types_walk): Always consider |
| function-local extern declarations as used. |
| |
| 2019-06-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90913 |
| * tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use |
| the scalar variant of if-conversion versioning. |
| |
| 2019-06-21 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument, |
| create another "omp scan inscan exclusive" array if |
| !ctx->scan_inclusive. |
| (lower_rec_input_clauses): Handle exclusive scan inscan reductions. |
| (lower_omp_scan): Likewise. |
| * tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of |
| 2-bit bitfield for simd_lane_access_p member. |
| * tree-vect-data-refs.c (vect_analyze_data_refs): Also handle |
| aux == (void *)-4 as simd lane access. |
| * tree-vect-stmts.c (check_scan_store): Handle exclusive scan. Update |
| comment with permutations to show the canonical permutation order. |
| (vectorizable_scan_store): Handle exclusive scan. |
| (vectorizable_store): Call vectorizable_scan_store even for |
| STMT_VINFO_SIMD_LANE_ACCESS_P > 3. |
| |
| * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle |
| "omp simd array" arrays with one byte elements. |
| |
| 2019-06-20 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.md (@unaligned_store<mode>): |
| Rename from unaligned_store<mode>. |
| (@reload_in<mode>_aligned): Rename from reload_in<mode>_aligned. |
| * config/alpha/sync.md (@load_locked_<mode>): Rename |
| from load_locked_<mode>. |
| (@store_conditional_<mode>): Rename from store_conditional_<mode>. |
| (@atomic_compare_and_swap<mode>_1): Rename |
| from atomic_compare_and_swap<mode>_1. |
| (@atomic_exchange<mode>_1): Rename from atomic_exchange<mode>_1. |
| * config/alpha/alpha.c (alpha_expand_mov_nobwx): |
| Use gen_reload_in_aligned and gen_unaligned_store. |
| (emit_load_locked): Remove. |
| (emit_store_conditional): Ditto. |
| (alpha_split_atomic_op): Use gen_load_locked and gen_store_conditional. |
| (alpha_split_compare_and_swap): Ditto. |
| (alpha_expand_compare_and_swap_12): Use gen_atomic_compare_and_swap_1. |
| (alpha_split_compare_and_swap_12): Use gen_load_locked |
| and gen_store_conditional. |
| (alpha_split_atomic_exchange): Ditto. |
| (alpha_expand_atomic_exchange_12): Use gen_atomic_exchange_1. |
| (alpha_split_atomic_exchange_12): Use gen_load_locked |
| and gen_store_conditional. |
| |
| 2019-06-20 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/aarch64/aarch64-errata.h: New file. |
| * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Delete. |
| (CA53_ERR_843419_SPEC): Delete. |
| (LINK_SPEC): Use AARCH64_ERRATA_LINK_SPEC instead of above. |
| * config/aarch64/aarch64-linux.h: Likewise. |
| * config/aarch64/aarch64-netbsd.h: Likewise. |
| * config/aarch64/aarch64-freebsd.h: Likewise. |
| |
| 2019-06-20 Marek Polacek <polacek@redhat.com> |
| |
| * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name. |
| |
| 2019-06-20 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/rs6000.md (isa attribute): Add support for |
| for a future processor. |
| |
| 2019-06-20 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/54855 |
| * config/i386/i386-expand.c (ix86_expand_vector_set): Generate |
| standard scalar operation pattern for V2DF. |
| * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New. |
| (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise. |
| (*ieee_<ieee_maxmin><mode>3): Likewise. |
| (vec_setv2df_0): Likewise. |
| |
| 2019-06-20 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl |
| parameter; it has no use in gimple memory model. |
| (indirect_ref_may_alias_decl_p): Update. |
| |
| 2019-06-20 Martin Liska <mliska@suse.cz> |
| |
| * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): Decrease |
| to 10. |
| |
| 2019-06-20 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vect-stmts.c (enum scan_store_kind): New type. |
| (scan_store_can_perm_p): Change last argument from int * to |
| vec<enum scan_store_kind> *, record precisely which permutations |
| need whole vector left shift or that plus VEC_COND_EXPR. |
| (vectorizable_scan_store): Adjust caller, use whole vector left shift |
| and additional VEC_COND_EXPR only for those iterations that need it. |
| |
| 2019-06-20 Alexandre Oliva <oliva@adacore.com> |
| |
| * config.gcc: Fix ARM --with-fpu checking and error message. |
| |
| 2019-06-19 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/60364 - noreturn after first decl not diagnosed. |
| * attribs.c (get_attribute_namespace): No longer static. |
| (decl_attributes): Avoid shadowing. Preserve the C++11 form for C++11 |
| attributes. |
| (attr_noreturn_exclusions): Make it extern. |
| * attribs.h (get_attribute_namespace): Declare. |
| * tree-inline.c (function_attribute_inlinable_p): Use |
| get_attribute_name. |
| |
| 2019-06-19 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/90626 |
| * tree-ssa-strlen.c (strxcmp_unequal): Fix typos. |
| |
| PR tree-optimization/90626 |
| * tree-ssa-strlen.c (strxcmp_unequal): New function. |
| (handle_builtin_string_cmp): Call it. |
| |
| 2019-06-19 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC |
| and DARWIN_NOPIE_SPEC. |
| (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC. |
| (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h. |
| (DARWIN_NOPIE_SPEC): Collate from darwin10.h. |
| (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h |
| (DARWIN_EXPORT_DYNAMIC): Delete. |
| * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind |
| and pie options processing to darwin.h. |
| * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h |
| |
| 2019-06-19 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors |
| in computing the number of options to be moved. |
| |
| 2019-06-19 Maya Rashish <coypu@sdf.org> |
| |
| * config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition. |
| (CLEAR_INSN_CACHE) Use it. |
| |
| 2019-06-19 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (cmpstrnsi): Remove dead code. |
| |
| 2019-06-19 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR middle-end/84521 |
| * builtins.c (expand_builtin_setjmp_setup): Save |
| hard_frame_pointer_rtx. |
| (expand_builtin_setjmp_receiver): Do not emit sfp = fp move since we |
| restore fp. |
| * function.c (expand_function_start): Save hard_frame_pointer_rtx for |
| non-local goto. |
| * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp |
| elimination code. |
| (remove_reg_equal_offset_note): Remove unused function. |
| * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination |
| code. |
| * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. |
| (arc_builtin_setjmp_frame_value): Remove function. |
| * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. |
| (avr_builtin_setjmp_frame_value): Remove function. |
| * config/i386/i386.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. |
| (ix86_builtin_setjmp_frame_value): Remove function. |
| * config/pa/pa.md (nonlocal_goto): Remove FP adjustment. |
| * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. |
| (sparc_builtin_setjmp_frame_value): Remove function. |
| * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. |
| (vax_builtin_setjmp_frame_value): Remove function. |
| * config/xtensa/xtensa.c (xtensa_frame_pointer_required): Force frame |
| pointer if has_nonlocal_label. |
| |
| 2019-06-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * doc/md.texi: Document vec_shl_<mode> pattern. |
| * optabs.def (vec_shl_optab): New optab. |
| * optabs.c (shift_amt_for_vec_perm_mask): Add shift_optab |
| argument, if == vec_shl_optab, check for left whole vector shift |
| pattern rather than right shift. |
| (expand_vec_perm_const): Add vec_shl_optab support. |
| * optabs-query.c (can_vec_perm_var_p): Mention also vec_shl optab |
| in the comment. |
| * tree-vect-generic.c (lower_vec_perm): Support permutations which |
| can be handled by vec_shl_optab. |
| * tree-vect-stmts.c (scan_store_can_perm_p): New function. |
| (check_scan_store): Use it. |
| (vectorizable_scan_store): If target can't do normal permutations, |
| try to use whole vector left shifts and if needed a VEC_COND_EXPR |
| after it. |
| * config/i386/sse.md (vec_shl_<mode>): New expander. |
| |
| * omp-low.c (lower_rec_input_clauses): Handle references properly |
| in inscan clauses. |
| (lower_omp_scan): Likewise. |
| |
| 2019-06-19 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * tree-ssa-address.c (preferred_mem_scale_factor): Handle when |
| mem_mode is BLKmode. |
| |
| 2019-06-18 Max Filippov <jcmvbkbc@gmail.com> |
| |
| PR target/90922 |
| * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack |
| pointer adjustment for the case of no callee-saved registers and |
| stack frame bigger than 128 bytes. |
| |
| 2019-06-18 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR middle-end/90862 |
| * omp-low.c (check_omp_nesting_restrictions): Handle |
| GF_OMP_TARGET_KIND_OACC_DECLARE. |
| |
| 2019-06-18 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (@cmp<mode>_1): Rename from cmp<mode>_1. |
| (@add<mode>3_carry): Rename from add<mode>3_carry. |
| (@sub<mode>3_carry_ccc): Rename from sub<mode>3_carry_ccc. |
| (@sub<mode>3_carry_ccgz): Rename form sub<mode>3_carry_ccgz. |
| (@copysign<mode>3_const): Rename from copysign<mode>3_const. |
| (@copysign<mode>3_var): Rename from copysign<mode>3_var. |
| (@xorsign<mode>3_1): Rename from xorsign<mode>3_1. |
| (@x86_shift<mode>_adj_1): Rename from x86_shift<mode>_adj_1. |
| (@x86_shift<mode>_adj_2): Rename from x86_shift<mode>_adj_2. |
| (@x86_shift<mode>_adj_3): Rename from x86_shift<mode>_adj_3. |
| (cmpstrnsi): Use gen_cmp_1. |
| (lwp_slwpcb): Use gen_lwp_slwpcb_1. |
| (@lwp_slwpcb<mode>_1): Rename from lwp_slwpcb<mode>_1. |
| (@umonitor_<mode>): Rename from umonitor_<mode>. |
| * config/i386/i386-expand.c (ix86_expand_copysign): |
| Use gen_copysign3_const and gen_copysign3_var. |
| (ix86_expand_xorsign): Use gen_xorsign3_1. |
| (ix86_expand_branch): Use gen_sub3_carry_ccc, |
| gen_sub3_carry_ccgz and gen_cmp1. |
| (ix86_expand_int_addcc): Use gen_sub3_carry and gen_add3_carry. |
| (ix86_split_ashl): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_2. |
| (ix86_split_ashr): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_3. |
| (ix86_split_lshr): Ditto. |
| (ix86_expand_builtin) <case IX86_BUILTIN_UMONITOR>: Use gen_umonitor. |
| |
| 2019-06-18 Jason Merrill <jason@redhat.com> |
| |
| * tree.c (build_constructor): Add MEM_STAT_DECL. |
| |
| 2019-06-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-modes.def (CC_NZC): New CC_MODE. |
| * config/aarch64/aarch64-sve.md (*<optab><mode>3_cc) |
| (ptest_ptrue<mode>, while_ult<GPI:mode><PRED_ALL:mode>) |
| (*while_ult<GPI:mode><PRED_ALL:mode>_cc, *cmp<cmp_op><mode>) |
| (*cmp<cmp_op><mode>_ptest, *cmp<cmp_op><mode>_cc) |
| (*pred_cmp<cmp_op><mode>_combine, *pred_cmp<cmp_op><mode>) |
| (vec_cmp<mode><vpred>, vec_cmpu<mode><vpred>, cbranch<mode>4): |
| Use CC_NZC instead of CC. |
| * config/aarch64/aarch64.md (condjump): Print a '.' in SVE conditions. |
| * config/aarch64/aarch64.c (aarch64_sve_condition_codes): New variable. |
| (aarch64_print_operand): Handle E_CC_NZCmode. |
| (aarch64_emit_sve_ptrue_op_cc): Use gen_set_clobber_cc_nzc instead |
| of gen_set_clobber_cc. |
| |
| 2019-06-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md: Tabify file. |
| |
| 2019-06-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_pfalse_reg): Declare. |
| * config/aarch64/aarch64.c (aarch64_pfalse_reg): New function. |
| * config/aarch64/aarch64-sve.md: Use it. |
| |
| 2019-06-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare. |
| * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions. |
| (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move) |
| (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local) |
| (aarch64_expand_sve_vec_cmp_int): Use it. |
| (aarch64_expand_sve_vec_cmp_float): Likewise. |
| * config/aarch64/aarch64-sve.md: Likewise throughout. |
| |
| 2019-06-18 Richard Sandiford <richard.sandiford@arm.com> |
| Kugan Vivekanandarajah <kuganv@linaro.org> |
| |
| * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete. |
| (*cond_<optab><mode>_z): Fold into... |
| (*cond_<optab><mode>_any): ...here. Also handle cases in which |
| operand 4 can be tied to operand 0 (either inherently or via RA). |
| |
| 2019-06-18 Richard Biener <rguenther@suse.de> |
| |
| PR debug/90900 |
| * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL |
| as if optimized away. |
| |
| 2019-06-18 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove. |
| * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove. |
| * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"): |
| Rename to ... |
| (define_insn "@set_softstack_<mode>"): ... this. |
| (define_insn "omp_simt_enter_<mode>"): Rename to ... |
| (define_insn "@omp_simt_enter_<mode>"): ... this. |
| (define_insn "omp_simt_exit_<mode>"): Rename to ... |
| (define_insn "@omp_simt_exit_<mode>"): ... this. |
| |
| 2019-06-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove |
| vf parameter. Restore the previous iv step of nscalars_step, |
| but give it iv_type rather than compare_type. Tweak code order |
| to match the comments. |
| (vect_set_loop_condition_masked): Update accordingly. |
| * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int" |
| for iv_precision. Tweak comment formatting. |
| |
| 2019-06-18 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c: Strip trailing whitespace. |
| |
| 2019-06-18 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c (darwin_emit_unwind_label): New default to false. |
| (darwin_override_options): Set darwin_emit_unwind_label as needed. |
| |
| 2019-06-18 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/90889 |
| * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the |
| caller does not have flag_ipa_cp set. |
| |
| 2019-06-18 Alejandro Martinez <alejandro.martinezvicente@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed |
| from "*fold_left_plus_<mode>", updated operands order. |
| * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab. |
| * internal-fn.c (mask_fold_left_direct): New define. |
| (expand_mask_fold_left_optab_fn): Likewise. |
| (direct_mask_fold_left_optab_supported_p): Likewise. |
| * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function. |
| * optabs.def (mask_fold_left_plus_optab): New optab. |
| * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a |
| masked internal_fn for a reduction ifn. |
| (vectorize_fold_left_reduction): Add support for masking reductions. |
| |
| 2019-06-18 Kewen Lin <linkw@gcc.gnu.org> |
| |
| PR middle-end/80791 |
| * target.def (predict_doloop_p): New hook. |
| * targhooks.h (default_predict_doloop_p): New declaration. |
| * targhooks.c (default_predict_doloop_p): New function. |
| * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook. |
| * doc/tm.texi: Regenerate. |
| * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function. |
| (TARGET_PREDICT_DOLOOP_P): New macro. |
| * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function. |
| |
| 2019-06-17 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-low.c (struct omp_context): Add scan_inclusive field. |
| (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive |
| if inclusive scan. |
| (struct omplow_simd_context): Add lastlane member. |
| (lower_rec_simd_input_clauses): Add rvar argument, handle inscan |
| reductions. Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than |
| 1 or 2 argument. |
| (lower_rec_input_clauses): Handle inscan reductions in simd contexts. |
| (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF. |
| (lower_omp_scan): New function. |
| (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan. |
| * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE |
| check 3rd argument if present rather than 2nd. |
| * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member. |
| (struct _stmt_vec_info): Change simd_lane_access_p from bool into |
| 2-bit bitfield. |
| * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize |
| scan_map. For IFN_GOMP_SIMD_LANE check 3rd argument if present rather |
| than 2nd. |
| (_loop_vec_info::~_loop_vec_info): Delete scan_map. |
| * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two |
| different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same |
| init. |
| (vect_find_stmt_data_reference): Encode in ->aux the 2nd |
| IFN_GOMP_SIMD_LANE argument. |
| (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the |
| encoded ->aux value. |
| * tree-vect-stmts.c: Include attribs.h. |
| (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE. |
| (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New |
| functions. |
| (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0. |
| (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1. |
| |
| 2019-06-17 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/62055 |
| * config/i386/i386.md (*nabstf2_1): New insn pattern. |
| (*nabs<mode>2_1): Ditto. |
| (nabs sse-reg splitter): New splitter. |
| * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern. |
| |
| 2019-06-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR bootstrap/90873. |
| * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix |
| TMR index check. |
| |
| 2019-06-17 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare. |
| * config/nvptx/nvptx.c (gen_set_softstack_insn): New function. |
| * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to |
| ... |
| (define_insn "set_softstack_<mode>"): ... this. Use P iterator on |
| match_operand 0. |
| (define_insn "omp_simt_enter_insn"): Rename to ... |
| (define_insn "omp_simt_enter_<mode>"): ... this. Use P iterator on |
| match_operand 0, 1 and 2, as well as the unspec_volatile result. |
| (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and |
| gen_omp_simt_enter_si. |
| (define_expand "omp_simt_exit"): New. |
| (define_insn "omp_simt_exit"): Rename to ... |
| (define_insn "omp_simt_exit_<mode>"): ... this. Use P iterator on |
| match_operand 0. |
| |
| 2019-06-17 Matthew Green <mrg@eterna.com.au> |
| Maya Rashish <coypu@sdf.org> |
| |
| * config.gcc (aarch64*-*-netbsd*): New target. |
| * config/aarch64/aarch64-netbsd.h: New file. |
| * config/aarch64/t-aarch64-netbsd: Likewise. |
| |
| 2019-06-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (aliasing_component_refs_p): Consider only |
| the access path from base to first VIEW_CONVERT_EXPR or |
| BIT_FIELD_REF. |
| |
| 2019-06-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate |
| access path on BIT_FIELD_REFs. |
| |
| 2019-06-17 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/90874 |
| * ipa-utils.h (odr_type_p): Remove dead code. |
| |
| 2019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for |
| alternative Solaris 11.4 format. |
| * configure: Regenerate. |
| |
| 2019-06-17 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ... |
| (define_insn "call_insn_<mode>"): ... this. Use P iterator on |
| match_operand 0. |
| (define_insn "call_value_insn"): Rename to ... |
| (define_insn "call_value_insn_<mode>"): this. Use P iterator on |
| match_operand 0. |
| (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to |
| DI. |
| |
| 2019-06-16 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR middle-end/64242 |
| * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add |
| frame clobbers and schedule block. |
| (builtin_longjmp): Likewise. |
| |
| 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which |
| describe how to perform MSPABI compliant 64-bit shift. |
| * config/msp430/msp430.md (ashldi3): New define_expand. |
| (ashrdi3): New define_expand. |
| (lshrdi3): New define_expand. |
| |
| 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * doc/sourcebuild.texi: Document new effective target keyword |
| longlong64. |
| |
| 2019-06-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (indirect_ref_may_alias_decl_p, |
| indirect_refs_may_alias_p): Revert accidental commits. |
| |
| * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays |
| at the end of structures. |
| |
| 2019-06-16 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c (machopic_indirect_call_target): Use renamed |
| darwin_picsymbol_stubs to decide on output. |
| (darwin_override_options): Handle darwin_picsymbol_stubs. |
| * config/darwin.h (MIN_LD64_OMIT_STUBS): New. |
| (LD64_VERSION): Revise default. |
| * config/darwin.opt: (mpic-symbol-stubs): New option. |
| (darwin_picsymbol_stubs): New variable. |
| * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS): |
| rename to TARGET_MACHO_PICSYM_STUBS. |
| * config/i386/i386.c (output_pic_addr_const): Likewise. |
| * config/i386/i386.h Likewise. |
| * config/rs6000/darwin.h: Likewise. |
| * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed |
| darwin_picsymbol_stubs. |
| |
| 2019-06-16 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.opt (prebind, noprebind, seglinkedit, |
| noseglinkedit): Add RejectNegative. |
| |
| 2019-06-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto |
| in my previous patch. |
| |
| 2019-06-16 Tom de Vries <tdevries@suse.de> |
| |
| PR tree-optimization/89376 |
| * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL. |
| |
| 2019-06-15 Maya Rashish <coypu@sdf.org> |
| |
| * doc/invoke.texi (Spec Files): Update location of the |
| Fortran spec file. |
| |
| 2019-06-15 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/extend.texi (Common Function Attributes): Clarify |
| no_sanitize. Fix grammar. |
| |
| 2019-06-15 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (alias_stats): Add |
| nonoverlapping_component_refs_p_may_alias, |
| nonoverlapping_component_refs_p_no_alias, |
| nonoverlapping_component_refs_of_decl_p_may_alias, |
| nonoverlapping_component_refs_of_decl_p_no_alias. |
| (dump_alias_stats): Dump them. |
| (nonoverlapping_component_refs_of_decl_p): Add stats. |
| (nonoverlapping_component_refs_p): Add stats; do not stop on first |
| ARRAY_REF. |
| |
| 2019-06-15 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (and<mode>3): Generate zero-extends for |
| TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) |
| only. |
| (*anddi3_doubleword): Split before reload. Merge with |
| anddi->zext pre-reload splitter. |
| (*andndi3_doubleword): Split before reload. |
| (*<code>di3_doubleword): Ditto. |
| (*one_cmpldi2_doubleword): Ditto. |
| |
| 2019-06-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/90779 |
| * gimplify.c: Include omp-offload.h and context.h. |
| (gimplify_bind_expr): Add "omp declare target" attributes |
| to static block scope variables inside of target region or target |
| functions. |
| |
| 2019-06-15 Tom de Vries <tdevries@suse.de> |
| |
| PR tree-optimization/90009 |
| * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path): |
| Return NULL if bb contains IFN_UNIQUE. |
| |
| 2019-06-14 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator. |
| (un): New define_mode_attr. |
| (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ... |
| (isel_<un>signed_<GPR:mode>): ... this. New define_insn. |
| (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete, |
| merge into ... |
| (isel_reversed_<un>signed_<GPR:mode>): ... this. New define_insn. |
| |
| 2019-06-14 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.opt: Add RejectNegative where needed, reorder |
| and add minimal functional descriptions. |
| |
| 2019-06-14 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR rtl-optimization/90765 |
| * calls.c (update_stack_alignment_for_call): New function. |
| (expand_call): Call update_stack_alignment_for_call when |
| outgoing parameter is passed in the stack. |
| (emit_library_call_value_1): Likewise. |
| * function.c (locate_and_pad_parm): Don't update |
| stack_alignment_needed and preferred_stack_boundary. |
| |
| 2019-06-14 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/90877 |
| * config/i386/i386-features.c |
| (dimode_scalar_chain::compute_convert_gain): Replace |
| mmxsse_to_integer with sse_to_integer. |
| * config/i386/i386.c (ix86_register_move_cost): Verify that |
| moves between MMX and non-MMX units require secondary memory. |
| Correct costs of moves between SSE and integer units. |
| * config/i386/i386.h (processor_costs): Rename cost of moving |
| SSE register to integer to sse_to_integer. Rename cost of |
| |
| 2019-06-14 Matt Thomas <matt@3am-software.com> |
| Matthew Green <mrg@eterna.com.au> |
| Nick Hudson <skrll@netbsd.org> |
| Maya Rashish <coypu@sdf.org> |
| Richard Earnshaw <rearnsha@arm.com> |
| |
| * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration. |
| * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD. |
| * config/arm/netbsd-eabi.h: New file. |
| * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before |
| redefining. |
| (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler. |
| * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define. |
| (NETBSD_SUBTARGET_EXTRA_SPECS): New define. |
| (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS. |
| |
| 2019-06-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-loop-distribution.c (classify_partition): Return |
| whether a reduction appeared in all partitions and do not |
| stop builtin detection because of this. |
| (distribute_loop): Sort a non-builtin partition last if |
| there's a reduction in all partitions and make sure the |
| partition prevailing as last is not a builtin. |
| |
| 2019-06-14 Feng Xue <fxue@os.amperecomputing.com> |
| |
| PR ipa/90401 |
| * ipa-prop.c (add_to_agg_contents_list): New function. |
| (clobber_by_agg_contents_list_p): Likewise. |
| (extract_mem_content): Likewise. |
| (get_place_in_agg_contents_list): Delete. |
| (determine_known_aggregate_parts): Renamed from |
| determine_locally_known_aggregate_parts. New parameter |
| aa_walk_budget_p. |
| |
| 2019-06-13 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/90662 |
| * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands |
| to the same type. |
| |
| 2019-06-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR bootstrap/90873 |
| * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that |
| dbase is not TARGET_MEM_REF. |
| |
| 2019-06-13 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x. |
| Update all uses. |
| (and<mode>3): Use gen_extend_insn instead of indirect functions. |
| Do not generate DImode extends for 32bit targets. |
| (and->zext post-reload splitter): Use gen_extend_insn |
| instead of indirect functions. |
| (anddi->zext pre-reload splitter): New. |
| (*zext<mode>_doubleword_and): Remove. |
| (*zext<mode>_doubleword): Ditto. |
| (*zextsi_doubleword): Dittto. |
| |
| 2019-06-13 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-expand.c (ix86_expand_int_sse_cmp): |
| Use gen_sub3_insn instead of indirect function. |
| (ix86_expand_ashl_const): Use gen_add2_insn instead of |
| indirect function. |
| (ix86_adjust_counter): Ditto. |
| |
| 2019-06-13 Jiufu Guo <guojiufu@linux.ibm.com> |
| Lijia He <helijia@linux.ibm.com> |
| |
| PR tree-optimization/77820 |
| * tree-ssa-threadedge.c |
| (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New |
| function. |
| (thread_across_edge): Add call to |
| edge_forwards_cmp_to_conditional_jump_through_empty_bb_p. |
| |
| 2019-06-13 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin-driver.c (validate_macosx_version_min): New. |
| (darwin_default_min_version): Cleanup and validate supplied version. |
| (darwin_driver_init): Likewise and push cleaned version into opts. |
| |
| 2019-06-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR tree-optimization/90869 |
| * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view |
| converts in MEM_REF referencing decl rather than view converts |
| from decl type to MEM_REF type. |
| |
| 2019-06-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90856 |
| * tree-sra.c (build_ref_for_model): Only use |
| build_reconstructed_reference when address-spaces are the same. |
| |
| 2019-06-13 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't |
| wrap ei variable name in the declaration in ()s. |
| (nvptx_single): Actually use mode_label variable. Formatting fix. |
| |
| 2019-06-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_loop_vectorized_call): Declare. |
| * tree-vectorizer.c (vect_loop_vectorized_call): Export and |
| also return the condition stmt. |
| * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost |
| loop we can version and version that, reusing the loop version |
| created by if-conversion instead of versioning again. |
| |
| 2019-06-13 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-loop-versioning.cc (prune_loop_conditions): Use |
| may_contain_p. |
| * tree-vrp (value_range_base::may_contain_p): Call into |
| value_inside_range. |
| (value_inside_range): Make private inside value_range_base class. |
| Take min/max from *this. |
| (range_includes_p): Remove. |
| * tree-vrp.h (value_range_base): Add value_inside_range. |
| (range_includes_p): Remove. |
| (range_includes_zero_p): Call may_contain_p. |
| * vr-values.c (compare_range_with_value): Same. |
| |
| 2019-06-13 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * doc/extend.texi (ARC Function Attributes): Update info. |
| |
| 2019-06-13 Feng Xue <fxue@os.amperecomputing.com> |
| |
| PR tree-optimization/89713 |
| * doc/invoke.texi (-ffinite-loops): Document new option. |
| * common.opt (-ffinite-loops): New option. |
| * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark |
| IFN_GOACC_LOOP calls as necessary. |
| * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit |
| is finite. |
| * omp-offload.c (oacc_xform_loop): Skip lowering if return value of |
| IFN_GOACC_LOOP call is not used. |
| * opts.c (default_options_table): Enable -ffinite-loops at -O2+. |
| |
| 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| PR target/88838 |
| * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the |
| compare_type is not with Pmode size, we will create an IV with |
| Pmode size with truncated use (i.e. converted to the correct type). |
| * tree-vect-loop.c (vect_verify_full_masking): Find IV type. |
| (vect_iv_limit_for_full_masking): New. Factored out of |
| vect_set_loop_condition_masked. |
| * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New. |
| (vect_iv_limit_for_full_masking): Declare. |
| |
| 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| PR target/88834 |
| * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle |
| IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES. |
| (get_alias_ptr_type_for_ptr_address): Likewise. |
| (add_iv_candidate_for_use): Add scaled index candidate if useful. |
| * tree-ssa-address.c (preferred_mem_scale_factor): New. |
| * config/aarch64/aarch64.c (aarch64_classify_address): Relax |
| allow_reg_index_p. |
| |
| 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> |
| |
| * config/aarch64/iterators.md (ADDSUB): Fix typo in comment. |
| |
| 2019-06-12 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| * common/config/pru/pru-common.c: New file. |
| * config.gcc: Add PRU target. |
| * config/pru/alu-zext.md: New file. |
| * config/pru/constraints.md: New file. |
| * config/pru/predicates.md: New file. |
| * config/pru/pru-opts.h: New file. |
| * config/pru/pru-passes.c: New file. |
| * config/pru/pru-pragma.c: New file. |
| * config/pru/pru-protos.h: New file. |
| * config/pru/pru.c: New file. |
| * config/pru/pru.h: New file. |
| * config/pru/pru.md: New file. |
| * config/pru/pru.opt: New file. |
| * config/pru/t-pru: New file. |
| * doc/extend.texi: Document PRU pragmas. |
| * doc/invoke.texi: Document PRU-specific options. |
| * doc/md.texi: Document PRU asm constraints. |
| |
| 2019-06-12 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/90676 |
| * tree-pretty-print.c (dump_mem_ref): New function. Include |
| MEM_REF type in output when different size than operand. |
| (dump_generic_node): Move code to dump_mem_ref and call it. |
| |
| 2019-06-12 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/90662 |
| * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers |
| to arrays. |
| |
| 2019-06-12 Tom de Vries <tdevries@suse.de> |
| |
| PR tree-optimization/90009 |
| * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join. |
| |
| 2019-06-12 Martin Liska <mliska@suse.cz> |
| |
| * ggc-common.c (ggc_prune_overhead_list): Do not sanitize |
| the created map. |
| * hash-map.h: Add sanitize_eq_and_hash into ::hash_map. |
| * mem-stats.h (mem_alloc_description::mem_alloc_description): |
| Do not sanitize created maps. |
| |
| 2019-06-12 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use |
| value_range::singleton_p. |
| * tree-vrp.c (value_range_constant_singleton): Remove. |
| * tree-vrp.h (value_range_constant_singleton): Remove. |
| * vr-values.c (vr_values::singleton): Use |
| value_range::singleton_p. |
| |
| 2019-06-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/90811 |
| * cfgexpand.c (align_local_variable): Add really_expand argument, |
| don't SET_DECL_ALIGN if it is false. |
| (add_stack_var): Add really_expand argument, pass it through to |
| align_local_variable. |
| (expand_one_stack_var_1): Pass true as really_expand to |
| align_local_variable. |
| (expand_one_ssa_partition): Pass true as really_expand to |
| add_stack_var. |
| (expand_one_var): Pass really_expand through to add_stack_var. |
| |
| 2019-06-12 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * config/arm/iterators.md (VABAL): New int iterator. |
| * config/arm/neon.md (<sup>sadv16qi): New define_expand. |
| * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S, |
| UNSPEC_VABAL_U values. |
| |
| 2019-06-12 Martin Liska <mliska@suse.cz> |
| |
| * value-prof.c (stream_out_histogram_value): Only first value |
| can't be negative. |
| |
| 2019-06-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/90760 |
| * symtab.c (symtab_node::set_section): Allow being called on aliases |
| as long as they aren't analyzed yet. |
| |
| 2019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com> |
| |
| * config/mips/mips.c (mips_final_postscan_insn): Modify call |
| to `mips_set_text_contents_type' to indicate whether a |
| non-debug insn follows. |
| |
| 2019-06-11 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete |
| enabling -mpcrel by default. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Update |
| test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so |
| that the test against -mcpu=future is done first. Then test if |
| -mprefixed-addr is on for -mpcrel. |
| (rs6000_disable_incompatible_switches): Add -mcpu=future support. |
| |
| 2019-06-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/90811 |
| * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d |
| instead of and.u%d. |
| |
| 2019-06-11 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd (X/[ex]4<Y/[ex]4): Handle conversions. |
| |
| 2019-06-11 Matthew Beliveau <mbelivea@redhat.com> |
| |
| PR c++/90449 - add -Winaccessible-base option. |
| * doc/invoke.texi (Winaccessible-base): Document. |
| |
| 2019-06-11 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR tree-optimization/62041 |
| * fold-const.c (fold_real_zero_addition_p): Handle vectors. |
| |
| 2019-06-11 Jason Merrill <jason@redhat.com> |
| |
| * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory. |
| * tree.c (get_tree_code_name): Likewise. |
| * print-tree.c (print_node): Only briefly print a node with an |
| invalid code. |
| |
| 2019-06-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/90819 |
| * trans-mem.c (tm_memopt_compute_available): Add assertion |
| that blocks is not empty. Formatting fix. |
| |
| 2019-06-11 Martin Liska <mliska@suse.cz> |
| |
| PR c++/87847 |
| * hash-table.h: Extend create_gcc, add one parameter |
| that is passed into hash_table::hash_table. |
| |
| 2019-06-10 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-protos.h (ix86_split_fp_absneg_operator): |
| New prototype. |
| * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator): |
| Emit clobber also for non-sse operations. |
| (ix86_split_fp_absneg_operator): New function. |
| * config/i386/i386.md (SSEMODEF): New mode iterator. |
| (ssevecmodef): New mode attribute. |
| (<code>tf2): Use absneg code iterator. |
| (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator. |
| Add three-operand AVX alternatives. |
| (*<code><mode>2_i387_1): Rename from *absnegxf2_i387. |
| Use absneg code iterator and X87MODEF mode iterator. |
| (absneg fp_reg non-sse splitter): Call absneg code iterator |
| and X87MODEF mode iterator. |
| (absneg general_reg non-sse splitter): Use absneg code iterator |
| and X87MODEF mode iterator. Use ix86_split_fp_absneg_operator. |
| (*<code><mode>2_1): Rename from *absneg<mode>2. Use absneg |
| code iterator. Add three-operand AVX alternative. |
| (absneg sse_reg splitter): Use absneg code iterator |
| and SSEMODEF mode iterator. Handle AVX operands. |
| (absneg fp_reg splitter): Use absneg code iterator |
| and MODEF mode iterator. |
| (absneg general_reg splitter): Merge splitters using MODEF mode |
| iterator. Use absneg code iterator. Call |
| ix86_split_fp_absneg_operator. |
| (*<code><mode>2_i387): Rename from *<code><mode>2_1. |
| Do not enable for non-sse modes before reload. |
| (CSGNMODE): Remove. |
| (CSGNVMODE): Ditto. |
| (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and |
| ssevecmodef mode attribute instaed of CSGNVMODE. |
| (copysign<mode>3_const): Ditto. |
| (copysign<mode>3_var): Ditto. |
| * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2. |
| Use absneg code iterator. Simplify code using std::swap. |
| * config/i386/predicates.md (absneg_operator): Remove. |
| |
| 2019-06-10 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-fold.c (get_range_strlen): Update comment that didn't |
| make it into r267503 or related commits. |
| |
| 2019-06-10 Vladislav Ivanishin <vlad@ispras.ru> |
| |
| * gcov-tool.c (merge_usage, rewrite_usage): Mark with |
| ATTRIBUTE_NORETURN thus making consistent with overlap_usage. |
| |
| 2019-06-10 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.def (OMP_SCAN): New tree code. |
| * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and |
| OMP_CLAUSE_EXCLUSIVE. |
| * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP. |
| (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define. |
| * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for |
| OMP_CLAUSE_{IN,EX}CLUSIVE. |
| (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE. |
| * tree-nested.c (convert_nonlocal_reference_stmt, |
| convert_local_reference_stmt, convert_gimple_call): Handle |
| GIMPLE_OMP_SCAN. |
| * tree-pretty-print.c (dump_omp_clause): Handle |
| OMP_CLAUSE_{IN,EX}CLUSIVE. |
| (dump_generic_node): Handle OMP_SCAN. |
| * gimple.def (GIMPLE_OMP_SCAN): New gimple code. |
| * gimple.h (gomp_scan): New type. |
| (is_a_helper <gomp_scan *>::test, |
| is_a_helper <const gomp_scan *>::test): New templates. |
| (gimple_build_omp_scan): Declare. |
| (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr, |
| gimple_omp_scan_set_clauses): New inline functions. |
| (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:. |
| * gimple.c (gimple_build_omp_scan): New function. |
| (gimple_copy): Handle GIMPLE_OMP_SCAN. |
| * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise. |
| * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle |
| GIMPLE_OMP_TASKGROUP. |
| (dump_gimple_omp_scan): New function. |
| (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN. |
| * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN. |
| * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise. |
| * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN. |
| (is_gimple_stmt): Handle OMP_SCAN. |
| (gimplify_scan_omp_clauses): Reject inscan reductions on constructs |
| other than OMP_FOR or OMP_SIMD. Handle OMP_CLAUSE_{IN,EX}CLUSIVE. |
| (gimplify_adjust_omp_clauses): Diagnose inscan reductions not |
| mentioned in nested #pragma omp scan. Handle |
| OMP_CLAUSE_{IN,EX}CLUSIVE. |
| (gimplify_expr): Handle OMP_SCAN. |
| * omp-low.c (check_omp_nesting_restrictions): For parent context, |
| look through GIMPLE_OMP_SCAN context. Allow #pragma omp scan in |
| simd constructs. |
| (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle |
| GIMPLE_OMP_SCAN. |
| |
| 2019-06-10 Martin Liska <mliska@suse.cz> |
| |
| * ipa-cp.c (ignore_edge_p): New function. |
| (build_toporder_info): Use it. |
| * ipa-inline.c (ignore_edge_p): New function. |
| (inline_small_functions): Use it. |
| * ipa-pure-const.c (ignore_edge_for_nothrow): |
| Verify opt_for_fn for caller and callee. |
| (ignore_edge_for_pure_const): Likewise. |
| * ipa-reference.c (ignore_edge_p): Extend to check |
| for opt_for_fn. |
| * ipa-utils.c (searchc): Refactor. |
| * ipa-utils.h: Fix coding style. |
| |
| 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_rtx_costs): Update costs. |
| |
| 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc-protos.h (arc_check_ior_const): Declare. |
| (arc_split_ior): Likewise. |
| (arc_check_mov_const): Likewise. |
| (arc_split_mov_const): Likewise. |
| * config/arc/arc.c (arc_print_operand): Fix 'z' letter. |
| (arc_rtx_costs): Replace check Crr with Cax constraint. |
| (prepare_move_operands): Cleanup, remove unused code. |
| (arc_split_ior): New function. |
| (arc_check_ior_const): Likewise. |
| (arc_split_mov_const): Likewise. |
| (arc_check_mov_const): Likewise. |
| * config/arc/arc.md (movsi_insn): Restructure it, and convert it |
| in define_insn_and_split pattern. |
| (iorsi3): Likewise. |
| (mulsi3_v2): Add new matching variant. |
| (andsi3_i): Cleanup pattern. |
| (rotrsi3_cnt1): Update pattern. |
| (rotrsi3_cnt8): New pattern. |
| (ashlsi2_cnt8): Likewise. |
| (ashlsi2_cnt16): Likewise. |
| * config/arc/constraints.md (C0p): Update constraint. |
| (Crr): Remove it. |
| (C0x): New pattern. |
| (Cax): New pattern. |
| |
| 2019-06-10 Martin Liska <mliska@suse.cz> |
| |
| * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): |
| Update coding style. |
| (sem_item_optimizer::dump_cong_classes): |
| Print how many items are in a non-singular class. Improve |
| coding style. |
| |
| 2019-06-10 Martin Liska <mliska@suse.cz> |
| |
| * value-prof.c (dump_histogram_value): Change dump format. |
| (gimple_mod_subtract_transform): Remove legacy comment. |
| |
| 2019-06-10 Martin Liska <mliska@suse.cz> |
| |
| * value-prof.c (dump_histogram_value): Print histogram values |
| only if present. |
| |
| 2019-06-10 Martin Liska <mliska@suse.cz> |
| |
| * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New. |
| (GCOV_SINGLE_VALUE_COUNTERS): Likewise. |
| * ipa-profile.c (ipa_profile_generate_summary): |
| Use get_most_common_single_value. |
| * tree-profile.c (gimple_init_gcov_profiler): |
| Instrument with __gcov_one_value_profiler_v2 |
| and __gcov_indirect_call_profiler_v4. |
| * value-prof.c (dump_histogram_value): |
| Print all values for HIST_TYPE_SINGLE_VALUE. |
| (stream_out_histogram_value): Update assert for |
| N values. |
| (stream_in_histogram_value): Set number of |
| counters for HIST_TYPE_SINGLE_VALUE. |
| (get_most_common_single_value): New. |
| (gimple_divmod_fixed_value_transform): |
| Use get_most_common_single_value. |
| (gimple_ic_transform): Likewise. |
| (gimple_stringops_transform): Likewise. |
| (gimple_find_values_to_profile): Set number |
| of counters for HIST_TYPE_SINGLE_VALUE. |
| * value-prof.h (get_most_common_single_value): New. |
| |
| 2019-06-10 Martin Liska <mliska@suse.cz> |
| |
| * hash-map.h: Pass default value to hash_table ctor. |
| * hash-table.h: Add default value to call of a ctor. |
| |
| 2019-06-08 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/invoke.texi (C Dialect Options): Minor grammatical change. |
| (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL" |
| |
| 2019-06-07 John David Anglin <danglin@gcc.gnu.orig> |
| |
| PR target/90751 |
| * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment. |
| Call pa_output_function_label. |
| (TARGET_ASM_FUNCTION_PROLOGUE): define. |
| * config/pa/pa-protos.h (pa_output_function_label): Declare. |
| * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED |
| to declaration. |
| (pa_linux_output_function_prologue): Declare. |
| (TARGET_ASM_FUNCTION_PROLOGUE): Delete define. |
| (pa_output_function_label): New. |
| (pa_output_function_prologue): Revise to use pa_output_function_label. |
| (pa_linux_output_function_prologue): New. |
| * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define. |
| |
| 2019-06-07 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-vrp.h (value_range_base::intersect): New. |
| (value_range::intersect_helper): Move from here... |
| (value_range_base::intersect_helper): ...to here. |
| * tree-vrp.c (value_range::intersect_helper): Rename to... |
| (value_range_base::intersect_helper): ...this, and rewrite to |
| return a value instead of modifying THIS in place. |
| Also, move equivalence handling... |
| (value_range::intersect): ...here, while calling intersect_helper. |
| * gimple-fold.c (size_must_be_zero_p): Use value_range_base when |
| calling intersect. |
| * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge): |
| Same. |
| * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same. |
| |
| 2019-06-07 Jakub Jelinek <jakub@redhat.com> |
| |
| * Makefile.in (genprogerr): Add condmd. |
| (genprog): Remove it here. |
| |
| 2019-06-07 Andrew Stubbs <ams@codesourcery.com> |
| |
| * doc/invoke.texi (AMD GCN Options): Add gfx906. |
| |
| 2019-06-07 Richard Biener <rguenther@suse.de> |
| |
| PR debug/90574 |
| * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels |
| that appear after user labels. |
| |
| 2019-06-07 Martin Liska <mliska@suse.cz> |
| |
| * cselib.c (cselib_init): Disable hash table |
| sanitization. |
| * hash-set.h: Pass new default argument to m_table. |
| * hash-table.c: Add global variable with hash table |
| sanitization limit. |
| * hash-table.h (Allocator>::hash_table): Add new argument |
| to ctor. |
| (hashtab_chk_error): New. |
| * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New. |
| * toplev.c (process_options): Set hash_table_sanitize_eq_limit |
| from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value. |
| |
| 2019-06-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * common.opt (flto-odr-type-merging): Ignore. |
| * invoke.texi (-flto-odr-type-merging): Remove. |
| * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove. |
| (can_be_vtable_hashed_p): Remove. |
| (hash_odr_vtable): Remove. |
| (odr_vtable_hasher::hash): Remove. |
| (types_same_for_odr): Remove. |
| (types_odr_comparable): Remove. |
| (odr_vtable_hasher::equal): Remove. |
| (odr_vtable_hash_type, odr_vtable_hash): Remove. |
| (add_type_duplicate): Do not synchronize vtable and name hashtables. |
| (get_odr_type): Do not use vtable hash. |
| (dump_odr_type): Remove commented out code. |
| (build_type_inheritance_graph): Do not allocate vtable hash. |
| (rebuild_type_inheritance_graph): Do not delete vtable hash. |
| * ipa-utils.h (type_with_linkage_p): Drop vtable hash path. |
| (odr_type_p): Likewise. |
| * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering |
| test. |
| |
| 2019-06-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up |
| immediately after same_types_for_tbaa_p returns -1 and continue |
| looking for possible exact match; if matching types are arrays |
| watch for partial overlaps. |
| (indirect_ref_may_alias_decl_p): Watch for partial array overlaps. |
| (indirect_refs_may_alias_p): Do type based disambiguation first; |
| update comment. |
| |
| 2019-06-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p. |
| |
| 2019-06-07 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Remove param. |
| * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): |
| Remove. |
| * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise. |
| (GCOV_ICALL_TOPN_NCOUNTS): Likewise. |
| * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise. |
| * profile.c (instrument_values): Remove |
| HIST_TYPE_INDIR_CALL_TOPN. |
| * tree-profile.c (init_ic_make_global_vars): |
| Always build __gcov_indirect_call only. |
| (gimple_init_gcov_profiler): Remove usage |
| of PARAM_INDIR_CALL_TOPN_PROFILE. |
| (gimple_gen_ic_profiler): Likewise. |
| * value-prof.c (dump_histogram_value): Likewise. |
| (stream_in_histogram_value): Likewise. |
| (gimple_indirect_call_to_profile): Likewise. |
| (gimple_find_values_to_profile): Likewise. |
| * value-prof.h (enum hist_type): Likewise. |
| |
| 2019-06-07 Martin Liska <mliska@suse.cz> |
| |
| * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the |
| function. |
| |
| 2019-06-07 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/78902 |
| * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New. |
| (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove. |
| (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New. |
| (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New. |
| (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove. |
| (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove. |
| (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New. |
| (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New. |
| (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New. |
| (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove. |
| (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New. |
| (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove. |
| (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST): |
| New. |
| (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove. |
| (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New. |
| (ATTR_MALLOC_NOTHROW_NONNULL): Remove. |
| (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New. |
| (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New. |
| (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove. |
| (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New. |
| (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New. |
| * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use |
| warn_unused_result attribute. |
| (BUILT_IN_STRDUP): Likewise. |
| (BUILT_IN_STRNDUP): Likewise. |
| (BUILT_IN_ALLOCA): Likewise. |
| (BUILT_IN_CALLOC): Likewise. |
| (BUILT_IN_MALLOC): Likewise. |
| (BUILT_IN_REALLOC): Likewise. |
| |
| 2019-06-06 Jim Wilson <jimw@sifive.com> |
| |
| PR target/89955 |
| * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted. |
| * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added. |
| * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added. |
| |
| 2019-06-06 Martin Sebor <msebor@redhat.com> |
| |
| * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article. |
| (handle_builtin_malloc): Remove trailing spaces. |
| (handle_builtin_memset): Same. |
| (handle_builtin_memcmp): Same. |
| (compute_string_length): Same. |
| (determine_min_objsize): Same. |
| (handle_builtin_string_cmp): Same. |
| (handle_char_store): Same. Break up excessively long line. |
| |
| 2019-06-06 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-sra.c (build_reconstructed_reference): Drop the alignment |
| check. |
| |
| 2019-06-06 Martin Jambor <mjambor@suse.cz> |
| |
| * tree-sra.c (struct access): New field grp_same_access_path. |
| (dump_access): Dump it. |
| (build_reconstructed_reference): New function. |
| (build_ref_for_model): Use it if possible. |
| (path_comparable_for_same_access): New function. |
| (same_access_path_p): Likewise. |
| (sort_and_splice_var_accesses): Set the new flag. |
| (analyze_access_subtree): Likewise. |
| (propagate_subaccesses_across_link): Propagate zero value of the new |
| flag down the access tree. |
| |
| 2019-06-06 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906. |
| * config/gcn/gcn.opt (gpu_type): Add gfx906. |
| * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib. |
| (MULTILIB_DIRNAMES): Rename gcn5 to gfx900. |
| Add gfx906. |
| |
| 2019-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR tree-optimization/90332 |
| * config/aarch64/aarch64.c (aarch64_expand_vector_init): |
| Handle VALS containing two vectors. |
| * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename |
| to... |
| (@aarch64_combinez<mode>): ... This. |
| (*aarch64_combinez_be<mode>): Rename to... |
| (@aarch64_combinez_be<mode>): ... This. |
| (vec_init<mode><Vhalf>): New define_expand. |
| * config/aarch64/iterators.md (Vhalf): Handle V8HF. |
| |
| 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift |
| library functions only when not optimizing for size. |
| (ashlsi3): Likewise. |
| (ashrhi3): Likewise. |
| (ashrsi3): Likewise. |
| (lshrhi3): Likewise. |
| (lshrsi3): Likewise. |
| |
| 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| PR rtl-optimization/88751 |
| * ira.c (ira): Use the number of the actually referenced registers |
| when calculating the threshold. |
| |
| 2019-06-06 Jakub Jelinek <jakub@redhat.com> |
| |
| * configure: Regenerate. |
| |
| 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com> |
| |
| * config/msp430/msp430.md (ashlhi3): Force shift src operand into a |
| register if it is in memory, so the shift can be emulated with a rotate |
| instruction. |
| (ashrhi3): Likewise. |
| (lshrhi3): Likewise. |
| |
| 2019-06-06 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/87954 |
| * match.pd: Simplify mult where both arguments are 0 or 1. |
| |
| 2019-06-06 Richard Biener <rguenther@suse.de> |
| |
| * vr-values.c (vr_values::extract_range_from_ssa_name): Do not |
| put equivalences on UNDEFINED ranges. |
| * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): |
| Make sure to drop defs of stmts added during simplification |
| to VARYING. |
| |
| 2019-06-06 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c: Include tree-cfg.h. |
| (make_heapvar): Do not make heap vars artificial. |
| (find_func_aliases_for_builtin_call): Handle stack allocation |
| functions. |
| (find_func_aliases): Delay processing of simple enough returns |
| in non-IPA mode. |
| (set_uids_in_ptset): Adjust. |
| (find_what_var_points_to): Likewise. |
| (solve_constraints): Do not dump points-to sets here. |
| (compute_points_to_sets): Post-process return statements, |
| amending the escaped solution. Dump points-to sets afterwards. |
| (ipa_pta_execute): Dump points-to sets. |
| |
| 2019-06-06 Martin Liska <mliska@suse.cz> |
| |
| PR web/87933 |
| * doc/install.texi: Fix HTML headers and |
| titles for 'Installing GCC' pages. |
| |
| 2019-06-06 Martin Liska <mliska@suse.cz> |
| |
| * ipa-icf-gimple.h (dump_message_1): Remove. |
| (dump_message): Likewise. |
| (return_false_with_message_1): Print also file. |
| (return_false_with_msg): Likewise. |
| (return_with_result): Likewise. |
| (return_with_debug): Likewise. |
| * ipa-icf.c (sem_function::equals_private): Remove call |
| to dump_message. |
| |
| 2019-06-05 Hongtao Liu <hongtao.liu@intel.com> |
| |
| * config/i386/sse.md (define_mode_suffix vecmemsuffix): New. |
| (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable |
| memory operand for it. |
| (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto. |
| |
| 2019-06-05 Martin Sebor <msebor@redhat.com> |
| |
| * config/i386/i386-features.c (ix86_get_function_versions_dispatcher): |
| Adjust quoting and hyphenation. |
| * convert.c (convert_to_real_1): Same. |
| * gcc.c (driver_wrong_lang_callback): Same. |
| (driver::handle_unrecognized_options): Same. |
| * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same. |
| * opts-common.c (cmdline_handle_error): Same. |
| (read_cmdline_option): Same. |
| * opts-global.c (complain_wrong_lang): Same. |
| (print_ignored_options): Same. |
| (handle_common_deferred_options): Same. |
| * pretty-print.h: Same. |
| * print-rtl.c (debug_bb_n_slim): Same. |
| * sched-rgn.c (make_pass_sched_fusion): Same. |
| * tree-cfg.c (verify_gimple_assign_unary): Same. |
| (verify_gimple_label): Same. |
| * tree-ssa-operands.c (verify_ssa_operands): Same. |
| * varasm.c (do_assemble_alias): Same. |
| (assemble_alias): Same. |
| |
| 2019-06-05 Richard Henderson <rth@twiddle.net> |
| |
| * config/alpha/alpha.c (direct_return): Move down after |
| struct machine_function definition; use saved frame_size; |
| return bool. |
| (struct machine_function): Add sa_mask, sa_size, frame_size. |
| (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ... |
| (alpha_compute_frame_layout): ... new function. |
| (TARGET_COMPUTE_FRAME_LAYOUT): New. |
| (alpha_initial_elimination_offset): Use saved sa_size. |
| (alpha_vms_initial_elimination_offset): Likewise. |
| (alpha_vms_can_eliminate): Remove alpha_sa_size call. |
| (alpha_expand_prologue): Use saved frame data. Merge integer |
| and fp register save loops. |
| (alpha_expand_epilogue): Likewise. |
| (alpha_start_function): Use saved frame data. |
| * config/alpha/alpha-protos.h (direct_return): Update. |
| (alpha_sa_size): Remove. |
| |
| 2019-06-05 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a |
| multiplication by a power-of-two value. |
| (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value |
| and turn the modulo operation into a masking operation. |
| |
| 2019-06-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/90733 |
| * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs |
| with VOIDmode inner operands. |
| |
| 2019-06-05 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/90726 |
| * tree-ssa-loop-niter.c (expand_simple_operations): Do not |
| turn an expression graph into a tree. |
| |
| 2019-06-05 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-expand.c (struct omp_region): Add has_lastprivate_conditional |
| member. |
| (expand_parallel_call): If region->inner->has_lastprivate_conditional, |
| treat it like explicit monotonic schedule modifier. |
| (expand_omp_for): Initialize has_lastprivate_conditional. |
| If fd.lastprivate_conditional != 0, treat it like explicit monotonic |
| schedule modifier. |
| |
| * omp-low.c (lower_rec_input_clauses): For lastprivate conditional |
| references, lookup in in hash map MEM_REF operand instead of the |
| MEM_REF itself. |
| (lower_omp_1): When looking for lastprivate conditional assignments, |
| handle MEM_REFs with REFERENCE_TYPE operands. |
| |
| * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and |
| on privatization clauses OMP_CLAUSE_DECL is privatized by reference |
| and references a VLA. Handle references to non-VLAs if is_simd |
| all privatization clauses like reductions. |
| (lower_rec_input_clauses) <case do_private, case do_firstprivate>: |
| If omp_is_reference, use always omp simd arrays and set |
| DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses |
| fails, emit reference initialization. |
| |
| 2019-06-05 Hongtao Liu <hongtao.liu@intel.com> |
| |
| PR target/89803 |
| * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask, |
| _mm_mask_fpclass_sd_mask): New intrinsics. |
| (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins. |
| * config/i386/i386-builtin.def |
| (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask): |
| New builtins. |
| (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted. |
| * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT), |
| DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted. |
| * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT, |
| case QI_FTYPE_V2SF_INT): Ditto. |
| * config/i386/sse.md |
| (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>): |
| Extended to insnstructions with mask operands. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wp"): |
| Delete. |
| (define_register_constraint "wq"): Delete. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq. |
| * config/rs6000/vsx.md (define_mode_attr VSr3): Delete. |
| (define_mode_attr VSa): Delete. |
| (define_mode_attr VSisa): New. |
| (rest of file): Adjust. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf. |
| (define_attr "enabled"): Handle those new isa values. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/vsx.md (define_mode_attr VSr4): Delete. |
| (define_mode_attr VSr5): Delete. |
| (define_mode_attr VStype_sqrt): Delete. |
| (define_mode_iterator VSX_SPDP): Delete. |
| (define_mode_attr VS_spdp_res): Delete. |
| (define_mode_attr VS_spdp_insn): Delete. |
| (define_mode_attr VS_spdp_type): Delete. |
| (*vsx_sqrt<mode>2): Adjust. |
| (vsx_<VS_spdp_insn>): Delete, split to... |
| (vsx_xscvdpsp): ... this. New. And... |
| (vsx_xvcvspdp): ... this. New. And... |
| (vsx_xvcvdpsp): ... this. New. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF |
| and V2DF. |
| * config/rs6000/vsx.md (define_mode_attr VSs): Delete. |
| (rest of file): Adjust. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>. |
| (vsx_extract_<mode>_var): Ditto. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI |
| with just "wa". |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "ww"): |
| Delete. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_ww. |
| * config/rs6000/rs6000.md: Adjust. |
| * config/rs6000/vsx.md: Adjust. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments. |
| (define_mode_attr sd): New. |
| (define_mode_attr s): New. |
| (define_mode_attr Ftrad): Delete. |
| (define_mode_attr Fvsx): Delete. |
| (define_mode_attr Fs): Delete. |
| (rest of file): Use the new mode attributes. |
| * config.rs6000/vsx.md: Use the new mode attributes. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W |
| with just "wa". |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/vsx.md (define_mode_attr VSr2): Delete. |
| (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are |
| used with VSX_B, VSX_D, or VSX_F, with just "wa". |
| |
| 2019-06-04 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| PR target/78263 |
| * config/rs6000/altivec.h: Don't #define vector, pixel, bool for |
| C++ with strict ANSI requirements. |
| |
| 2019-06-04 Marc Glisse <marc.glisse@inria.fr> |
| |
| * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip |
| computations when step is 1. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wf"): |
| Delete. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wf. |
| * config/rs6000/rs6000.md: Adjust. |
| * config/rs6000/vsx.md: Adjust. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-06-04 Andrew Pinski <apinski@marvell.com> |
| |
| * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): |
| Fix ILP32 value. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wd"): |
| Delete. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wd. |
| * config/rs6000/rs6000.md: Adjust. |
| * config/rs6000/vsx.md: Adjust. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete. |
| (rest of file): Adjust. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete. |
| (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust. |
| (vsx_splat_<mode>_reg): Adjust. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "ws"): |
| Delete. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_ws. |
| * config/rs6000/rs6000.md: Adjust. |
| * config/rs6000/vsx.md: Adjust. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wv"): |
| Delete. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wv. |
| * config/rs6000/rs6000.md: Adjust. |
| * config/rs6000/vsx.md: Adjust. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wi"): |
| Delete. |
| (define_register_constraint "wt"): Delete. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt. |
| * config/rs6000/rs6000.md: Adjust. |
| * config/rs6000/vsx.md: Adjust. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-06-04 Szabolcs Nagy <szabolcs.nagy@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove |
| const. |
| * config/aarch64/aarch64.c (aarch64_asm_output_external): Call |
| default_elf_asm_output_external. |
| |
| 2019-06-04 Martin Liska <mliska@suse.cz> |
| |
| * ipa-icf.c (INCLUDE_LIST): Remove. |
| (sem_item_optimizer::execute): Remove call to init_wpa. |
| * ipa-icf.h (init_wpa): Remove. |
| |
| 2019-06-04 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate |
| conditional on combined for simd. |
| * omp-low.c (struct omp_context): Add combined_into_simd_safelen0 |
| member. |
| (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1 |
| constructs, don't remove lastprivate_conditional_map, but instead set |
| ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points |
| to parent construct temporaries. |
| (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0 |
| like !ctx->lastprivate_conditional_map. |
| (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0, |
| use up->outer context instead of up. |
| * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if |
| gimple_omp_for_combined_p. |
| (expand_omp_for_static_nochunk): Likewise. |
| (expand_omp_for_static_chunk): Add forgotten cond_var bump that was |
| probably moved over into expand_omp_for_generic rather than being copied |
| there. |
| |
| 2019-06-04 Martin Liska <mliska@suse.cz> |
| |
| * value-prof.c (dump_histogram_value): Fix typo. |
| (gimple_mod_subtract_transform): Likewise. |
| |
| 2019-06-04 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/90726 |
| * tree-chrec.c (chrec_contains_symbols): Add to visited. |
| (tree_contains_chrecs): Likewise. |
| (chrec_contains_symbols_defined_in_loop): Move here and avoid |
| exponential behaivor from ... |
| * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop): |
| ... here. |
| (expression_expensive_p): Avoid exponential behavior and compute |
| expanded size, rejecting any expansion. |
| * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove. |
| (idx_contains_abnormal_ssa_name_p): Likewise. |
| (contains_abnormal_ssa_name_p_1): New helper for walk_tree. |
| (contains_abnormal_ssa_name_p): Simplify and use |
| walk_tree_without_duplicates. |
| |
| 2019-06-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90738 |
| Revert |
| 2019-06-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original |
| full reference tree and record in ref->ref. |
| (vn_reference_lookup_3): Pass in original ref to |
| ao_ref_init_from_vn_reference. |
| (vn_reference_lookup): Likewise. |
| * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype. |
| * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): |
| Handle non-decl bases in the original reference. |
| |
| 2019-06-04 Martin Liska <mliska@suse.cz> |
| |
| * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count |
| number of references. |
| (sem_item_optimizer::do_congruence_step): |
| (sem_item_optimizer::worklist_push): Dump how references |
| a class has. |
| (sem_item_optimizer::worklist_pop): Use heap. |
| (sem_item_optimizer::process_cong_reduction): Likewise. |
| * ipa-icf.h: Use fibonacci_heap insteam of std::list. |
| |
| 2019-06-04 Martin Liska <mliska@suse.cz> |
| |
| * ipa-icf.h (struct sem_usage_pair_hash): New. |
| (sem_usage_pair_hash::hash): Likewise. |
| (sem_usage_pair_hash::equal): Likewise. |
| (struct sem_usage_hash): Likewise. |
| * ipa-icf.c (sem_item::sem_item): Initialize |
| referenced_by_count. |
| (sem_item::add_reference): Register a reference |
| in ref_map and not in target->usages. |
| (sem_item::setup): Remove initialization of |
| dead vectors. |
| (sem_item::~sem_item): Remove usage of dead vectors. |
| (sem_item::dump): Remove dump of references. |
| (sem_item_optimizer::sem_item_optimizer): Initialize |
| m_references. |
| (sem_item_optimizer::read_section): Remove useless |
| dump. |
| (sem_item_optimizer::parse_funcs_and_vars): Likewise here. |
| (sem_item_optimizer::build_graph): Pass m_references |
| to ::add_reference. |
| (sem_item_optimizer::verify_classes): Remove usage of dead |
| vectors. |
| (sem_item_optimizer::traverse_congruence_split): Return true |
| when a class is split. |
| (sem_item_optimizer::do_congruence_step_for_index): Use |
| hash_map for look up of (sem_item *, index). That brings |
| significant speed up. |
| (sem_item_optimizer::do_congruence_step): Return true |
| when a split is done. |
| (congruence_class::is_class_used): Use referenced_by_count. |
| |
| 2019-06-04 Alan Modra <amodra@gmail.com> |
| |
| PR target/90689 |
| * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge |
| error. |
| |
| 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.h (MASK_MFPGPR): Delete. |
| * config/rs6000/rs6000.c (direct_move_p): Adjust. |
| (rs6000_secondary_reload_simple_move): Adjust. |
| (rs6000_opt_masks): Neuter the "mfpgpr" option. |
| * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust. |
| * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust |
| comment. |
| (power6x): Adjust. |
| * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust. |
| (floatunssi<mode>2_lfiwzx): Adjust. |
| (fix_trunc<mode>si2_stfiwx): Adjust. |
| (fixuns_trunc<mode>si2_stfiwx): Adjust. |
| * config/rs6000/rs6000.opt (mno-mfpgpr): New. |
| (mfpgpr): Mark as deprecated. |
| * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr. |
| (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust. |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr. |
| |
| 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wg"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wg. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64): |
| Delete "wg" alternatives. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-06-03 Alan Modra <amodra@gmail.com> |
| |
| * bb-reorder.c (copy_bb_p): Don't overflow size calculation. |
| (get_uncond_jump_length): Assert length less than INT_MAX and |
| non-negative. |
| |
| 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR middle-end/64242 |
| * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule |
| block. |
| (expand_builtin_nonlocal_goto): Likewise. |
| |
| 2019-06-03 Szabolcs Nagy <szabolcs.nagy@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare. |
| (aarch64_asm_output_external): Declare. |
| * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New. |
| (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs. |
| (aarch64_asm_output_alias): New. |
| (aarch64_asm_output_external): New. |
| * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define. |
| (ASM_OUTPUT_EXTERNAL): Define. |
| |
| 2019-06-03 Aldy Hernandez <aldyh@redhat.com> |
| * tree-vrp.h (value_range_base::nonzero_p): New. |
| (value_range_base::set_nonnull): Rename to... |
| (value_range_base::set_nonzero): ...this. |
| (value_range_base::set_null): Rename to... |
| (value_range_base::set_zero): ...this. |
| (value_range::set_nonnull): Remove. |
| (value_range::set_null): Remove. |
| * tree-vrp.c (range_is_null): Remove. |
| (range_is_nonnull): Remove. |
| (extract_range_from_binary_expr): Use value_range_base::*zero_p |
| instead of range_is_*null. |
| (extract_range_from_unary_expr): Same. |
| (value_range_base::set_nonnull): Rename to... |
| (value_range_base::set_nonzero): ...this. |
| (value_range::set_nonnull): Remove. |
| (value_range_base::set_null): Rename to... |
| (value_range_base::set_zero): ...this. |
| (value_range::set_null): Remove. |
| (extract_range_from_binary_expr): Rename set_*null uses to |
| set_*zero. |
| (extract_range_from_unary_expr): Same. |
| (union_helper): Same. |
| * vr-values.c (get_value_range): Use set_*zero instead of |
| set_*null. |
| (vr_values::extract_range_from_binary_expr): Same. |
| (vr_values::extract_range_basic): Same. |
| |
| 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR driver/90684 |
| * opts.c (parse_and_check_align_values): Allow 4 alignment values. |
| |
| 2019-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/iterators.md (MAX_OPP): New code attr. |
| * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): |
| Rename to... |
| (aarch64_<su>abd<mode>_3): ... This. |
| (<sur>sadv16qi): Add TARGET_DOTPROD expansion. |
| |
| 2019-06-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original |
| full reference tree and record in ref->ref. |
| (vn_reference_lookup_3): Pass in original ref to |
| ao_ref_init_from_vn_reference. |
| (vn_reference_lookup): Likewise. |
| * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype. |
| * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): |
| Handle non-decl bases in the original reference. |
| |
| 2019-06-03 Martin Liska <mliska@suse.cz> |
| |
| * doc/generic.texi: Remove Java Trees. |
| |
| 2019-06-03 Martin Liska <mliska@suse.cz> |
| |
| * fold-const.c (operand_equal_p): Fix typo as compare_tree_int |
| returns 0 when operands are equal. |
| |
| 2019-06-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90716 |
| * tree-loop-distribution.c (destroy_loop): Process blocks in |
| correct order. |
| |
| 2019-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR target/88837 |
| * vector-builder.h (vector_builder::count_dups): New method. |
| * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init): |
| Declare prototype. |
| * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @. |
| (vec_init<mode><Vel>): New pattern. |
| * config/aarch64/aarch64.c (emit_insr): New function. |
| (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise. |
| (aarch64_sve_expand_vector_init_insert_elems): Likewise. |
| (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise. |
| (aarch64_sve_expand_vector_init): Define two overloaded functions. |
| |
| 2019-06-03 Alejandro Martinez <alejandro.martinezvicente@arm.com> |
| |
| PR tree-optimization/90681 |
| * internal-fn.c (mask_load_direct): Mark as non-vectorizable again. |
| * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a |
| special case for SLP, but fail on non-groupped loads. |
| |
| 2019-06-03 Martin Liska <mliska@suse.cz> |
| |
| * cfg.c (debug): Use TDF_DETAILS for debug and |
| print edge info only once. |
| |
| 2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org> |
| |
| PR fortran/90539 |
| * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor. |
| |
| 2019-06-01 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/90694 |
| * tree-pretty-print.c (dump_generic_node): Add parentheses. |
| |
| 2019-05-31 Jan Hubicka <jh@suse.cz> |
| |
| * alias.c: Include ipa-utils.h. |
| (get_alias_set): Try to complete ODR type via ODR type hash lookup. |
| * ipa-devirt.c (prevailing_odr_type): New. |
| * ipa-utils.h (previaling_odr_type): Declare. |
| |
| 2019-05-31 H.J. Lu <hongjiu.lu@intel.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| |
| PR target/89355 |
| * config/i386/i386-features.c (rest_of_insert_endbranch): Remove |
| NOTE_INSN_DELETED_LABEL check. |
| |
| 2019-05-31 Prachi Godbole <prachi.godbole@imgtec.com> |
| Robert Suchanek <robert.suchanek@mips.com> |
| |
| * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st |
| and 3rd operands of the fmadd/fmsub/maddv builtin. |
| |
| 2019-05-31 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define. |
| * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional |
| on OMP_SIMD if not nested inside of worksharing loop that also has |
| lastprivate conditional clause for the same decl. |
| (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed. |
| * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also |
| on simd. |
| (lower_rec_input_clauses): Likewise. Handle lastprivate conditional |
| on simd construct. |
| (lower_lastprivate_conditional_clauses): Handle lastprivate conditional |
| on simd construct. |
| (lower_lastprivate_clauses): Likewise. |
| (lower_omp_sections): Call lower_lastprivate_conditional_clauses before |
| calling lower_rec_input_clauses. |
| (lower_omp_for): Likewise. |
| (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_ |
| clause on simd construct. |
| * omp-expand.c (expand_omp_simd): Initialize cond_var if |
| OMP_CLAUSE__CONDTEMP_ clause is present. |
| |
| * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on |
| ivar and lvar. |
| |
| 2019-05-31 Xiong Hu Luo <luoxhu@linux.ibm.com> |
| |
| PR c/43673 |
| * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with |
| TEX_D32, TEX_D64 or TEX_D128. |
| |
| 2019-05-31 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd (~(vec?cst1:cst2)): New transformation. |
| |
| 2019-05-31 Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator. |
| ((size_t)(A /[ex] B) CMP C): New transformation. |
| |
| 2019-05-31 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/md.texi: Document define_insn_and_rewrite. |
| * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code. |
| * gensupport.c (queue_elem): Update comment. |
| (replace_operands_with_dups): New function. |
| (gen_rewrite_sequence): Likewise. |
| (process_rtx): Handle DEFINE_INSN_AND_REWRITE. |
| * read-rtl.c (apply_subst_iterator): Likewise. |
| (add_condition_to_rtx, named_rtx_p): Likewise. |
| (rtx_reader::read_rtx_operand): Likewise. |
| * config/aarch64/aarch64-sve.md |
| (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to... |
| (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use |
| define_insn_and_rewrite. |
| (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites. |
| Remove separate define_split. |
| |
| 2019-05-31 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-alias.c (type_has_components_p): New function. |
| (aliasing_component_refs_p): Use it. |
| |
| 2019-05-31 Martin Liska <mliska@suse.cz> |
| |
| * gdbhooks.py: Add const_tree to TreePrinter. |
| |
| 2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> |
| |
| PR debug/86964 |
| * common.opt (feliminate-unused-debug-symbols): Enable by default. |
| * doc/invoke.texi (Debugging Options): Document new default of |
| -feliminate-unused-debug-symbols and remove restriction to 'stabs'. |
| |
| 2019-05-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/90671 |
| * tree-ssa-threadupdate.c (ssa_create_duplicates): If |
| template_block used to be empty on the first call, don't use |
| gsi_split_seq_after and gsi_insert_seq_after, but remember whole |
| seq with bb_seq and set it with set_bb_seq. |
| |
| 2019-05-31 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New. |
| |
| 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com> |
| Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/predicates.md (pcrel_address): New define_predicate. |
| (prefixed_mem_operand): Likewise. |
| (non_prefixed_mem_operand): Likewise. |
| * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New |
| prototype. |
| * config/rs6000/rs6000.c (print_operand_address): Handle |
| PC-relative addresses. |
| (mode_supports_prefixed_address_p): New function. |
| (rs6000_prefixed_address): New function. |
| * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define. |
| (SYMBOL_REF_PCREL_P): Likewise. |
| |
| 2019-05-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP. |
| (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP. |
| (gimplify_omp_for): If worksharing loop with lastprivate conditional |
| is nested inside of parallel region, add _condtemp_ clause to both. |
| * tree-nested.c (convert_nonlocal_omp_clauses, |
| convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of |
| assertion failure. |
| * omp-general.h (struct omp_for_data): Add have_pointer_condtemp |
| member. |
| * omp-general.c (omp_extract_for_data): Compute it. |
| * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_. |
| (lower_rec_input_clauses): Likewise. |
| (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_ |
| clause is already present, just add one further one after it. |
| (lower_lastprivate_clauses): Handle cond_ptr with array type. |
| (lower_send_shared_vars): Clear _condtemp_ vars. |
| (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical |
| or section or taskgroup. |
| * omp-expand.c (determine_parallel_type): Disallow combining only if |
| first OMP_CLAUSE__CONDTEMP_ has pointer type. Disallow combining |
| of parallel sections if OMP_CLAUSE__CONDTEMP_ is present. |
| (expand_omp_for_generic, expand_omp_for_static_nochunk, |
| expand_omp_for_static_chunk, expand_omp_for): Use |
| fd->have_pointer_condtemp instead of fd->lastprivate_conditional to |
| determine if a special set of API routines are needed and if condtemp |
| needs to be initialized, while always initialize cond_var if |
| fd->lastprivate_conditional is non-zero. |
| |
| 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com> |
| Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/constraints.md (eI): New constraint. |
| * config/rs6000/predicates.md (cint34_operand): New predicate. |
| * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define. |
| (SIGNED_34BIT_OFFSET_P): Likewise. |
| * doc/md.texi (eI): Document constraint. |
| |
| 2019-05-30 Sylvia Taylor <sylvia.taylor@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (*fabd<mode>3): New. |
| |
| 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com> |
| Michael Meissner <meissner@linux.ibm.com> |
| |
| * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define. |
| (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS. |
| (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE. |
| (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR. |
| (OTHER_FUTURE_MASKS): Likewise. |
| (POWERPC_MASKS): Likewise. |
| * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is |
| specified without -mprefixed-addr or -mcpu=future. Error if |
| -mprefixed-addr is specified without -mcpu=future. |
| (rs6000_opt_masks): Add entry for prefixed-addr. |
| * rs6000.opt (mprefixed-addr): New option. |
| |
| 2019-05-30 Sam Tebbs <sam.tebbs@arm.com> |
| |
| * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add |
| cfun->is_thunk check. |
| |
| 2019-05-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght |
| to length. |
| |
| 2019-05-30 Martin Liska <mliska@suse.cz> |
| |
| * gdbinit.in: Fix 'ptc' command. Add trt |
| that prints TREE_TYPE($). |
| |
| 2019-05-29 Bill Schmidt <wschmidt@linux.ibm.com> |
| Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel |
| calls here... |
| (rs6000_indirect_call_template_1): ...and here. |
| (rs6000_pltseq_template): Handle plt_pcrel34. Rework tocsave, |
| plt16_ha, plt16_lo, mtctr indirect calls. Use |
| rs6000_pltseq_enum. |
| (rs6000_decl_ok_for_sibcall): New function. |
| (rs6000_function_ok_for_sibcall): Refactor. |
| (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel. |
| (rs6000_call_aix): Don't emit toc restore rtl for indirect calls |
| when pcrel. Reorganize. |
| (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel. |
| * rs6000.h (rs6000_pltseq_enum): New enum. |
| * rs6000.md (UNSPEC_PLT_PCREL): New unspec. |
| (*pltseq_tocsave): Use rs6000_pltseq_enum. |
| (*pltseq_plt16_ha): Likewise. |
| (*pltseq_plt16_lo): Likewise. |
| (*pltseq_mtctr): Likewise. |
| (*pltseq_plt_pcrel): New insn. |
| (*call_local_aix): Handle @notoc calls. |
| (*call_value_local_aix): Likewise. |
| (*call_nonlocal_aix): Adjust lengths for pcrel calls. |
| (*call_value_nonlocal_aix): Likewise. |
| (*call_indirect_pcrel): New insn. |
| (*call_value_indirect_pcrel): Likewise. |
| |
| 2019-05-29 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (*save_multiple<mode>): Rename from |
| save_multiple<mode>. |
| (*restore_multiple<mode>): Rename from restore_multiple<mode>. |
| (*restore_multiple_and_return<mode>): Rename from |
| restore_multiple_and_return<mode>. |
| (*restore_multiple_leave_return<mode>): Rename from |
| restore_multiple_leave_return<mode>. |
| |
| 2019-05-29 Yoshinori Sato <ysato@users.sourceforge.jp> |
| |
| * config.gcc (rx-*-linux*): New target. |
| * config/rx/elf.opt: New file. |
| * config/rx/linux.h: Likewise. |
| * config/rx/t-linux: Likewise. |
| * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined, |
| make it zero. |
| * config/rx/rx.h (ASM_APP_ON): Allow to be overridden. |
| (ASM_APP_OFF): Likewise. |
| * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were |
| moved elsewhere. |
| |
| 2019-05-29 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main |
| variants are pointer equivalent. |
| |
| 2019-05-29 Alejandro Martinez <alejandro.martinezvicente@arm.com> |
| |
| * config/aarch64/aarch64-c.c: Added TARGET_SVE2. |
| * config/aarch64/aarch64-sve2.md: New file. |
| (<u>avg<mode>3_floor): New pattern. |
| (<u>avg<mode>3_ceil): Likewise. |
| (*<sur>h<addsub><mode>): Likewise. |
| * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2. |
| * config/aarch64/aarch64.md: Include aarch64-sve2.md. |
| |
| 2019-05-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/90543 |
| * optc-save-gen.awk: In cl_optimization_print, use correct condition |
| for var_opt_string printing. In cl_optimization_print_diff, print |
| (null) instead of invoking undefined behavior if one of the |
| var_opt_string pointers is NULL and use && instead of first || in the |
| guarding condition. For var_target_other options, handle const char * |
| target variables similarly to const char * optimize node variables. |
| |
| 2019-05-29 Sam Tebbs <sam.tebbs@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add |
| AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716. |
| * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins): |
| Add autib1716 and pacib1716 initialisation. |
| * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks |
| for autib1716 and pacib1716. |
| * config/aarch64/aarch64-protos.h (aarch64_key_type, |
| aarch64_post_cfi_startproc): Define. |
| * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern. |
| * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection, |
| aarch64_handle_pac_ret_protection): Set default sign key to A. |
| * config/aarch64/aarch64.c (aarch64_expand_epilogue, |
| aarch64_expand_prologue): Add check for b-key. |
| * config/aarch64/aarch64.c (aarch64_ra_sign_key, |
| aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define. |
| * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define. |
| * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key". |
| * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716, |
| UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716, |
| UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP. |
| * config/aarch64/aarch64.md (do_return): Add check for b-key. |
| * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace |
| pauth_hint_num_a with pauth_hint_num. |
| * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace |
| pauth_hint_num_a with pauth_hint_num. |
| * config/aarch64/aarch64.opt (msign-return-address=): Deprecate. |
| * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP, |
| UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP. |
| * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716, |
| UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716. |
| * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716, |
| UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP, |
| UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP. |
| * config/aarch64/iterators.md (pauth_hint_num_a): Replace |
| UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and |
| UNSPEC_AUTIA1716 respectively. |
| * config/aarch64/iterators.md (pauth_hint_num_a): Rename to |
| pauth_hint_num and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP, |
| UNSPEC_PACIB1716, UNSPEC_AUTIB1716. |
| * doc/invoke.texi (-mbranch-protection): Add b-key type. |
| * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename |
| UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP. |
| |
| 2019-05-29 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.c (struct gimplify_omp_ctx): Add clauses member. |
| (gimplify_scan_omp_clauses): Initialize ctx->clauses. |
| (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional |
| explicit clause on combined parallel into implicit shared clause. |
| (gimplify_adjust_omp_clauses): Move lastprivate conditional clause |
| and firstprivate if the decl has one too from combined parallel to |
| the worksharing construct. |
| |
| 2019-05-28 Bill Schmidt <wschmidt@linux.ibm.com> |
| Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define. |
| |
| 2019-05-28 Michael Meissner <meissner@linux.ibm.com> |
| |
| * rtl.h (LABEL_REF_P): New #define. |
| |
| 2019-05-28 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment. |
| |
| 2019-05-28 Alejandro Martinez <alejandro.martinezvicente@arm.com> |
| |
| * internal-fn.c: Marked mask_load_direct as vectorizable. |
| * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo. |
| * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be |
| combined even if masks different with allow_slp_p param. |
| (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups. |
| * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to |
| dissolve SLP-only vectorizable groups when SLP has been discarded. |
| (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed. |
| * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads |
| masks. |
| (vect_build_slp_tree_1): Fixed comment typo. |
| (vect_build_slp_tree_2): Include masks from masked loads in SLP tree. |
| * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked |
| loads for SLP only. |
| * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only |
| vectorizable. |
| * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise. |
| |
| 2019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf): |
| Remove obsolete use_thunk reference. |
| * config/i386/i386.c (x86_output_mi_thunk): Likewise. |
| * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise. |
| * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise. |
| * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise. |
| * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. |
| * config/sh/sh.c (sh_output_mi_thunk): Likewise. |
| * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. |
| * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise. |
| * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise. |
| |
| 2019-05-28 Nathan Sidwell <nathan@acm.org> |
| |
| * tree.h (IDENTIFIER_ANON_P): New. |
| (anon_aggrname_format, anon_aggname_p): Don't declare. |
| (make_anon_name): Declare. |
| * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P. |
| (hash_tree): Likewise. |
| * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise. |
| * tree.c (anon_aggrname_p, anon_aggrname_format): Delete. |
| (anon_cnt, make_anon_name): New. |
| |
| 2019-05-28 Martin Liska <mliska@suse.cz> |
| |
| PR other/90315 |
| * opts-global.c (decode_options): Print help for all |
| help_option_arguments. |
| * opts.c (print_help): Add new argument. |
| (common_handle_option): Remember all values into |
| help_option_arguments. |
| * opts.h (print_help): Add new argument. |
| |
| 2019-05-28 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/90555 |
| * ipa-icf-gimple.c (func_checker::compare_loops): New function. |
| * ipa-icf-gimple.h (func_checker::compare_loops): Likewise. |
| (func_checker::compare_bb): Call compare_loops. |
| |
| 2019-05-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional |
| on sections construct. |
| * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections |
| construct. |
| (lower_omp_sections): Handle lastprivate conditional. |
| (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with |
| lastprivate_conditional_map. |
| * omp-expand.c (expand_omp_sections): Handle lastprivate conditional. |
| |
| * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered, |
| critical, taskgroup and section regions when looking for a region |
| with non-NULL lastprivate_conditional_map. |
| |
| 2019-05-27 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (ix86_gen_add3): Remove indirect function. |
| (*ix86_gen_sub3): Ditto. |
| (*ix86_gen_sub3_carry): Ditto. |
| (*ix86_gen_one_cmpl2): Ditto. |
| (*ix86_gen_andsp): Ditto. |
| (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3. |
| (gen_and2_insn): New static function. |
| (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp. |
| Use gen_add3_insn instead of ix86_gen_add3. |
| (ix86_expand_split_stack_prologue): Use gen_add2_insn |
| instead of ix86_gen_add3. |
| (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3. |
| Use gen_sub3_insn instead of ix86_gen_sub3. |
| * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn |
| instead of ix86_gen_add3. |
| (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of |
| ix86_gen_add3. Use gen_sub3_insn instead of ix86_gen_sub3. |
| (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3. |
| * config/i386/i386-options.c (ix86_option_override_internal): |
| Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry, |
| ix86_gen_one_cmpl2 and ix86_gen_andsp. |
| |
| 2019-05-27 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index |
| and DW_OP_GNU_const_index opcodes. |
| |
| 2019-05-27 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (STACK_SIZE_MODE): Define. |
| |
| 2019-05-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90637 |
| * tree-ssa-sink.c (statement_sink_location): Honor the |
| computed sink location for single-uses. |
| |
| 2019-05-27 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/90610 |
| * match.pd (vec_perm): Avoid clobbering op0 when not generating |
| a bit-insert. |
| |
| 2019-05-26 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (@sub<mode>3_carry): Rename |
| from sub<mode>3_carry. |
| (@leave_<mode>): New expander. |
| (*leave): Rename from leave. |
| (*leave_rex64): Rename from leave_rex64. |
| (@monitorx_<mode>): Rename from monitorx_<mode>. |
| (@clzero_<mode>): Rename from clzero_<mode>. |
| * config/i386/sse.md (@sse3_monitor_<mode>): Rename |
| from sse3_monitor_<mode>. |
| * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function. |
| (*ix86_gen_leave): Ditto. |
| (*ix86_gen_monitor): Ditto. |
| (*ix86_gen_monitorx): Ditto. |
| (*ix86_gen_clzero): Ditto. |
| (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave. |
| * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1): |
| Use gen_sub3_carry instead of ix86_gen_sub3_carry. |
| (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>: |
| Use gen_sse3_monitor instead of ix86_gen_monitor. |
| <case IX86_BUILTIN_MONITORX>: Use gen_monitorx |
| instead of ix86_gen_monitorx. |
| <case IX86_BUILTIN_CLZERO>: Use gen_clzero |
| instead of ix86_gen_clzero. |
| * config/i386/i386-options.c (ix86_option_override_internal): |
| Do not initialize ix86_gen_leave, ix86_gen_sub3_carry, |
| ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero. |
| |
| 2019-05-26 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (@tls_global_dynamic_64_<mode>): |
| Rename from tls_global_dynamic_64_<mode>. |
| (@tls_local_dynamic_base_64_<mode>): Rename from |
| tls_local_dynamic_base_64_<mode>. |
| * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64): |
| Remove indirect function. |
| (*ix86_gen_tls_local_dynamic_base_64): Ditto. |
| (legitimize_tls_address): Use gen_tls_global_dynamic_64 function |
| instead of ix86_gen_tls_global_dynamic_64. |
| Use gen_tls_local_dynamic_base_64 instead of |
| ix86_gen_tls_local_dynamic_base_64. |
| * config/i386/i386-options.c (ix86_option_override_internal): |
| Do not initialize ix86_gen_tls_global_dynamic_64 and |
| ix86_gen_tls_local_dynamic_base_64. |
| |
| 2019-05-26 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>) |
| Rename from pro_epilogue_adjust_stack_<mode>_add. |
| (@pro_epilogue_adjust_stack_sub_<mode>) |
| Rename from pro_epilogue_adjust_stack_<mode>_sub. |
| (@allocate_stack_worker_probe_<mode>): |
| Rename from allocate_stack_worker_probe_<mode>. |
| (allocate_stack): Use gen_allocate_stack_worker_probe. |
| (probe_stack): Use gen_probe_stack_1. |
| (@probe_stack_1_<mode>): Rename from probe_stack_<mode>. |
| (@adjust_stack_and_probe_<mode>): Rename from |
| adjust_stack_and_probe<mode>. |
| (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>. |
| (stack_protect_set): Use gen_stack_protect_set_1. |
| (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>. |
| (stack_protect_test): Use gen_stack_protect_test_1. |
| (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>. |
| * config/i386/i386.c (*ix86_gen_allocate_stack_worker): |
| Remove indirect function. |
| (*ix86_gen_adjust_stack_and_probe): Ditto. |
| (*ix86_gen_probe_stack_range): Ditto. |
| (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add |
| instead of gen_pro_epilogue_adjust_stack_{si,di}_add. |
| (ix86_adjust_stack_and_probe_stack_clash): Use |
| gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe. |
| (ix86_adjust_stack_and_probe): Ditto. |
| (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead |
| of ix86_gen_probe_stack_range. |
| (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub |
| instead of gen_pro_epilogue_adjust_stack_{si,di}_sub. |
| * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p): |
| Include insn-opinit.h. Use code_for_stack_protect_test_1 instead of |
| CODE_FOR_stack_protect_test_{si,di}. |
| * config/i386/i386-options.c (ix86_option_override_internal): |
| Do not initialize ix86_gen_allocate_stack_worker, |
| ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range. |
| |
| 2019-05-26 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/invoke.texi (Link Options): Many editorial changes around |
| -flinker-output. |
| |
| 2019-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove |
| pre-Solaris 11 referene and most Studio compiler details. |
| |
| 2019-05-24 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR target/90530 |
| * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from |
| DImode to SImode in floating-point registers on 64-bit target. |
| * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to |
| register_operand in xmpyu patterns. |
| |
| 2019-05-24 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_. |
| * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of |
| OMP_CLAUSE__REDUCTEMP_. |
| * tree.c (omp_clause_num_ops, omp_clause_code_name): Add |
| OMP_CLAUSE__CONDTEMP_. |
| (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_. |
| * tree-pretty-print.c (dump_omp_clause): Likewise. |
| * tree-nested.c (convert_nonlocal_omp_clauses, |
| convert_local_omp_clauses): Likewise. |
| * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants |
| instead of decimal. Add GOVD_LASTPRIVATE_CONDITIONAL. |
| (gimplify_scan_omp_clauses): Don't reject lastprivate conditional |
| on OMP_FOR. |
| (gimplify_omp_for): Warn and disable conditional modifier from |
| lastprivate on loop iterators. |
| * omp-general.h (struct omp_for_data): Add lastprivate_conditional |
| member. |
| * omp-general.c (omp_extract_for_data): Initialize it. |
| * omp-low.c (struct omp_context): Add lastprivate_conditional_map |
| member. |
| (delete_omp_context): Delete it. |
| (lower_lastprivate_conditional_clauses): New function. |
| (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments, |
| handle lastprivate conditional clauses. |
| (lower_reduction_clauses): Add CLIST argument, emit it into |
| the critical section if any. |
| (lower_omp_sections): Adjust lower_lastprivate_clauses and |
| lower_reduction_clauses callers. |
| (lower_omp_for_lastprivate): Add CLIST argument, pass it through |
| to lower_lastprivate_clauses. |
| (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust |
| lower_omp_for_lastprivate and lower_reduction_clauses callers, emit |
| clist into a critical section if not emitted there already by |
| lower_reduction_clauses. |
| (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses |
| callers. |
| (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate |
| conditional variables. |
| * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_ |
| clause is present. |
| (expand_omp_for_generic, expand_omp_for_static_nochunk, |
| expand_omp_for_static_chunk): Handle lastprivate conditional. |
| (expand_omp_for): Handle fd.lastprivate_conditional like |
| fd.have_reductemp. |
| |
| 2019-05-24 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/gcn/gcn-run.c (main): Set a non-zero return value if the |
| kernel does not exit cleanly. |
| * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb. |
| |
| 2019-05-24 Jason Merrill <jason@redhat.com> |
| |
| Revert: |
| * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE. |
| |
| 2019-05-24 Richard Biener <rguenther@suse.de> |
| |
| PR testsuite/90607 |
| * tree-loop-distribution.c (struct partition): Add location |
| member. |
| (partition_alloc): Initialize all fields. |
| (generate_memset_builtin): Use the location recorded in the |
| partition for the generated call. |
| (generate_memcpy_builtin): Likewise. |
| (classify_partition): Record the location of a single store |
| as location for the partition. |
| |
| 2019-05-24 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry |
| for lo-part. |
| |
| 2019-05-24 Matthew Malcomson <matthew.malcomson@arm.com> |
| |
| PR target/90588 |
| * common/config/aarch64/aarch64-common.c |
| (aarch64_rewrite_selected_cpu): Change local temporary variable |
| type from unsigned long to uint64_t. |
| * config/aarch64/aarch64-protos.h (aarch64_parse_extension, |
| aarch64_get_extension_string_for_isa_flags): Change declaration to |
| match new definition by replacing unsigned long with uint64_t. |
| |
| 2019-05-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/90568 |
| * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call |
| gen_attr_type just once instead of 4-7 times. Formatting fixes. |
| Handle stack_protect_test_<mode> codegen similarly to corresponding |
| sub instruction. |
| |
| 2019-05-23 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/i386/darwin.h: Reject -mfentry*. |
| * doc/sourcebuild.texi: Document mfentry target support. |
| |
| 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p): |
| Rename to rs6000_global_entry_point_prologue_needed_p. Return |
| false for PC-relative functions. |
| (rs6000_output_function_prologue): Change called function name to |
| rs6000_global_entry_point_prologue_needed_p. Emit ".localentry |
| name,1" for PC-relative functions. |
| (rs6000_elf_declare_function_name): Change called function name to |
| rs6000_global_entry_point_prologue_needed_p. |
| |
| 2019-05-23 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/90552 |
| * config/i386/i386.c (gen_rtx_cost): |
| Use ix86_tune_cost instead of ix86_cost. |
| |
| 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com> |
| Michael Meissner <meissner@linux.ibm.com> |
| Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add |
| OPTION_MASK_PCREL. |
| (POWERPC_MASKS): Add OPTION_MASK_PCREL. |
| * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype. |
| (rs6000_fndecl_pcrel_p): Likewise. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Report |
| error if -mpcrel is requested without -mcpu=future. |
| (rs6000_opt_masks): Add entry for pcrel. |
| (rs6000_fndecl_pcrel_p): New function. |
| (rs6000_pcrel_p): Likewise. |
| * config/rs6000/rs6000.opt (mpcrel): New option. |
| * doc/invoke.texi: Document -mpcrel and -mno-pcrel. |
| |
| 2019-05-23 Jan Hubicka <jh@suse.cz> |
| Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/90576 |
| * tree-ssa-alias.c (compare_sizes): Remove dead calls to |
| poly_int_tree_p. |
| (aliasing_component_refs_p): Fix three way size compare conditional; |
| give up earlier in case we can not decide on equivalence. |
| |
| 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com> |
| Michael Meissner <meissner@linux.ibm.com> |
| Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config.gcc: Add future cpu. |
| * config/rs6000/driver-rs6000.c (asm_names): Add future cpu. |
| * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New |
| #define. |
| (POWERPC_MASKS): Add OPTION_MASK_FUTURE. |
| (RS6000_CPU): New instantiation for future cpu. |
| * config/rs6000/rs6000-opts.h (enum processor_type): Add |
| PROCESSOR_FUTURE. |
| * config/rs6000/rs6000-string.c (expand_compare_loop): Treat |
| PROCESSOR_FUTURE like PROCESSOR_POWER9 for now. |
| * config/rs6000/rs6000-tables.opt: Regenerate. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat |
| PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now. |
| (rs6000_machine_from_flags): Handle future cpu. |
| (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like |
| PROCESSOR_POWER9 for now. |
| (rs6000_adjust_cost): Likewise. |
| (rs6000_issue_rate): Likewise. |
| (rs6000_register_move_cost): Likewise. |
| (rs6000_opt_masks): Add entry for future. |
| * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu. |
| (MASK_FUTURE): New #define. |
| * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu. |
| * config/rs6000/rs6000.opt (mfuture): New target option. |
| * doc/invoke.texi (mcpu): Add future cpu. |
| |
| 2019-05-23 Martin Liska <mliska@suse.cz> |
| |
| PR c++/90587 |
| * tree-ssa-uninit.c (value_sat_pred_p): The result of & |
| operation points to a temporary (pointed via tree_to_wide_ref) |
| that is out of scope after the &. |
| |
| 2019-05-23 Jonathan Wakely <jwakely@redhat.com> |
| |
| PR c++/90592 |
| * doc/extend.texi (Function Names): Add missing word. |
| |
| 2019-05-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88440 |
| * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns |
| at -O[2s]+. |
| * tree-loop-distribution.c (generate_memset_builtin): Fold the |
| generated call. |
| (generate_memcpy_builtin): Likewise. |
| (distribute_loop): Pass in whether to only distribute patterns. |
| (prepare_perfect_loop_nest): Also allow size optimization. |
| (pass_loop_distribution::execute): When optimizing a loop |
| nest for size allow pattern replacement. |
| |
| 2019-05-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/90568 |
| * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead |
| of xor. |
| |
| 2019-05-23 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/90570 |
| * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target |
| expression similarly to gimplify_decl_expr. |
| |
| 2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| * cse.c (cse_dump_path): s/dump_file/f. |
| |
| 2019-05-22 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c++/90462 |
| * diagnostic-format-json.cc: Include "selftest.h". |
| (json_from_expanded_location): Only add "file" key for non-NULL |
| file strings. |
| (json_from_location_range): Don't add "start" and "finish" |
| children if they are UNKNOWN_LOCATION. |
| (selftest::test_unknown_location): New selftest. |
| (selftest::test_bad_endpoints): New selftest. |
| (selftest::diagnostic_format_json_cc_tests): New function. |
| * json.cc (json::object::get): New function. |
| (selftest::test_object_get): New selftest. |
| (selftest::json_cc_tests): Call it. |
| * json.h (json::object::get): New decl. |
| * selftest-run-tests.c (selftest::run_tests): Call |
| selftest::diagnostic_format_json_cc_tests. |
| * selftest.h (selftest::diagnostic_format_json_cc_tests): New |
| decl. |
| |
| 2019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com> |
| Andrew Stubbs <amd@codesourcery.com> |
| |
| * config.gcc (gcc_cv_initfini_array): Set for AMD GCN. |
| * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New. |
| (kernel): Rename to... |
| (main_kernel): ... this. |
| (load_image): Load _init_array and _fini_array kernels. |
| (run): Add argument for kernel to run. |
| (main): Run init_array_kernel before main_kernel, and |
| fini_array_kernel after. |
| * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow |
| amdgpu_hsa_kernel attribute on functions. |
| (gcn_disable_constructors): Delete. |
| (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete. |
| * config/gcn/crt0.c (size_t): Define. |
| (_init_array, _fini_array): New. |
| (__preinit_array_start, __preinit_array_end, |
| __init_array_start, __init_array_end, |
| __fini_array_start, __fini_array_end): Declare weak references. |
| |
| 2019-05-22 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5. |
| |
| 2019-05-22 Jason Merrill <jason@redhat.com> |
| |
| * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE. |
| |
| 2019-05-22 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/88483 |
| * config/i386/i386-options.c (ix86_init_machine_status): Set |
| stack_frame_required to true. |
| * config/i386/i386.c (ix86_get_frame_size): New function. |
| (ix86_frame_pointer_required): Replace get_frame_size with |
| ix86_get_frame_size. |
| (ix86_compute_frame_layout): Likewise. |
| (ix86_find_max_used_stack_alignment): Changed to void. Set |
| stack_frame_required. |
| (ix86_finalize_stack_frame_flags): Always call |
| ix86_find_max_used_stack_alignment. Replace get_frame_size with |
| ix86_get_frame_size. |
| * config/i386/i386.h (machine_function): Add stack_frame_required. |
| |
| 2019-05-22 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition. |
| |
| 2019-05-22 Matthew Malcomson <matthew.malcomson@arm.com> |
| |
| * common/config/aarch64/aarch64-common.c |
| (struct aarch64_option_extension, struct processor_name_to_arch, |
| struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp, |
| aarch64_contains_opt, |
| aarch64_get_extension_string_for_isa_flags): Change type of |
| variables storing flags to uint64_t. |
| * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4, |
| sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags. |
| * config/aarch64/aarch64.c (struct processor, |
| aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu, |
| aarch64_validate_march, aarch64_override_options, |
| aarch64_option_print, aarch64_handle_attr_isa_flags, |
| aarch64_declare_function_name, aarch64_start_file): Make flag |
| variables uint64_t. |
| * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES, |
| AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3, |
| AARCH64_FL_SVE2_BITPERM): New macro feature flags. |
| * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t. |
| * config/aarch64/driver-aarch64.c |
| (struct aarch64_arch_extension, struct aarch64_core_data, |
| struct aarch64_arch_driver_info, host_detect_local_cpu): Make |
| flag variables uint64_t. |
| * doc/invoke.texi: Add documentation for new arguments. |
| |
| 2019-05-22 Richard Biener <rguenther@suse.de> |
| |
| * alias.c (ao_ref_from_mem): Move stack-slot sharing |
| rewrite ... |
| * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here. |
| |
| 2019-05-22 Martin Liska <mliska@suse.cz> |
| |
| PR lto/90500 |
| * doc/extend.texi: Document the change. |
| |
| 2019-05-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90450 |
| * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed. |
| (mem_ref_hasher::equal): Check it. |
| (mem_ref_alloc): Initialize it. |
| (gather_mem_refs_stmt): Set it. |
| |
| 2019-05-22 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.c (arith_code_with_undefined_signed_overflow): |
| Add ABS_EXPR. |
| (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR |
| as ABSU_EXPR. |
| |
| 2019-05-22 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.h (ASM_OPT_ANY): Define. |
| (ASM_CPU_SPEC): Conditionally add -many. |
| * config/rs6000/rs6000.c (rs6000_machine): New static var. |
| (rs6000_machine_from_flags, emit_asm_machine): New functions.. |
| (rs6000_file_start): ..extracted from here, and modified to |
| test all ISA bits. |
| (rs6000_output_function_prologue): Emit .machine as necessary. |
| |
| 2019-05-22 Hans-Peter Nilsson <hp@axis.com> |
| |
| PR middle-end/90553 |
| * ira-lives.c (process_bb_node_lives): Consider defs |
| for a call insn to be die before the call, not after. |
| |
| * function.c (assign_parm_setup_block): Raise alignment of |
| stacked parameter only for STRICT_ALIGNMENT targets. |
| |
| 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wz"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wz. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7". |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wl"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wl. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6". |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wm"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wm. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v". |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wk"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wk. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v". |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wj"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wj. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v". |
| (VS_64dm): Delete. |
| * config/rs6000/vsx.md: Ditto. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wh"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wh. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v". |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-21 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/90547 |
| * config/i386/i386.md (anddi_1 to andsi_1_zext splitter): |
| Avoid calling gen_lowpart with CONST operand. |
| |
| 2019-05-21 Alexandre Oliva <aoliva@redhat.com> |
| |
| * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add |
| field template_last_to_copy. |
| (ssa_create_duplicates): Set it, and use it. Attempt to |
| preserve more debug stmts. |
| |
| 2019-05-21 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (VF1_AVX2): New mode iterator. |
| (signbit<mode>2): New expander |
| |
| 2019-05-21 James Clarke <jrtc27@jrtc27.com> |
| |
| PR bootstrap/87338 |
| * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL |
| instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL. |
| |
| 2019-05-21 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/cpuid.h (__cpuid): For 32bit targets, zero |
| %ebx and %ecx bafore calling cpuid with leaf 1 or |
| non-constant leaf argument. |
| |
| 2019-05-21 Alan Modra <amodra@gmail.com> |
| |
| PR target/90545 |
| * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase |
| power9 direct move cost. |
| |
| 2019-05-21 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/90510 |
| * fold-const.c (fold_read_from_vector): New function. |
| * fold-const.h (fold_read_from_vector): Declare. |
| * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for |
| single-element insert permutations. Canonicalize selector |
| further and fix issue with last commit. |
| |
| 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru> |
| |
| * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p |
| parameter with default value false to declaration. |
| (split_edges_for_insertion): New inline function. Wrapper for |
| split_critical_edges with for_edge_insertion_p = true. |
| * tree-cfg.c (split_critical_edges): Don't split non-critical |
| edges if for_edge_insertion_p is false. Fix whitespace. |
| * tree-ssa-pre.c (pass_pre::execute): Call |
| split_edges_for_insertion instead of split_critical_edges. |
| * tree-ssa-tail-merge.c (tail_merge_optimize): Ditto. |
| * tree-ssa-sink.c (pass_sink_code::execute): Ditto. |
| (pass_data_sink_code): Update function name in the comment. |
| |
| 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru> |
| |
| * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper |
| around is_value_included_in that knows how to handle BIT_AND_EXPR. |
| (is_pred_expr_subset_of): Use the new function. Handle more cases where |
| code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false |
| positives. |
| |
| 2019-05-21 Martin Liska <mliska@suse.cz> |
| |
| * config/rs6000/driver-rs6000.c (elf_platform): Do not use |
| an extra newline. |
| * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>. |
| (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and |
| vec_lvsr. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): |
| Quote a C type. |
| (rs6000_function_arg): Likewise. |
| (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot. |
| (rs6000_expand_ternop_builtin): Use interval syntax. |
| (get_element_number): Likewise. |
| (altivec_expand_builtin): Likewise. |
| (rs6000_get_function_versions_dispatcher): Quote target_clones. |
| |
| 2019-05-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/59813 |
| PR target/90418 |
| * function.h (struct function): Add calls_eh_return member. |
| * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when |
| gimplifying __builtin_eh_return call. |
| * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun |
| to cfun. |
| (expand_call_inline): Or in src_cfun->calls_eh_return into |
| dst_cfun->calls_eh_return. |
| * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if |
| cfun->calls_eh_return. |
| * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return. |
| * lto-streamer-out.c (output_struct_function_base): Write |
| calls_eh_return. |
| |
| 2019-05-20 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR rtl-optimization/43147 |
| * config/i386/i386.c (ix86_gimple_fold_builtin): Handle |
| IX86_BUILTIN_SHUFPD. |
| |
| 2019-05-20 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ... |
| (refs_may_alias_p_1): ... here; update stats. |
| (refs_may_alias_p): Do not update stats here. |
| |
| 2019-05-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR |
| doesn't produce pointers. |
| {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what |
| the first operand points to. |
| |
| 2019-05-20 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (compare_sizes): New function. |
| (sompare_type_sizes): New function |
| (aliasing_component_refs_p): Use it. |
| (indirect_ref_may_alias_decl_p): Likewise. |
| |
| 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/i386/sol2.h (CC1_SPEC): Reject -mx32. |
| |
| 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e. |
| (LIBLSAN_EARLY_SPEC): Likewise. |
| * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise. |
| |
| 2019-05-20 Martin Liska <mliska@suse.cz> |
| |
| * config/i386/i386.c (ix86_libc_has_fast_function): |
| Add ATTRIBUTE_UNUSED for the argument. |
| |
| 2019-05-20 Richard Biener <rguenther@suse.de> |
| |
| * gimple-match-head.c: Include vec-perm-indices.h. |
| * generic-match-head.c: Likewise. |
| * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h |
| is included. |
| * fold-const.c (fold_vec_perm): Export. |
| (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR... |
| (match.pd): ...here. |
| |
| 2019-05-20 Jakub Jelinek <jakub@redhat.com> |
| |
| * cfgloop.h (struct loop): Add simdlen member. |
| * cfgloopmanip.c (copy_loop_info): Copy simdlen as well. |
| * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present. |
| * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0 |
| as new argument to autovectorize_vector_sizes target hook. If |
| loop->simdlen, pick up vector size where the vectorization factor |
| is equal to loop->simd, and if there is none, fall back to the first |
| successful one. |
| (vect_transform_loop): Adjust autovectorize_vector_sizes target hook |
| caller. |
| * omp-low.c (omp_clause_aligned_alignment): Likewise. |
| * omp-general.c (omp_max_vf): Likewise. |
| * optabs-query.c (can_vec_mask_load_store_p): Likewise. |
| * tree-vect-slp.c (vect_slp_bb): Likewise. |
| * target.def (autovectorize_vector_sizes): Add ALL argument and |
| document it. |
| * doc/tm.texi: Adjust documentation. |
| * targhooks.c (default_autovectorize_vector_sizes): Add bool argument. |
| * targhooks.h (default_autovectorize_vector_sizes): Likewise. |
| * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add |
| bool argument. |
| * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise. |
| * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise. |
| * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise. |
| * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If |
| true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if |
| preferred vector size is not 512-bit or 256-bit, just put those |
| unpreferred ones last. |
| |
| 2019-05-20 Martin Liska <mliska@suse.cz> |
| |
| * targhooks.c (default_libc_has_fast_function): New function. |
| * targhooks.h (default_libc_has_fast_function): Likewise. |
| |
| 2019-05-20 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/90263 |
| * builtins.c (expand_builtin_memory_copy_args): When having a |
| target with fast mempcpy implementation do now use memcpy. |
| * config/i386/i386.c (ix86_libc_has_fast_function): New. |
| (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise. |
| * doc/tm.texi: Likewise. |
| * doc/tm.texi.in: Likewise. |
| * target.def: |
| * expr.c (emit_block_move_hints): Add 2 new arguments. |
| * expr.h (emit_block_move_hints): Bail out when libcall |
| to memcpy would be used. |
| |
| 2019-05-20 Martin Liska <mliska@suse.cz> |
| |
| * profile-count.c: Add vertical spacing in order |
| to separate functions. |
| * profile-count.h: Likewise. |
| |
| 2019-05-20 Martin Liska <mliska@suse.cz> |
| |
| * profile-count.h: Do not use full qualified |
| names if possible. |
| * profile-count.c (profile_count::to_frequency): Likewise. |
| |
| 2019-05-20 Martin Liska <mliska@suse.cz> |
| |
| * profile-count.h (enum profile_quality): Use capital letters |
| for enum value names. Use the adjusted names. |
| * profile-count.c: Use the adjusted names. |
| |
| 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wH"): |
| Delete. |
| (define_register_constraint "wI"): Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v" |
| resp. "d", or with "wa" as appropriate, all with "p8v". |
| * config/rs6000/vsx.md: Ditto. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wy"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wy. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v". |
| Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>". |
| (define_mode_attr Fisa): New. |
| * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v". |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wu"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wu. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa", |
| both with "p8v". |
| (define_mode_attr Fa): Delete. |
| * config/rs6000/vsx.md: Ditto. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wJ"): |
| Delete. |
| (define_register_constraint "wK"): Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v". |
| Replace "wK" constraint by "wH" with "p9v". |
| * config/rs6000/vsx.md: Ditto. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wb"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wb. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v". |
| * config/rs6000/vsx.md: Ditto. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md (define_register_constraint "wo"): |
| Delete. |
| * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete |
| RS6000_CONSTRAINT_wo. |
| * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. |
| (rs6000_init_hard_regno_mode_ok): Adjust. |
| * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v". |
| * config/rs6000/altivec.md: Ditto. |
| * doc/md.texi (Machine Constraints): Adjust. |
| |
| 2019-05-18 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin-c.c (darwin_register_objc_includes): Do not |
| prepend the sysroot when building gnu-runtime header search |
| paths. |
| |
| 2019-05-18 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c (darwin_file_end): Use switch_to_section () |
| instead of direct output of the asm. |
| |
| 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean |
| argument to be type bool (was int before). |
| (rs6000_emit_epilogue): Simplify some code. Declare some variables |
| at first use. Use type bool for some variables. Fix a theoretical |
| eh_return bug for svr4. |
| |
| 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (isa): New attribute. |
| (enabled): New attribute. |
| |
| 2019-05-17 Max Filippov <jcmvbkbc@gmail.com> |
| |
| * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call |
| assemble_start_function and assemble_end_function. |
| |
| 2019-05-17 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR middle-end/89433 |
| * omp-general.c (oacc_verify_routine_clauses): Change formal |
| parameters. Add checking if already marked with an OpenACC |
| 'routine' directive. Adjust all users. |
| |
| PR middle-end/89433 |
| * omp-general.c (oacc_build_routine_dims): Move some of its |
| processing into... |
| (oacc_verify_routine_clauses): ... this new function. |
| * omp-general.h (oacc_verify_routine_clauses): New prototype. |
| |
| 2019-05-17 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/rs6000.c (machopic_output_stub): Adjust the |
| formating of picbase labels to match other ports. |
| |
| 2019-05-17 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent |
| in the generated code. |
| |
| 2019-05-16 Martin Sebor <msebor@redhat.com> |
| |
| * builtins.c (expand_builtin_atomic_always_lock_free): Quote |
| identifiers, keywords, operators, and types in diagnostics. Correct |
| quoting, spelling, and sentence capitalization issues. |
| (expand_builtin_atomic_is_lock_free): Same. |
| (fold_builtin_next_arg): Same. |
| * cfgexpand.c (expand_one_var): Same. |
| (tree_conflicts_with_clobbers_p): Same. |
| (expand_asm_stmt): Same. |
| (verify_loop_structure): Same. |
| * cgraphunit.c (process_function_and_variable_attributes): Same. |
| * collect-utils.c (collect_execute): Same. |
| * collect2.c (maybe_run_lto_and_relink): Same. |
| (is_lto_object_file): Same. |
| (scan_prog_file): Same. |
| * convert.c (convert_to_real_1): Same. |
| * dwarf2out.c (dwarf2out_begin_prologue): Same. |
| * except.c (verify_eh_tree): Same. |
| * gcc.c (execute): Same. |
| (eval_spec_function): Same. |
| (run_attempt): Same. |
| (driver::set_up_specs): Same. |
| (compare_debug_auxbase_opt_spec_function): Same. |
| * gcov-tool.c (unlink_gcda_file): Same. |
| (do_merge): Same. |
| (do_rewrite): Same. |
| * gcse.c (gcse_or_cprop_is_too_expensive): Same. |
| * gimplify.c (gimplify_asm_expr): Same. |
| (gimplify_adjust_omp_clauses): Same. |
| * hsa-gen.c (gen_hsa_addr_insns): Same. |
| (gen_hsa_insns_for_load): Same. |
| (gen_hsa_cmp_insn_from_gimple): Same. |
| (gen_hsa_insns_for_operation_assignment): Same. |
| (gen_get_level): Same. |
| (gen_hsa_alloca): Same. |
| (omp_simple_builtin::generate): Same. |
| (gen_hsa_atomic_for_builtin): Same. |
| (gen_hsa_insns_for_call): Same. |
| * input.c (dump_location_info): Same. |
| * ipa-devirt.c (compare_virtual_tables): Same. |
| * ira.c (ira_setup_eliminable_regset): Same. |
| * lra-assigns.c (lra_assign): Same. |
| * lra-constraints.c (lra_constraints): Same. |
| * lto-streamer-in.c (lto_input_mode_table): Same. |
| * lto-wrapper.c (get_options_from_collect_gcc_options): Same. |
| (merge_and_complain): Same. |
| (compile_offload_image): Same. |
| (compile_images_for_offload_targets): Same. |
| (debug_objcopy): Same. |
| (run_gcc): Same. |
| (main): Same. |
| * opts.c (print_specific_help): Same. |
| (parse_no_sanitize_attribute): Same. |
| (print_help): Same. |
| (handle_param): Same. |
| * plugin.c (add_new_plugin): Same. |
| (parse_plugin_arg_opt): Same. |
| (try_init_one_plugin): Same. |
| * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords, |
| operators, and types in diagnostics. Correct quoting and spelling |
| issues. |
| * read-rtl-function.c (parse_edge_flag_token): Same. |
| (function_reader::parse_enum_value): Same. |
| * reg-stack.c (check_asm_stack_operands): Same. |
| * regcprop.c (validate_value_data): Same. |
| * sched-rgn.c (make_pass_sched_fusion): Same. |
| * stmt.c (check_unique_operand_names): Same. |
| * targhooks.c (default_target_option_pragma_parse): Same. |
| * tlink.c (recompile_files): Same. |
| * toplev.c (process_options): Same. |
| (do_compile): Same. |
| * trans-mem.c (diagnose_tm_1): Same. |
| (ipa_tm_scan_irr_block): Same. |
| (ipa_tm_diagnose_transaction): Same. |
| * tree-cfg.c (verify_address): Same. Use get_tree_code_name to |
| format a tree code name in a diagnostic. |
| (verify_types_in_gimple_min_lval): Same. |
| (verify_types_in_gimple_reference): Same. |
| (verify_gimple_call): Same. |
| (verify_gimple_assign_unary): Same. |
| (verify_gimple_assign_binary): Same. |
| (verify_gimple_assign_ternary): Same. |
| (verify_gimple_assign_single): Same. |
| (verify_gimple_switch): Same. |
| (verify_gimple_label): Same. |
| (verify_gimple_phi): Same. |
| (verify_gimple_in_seq): Same. |
| (verify_eh_throw_stmt_node): Same. |
| (collect_subblocks): Same. |
| (gimple_verify_flow_info): Same. |
| (do_warn_unused_result): Same. |
| * tree-inline.c (expand_call_inline): Same. |
| * tree-into-ssa.c (update_ssa): Same. |
| * tree.c (tree_int_cst_elt_check_failed): Same. |
| (tree_vec_elt_check_failed): Same. |
| (omp_clause_operand_check_failed): Same. |
| (verify_type_variant): Same. |
| (verify_type): Same. |
| * value-prof.c (verify_histograms): Same. |
| * varasm.c (assemble_start_function): Same. |
| |
| 2019-05-16 Martin Sebor <msebor@redhat.com> |
| |
| * config/i386/i386-expand.c (get_element_number): Quote keywords |
| and other internal names in diagnostics. Adjust other diagnostic |
| formatting issues noted by -Wformat-diag. |
| * config/i386/i386-features.c |
| (ix86_mangle_function_version_assembler_name): Same. |
| * config/i386/i386-options.c (ix86_handle_abi_attribute): Same. |
| * config/i386/i386.c (ix86_function_type_abi): Same. |
| (ix86_function_ms_hook_prologue): Same. |
| (classify_argument): Same. |
| (ix86_expand_prologue): Same. |
| (ix86_md_asm_adjust): Same. |
| (ix86_memmodel_check): Same. |
| |
| 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com> |
| |
| * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace |
| TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64 |
| and fpxx modes. |
| |
| 2019-05-17 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/90497 |
| * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX |
| intrinsics without SSE/SSE2/SSSE3. |
| * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW |
| check. |
| (*mmx_uavgv8qi3): Likewise. |
| |
| 2019-05-17 Richard Biener <rguenther@suse.de> |
| |
| * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping |
| VEC_PERM_EXPR as __VEC_PERM with -gimple. |
| |
| 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the |
| vec_sldw insn pattern. |
| |
| 2019-05-17 Richard Biener <rguenther@suse.de> |
| |
| * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree. |
| |
| 2019-05-17 Martin Liska <mliska@suse.cz> |
| |
| PR driver/90496 |
| * toplev.c (output_stack_usage): With LTO and sanitizer it |
| happens that a global ctor (_GLOBAL__sub_I_00099_0_main) |
| has no file location. |
| |
| 2019-05-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/90484 |
| * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that |
| sz0 is equal to sz1, instead return false in that case. |
| |
| * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF |
| has non-constant expression, force sctx.lane and use two |
| argument IFN_GOMP_SIMD_LANE instead of single argument. |
| * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE |
| two argument IFN_GOMP_SIMD_LANE without lhs. |
| * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond |
| member. |
| (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND): |
| Define. |
| (LOOP_REQUIRES_VERSIONING): Or in |
| LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND. |
| * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize |
| simd_if_cond. |
| (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0. |
| * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check |
| from simd if clause if needed. |
| |
| 2019-05-16 Richard Biener <rguenther@suse.de> |
| |
| * tree-affine.c (expr_to_aff_combination): New function split |
| out from... |
| (tree_to_aff_combination): ... here. |
| (aff_combination_expand): Avoid building a GENERIC tree. |
| |
| 2019-05-16 Max Filippov <jcmvbkbc@gmail.com> |
| |
| * cgraphunit.c (cgraph_node::expand_thunk): Remove |
| assemble_start_function and assemble_end_function calls. |
| * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call |
| assemble_start_function and assemble_end_function. |
| * config/arc/arc.c (arc_output_mi_thunk): Likewise. |
| * config/arm/arm.c (arm_output_mi_thunk): Likewise. |
| * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise. |
| * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise. |
| * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise. |
| * config/csky/csky.c (csky_output_mi_thunk): Likewise. |
| * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise. |
| * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise. |
| * config/i386/i386.c (x86_output_mi_thunk): Likewise. |
| * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise. |
| * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise. |
| * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk): |
| Likewise. |
| * config/mips/mips.c (mips_output_mi_thunk): Likewise. |
| * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise. |
| * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise. |
| * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise. |
| * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise. |
| * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise. |
| * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise. |
| * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise. |
| * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. |
| * config/s390/s390.c (s390_output_mi_thunk): Likewise. |
| * config/sh/sh.c (sh_output_mi_thunk): Likewise. |
| * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. |
| * config/spu/spu.c (spu_output_mi_thunk): Likewise. |
| * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk): |
| Likewise. |
| * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise. |
| * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise. |
| * config/vax/vax.c (vax_output_mi_thunk): Likewise. |
| |
| 2019-05-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (alias_stats): Add |
| aliasing_component_refs_p_may_alias and |
| aliasing_component_refs_p_no_alias. |
| (dump_alias_stats): Print aliasing_component_refs_p stats. |
| (aliasing_component_refs_p): Update stats. |
| |
| 2019-05-16 Martin Liska <mliska@suse.cz> |
| |
| PR lto/90500 |
| * multiple_target.c (expand_target_clones): Do not allow |
| target_clones being used with a symbol that is an alias. |
| |
| 2019-05-16 Vladislav Ivanishin <vlad@ispras.ru> |
| |
| PR tree-optimization/90394 |
| * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false |
| positives rather than ICE for cases where (code2 == NE_EXPR |
| && code1 == BIT_AND_EXPR). |
| |
| 2019-05-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR fortran/90329 |
| * tree-core.h (struct tree_decl_common): Document |
| decl_nonshareable_flag for PARM_DECLs. |
| * tree.h (DECL_HIDDEN_STRING_LENGTH): Define. |
| * calls.c (expand_call): Don't try tail call if caller |
| has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be |
| passed on the stack and callee needs to pass any arguments on the |
| stack. |
| * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use |
| else if instead of series of mutually exclusive ifs. Handle |
| DECL_HIDDEN_STRING_LENGTH for PARM_DECLs. |
| * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. |
| |
| * lto-streamer.h (LTO_major_version): Bump to 9. |
| |
| 2019-05-16 Jun Ma <JunMa@linux.alibaba.com> |
| |
| PR tree-optimization/90106 |
| * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add |
| new parameter as new internal function call, also move it to new |
| basic block. |
| (use_internal_fn): Pass internal function call to |
| shrink_wrap_one_built_in_call_with_conds. |
| |
| 2019-05-15 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set |
| max_vf to 1. |
| * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear |
| safelen_int and set loop->dont_vectorize. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/i386-builtin.def: Enable MMX intrinsics with |
| SSE/SSE2/SSSE3. |
| * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins): |
| Likewise. |
| * config/i386/i386-expand.c (ix86_expand_builtin): Allow |
| SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE. |
| * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__ |
| is defined. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (*vec_dupv2sf): Changed to |
| define_insn_and_split to support SSE emulation. |
| (*vec_extractv2sf_0): Likewise. |
| (*vec_extractv2sf_1): Likewise. |
| (*vec_extractv2si_0): Likewise. |
| (*vec_extractv2si_1): Likewise. |
| (*vec_extractv2si_zext_mem): Likewise. |
| (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE. |
| (vec_extractv2sf_1 splitter): Likewise. |
| (vec_extractv2sfsf): Likewise. |
| (vec_setv2si): Likewise. |
| (vec_extractv2si_1 splitter): Likewise. |
| (vec_extractv2sisi): Likewise. |
| (vec_setv4hi): Likewise. |
| (vec_extractv4hihi): Likewise. |
| (vec_setv8qi): Likewise. |
| (vec_extractv8qiqi): Likewise. |
| (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass |
| TARGET_MMX_WITH_SSE ix86_expand_vector_extract. |
| (vec_extractv2sisi): Likewise. |
| (vec_extractv4hihi): Likewise. |
| (vec_extractv8qiqi): Likewise. |
| (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass |
| TARGET_MMX_WITH_SSE to ix86_expand_vector_init. |
| (vec_initv2sisi): Likewise. |
| (vec_initv4hihi): Likewise. |
| (vec_initv8qiqi): Likewise. |
| (vec_setv2si): Also allow TARGET_MMX_WITH_SSE. Pass |
| TARGET_MMX_WITH_SSE to ix86_expand_vector_set. |
| (vec_setv4hi): Likewise. |
| (vec_setv8qi): Likewise. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow |
| TARGET_MMX_WITH_SSE. |
| (MMXMODE:*mov<mode>_internal): Likewise. |
| (MMXMODE:movmisalign<mode>): Likewise. |
| |
| 2019-05-15 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89021 |
| * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute. |
| * config/i386/sse.md (sse2_cvtpi2pd): Ditto. |
| (sse2_cvtpd2pi): Ditto. |
| (sse2_cvttpd2pi): Ditto. |
| (*vec_concatv2sf_sse4_1): Ditto. |
| (*vec_concatv2sf_sse): Ditto. |
| (*vec_concatv2si_sse4_1): Ditto. |
| (*vec_concatv2si): Ditto. |
| (*vec_concatv4si_0): Ditto. |
| (*vec_concatv2di_0): Ditto. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (abs<mode>2): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (ssse3_palignrdi): Changed to |
| define_insn_and_split to support SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to |
| define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add |
| SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX |
| or TARGET_MMX_WITH_SSE. |
| (*ssse3_pmulhrswv4hi3): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3): |
| Changed to define_insn_and_split to support SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3): |
| Changed to define_insn_and_split to support SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_<emms>): Renamed to ... |
| (*mmx_<emms>): This. |
| (mmx_<emms>): New expander. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation |
| support. |
| (*sse2_umulv1siv1di3): Add SSE2 emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (sse_movntq): Add SSE2 emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_psadbw): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and |
| TARGET_MMX_WITH_SSE. |
| (*mmx_uavgv4hi3): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX |
| and TARGET_MMX_WITH_SSE. |
| (*mmx_uavgv8qi3): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2 |
| maskmovdqu for __MMX_WITH_SSE__. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check |
| TARGET_MMX and TARGET_MMX_WITH_SSE. |
| (*mmx_umulv4hi3_highpart): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_pmovmskb): Changed to |
| define_insn_and_split to support SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX |
| and TARGET_MMX_WITH_SSE. |
| (mmx_<code>v8qi3): Likewise. |
| (smaxmin:<code>v4hi3): New. |
| (umaxmin:<code>v8qi3): Likewise. |
| (smaxmin:*mmx_<code>v4hi3): Add SSE emulation. |
| (umaxmin:*mmx_<code>v8qi3): Likewise. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and |
| TARGET_MMX_WITH_SSE. |
| (*mmx_pinsrw): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_pextrw): Add SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (sse_cvtpi2ps): Changed to |
| define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add |
| SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation. |
| (sse_cvttps2pi): Likewise. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and |
| TARGET_MMX_WITH_SSE. |
| (mmx_pshufw_1): Add SSE emulation. |
| (*vec_dupv4hi): Changed to define_insn_and_split and also allow |
| TARGET_MMX_WITH_SSE to support SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/constraints.md (Yw): New constraint. |
| * config/i386/mmx.md (*vec_dupv2si): Changed to |
| define_insn_and_split and also allow TARGET_MMX_WITH_SSE to |
| support SSE emulation. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_eq<mode>3): Also allow |
| TARGET_MMX_WITH_SSE. |
| (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE. Add SSE |
| support. |
| (mmx_gt<mode>3): Likewise. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_andnot<mode>3): Also allow |
| TARGET_MMX_WITH_SSE. Add SSE support. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow |
| TARGET_MMX_WITH_SSE. |
| (any_logic:<code><mode>3): New. |
| (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE. |
| Add SSE support. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_ashr<mode>3): Also allow |
| TARGET_MMX_WITH_SSE. Add SSE emulation. |
| (mmx_<shift_insn><mode>3): Likewise. |
| (ashr<mode>3): New. |
| (<shift_insn><mode>3): Likewise. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. |
| (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. Add SSE support. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow |
| TARGET_MMX_WITH_SSE. |
| (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add |
| SSE support. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (mmx_mulv4hi3): Also allow |
| TARGET_MMX_WITH_SSE. |
| (mulv4hi3): New. |
| (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE. Add SSE |
| support. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI. |
| (plusminus:mmx_<plusminus_insn><mode>3): Check |
| TARGET_MMX_WITH_SSE. |
| (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise. |
| (<plusminus_insn><mode>3): New. |
| (*mmx_<plusminus_insn><mode>3): Add SSE emulation. |
| (*mmx_<plusminus_insn><mode>3): Likewise. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function. |
| * config/i386/i386-protos.h (ix86_split_mmx_punpck): New |
| prototype. |
| * config/i386/mmx.m (mmx_punpckhbw): Changed to |
| define_insn_and_split to support SSE emulation. |
| (mmx_punpcklbw): Likewise. |
| (mmx_punpckhwd): Likewise. |
| (mmx_punpcklwd): Likewise. |
| (mmx_punpckhdq): Likewise. |
| (mmx_punpckldq): Likewise. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| Uros Bizjak <ubizjak@gmail.com> |
| |
| PR target/89021 |
| * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx): |
| New function. |
| (ix86_split_mmx_pack): Likewise. |
| * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx): |
| New prototype. |
| (ix86_split_mmx_pack): Likewise. |
| * config/i386/i386.md (mmx_isa): New. |
| (enabled): Also check mmx_isa. |
| * config/i386/mmx.md (any_s_truncate): New code iterator. |
| (s_trunsuffix): New code attr. |
| (mmx_packsswb): Removed. |
| (mmx_packssdw): Likewise. |
| (mmx_packuswb): Likewise. |
| (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate |
| MMX packsswb/packuswb with SSE2. |
| (mmx_packssdw): Likewise. |
| * config/i386/predicates.md (register_mmxmem_operand): New. |
| |
| 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89021 |
| * config/i386/i386-c.c (ix86_target_macros_internal): Define |
| __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE. |
| * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for |
| TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE. |
| (ix86_vector_mode_supported_p): Likewise. |
| * config/i386/i386.h (TARGET_MMX_WITH_SSE): New. |
| |
| 2019-05-15 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/90478 |
| * tree-switch-conversion.c (jump_table_cluster::can_be_handled): |
| Check for overflow. |
| |
| 2019-05-15 Richard Biener <rguenther@suse.de> |
| |
| * tree-into-ssa.c (pass_build_ssa::execute): Run |
| update_address_taken before going into SSA. |
| |
| 2019-05-15 Richard Biener <rguenther@suse.de> |
| |
| * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF |
| as __BIT_FIELD_REF with type with -gimple. |
| |
| 2019-05-15 Vladislav Ivanishin <vlad@ispras.ru> |
| |
| * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge |
| semantically equivalent branches (left over after prior refactorings). |
| |
| 2019-05-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88828 |
| * tree-ssa-forwprop.c (simplify_vector_constructor): Fix |
| bogus check. |
| |
| 2019-05-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR |
| as __VIEW_CONVERT with -gimple. |
| |
| 2019-05-12 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR target/82920 |
| * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for |
| Darwin. |
| |
| 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following |
| define_split to become a define_insn_and_split. |
| |
| 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change |
| arguments. |
| * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments. |
| * config/rs6000/rs6000.md (epilogue_type): New define_enum. |
| (sibcall_epilogue): Adjust. |
| (epilogue): Adjust. |
| |
| 2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * config.gcc: Move *-*-solaris2.10* from obsolete configurations |
| to unsupported ones. |
| Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*. |
| * config.host: Likewise. |
| * config/i386/sol2.h (ASM_COMMENT_START): Remove. |
| * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ && |
| __svr4__]: Remove "brand" fallback. |
| [!KSTAT_DATA_STRING]: Remove. |
| * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]* |
| to *-*-solaris2*. |
| (comdat_group): Likewise. |
| (set_have_as_tls): Likewise. |
| (gcc_cv_target_dl_iterate_phdr): Likewise. |
| (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround. |
| (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround. |
| * configure: Regenerate. |
| * doc/install.texi: Simplify Solaris target triplets. |
| (Specific, i?86-*-solaris2*): Remove Solaris 10 references. |
| (Specific, *-*-solaris2*): Document Solaris 10 removal. |
| Remove Solaris 10 references. |
| Remove obsolete Solaris bug reference. |
| (Specific, sparc-sun-solaris2.10): Remove. |
| |
| 2019-05-14 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (any_div): New code iterator. |
| (paired_mod): New code attribute. |
| (sgnprefix): Handle DIV and UDIV RTXes. |
| (u): Ditto. |
| (<u>divmod<mode>4): Macroize expander from divmod<mode>4 |
| and udivmod<mode>4 patterns using any_div code iterator. |
| (divmod splitters): Macroize splitters using any_div code iterator. |
| (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition. |
| (*udivmodsi4_pow2_zext_2): Ditto. |
| (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext |
| and *udivmod<mode>4_noext patterns using any_div code iterator. |
| (*<u>divmod<mode>4_noext_zext_1): Macroize insn from |
| *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1 |
| patterns using any_div code iterator. |
| (*<u>divmod<mode>4_noext_zext_2): Macroize insn from |
| *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2 |
| patterns using any_div code iterator. |
| (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and |
| udivmodhiqi3 patterns using any_extend code iterator. |
| |
| 2019-05-14 Richard Biener <rguenther@suse.de> |
| H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR tree-optimization/88828 |
| * tree-ssa-forwprop.c (simplify_vector_constructor): Handle |
| permuting in a single non-constant element not extracted |
| from a vector. |
| |
| 2019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * internal-fn.def (SIGNBIT): New. |
| * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand |
| defined. |
| (signbitv4sf2): Likewise. |
| |
| 2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com> |
| |
| PR target/90357 |
| * config/mips/mips.c (mips_split_move): Skip forward SRC into |
| next insn when the SRC reg is dead. |
| |
| 2019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1. |
| (alloc_cand_and_find_basis): Ditto. |
| (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else. |
| (create_mul_imm_cand, create_add_ssa_cand): Ditto. |
| (create_add_imm_cand, slsr_process_cast): Ditto. |
| (slsr_process_copy, replace_mult_candidate): Ditto. |
| (replace_rhs_if_not_dup, replace_one_candidate): Ditto. |
| (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element. |
| (pass_strength_reduction::execute): Init the first NULL element. |
| |
| 2019-05-13 Nathan Sidwell <nathan@acm.org> |
| |
| * gcc.c (execute): Simplify cond-expr into if. Reformat comment. |
| (run_attempt): Reformat line break. |
| |
| 2019-05-13 David Edelsohn <dje.gcc@gmail.com> |
| |
| PR target/90418 |
| * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH |
| data registers in sibcall epilogues. |
| Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues. |
| |
| 2019-05-13 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89221 |
| * configure.ac (--enable-frame-pointer): |
| Disable by default for cygwin and mingw. |
| * configure: Regenerate. |
| |
| 2019-05-13 Nathan Sidwell <nathan@acm.org> |
| |
| * dwarf2out.c (breakout_comdat_types): Move comment to correct |
| piece of code. |
| (const_ok_for_output_1): Balance parens around #if/#else/#endif |
| (gen_member_die): Move abstract origin check earlier. Only VARs |
| can be static_inline_p. Simplify splicing control flow. |
| |
| 2019-05-13 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle |
| VIEW_CONVERT_EXPR. |
| (vect_build_slp_tree_1): Likewise. |
| |
| 2019-05-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90402 |
| * tree-if-conv.c (tree_if_conversion): Value number only |
| the loop body by making the latch an exit of the region |
| as well. |
| * tree-ssa-sccvn.c (process_bb): Add flag whether to skip |
| processing PHIs. |
| (do_rpo_vn): Deal with multiple edges into the entry block |
| that are not backedges inside the region by skipping PHIs |
| of the entry block. |
| |
| 2019-05-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90316 |
| * tree-ssa-pre.c (insert_aux): Fold into ... |
| (insert): ... this function. Use a RPO walk to reduce the |
| number of required iterations. |
| |
| 2019-05-13 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/90416 |
| * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate |
| string instead of passing the second part as va_arg argument. |
| |
| 2019-05-13 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/90380 |
| * gcov.c (handle_cycle): Do not support zero cycle count, |
| it should not be possible. |
| (path_contains_zero_cycle_arc): New function. |
| (circuit): Ignore zero cycle arc counts. |
| |
| 2019-05-13 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/90380 |
| * gcov.c (enum loop_type): Remove the enum and |
| the operator. |
| (handle_cycle): Assert that we should not reach |
| a negative count. |
| (circuit): Use loop_found instead of a tri-state loop_type. |
| (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't |
| happen. |
| |
| 2019-05-12 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR target/82920 |
| * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New. |
| (ix86_output_indirect_branch_via_reg): Use output mechanism |
| accounting for __USER_LABEL_PREFIX__. |
| (ix86_output_indirect_branch_via_push): Likewise. |
| (ix86_output_function_return): Likewise. |
| (ix86_output_indirect_function_return): Likewise. |
| |
| 2019-05-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/md.texi: Document use of code attributes in rtx patterns. |
| * read-md.h (rtx_reader::rtx_alloc_for_name): New member function. |
| * read-rtl.c (find_code): Split out search loops into... |
| (maybe_find_code): ...this new function. |
| (check_code_iterator): Make the error message more informative. |
| (check_code_attribute): New function. |
| (rtx_reader::rtx_alloc_for_name): Likewise. |
| (rtx_reader::read_rtx_code): Use rtx_alloc_for_name. |
| * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete. |
| * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use |
| <max_opp> directly as an rtx code instead of via a match_operator. |
| * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise. |
| (<su>abd<mode>_3): Update accordingly. |
| |
| 2019-05-12 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack |
| is given, print the state of the EH "save world" computation for |
| Darwin. |
| |
| 2019-05-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/59813 |
| * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add |
| EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues. |
| |
| 2019-05-11 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm): |
| Use pinsrd for TARGET_SSE4_1. |
| * config/i386/sse.md (movdi_to_sse): Ditto. |
| |
| 2019-05-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id. |
| (do_rpo_vn): Initialize next_value_id. |
| |
| 2019-05-10 Martin Liska <mliska@suse.cz> |
| |
| * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD): |
| Fix plural form. |
| |
| 2019-05-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/90385 |
| * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME |
| arguments of the exit phis. |
| |
| PR c++/90383 |
| * tree-inline.h (struct copy_body_data): Add do_not_fold member. |
| * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if |
| id->do_not_fold. |
| (copy_tree_body_r): Likewise. |
| (copy_fn): Set id.do_not_fold to true. |
| |
| 2019-05-10 Martin Liska <mliska@suse.cz> |
| |
| * config/i386/i386-expand.c (ix86_expand_floorceildf_32): |
| Reapply changes from r269790. |
| |
| 2019-05-10 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/90340 |
| * doc/invoke.texi: New params. |
| * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New. |
| (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise. |
| * tree-switch-conversion.c (jump_table_cluster::can_be_handled): |
| Use it. |
| * tree-switch-conversion.h (struct jump_table_cluster): |
| Likewise. |
| |
| 2019-05-09 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL. |
| |
| 2019-05-09 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK. |
| |
| 2019-05-09 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR rtl-optimization/88879 |
| * sel-sched.c (sel_target_adjust_priority): Remove assert. |
| |
| 2019-05-09 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/90405 |
| * config/arm/arm.c (callee_saved_reg_p): Move before |
| thumb_find_work_register. |
| (thumb1_prologue_unused_call_clobbered_lo_regs): Move before |
| thumb_find_work_register. Only call df_get_live_out once. |
| (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise. |
| (thumb_find_work_register): Use |
| thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc |
| algorithms to locate a spare call clobbered reg. |
| |
| 2019-05-09 Martin Liska <mliska@suse.cz> |
| |
| * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR |
| and MAX_EXPR in GIMPLE FE format. |
| |
| 2019-05-09 Martin Liska <mliska@suse.cz> |
| |
| * tree-cfg.c (dump_function_to_file): Dump entry BB count. |
| * gimple-pretty-print.c (dump_gimple_bb_header): |
| Dump BB count. |
| (pp_cfg_jump): Dump edge probability. |
| * profile-count.c (profile_quality_as_string): Simplify |
| with a static array. |
| (parse_profile_quality): New function. |
| (profile_count::dump): Simplify with a static array. |
| (profile_count::from_gcov_type): Add new argument. |
| * profile-count.h (parse_profile_quality): Likewise. |
| * predict.h (set_hot_bb_threshold): New. |
| * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD): |
| New param. |
| * predict.c (get_hot_bb_threshold): Set from the new param. |
| (set_hot_bb_threshold): New. |
| |
| 2019-05-09 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90395 |
| * tree-ssa-forwprop.c (pass_forwprop::execute): Do not |
| rewrite vector stores that throw internally. |
| |
| 2019-05-09 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * cif-code.def (CHKP): Remove. |
| |
| PR target/89221 |
| * configure.ac (--enable-frame-pointer): Disable by default for |
| GNU systems. |
| * configure: Regenerate. |
| |
| 2019-05-09 Alan Modra <amodra@gmail.com> |
| |
| PR target/89271 |
| * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES), |
| (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class. |
| * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct |
| cost for general <-> vsx when direct moves are available. |
| Cost union classes at minimal cost for any reg in the class. |
| Correct calculation for moves between vsx, float, and altivec. |
| Don't return a low cost for moves between special regs. Don't |
| use hard coded register numbers. |
| (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define. |
| (rs6000_ira_change_pseudo_allocno_class): New function. |
| * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal), |
| (movdi_internal32, movdi_internal64): Remove '*' from vsx register |
| alternatives. |
| (movsi_internal1): Don't disparage vector alternatives. |
| (mov<mode>_internal): Likewise, excepting alternative that |
| will be split. |
| * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage |
| we <- b alternative. |
| |
| 2019-05-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/59813 |
| PR tree-optimization/89060 |
| * tree-ssa-live.h (live_vars_map): New typedef. |
| (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare. |
| * tree-ssa-live.c: Include gimple-walk.h and cfganal.h. |
| (struct compute_live_vars_data): New type. |
| (compute_live_vars_visit, compute_live_vars_1, compute_live_vars, |
| live_vars_at_stmt, destroy_live_vars): New functions. |
| * tree-tailcall.c: Include tree-ssa-live.h. |
| (live_vars, live_vars_vec): New global variables. |
| (find_tail_calls): Perform variable life analysis before punting. |
| (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec. |
| * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest |
| member. |
| * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument. |
| Perform variable life analysis to select variables that really need |
| clobbers added. |
| (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here, |
| instead set id->eh_landing_pad_dest and assert it is the same. |
| (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL. |
| |
| 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com> |
| Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/88167 |
| * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New |
| function. |
| (thumb1_epilogue_unused_call_clobbered_lo_regs): New function. |
| (thumb1_compute_save_core_reg_mask): Don't force a spare work |
| register if both the epilogue and prologue can use call-clobbered |
| regs. |
| (thumb1_unexpanded_epilogue): Use |
| thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for |
| picking temporaries for restoring high regs to match that of the |
| prologue where possible. |
| (thumb1_expand_prologue): Add any usable call-clobbered low registers to |
| the list of work registers. Detect if the return address is still live |
| at the end of the prologue and avoid using it for a work register if so. |
| If the return address is not live, add LR to the list of pushable regs |
| after the first pass. |
| |
| 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/90078 |
| * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file. |
| (INFTY): Increase the value for infinite cost. |
| (struct comp_cost): Promote type of members to int64_t. |
| (infinite_cost): Don't set complexity in initialization. |
| (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation |
| overflows to infinite_cost. |
| (adjust_setup_cost): Promote type of parameter and cost computation |
| to int64_t. |
| (struct ainc_cost_data, struct iv_ca): Promote type of member to |
| int64_t. |
| (get_scaled_computation_cost_at, determine_iv_cost): Promote type of |
| cost computation to int64_t. |
| (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use |
| int64_t's format specifier in dump. |
| |
| 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/90240 |
| * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost |
| with respect to scaling factor pre-computed for each basic block. |
| (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost. |
| (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost. |
| (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New. |
| (tree_ssa_iv_optimize_loop): Call determine_scaling_factor. Extend |
| live range for array of loop's basic blocks. Cleanup aux field of |
| loop's basic blocks. |
| |
| 2019-05-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/90356 |
| * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible. |
| |
| 2019-05-07 Wei Xiao <wei3.xiao@intel.com> |
| |
| * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET |
| OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New. |
| (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET. |
| (ix86_handle_option): Handle -mavx512bf16. |
| * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h |
| to extra_headers. |
| * config/i386/avx512bf16vlintrin.h: New. |
| * config/i386/avx512bf16intrin.h: New. |
| * config/i386/cpuid.h (bit_AVX512BF16): New. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16. |
| * config/i386/i386-builtin-types.def: Add new types. |
| * config/i386/i386-builtin.def: Add new builtins. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Define |
| __AVX512BF16__. |
| * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16. |
| (ix86_option_override_internal): Handle BF16. |
| (ix86_valid_target_attribute_inner_p): Ditto. |
| * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto. |
| * config/i386/i386-builtin.c (enum processor_features): Add |
| F_AVX512BF16. |
| (static const _isa_names_table isa_names_table): Ditto. |
| * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New. |
| (PTA_AVX512BF16): Ditto. |
| * config/i386/i386.opt: Add -mavx512bf16. |
| * config/i386/immintrin.h: Include avx512bf16intrin.h |
| and avx512bf16vlintrin.h. |
| * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>, |
| avx512f_cvtneps2bf16_<mode><mask_name>, |
| avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns. |
| * config/i386/subst.md (mask_half): Add new subst. |
| * doc/invoke.texi: Document -mavx512bf16. |
| |
| 2019-05-07 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr): |
| Delete declaration. |
| * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete. |
| (rs6000_debug_legitimize_reload_address): Delete. |
| (rs6000_legitimize_reload_address_ptr): Delete. |
| (rs6000_option_override_internal): Adjust. |
| (mem_operand_gpr): Adjust comment. |
| (legitimate_lo_sum_address_p): Ditto. |
| (rs6000_legitimize_reload_address): Delete. |
| (rs6000_debug_legitimize_reload_address): Delete. |
| * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete. |
| |
| 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| PR target/89765 |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): |
| In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic |
| to compute vector element selector for both constant and variable |
| operands. |
| |
| 2019-05-07 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (cvt_mnemonic): New mode attribute. |
| (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and |
| ashrdi3_cvt using SWI48 mode iterator. |
| |
| 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand. |
| (aarch64_<su>abd<mode>_3): Likewise. |
| (*aarch64_<su>abd<mode>_3): New define_insn. |
| (<sur>sad<vsi2qi>): New define_expand. |
| * config/aarch64/iterators.md: Added MAX_OPP attribute. |
| * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR. |
| (build_vect_cond_expr): Likewise. |
| |
| 2019-05-07 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * cfgexpand.c (asm_clobber_reg_is_valid): Reject |
| clobbers outside of accessible_reg_set. |
| * config/i386/i386.c (ix86_conditional_register_usage): |
| Disable register sets by clearing corresponding bits in |
| accessible_reg_set. Do not set corresponding bits in fixed_regs, |
| call_used_regs and don't clear corresponding reg_names array members. |
| |
| 2019-05-07 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.c (vect_is_simple_cond): When vectype is |
| not specified still compute a comp_vectype for invariant |
| compares. |
| |
| 2019-05-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90316 |
| * tree-ssa-pre.c (translate_vuse_through_block): When |
| same_valid is NULL do not bother to search for a virtual |
| PHI continuation. |
| (phi_translate_1): When operands changed we cannot keep |
| the same value-number so do not bother to ask whether |
| that's possible from translate_vuse_through_block. |
| |
| 2019-05-07 Martin Liska <mliska@suse.cz> |
| |
| * bitmap.c (bitmap_register): Come up with |
| alloc_descriptor_max_uid and assign it for |
| a new bitmap. |
| (register_overhead): Use get_descriptor as |
| a descriptor. |
| (release_overhead): New. |
| (bitmap_elem_to_freelist): Call it. |
| (bitmap_elt_clear_from): Likewise. |
| (bitmap_obstack_free): Likewise. |
| (bitmap_move): Sensitively release memory. |
| * bitmap.h (struct GTY): Add alloc_descriptor and padding. |
| (bitmap_initialize): Initialize alloc_descriptor to zero. |
| * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move. |
| |
| 2019-05-07 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever |
| we build a SLP node. Remove max_size and limiting. |
| (vect_analyze_slp_instance): Record and dump size of the SLP graph. |
| |
| 2019-05-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90316 |
| * tree-ssa-alias.h (get_continuation_for_phi): Take walking |
| limit by reference. |
| (walk_non_aliased_vuses): Take walking limit argument. |
| * tree-ssa-alias.c (maybe_skip_until): Take limit and abort |
| walking if it is reached instead of just counting. |
| (get_continuation_for_phi): Likewise. |
| (walk_non_aliased_vuses): Likewise, instead of leaving counter |
| limiting to the callback. |
| * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust. |
| (vn_reference_lookup_3): Likewise. |
| (vn_reference_lookup_pieces): Likewise. |
| (vn_reference_lookup): Likewise. |
| * tree-ssa-pre.c (translate_vuse_through_block): Limit walking. |
| * tree-ssa-scopedtables.c (vuse_eq): Adjust. |
| (avail_exprs_stack::lookup_avail_expr): Likewise. |
| |
| 2019-05-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking |
| for comparaible types in the second direction even if first one |
| hits incomparable type. |
| |
| 2019-05-07 Richard Biener <rguenther@suse.de> |
| |
| PR lto/90369 |
| * lto-wrapper.c (debug_objcopy): Use the original filename |
| including archive offset for the filename used for -save-temps. |
| |
| 2019-05-07 Li Jia He <helijia@linux.ibm.com> |
| |
| * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter |
| detection. |
| |
| 2019-05-06 H.J. Lu <hongjiu.lu@intel.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| |
| PR target/89750 |
| PR target/86444 |
| * config/i386/i386-expand.c (ix86_expand_sse_comi_round): |
| Modified, original implementation isn't correct. |
| |
| 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO) |
| (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO) |
| (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO) |
| (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO) |
| (FRAME_POINTER_REGNUM): Change numbering. |
| * config/rs6000/rs6000.c (rs6000_reg_names): Adjust. |
| (alt_reg_names): Adjust. |
| (rs6000_conditional_register_usage): Don't mark hard register 64 as |
| fixed. |
| * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust. |
| (DWARF_FRAME_REGISTERS): Delete. |
| (DWARF2_FRAME_REG_OUT): Fix whitespace. |
| (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): |
| Adjust. |
| (REG_ALLOC_ORDER): Adjust. |
| (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust. |
| (REG_CLASS_CONTENTS): Adjust. |
| (RETURN_ADDR_RTX): Change comment. |
| (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM |
| instead of 67. |
| (REGISTER_NAMES): Adjust. |
| (ADDITIONAL_REGISTER_NAMES): Adjust. |
| * config/rs6000/darwin.h (REGISTER_NAMES): Adjust. |
| |
| 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): |
| Delete. |
| * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust. |
| (DWARF_FRAME_REGISTERS): Adjust. |
| (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): |
| Adjust. |
| (REG_ALLOC_ORDER): Adjust. |
| (enum reg_class): Delete SPR_REGS. |
| (REG_CLASS_NAMES): Delete SPR_REGS. |
| (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs. |
| (REGISTER_NAMES): Adjust. |
| (ADDITIONAL_REGISTER_NAMES): Adjust. |
| * config/rs6000/darwin.h (REGISTER_NAMES): Adjust. |
| * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust. |
| * config/rs6000/predicates.md (htm_spr_reg_operand): Delete. |
| * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust. |
| (htm_spr_regno): Delete. |
| (htm_expand_builtin): Adjust: the HTM builtins now have one fewer |
| argument. |
| (rs6000_dbx_register_number): Adjust. |
| |
| 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete. |
| |
| 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle |
| FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ). |
| |
| 2019-05-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/88709 |
| PR tree-optimization/90271 |
| * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter. |
| * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle |
| non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int |
| variable. |
| (imm_store_chain_info::coalesce_immediate_stores): Punt if the size |
| of the store merging group is larger than |
| PARAM_STORE_MERGING_MAX_SIZE parameter. |
| (split_group): Add bzero_first argument. If set, always emit first |
| the first store which must be = {} of the whole area and then for the |
| rest of the stores consider all zero bytes as paddings. |
| (imm_store_chain_info::output_merged_store): Check if first store |
| is = {} of the whole area and if yes, determine which setting of |
| bzero_first for split_group gives smaller number of stores. Adjust |
| split_group callers. |
| (lhs_valid_for_store_merging_p): Allow decls. |
| (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with |
| no elts. |
| (pass_store_merging::process_store): Likewise. |
| |
| 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| PR target/89424 |
| * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add |
| handling of V1TImode. |
| |
| 2019-05-06 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89221 |
| * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld |
| and enable_frame_pointer ... |
| * configure.ac: ... here. Update help strings for |
| --enable-frame-pointer. |
| * configure: Regenerate. |
| * config/i386/i386-options.c (ix86_option_override_internal): Remove |
| USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead. |
| * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove. |
| (USE_X86_64_FRAME_POINTER): Ditto. |
| |
| 2019-05-06 Martin Liska <mliska@suse.cz> |
| |
| * config.gcc: Append to target_gtfiles and fix indentation. |
| |
| 2019-05-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90358 |
| * tree-vect-stmts.c (get_group_load_store_type): Properly |
| detect unused upper half of load. |
| (vectorizable_load): Likewise. |
| |
| 2019-05-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88828 |
| * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from... |
| (simplify_vector_constructor): ...here. Handle constants in |
| the constructor. |
| |
| 2019-05-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90328 |
| * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest. |
| * tree-data-ref.c (dr_may_alias_p): Check whether the clique |
| is valid in the loop nest before using it. |
| (initialize_data_dependence_relation): Adjust. |
| * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing |
| loop as loop-nest to dr_may_alias_p. |
| |
| 2019-05-06 Richard Biener <rguenther@suse.de> |
| |
| * dwarf2out.c (mem_loc_descriptor): Initialize int_mode. |
| |
| 2019-05-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90316 |
| * tree-ssa-alias.c (maybe_skip_until): Pass in target BB, |
| compute target on demand. |
| (get_continuation_for_phi): Remove code walking stmts to |
| get to a target virtual operand which could end up being |
| quadratic. |
| |
| 2019-05-06 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/90312 |
| * config/i386/i386-options.c (ix86_option_override_internal): Error only |
| when -mabi is selected to a non-default version. |
| |
| 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com> |
| Martin Liska <mliska@suse.cz> |
| |
| * Makefile.in: Add lto-dump.texi. |
| * cgraph.h: Add new functions get_visibility_string and |
| get_symtab_type_string. |
| * doc/gcc.texi: Include lto-dump section. |
| * doc/lto-dump.texi: New file. |
| * dumpfile.c (dump_switch_p_1): Use parse_dump_option. |
| (parse_dump_option): Factor out this function. |
| * dumpfile.h (enum dump_flag): Add new value TDF_ERROR. |
| (parse_dump_option): Export the function. |
| * symtab.c (symtab_node::get_visibility_string): New function. |
| (symtab_node::get_symtab_type_string): Likewise. |
| |
| 2019-05-06 Martin Liska <mliska@suse.cz> |
| |
| * config/i386/i386-builtins.c: New file. |
| * config/i386/i386-builtins.h: New file. |
| * config/i386/i386-expand.c: New file. |
| * config/i386/i386-expand.h: New file. |
| * config/i386/i386-features.c: New file. |
| * config/i386/i386-features.h: New file. |
| * config/i386/i386-options.c: New file. |
| * config/i386/i386-options.h: New file. |
| * config.gcc: Add new files into extra_objs and |
| target_gtfiles. |
| * config/i386/i386.c: Split content of the file |
| into newly introduced files. |
| * config/i386/i386.h: Declare common variables |
| and macros. |
| * config/i386/t-i386: Define dependencies for new files. |
| |
| 2019-05-03 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/89400 |
| * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1. |
| Restrict 'all' variant to 32-bit configurations. |
| (unaligned_loadhiu): Likewise. |
| (unaligned_storehi): Likewise. |
| (unaligned_storesi): Likewise. |
| (unaligned_loadhis): Disable when compiling for thumb1. |
| |
| 2019-05-03 Marc Glisse <marc.glisse@inria.fr> |
| |
| PR tree-optimization/90269 |
| * tree-loop-distribution.c (find_seed_stmts_for_distribution): |
| Ignore clobbers. |
| |
| 2019-05-03 Martin Liska <mliska@suse.cz> |
| |
| * hash-map.h: Add is_empty function. |
| * hash-set.h: Likewise. |
| * hash-table.h: Likewise. |
| * dwarf2out.c (dwarf2out_finish): Use is_empty instead of |
| elements () == 0 (and similar usages). |
| * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise. |
| * gimplify.c (gimplify_bind_expr): Likewise. |
| (gimplify_switch_expr): Likewise. |
| * hash-map-tests.c (test_map_of_strings_to_int): Likewise. |
| * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise. |
| * postreload-gcse.c (dump_hash_table): Likewise. |
| (gcse_after_reload_main): Likewise. |
| * predict.c (combine_predictions_for_bb): Likewise. |
| * tree-parloops.c (reduction_phi): Likewise. |
| (separate_decls_in_region): Likewise. |
| (transform_to_exit_first_loop): Likewise. |
| (gen_parallel_loop): Likewise. |
| (gather_scalar_reductions): Likewise. |
| (try_create_reduction_list): Likewise. |
| * var-tracking.c (dump_vars): Likewise. |
| (emit_notes_for_changes): Likewise. |
| (vt_emit_notes): Likewise. |
| |
| 2019-05-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90316 |
| * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries |
| before running VN. |
| |
| 2019-05-03 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.c (get_group_load_store_type): Avoid |
| peeling for gaps by loading only lower halves of vectors |
| if possible. |
| (vectorizable_load): Likewise. |
| |
| 2019-05-03 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89518 |
| * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A. |
| |
| 2019-05-03 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/87314 |
| * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): |
| Handle STRING_CST vs DECL or STRING_CST. |
| |
| 2019-05-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88963 |
| * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite |
| vector loads feeding only BIT_FIELD_REFs to component |
| loads. Rewrite stores fed by CONSTRUCTORs to component |
| stores. |
| |
| 2019-05-03 Jakub Jelinek <jakub@redhat.com> |
| |
| * opts.h (finish_options): Remove lang_mask argument. |
| (print_help, help_option_argument): Declare. |
| * opts.c (print_help): Remove forward declaration, no longer static. |
| (finish_options): Remove lang_mask argument, don't call print_help |
| here. |
| * opts-global.c (decode_options): Adjust finish_option caller, call |
| print_help here. |
| |
| PR tree-optimization/90303 |
| * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use |
| TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode. |
| |
| 2019-05-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89698 |
| * gimple-fold.c (canonicalize_constructor_val): Early out |
| for constants, handle unfolded INTEGER_CSTs as they appear in |
| C++ virtual table ctors. |
| |
| 2019-05-03 Richard Biener <rguenther@suse.de> |
| |
| * passes.c (execute_function_todo): Remove dead code. |
| |
| 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use |
| the internal register number, for any "real" register. |
| |
| 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the |
| correct numbers for TFHAR, TFIAR, TEXASR. |
| |
| 2019-05-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89653 |
| * tree-ssa-loop.c (pass_data_tree_loop_init): Execute |
| update-address-taken before the pass. |
| * passes.def (pass_tree_loop_init): Put comment before it. |
| |
| 2019-05-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89509 |
| * tree-ssa-structalias.c (compute_dependence_clique): Look |
| at the first subvar when determining whether it is restrict. |
| |
| 2019-05-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90273 |
| * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate |
| useless debug stmts. |
| |
| 2019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE |
| ACLE branch. |
| * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from |
| SVE ACLE branch. |
| * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a |
| VEC_COND_EXPR be inserted to emulate a conditional internal function. |
| (build_vect_cond_expr): Emit the VEC_COND_EXPR. |
| (vectorizable_reduction): Use the functions above to vectorize in a |
| fully masked loop codes that don't have a conditional internal |
| function. |
| |
| 2019-05-02 Martin Liska <mliska@suse.cz> |
| |
| * cgraphclones.c: Call valid_attribute_p with 1 for |
| target_clone. |
| * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as |
| it's for target attribute. |
| * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): |
| Add new boolean argument. |
| * config/i386/i386.c (ix86_valid_target_attribute_inner_p): |
| Likewise. |
| (ix86_valid_target_attribute_tree): Pass target_clone_attr |
| to ix86_valid_target_attribute_inner_p. |
| (ix86_valid_target_attribute_p): Pass flags argument to |
| ix86_valid_target_attribute_inner_p. |
| (get_builtin_code_for_version): Use 0 as it's target attribute. |
| |
| 2019-05-02 Martin Liska <mliska@suse.cz> |
| |
| * gcc.c (process_command): Add dummy file only |
| if n_infiles == 0. |
| * opts-global.c (decode_options): Pass lang_mask. |
| * opts.c (print_help): New function. |
| (finish_options): Print --help if help_option_argument |
| is set. |
| (common_handle_option): Factor out content of OPT__help_ |
| into print_help. |
| * opts.h (finish_options): Add new argument. |
| |
| 2019-05-02 Martin Liska <mliska@suse.cz> |
| |
| PR target/88809 |
| * config/i386/i386.c (ix86_expand_strlen): Use strlen call. |
| With -minline-all-stringops use inline expansion using 4B loop. |
| * doc/invoke.texi: Document the change of |
| -minline-all-stringops. |
| |
| 2019-05-01 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/88797 |
| * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the |
| PHI feeds a conditional on the RHS of an assignment. |
| |
| 2019-04-30 Andrew Waterman <andrew@sifive.com> |
| Jim Wilson <jimw@sifive.com> |
| |
| * config/riscv/constraints.md (L): New. |
| * config/riscv/predicates.md (lui_operand): New. |
| (sfb_alu_operand): New. |
| * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare. |
| * config/riscv/riscv.c (riscv_expand_conditional_move): New. |
| * config/riscv/riscv.h (TARGET_SFB_ALU): New. |
| * config/riscv/risc.md (type): Add sfb_alu. |
| (branch<mode>): Renamed from branch_order<mode>. Change predicate for |
| operand 3 to reg_or_0_operand. In output string, change %3 to %z3. |
| (branch_zero<mode>): Delete. |
| (mov<mode>cc): New. |
| (mov<GPR:mode><X:mode>cc): Likewise. |
| * config/riscv/sifive-7.md (sifive_7_sfb_alu): New. Use in bypasses. |
| |
| 2019-04-30 Nathan Sidwell <nathan@acm.org> |
| |
| * tree.h (MARK_TS_EXP): New. |
| |
| 2019-04-30 Martin Liska <mliska@suse.cz> |
| |
| * opts.c (enable_warning_as_error): Provide hints |
| for unknown options. |
| |
| 2019-04-30 Martin Liska <mliska@suse.cz> |
| |
| PR debug/90288 |
| * doc/invoke.texi: Add missing dash for gas-locview-support |
| and gno-as-locview-support. |
| |
| 2019-04-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89093 |
| * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip |
| whitespace at the start of target attribute string. |
| |
| 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| PR target/86538 |
| * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): |
| Define __ARM_FEATURE_ATOMICS. |
| |
| 2019-04-30 Martin Liska <mliska@suse.cz> |
| |
| * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp |
| into built_in_function enum. Remove code for endp == 2 and |
| use BUILT_IN_* constants. |
| (gimple_fold_builtin): Call the function with fcode. |
| |
| 2019-04-30 Martin Liska <mliska@suse.cz> |
| |
| * config/i386/i386.c (ix86_builtin_reciprocal): Cast |
| DECL_FUNCTION_CODE into ix86_builtins enum before |
| the switch statement. |
| |
| 2019-04-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/89475 |
| * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64} |
| calls. |
| |
| 2019-04-30 Martin Liska <mliska@suse.cz> |
| |
| PR translation/90274 |
| * opts.c (print_filtered_help): Wrap string in _(...). |
| |
| 2019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/90240 |
| Revert: |
| 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/90078 |
| * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add |
| checks for infinite_cost overflow. |
| |
| 2019-04-29 Jeff Law <law@redhat.com> |
| |
| * passes.def: Move -Wrestrict pass after copy propagation. |
| |
| 2019-04-29 Maya Rashish <coypu@sdf.org> |
| |
| * config.gcc (default_gnu_indirect_function): Default to yes |
| for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*, |
| sparc*-*-netbsd*, x86_64-*-netbsd*. |
| |
| 2019-04-29 Vladislav Ivanishin <vlad@ispras.ru> |
| |
| * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases |
| where cond2 is NE_EXPR. |
| (is_value_included_in): Update comment. |
| |
| 2019-04-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90278 |
| * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean |
| EH on comparison simplification. |
| |
| 2019-04-29 Jason Merrill <jason@redhat.com> |
| |
| PR c++/82081 - tail call optimization breaks noexcept |
| * tree-tailcall.c (find_tail_calls): Don't turn a call from a |
| nothrow function to a might-throw function into a tail call. |
| |
| 2019-04-29 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-data-ref.h (data_dependence_relation::inner_loop): Delete. |
| (DDR_INNER_LOOP): Likewise. |
| * tree-data-ref.c (dump_data_dependence_relation): Update accordingly. |
| (initialize_data_dependence_relation): Likewise. |
| (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP. |
| |
| 2019-04-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/90257 |
| * cfgrtl.c (flow_active_insn_p): Return true for USE of a function |
| return value. |
| |
| Revert the revert: |
| 2019-04-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/90178 |
| Revert: |
| 2018-11-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| Revert the revert: |
| 2013-10-26 Vladimir Makarov <vmakarov@redhat.com> |
| |
| Revert: |
| 2013-10-25 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * lra-spills.c (lra_final_code_change): Remove useless move insns. |
| |
| 2019-04-29 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER} |
| rhs issue a reset. |
| |
| 2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h, |
| varasm.h, and netbsd-protos.h. |
| |
| 2019-04-27 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89261 |
| * config/i386/i386-protos.h (ix86_data_alignment): Change |
| the second argument type to unsigned int. |
| * config/i386/i386.c (ix86_data_alignment): Change "align" |
| argument type to unsigned int. |
| |
| 2019-04-27 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/90258 |
| * opt-suggestions.c (option_proposer::build_option_suggestions): |
| When get_valid_option_values returns empty values, add the |
| misspelling candidate. |
| |
| 2019-04-26 Jim Wilson <jimw@sifive.com> |
| |
| * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode |
| parameter. |
| * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode. |
| Pass orig_mode to riscv_build_integer. |
| (riscv_split_integer): Pass mode to riscv_move_integer. |
| (riscv_legitimize_const_move): Likewise. |
| (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local |
| promoted_mode. Replace force_reg call with code to load constant into |
| promoted reg and then subreg it for the store. |
| * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to |
| riscv_move_integer. |
| |
| 2018-04-26 Eugene Sharygin <eush@ispras.ru> |
| |
| * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with |
| corrupt codes. |
| |
| 2019-04-26 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add |
| commentary about the encoding of precision. |
| |
| 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org> |
| |
| * config/i386/freebsd64.h: Add bits for 32-bit multilib support. |
| * config/i386/t-freebsd64: New file. |
| * config.gcc: Add the t-freebsd64 for multilib support. |
| |
| 2019-04-25 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * doc/extend.texi (vector_size): Add missing comma after @xref. |
| |
| 2019-04-25 Jakub Jelinek <jakub@redhat.com> |
| |
| * BASE-VER: Set to 10.0.0. |
| |
| 2019-04-25 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89765 |
| * gimplify.c (gimplify_expr): Avoid turning a lvalue |
| VIEW_CONVERT_EXPR into one operating on an rvalue. |
| |
| 2019-04-25 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89929 |
| * config/i386/i386.c (feature_priority): Moved to file scope. |
| (processor_features): Likewise. |
| (processor_model): Likewise. |
| (_arch_names_table): Likewise. |
| (arch_names_table): Likewise. |
| (_feature_list): Removed. |
| (feature_list): Likewise. |
| (_isa_names_table): Moved to file scope. Add priority. |
| (isa_names_table): Likewise. |
| (get_builtin_code_for_version): Replace feature_list with |
| isa_names_table. Update error message for P_ZERO priority. |
| |
| 2019-04-25 Richard Biener <rguenther@suse.de> |
| |
| * tree-pass.h (make_pass_phi_only_cprop): Remove. |
| * timevar.def (TV_TREE_PHI_CPROP): Likewise. |
| |
| 2019-04-24 Jeff Law <law@redhat.com> |
| |
| PR tree-optimization/90037 |
| * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c |
| * passes.def: Replace all instance of phi-only cprop with the |
| lattice propagator. Move propagation pass from after erroneous |
| path isolation to before erroneous path isolation. |
| * tree-ssa-phionlycprop.c: Remove. |
| |
| 2019-04-24 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/90213 |
| * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication |
| by size and BITS_PER_UNIT on poly-wide-ints. |
| |
| 2019-04-25 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/90194 |
| * match.pd: Add pattern to simplify view-conversion of an |
| empty constructor. |
| |
| 2019-04-24 Clement Chigot <clement.chigot@atos.net> |
| |
| * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable |
| OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags |
| for Go on 32 bit AIX. |
| * config/rs6000/aix72.h: Likewise. |
| |
| 2019-04-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/90193 |
| * rtl.c (classify_insn): Return JUMP_INSN for asm goto. |
| * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET. |
| |
| 2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| PR target/89952 |
| * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs |
| from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also |
| for restored hard frame pointer. |
| (s390_sched_dependencies_evaluation): Implement new target hook. |
| (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition. |
| |
| 2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com> |
| |
| * config/arc/arc-options.def: Fix typos and spelling mistakes. |
| * config/arc/arc.c (arc_init): Cleanup warning message. |
| (arc_override_options): Likewise. |
| |
| 2019-04-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/90187 |
| * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into |
| a register if both if_true and if_false are MEMs. |
| |
| PR tree-optimization/90208 |
| * tree-cfg.c (remove_bb): Move forced labels from removed bbs |
| after labels of new_bb, not before them. |
| |
| PR tree-optimization/90211 |
| * tree-parloops.c (try_create_reduction_list): Ignore phi arguments |
| which are not SSA_NAMEs. |
| |
| 2018-04-23 Sudakshina Das <sudi.das@arm.com> |
| |
| * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for |
| AArch64. |
| (aarch64_file_end_indicate_exec_stack): Add gnu note section. |
| |
| 2019-04-23 Roman Zhuykov <zhroma@ispras.ru> |
| |
| PR rtl-optimization/87979 |
| * modulo-sched.c (sms_schedule): Start ii value "mii" should |
| not equal zero. |
| |
| 2019-04-23 Roman Zhuykov <zhroma@ispras.ru> |
| |
| PR rtl-optimization/84032 |
| * modulo-sched.c (ps_insn_find_column): Change condition so that |
| branch will always be the last insn in a row inside partial |
| schedule. |
| |
| 2019-04-23 Richard Biener <rguenther@suse.de> |
| |
| PR debug/90131 |
| * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add |
| dest_single_pred_p argument. |
| (remove_forwarder_block): Adjust. |
| (remove_forwarder_block_with_phi): Likewise. |
| |
| 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| Bernd Edlinger <bernd.edlinger@hotmail.de> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89093 |
| * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose |
| if used with general-regs-only. |
| (arm_conditional_register_usage): Don't add non-general regs if |
| general-regs-only. |
| (arm_valid_target_attribute_rec): Handle general-regs-only. |
| * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if |
| general-regs-only. |
| (TARGET_HARD_FLOAT_SUB): Define. |
| (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB. |
| (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY. |
| (TARGET_REALLY_IWMMXT2): Likewise. |
| * config/arm/arm.opt: Add -mgeneral-regs-only. |
| * doc/extend.texi: Document ARM general-regs-only target. |
| * doc/invoke.texi: Document ARM -mgeneral-regs-only. |
| |
| 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/90078 |
| * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add |
| checks for infinite_cost overflow. |
| |
| 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/90021 |
| * tree-chrec.c (evolution_function_is_univariate_p): New parameter |
| and check univariate against it. |
| * tree-chrec.h (evolution_function_is_univariate_p): New parameter. |
| * tree-data-ref.c (add_other_self_distances): Pass new argument. |
| |
| 2019-04-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/90178 |
| Revert: |
| 2018-11-21 Uros Bizjak <ubizjak@gmail.com> |
| |
| Revert the revert: |
| 2013-10-26 Vladimir Makarov <vmakarov@redhat.com> |
| |
| Revert: |
| 2013-10-25 Vladimir Makarov <vmakarov@redhat.com> |
| |
| * lra-spills.c (lra_final_code_change): Remove useless move insns. |
| |
| 2019-04-21 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/rs6000.md (group_end_nop): Emit insn register |
| names using operand format, rather than hard-wired. |
| (speculation_barrier): Likewise. |
| |
| 2019-04-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR tree-optimization/88055 |
| * tree-call-cdce.c (comparison_code_if_no_nans): New function. |
| (gen_one_condition): Use it if !HONOR_NANS. |
| |
| 2019-04-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/90139 |
| * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return |
| assign_temp instead of gen_reg_rtx. |
| |
| 2019-04-19 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR translation/90118 |
| * config/aarch64/aarch64.c (aarch64_override_options_internal): |
| Add missing space before %<. |
| |
| 2019-04-18 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR rtl-optimization/87871 |
| * ira-lives.c (make_object_dead): Don't add conflicts to |
| TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts. |
| |
| 2019-04-18 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/89797 |
| * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U. |
| * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid |
| assuming type size fits in SHWI. |
| |
| 2019-04-18 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/85051 |
| * ipa-inline.c (flatten_function): New parameter UPDATE. |
| (ipa_inline, early_inliner): Use it. |
| |
| 2019-04-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * fold-const.c (int_const_binop): Return early on failure. |
| |
| 2019-04-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR middle-end/85164 |
| * combine.c (force_int_to_mode): Cast the argument rather than |
| the result of known_alignment. |
| * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p. |
| |
| 2019-04-18 Richard Biener <rguenther@suse.de> |
| |
| PR debug/90131 |
| * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split |
| out from ... |
| (remove_forwarder_block): ... here. |
| (remove_forwarder_block_with_phi): Also move debug stmts here. |
| |
| 2019-04-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR translation/79183 |
| * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of |
| inform where appropriate. |
| |
| 2019-04-18 Richard Biener <rguenther@suse.de> |
| |
| * tree.c (get_qualified_type): Put found type variants at the |
| head of the variant list. |
| |
| 2018-04-17 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo. |
| |
| 2019-04-17 Hongtao Liu <hongtao.liu@intel.com> |
| |
| PR target/90125 |
| * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd, |
| _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd, |
| _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd, |
| _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd, |
| _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3. |
| |
| 2019-04-17 Peter Bergner <bergner@linux.ibm.com> |
| |
| * ira-conflicts.c (print_allocno_conflicts): Always print something, |
| even for allocno's with no conflicts. |
| (print_conflicts): Print an extra newline. |
| |
| 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * auto-inc-dec.c (attempt_change): Set the alignment of the |
| temporary memory to that of the original. |
| |
| 2019-04-17 Joao Moreira <jmoreira@suse.de> |
| |
| * targhooks.c (default_print_patchable_function_entry): Emit |
| __patchable_function_entries section with writable flags to allow |
| relocation resolution. |
| |
| 2019-04-17 Jonny Grant <jg@jguk.org> |
| |
| * collect2.c (main): Change gcc.gnu.org URL to HTTPS. |
| |
| 2019-04-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/90095 |
| * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P |
| on lowpart SUBREGs. |
| |
| 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_init): Format diagnostic string. |
| (arc_override_options): Likewise. |
| (check_if_valid_regno_const): Likewise. |
| (arc_reorg): Likewise. |
| |
| 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/17108 |
| * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern |
| name. |
| (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern |
| name. |
| * config/rs6000/rs6000.md (bits): Add entries for SF and DF. |
| (*movdi_update1): Use Pmode. |
| (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p. |
| (movdi_<mode>_update_stack): Rename to ... |
| (movdi_update_stack): ... this. Fix comment. Change condition. Don't |
| use Pmode. |
| (*movsi_update1): Use Pmode. |
| (*movsi_update2): Use Pmode. |
| (movsi_update): Rename to ... |
| (movsi_<mode>_update): ... this. Use Pmode. |
| (movsi_update_stack): Fix condition. |
| (*movhi_update1): Use Pmode. Fix argument to |
| avoiding_indexed_address_p. |
| (*movhi_update2): Ditto. |
| (*movhi_update3): Ditto. |
| (*movhi_update4): Ditto. |
| (*movqi_update1): Ditto. |
| (*movqi_update2): Ditto. |
| (*movqi_update3): Ditto. |
| (*movsf_update1, *movdf_update1): Merge, rename to... |
| (*mov<mode>_update1): This. Use Pmode. Fix argument to |
| avoiding_indexed_address_p. Add "size" attribute. |
| (*movsf_update2, *movdf_update2): Merge, rename to... |
| (*mov<mode>_update2): This. Ditto. |
| (*movsf_update3): Use Pmode. Fix argument to |
| avoiding_indexed_address_p. |
| (*movsf_update4): Ditto. |
| (allocate_stack): Simplify condition. Adjust pattern names. |
| |
| 2019-04-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89093 |
| * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip |
| whitespace at the start of target attribute string. |
| |
| 2019-04-16 Pat Haugen <pthaugen@us.ibm.com> |
| |
| PR target/84369 |
| * config/rs6000/power9.md: Add store forwarding bypass. |
| |
| 2019-04-16 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR debug/89528 |
| * valtrack.c (dead_debug_insert_temp): Reset debug references |
| to the return value of a call being removed. |
| |
| 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc-protos.h (arc_register_move_cost): Remove. |
| * config/arc/arc.c (arc_register_move_cost): Re-purpose it to |
| implement target hook. |
| (arc_memory_move_cost): New function. |
| (TARGET_REGISTER_MOVE_COST): Define. |
| (TARGET_MEMORY_MOVE_COST): Likewise. |
| * config/arc/arc.h (REGISTER_MOVE_COST): Remove. |
| (MEMORY_MOVE_COST): Likewise. |
| |
| 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (sibcall_insn): Use Rcd constraint. |
| (sibcall_value_insn): Likewise. |
| * config/arc/constraints.md (Rs5): Remove. |
| |
| 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes |
| for last two fake registers. |
| (arc_conditional_register_usage): Make sure fake frame and arg |
| pointer regs are in general regs class. |
| (FRAME_POINTER_MASK): Remove. |
| (RETURN_ADDR_MASK): Remove. |
| (arc_must_save_register): Use hard frame regnum. |
| (frame_restore_reg): Use hard_frame_pointer_rtx. |
| (arc_save_callee_saves): Likewise. |
| (arc_restore_callee_saves): Likewise. |
| (arc_save_callee_enter): Likewise. |
| (arc_restore_callee_leave): Likewise. |
| (arc_save_callee_milli): Likewise. |
| (arc_eh_return_address_location): Likewise. |
| (arc_check_multi): Use hard frame regnum. |
| (arc_can_eliminate): Likewise. |
| * config/arc/arc.h (FIXED_REGISTERS): Make FP register available |
| for register allocator. |
| (REG_CLASS_CONTENTS): Update GENERAL_REGS. |
| (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM. |
| (FRAME_POINTER_REGNUM): Change it to a fake register. |
| (HARD_FRAME_POINTER_REGNUM): Defined. |
| (ARG_POINTER_REGNUM): Change it to a new fake register. |
| (ELIMINABLE_REGS): Update. |
| (REGISTER_NAMES): Update names. |
| * config/arc/arc.md (LP_START): Remove. |
| (LP_END): Likewise. |
| (shift_si3_loop): Update pattern. |
| |
| 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless |
| to avoid delay slot scheduling. |
| (arc_must_save_register): Don't save SP. |
| * config/arc/arc.md (stack_tie): Remove. |
| (UNSPEC_ARC_STKTIE): Likewise. |
| |
| 2019-04-16 Kito Cheng <kito.cheng@gmail.com> |
| Shiva Chen <shiva0217@gmail.com> |
| |
| * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong |
| code gen with large shift amount. |
| |
| 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle |
| subreg. |
| |
| 2019-04-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/90096 |
| * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only |
| print -m64/-mx32/-m32 if it is true. |
| (ix86_debug_options, ix86_function_specific_print): Pass true as |
| ADD_ABI_P to ix86_target_string. |
| (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as |
| ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case |
| or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32. |
| |
| PR rtl-optimization/90082 |
| * dce.c (can_delete_call): New function. |
| (deletable_insn_p, mark_insn): Use it. |
| |
| PR tree-optimization/90090 |
| * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can |
| throw internally. |
| (is_division_by_square): Likewise. Formatting fix. |
| |
| 2019-04-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/56049 |
| * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set |
| equality check if alias-set zero will prevail. |
| |
| 2019-04-15 Jeff Law <law@redhat.com> |
| |
| * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat |
| size and alignment as unsigned. |
| |
| 2019-04-15 Richard Biener <rguenther@suse.de> |
| |
| PR debug/90074 |
| * tree-loop-distribution.c (destroy_loop): Preserve correct |
| debug info. |
| |
| 2019-04-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90071 |
| * tree-ssa-reassoc.c (init_range_entry): Do not pick up |
| abnormal operands from def stmts. |
| |
| 2019-04-15 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/89794 |
| * combine.c (count_auto_inc): New function. |
| (try_combine): Count how many auto_inc expressions there were in the |
| original instructions. Ensure we have the same number in the new |
| instructions. Remove the code that tried to ensure auto_inc side |
| effects on i1 and i0 are not lost. |
| |
| 2019-04-15 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/88936 |
| * tree.h (auto_var_p): Declare. |
| * tree.c (auto_var_p): New function, split out from ... |
| (auto_var_in_fn_p): ... here. |
| * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid |
| member. |
| (new_var_info): Initialize it. |
| (set_uids_in_ptset): Also set the shadow variable uid if required. |
| (ipa_pta_execute): Postprocess points-to solutions assigning |
| shadow variable uids for locals that may reach their containing |
| function recursively. |
| * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not |
| assert but instead check whether the points-to solution is |
| a singleton. |
| |
| 2019-04-15 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/pr89693 |
| * cgraph.c (clone_of_p): Loop over clone chain for each step in |
| the thunk chain. |
| |
| 2019-04-15 Monk Chiang <sh.chiang04@gmail.com> |
| |
| * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes. |
| |
| 2019-04-15 Monk Chiang <sh.chiang04@gmail.com> |
| Kito Cheng <kito.cheng@gmail.com> |
| Shiva Chen <shiva0217@gmail.com> |
| |
| * config/nds32/nds32-md-auxiliary.c |
| (nds32_legitimize_pic_address): Use new PIC pattern. |
| (nds32_legitimize_tls_address): Use new TLS pattern. |
| (nds32_output_symrel): New. |
| * config/nds32/nds32-protos.h (nds32_output_symrel): Declare. |
| (nds32_alloc_relax_group_id): Ditto. |
| * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New. |
| (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use |
| relax_group_id. |
| (nds32_group_tls_insn): Ditto. |
| (nds32_group_float_insns): Ditto. |
| * config/nds32/nds32.md (tls_le): New. |
| (sym_got): Ditto. |
| |
| 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * configure: Add nds32 target for dwarf2 debug_line checking. |
| * configure.ac: Regenerated. |
| |
| 2019-04-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/89358 |
| * ipa-devirt.c (skip_in_fields_list_p): New. |
| (odr_types_equivalent_p): Use it. |
| |
| 2019-04-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89093 |
| * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp |
| instead of strncmp when checking for thumb and arm. Formatting fixes. |
| |
| 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * doc/install.texi: Document --with-target-system-zlib. |
| |
| 2019-04-12 Martin Sebor <msebor@redhat.com> |
| |
| PR c/88383 |
| PR c/89288 |
| PR c/89798 |
| PR c/89797 |
| * targhooks.c (default_vector_alignment): Avoid assuming |
| argument fits in SHWI. |
| * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in |
| a shift expression. |
| * doc/extend.texi (__builtin_has_attribute): Add a clarifying note. |
| |
| 2019-04-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/89965 |
| * dce.c: Include rtl-iter.h. |
| (struct check_argument_load_data): New type. |
| (check_argument_load): New function. |
| (find_call_stack_args): Check for loads from stack slots still tracked |
| in sp_bytes and punt if any is found. |
| |
| * config/mips/loongson-mmiintrin.h: Fix up #error message. |
| |
| 2019-04-12 Jan Hubicka <hubicka@ucw.cz> |
| |
| * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter. |
| * doc/invoke.texi (max-lto-streaming-paralellism): New --param. |
| |
| 2019-04-12 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/89970 |
| * multiple_target.c (create_dispatcher_calls): Wrap ifunc |
| in error message. |
| (separate_attrs): Handle multiple 'default's. |
| (expand_target_clones): Rework error handling code. |
| |
| 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| PR target/87532 |
| * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner |
| mode of vector rather than mode of destination for move instruction. |
| * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var): |
| Use QI inner mode with V16QI vector mode. |
| |
| 2019-04-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/52726 |
| * config/tilepro/tilepro.c (tilepro_print_operand): Use just |
| "invalid %%t operand" in output_operand_lossage message. |
| |
| 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/predicates.md (permute_pattern_operand): New |
| predicate. |
| * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE |
| operand for the permute pattern. |
| ("*vec_perm<mode>"): New insn definition. |
| ("bswap<mode>"): Generate the permute pattern operand in the |
| expander and perform the operand reloads for pre arch13 level |
| already. |
| ("*bswap<mode>_emu"): Rename to ... |
| ("*bswap<mode>"): ... this. And make the splitter vxe2 only. |
| * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"): |
| Add the USE operand for the permute pattern. |
| ("*vec_set_bswap_vec<mode>"): Likewise. |
| |
| 2019-04-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/89946 |
| * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p |
| and gcc_unreachable if it fails, just call tree_to_uhwi which |
| verifies that too. Test TREE_CHAIN instead of list_length > 1. |
| Start warning message with a lower-case letter. Formatting fixes. |
| |
| PR rtl-optimization/90026 |
| * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no |
| successors, look for BARRIERs inside of the whole BB_FOOTER chain |
| rather than just at the start of it. If e->src BB_FOOTER is not NULL |
| in cfglayout mode, use emit_barrier_after_bb. |
| |
| 2018-04-11 Steve Ellcey <sellcey@marvell.com> |
| |
| PR rtl-optimization/87763 |
| * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt): |
| New Instruction. |
| |
| 2019-04-11 Tom de Vries <tdevries@suse.de> |
| |
| * doc/extend.texi (@node Statement Exprs): Note variable shadowing at |
| max macro using statement expression. |
| |
| 2019-04-11 David Edelsohn <dje.gcc@gmail.com> |
| |
| * xcoffout.h (xcoff_private_rodata_section_name): Declare. |
| * xcoffout.c (xcoff_private_rodata_section_name): Define. |
| * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create |
| read_only_private_data_section using xcoff_private_rodata_section_name. |
| (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name. |
| |
| 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/90016 |
| * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'. |
| |
| 2019-04-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/89965 |
| * dce.c (sp_based_mem_offset): New function. |
| (find_call_stack_args): Use sp_based_mem_offset. |
| |
| 2019-04-11 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs. |
| |
| 2019-04-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90020 |
| * tree-ssa-sccvn.c (vn_reference_may_trap): New function. |
| * tree-ssa-sccvn.h (vn_reference_may_trap): Declare. |
| * tree-ssa-pre.c (compute_avail): Use it to not put |
| possibly trapping references after a call that might not |
| return into EXP_GEN. |
| * gcse.c (compute_hash_table_work): Do not elide |
| marking a block containing a call if the call might not |
| return. |
| |
| 2019-04-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90018 |
| * tree-vect-data-refs.c (vect_preserves_scalar_order_p): |
| Test both SLP and interleaving variants. |
| |
| 2019-04-11 Robin Dapp <rdapp@linux.ibm.com> |
| |
| * config/s390/8561.md: New file. |
| * config/s390/driver-native.c (s390_host_detect_local_cpu): |
| Add arch13 cpu model. |
| * config/s390/s390-opts.h (enum processor_type): Likewise. |
| * config/s390/s390.c (s390_get_sched_attrmask): Add arch13. |
| (s390_get_unit_mask): Likewise. |
| (s390_is_fpd): Likewise. |
| (s390_is_fxd): Likewise. |
| * config/s390/s390.h (s390_tune_attr): Likewise. |
| * config/s390/s390.md: Include arch13 pipeline description. |
| * config/s390/s390.opt: Add arch13. |
| |
| 2018-04-10 Steve Ellcey <sellcey@marvell.com> |
| |
| PR rtl-optimization/87763 |
| * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p): |
| New prototype. |
| * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p): |
| New function. |
| * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift): |
| New instruction. |
| (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto. |
| (*aarch64_bfi<GPI:mode>4_noand): Ditto. |
| (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto. |
| (*aarch64_bfi<GPI:mode>4_noshift): Ditto. |
| |
| 2019-04-10 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/invoke.texi (Optimize Options): Change "Nevertheless" to |
| "Although" in -fipa-icf documentation. |
| |
| * doc/invoke.texi (Debugging Options): Explicitly state the semantics |
| of using multiple -g options. |
| |
| 2019-04-10 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/89959 |
| * doc/gcov.texi: Make documentation of -x option |
| more precise. |
| |
| 2019-04-10 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt |
| member. |
| (DR_GROUP_SAME_DR_STMT): Remove. |
| * tree-vect-stmts.c (vectorizable_load): Remove unreachable code. |
| * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise, |
| replace with assert. |
| (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison. |
| (vect_record_grouped_load_vectors): Remove unreachable code. |
| |
| 2019-04-10 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/90016 |
| * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and |
| obsolete reference to N. |
| |
| 2019-04-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/90025 |
| * expr.c (store_expr): Set properly size on the MEM passed to |
| clear_storage. |
| |
| PR c++/90010 |
| * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr |
| with strlen in between hostsz-3 and hostsz-1 inclusive when no |
| translation is needed, and when translation is needed, only append |
| ... if the string length is hostsz or more bytes long. Avoid using |
| strncpy or strcat. |
| |
| 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com> |
| |
| PR target/90024 |
| * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter. |
| * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint |
| into three. |
| * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode |
| differences directly. |
| (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint. |
| |
| 2019-04-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR translation/90011 |
| * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces |
| from diagnostics. |
| * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p |
| diagnostics. |
| * config/riscv/freebsd.h (LINK_SPEC): Likewise. |
| * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise. |
| * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove |
| trailing space from -gsplit-dwarf diagnostics. |
| |
| PR tree-optimization/89998 |
| * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type |
| instead of integer_type_node if possible, don't add ranges if return |
| type is not compatible with int. |
| * gimple-fold.c (gimple_fold_builtin_sprintf, |
| gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded |
| integer_type_node. |
| |
| 2019-04-09 Martin Liska <mliska@suse.cz> |
| |
| * Makefile.in: Use GENERATOR_CFLAGS for all generators. |
| * doc/install.texi: Document the new config. |
| |
| 2019-04-09 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always |
| use gimple_expr_type for load and store calls. Skip over the |
| condition argument in a conditional internal function. |
| Protect use of TREE_INT_CST_LOW. |
| |
| 2019-04-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/90015 |
| * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo. |
| (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove |
| trailing period from it too. |
| |
| 2019-04-08 wu yuan <wuyuan5@huawei.com> |
| |
| * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model. |
| * config/aarch64/aarch64.md : Add "tsv110.md" |
| * config/aarch64/tsv110.md: New file. |
| |
| 2019-04-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/90006 |
| * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle |
| calls like lrint. |
| |
| 2019-04-08 Andrea Corallo <andrea.corallo@arm.com> |
| |
| PR target/83033 |
| * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy |
| construction. |
| (fma_root_node): Likewise. |
| (func_fma_steering): Likewise. |
| |
| 2019-04-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/89865 |
| * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z. |
| |
| PR rtl-optimization/89865 |
| * config/i386/i386.md |
| (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand |
| numbers not to clash with the additional operands[4]. |
| (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s |
| with extra register copy in the middle. |
| |
| 2019-04-08 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/89961 |
| * doc/gcov.texi: Document data_file. |
| * gcov.c (generate_results): Add data_info into JSON output. |
| |
| 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/89725 |
| * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer |
| loop's chrec as invariant symbol. |
| * tree-chrec.h (chrec_contains_symbols): New parameter. |
| * tree-data-ref.c (analyze_miv_subscript): Pass new argument. |
| (build_classic_dist_vector_1, add_other_self_distances): Bypass access |
| function of loops not in DDR's loop_nest. |
| * tree-data-ref.h (index_in_loop_nest): Add unreachable check. |
| |
| 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com> |
| |
| PR target/89623 |
| * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of |
| Mask. |
| |
| 2019-04-07 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89945 |
| * config/i386/i386.md (anddi_1 to andsi_1_zext splitter): |
| Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand. |
| |
| 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com> |
| |
| * sched-deps.c (sched_macro_fuse_insns): Check return value of |
| targetm.fixed_condition_code_regs. |
| |
| 2019-04-05 Richard Biener <rguenther@suse.de> |
| |
| PR debug/89892 |
| PR debug/89905 |
| * tree-cfgcleanup.c (remove_forwarder_block): Always move |
| debug bind stmts but reset them if they are not valid at the |
| destination. |
| |
| 2019-04-05 Martin Liska <mliska@suse.cz> |
| |
| PR translation/89936 |
| * collect-utils.c (collect_execute): Use %< and %>, or %qs in |
| order to wrap keywords or arguments. |
| * collect2.c (main): Likewise. |
| (scan_prog_file): Likewise. |
| (scan_libraries): Likewise. |
| * common/config/riscv/riscv-common.c |
| (riscv_subset_list::parsing_subset_version): Likewise. |
| (riscv_subset_list::parse_std_ext): Likewise. |
| * config/aarch64/aarch64.c (aarch64_override_options_internal): |
| Likewise. |
| * config/arm/arm.c (arm_option_override): Likewise. |
| * config/cris/cris.c (cris_print_operand): Likewise. |
| * config/darwin-c.c (darwin_pragma_options): Likewise. |
| (darwin_pragma_unused): Likewise. |
| (darwin_pragma_ms_struct): Likewise. |
| * config/ft32/ft32.c (ft32_print_operand): Likewise. |
| * config/i386/i386.c (print_reg): Likewise. |
| (ix86_print_operand): Likewise. |
| * config/i386/xm-djgpp.h: Likewise. |
| * config/iq2000/iq2000.c (iq2000_print_operand): Likewise. |
| * config/m32c/m32c.c (m32c_option_override): Likewise. |
| * config/msp430/msp430.c (msp430_option_override): Likewise. |
| * config/nds32/nds32.c (nds32_option_override): Likewise. |
| * config/nvptx/mkoffload.c (main): Likewise. |
| * config/rx/rx.c (rx_print_operand): Likewise. |
| (valid_psw_flag): Likewise. |
| * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise. |
| (vms_pragma_nomember_alignment): Likewise. |
| (vms_pragma_extern_model): Likewise. |
| * lto-wrapper.c (compile_offload_image): Likewise. |
| * omp-offload.c (oacc_parse_default_dims): Likewise. |
| * symtab.c (symtab_node::verify_base): Likewise. |
| * tlink.c (recompile_files): Likewise. |
| (start_tweaking): Likewise. |
| * tree-profile.c (parse_profile_filter): Likewise. |
| |
| 2019-04-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/89956 |
| * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against |
| multiple negates of the same value. |
| |
| 2019-04-04 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/89957 |
| PR middle-end/89911 |
| * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands |
| have the same precision since the function crashes otherwise. |
| * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call |
| has non-zero arguments. |
| |
| 2019-04-04 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/89934 |
| * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail |
| out if the number of arguments is less than expected. |
| |
| 2019-04-04 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/89399 |
| * ree.c (combine_set_extension): Use single_set rather than |
| digging into PATTERN for items on the candidate list. |
| (combine_reaching_defs): Likewise. |
| |
| 2019-04-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR rtl-optimization/46590 |
| * loop-invariant.c (find_defs): Move df_remove_problem and |
| df_process_deferred_rescans to move_invariants. |
| Move df_live_add_problem and df_live_set_all_dirty calls |
| to move_invariants. |
| (move_invariants): Likewise. |
| (move_loop_invariants): Likewise, making the df_live calls |
| conditional on -O. Remove the problem again if we added it |
| locally. |
| |
| 2019-04-03 qing zhao <qing.zhao@oracle.com> |
| |
| PR tree-optimization/89730 |
| * ipa-inline.c (can_inline_edge_p): Delete the checking for |
| -flive-patching=inline-only-static. |
| (can_inline_edge_by_limits_p): Add the checking for |
| -flive-patching=inline-only-static and grant always_inline |
| even when -flive-patching=inline-only-static is specified. |
| |
| 2019-04-03 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/81025 |
| * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER. |
| |
| 2019-04-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/84101 |
| * tree-vect-stmts.c: Include explow.h for hard_function_value, |
| regs.h for hard_regno_nregs. |
| (cfun_returns): New helper. |
| (vect_model_store_cost): When vectorizing a store to a decl |
| we return and the function ABI returns in a multi-reg location |
| account for the possible spilling that will happen. |
| |
| 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.c (s390_legitimate_address_p): Reject long |
| displacement addresses for vector mode operands. |
| |
| 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (GMASK_LEN): Define. |
| (arc_restore_callee_saves): Restore first blink when |
| !optimize_size. |
| |
| 2019-04-03 Sudakshina Das <sudi.das@arm.com> |
| |
| * doc/extend.texi: Add deprecated comment on sign-return-address |
| function attribute and add mbranch-protection. |
| * doc/invoke.texi: Add bti to the options for mbranch-protection. |
| |
| 2019-04-03 Richard Biener <rguenther@suse.de> |
| |
| PR lto/89896 |
| * lto-wrapper.c (run_gcc): Avoid implicit rules making |
| the all target phony. |
| |
| 2019-04-02 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89902 |
| PR target/89903 |
| * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): |
| Return false for variable DImode shifts. |
| (dimode_scalar_chain::compute_convert_gain): Do not handle |
| register count operand in variable DImode shifts. |
| (dimode_scalar_chain::make_vector_copies): Remove support to copy |
| count argument of a variable shift instruction to a vector register. |
| (dimode_scalar_chain::convert_reg): Remove support to convert |
| count argument of a variable shift instruction. |
| |
| 2019-04-02 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR rtl-optimization/84206 |
| * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when |
| iterating over loop headers. |
| |
| 2019-04-02 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR rtl-optimization/85876 |
| * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn |
| beyond the original fence. |
| |
| 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| * config.gcc: Mark spu* targets as deprecated/obsolete. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-builtin-types.def: New builtin function type |
| definitions. Remove unused types. |
| * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb) |
| (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions. |
| (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New |
| overloaded builtins. |
| (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb) |
| (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins. |
| * config/s390/vecintrin.h (vec_float): New builtin macro definition. |
| (vec_double, vec_signed, vec_unsigned): Define to use the new |
| overloaded builtins. |
| * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"): |
| Remove expanders. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-builtin-types.def: New builtin function type |
| definitions. |
| * config/s390/s390-builtins.def (s390_vec_search_string_cc) |
| (s390_vec_search_string_until_zero_cc): New overloaded builtins. |
| (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb) |
| (s390_vstrszh, s390_vstrszf): New low-level builtins. |
| * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New |
| constant definitions. |
| * config/s390/vecintrin.h (vec_search_string_cc) |
| (vec_search_string_until_zero_cc): New builtin name definitions. |
| * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New |
| expanders. |
| ("vec_vstrs<mode>"): New insn definition. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-builtin-types.def: Add new builtin function |
| types. |
| * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb): |
| New overloaded builtins. |
| (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and |
| s390_vsrd. |
| * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ... |
| (UNSPEC_VEC_SLDBYTE): ... this. |
| (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions. |
| * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name |
| definitions. |
| * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"): |
| Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE. |
| ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"): |
| New insn definition. |
| * config/s390/vx-builtins.md (V_HW_HSD): Move to ... |
| * config/s390/vector.md (V_HW_HSD): ... here. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler. |
| * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>") |
| ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>") |
| ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"): |
| New insn definitions. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-builtin-types.def: Add new builtin function type. |
| * config/s390/s390-builtins.def: Add overloaded builtin |
| s390_vec_reve and low-level builtins for s390_vler and s390_vster. |
| * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition. |
| * config/s390/vecintrin.h (vec_reve): New builtin name definition. |
| * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator. |
| ("eltswap<mode>"): New expander. |
| ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New |
| insn definitions. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-builtin-types.def: Add new builtin function types. |
| * config/s390/s390-builtins.def: Add overloaded builtin |
| s390_vec_revb. Add low-level builtins for vlbr and vstbr |
| instructions. |
| * config/s390/vecintrin.h (vec_revb): New builtin name definition. |
| * config/s390/vector.md (VT_HW_HSDT): New mode iterator. |
| ("bswap<mode>"): New expander. |
| ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition. |
| * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment |
| vector builtin version number in __VEC__. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode |
| iterators. |
| (SFSI): New mode attribute. |
| ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13") |
| ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and |
| rename to ... |
| ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13") |
| ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13") |
| ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these. |
| ("floatsi<mode>2"): Add wcefb instruction. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.md ("xde"): Extend mode attribute to vector types. |
| * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New |
| mode iterators. |
| ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2") |
| ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also |
| support 32 bit fp-int conversions. Rename to ... |
| ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2") |
| ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2") |
| ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2") |
| ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"): |
| ... to these. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for |
| if-then-else constructs if we can use the select instruction. |
| * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.md ("*popcountdi_arch13_cc") |
| ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn |
| definition. |
| ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"): |
| Append _z196 to make it ... |
| ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196") |
| ("popcounthi2_z196"): ... this. |
| ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition. |
| ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.c (s390_canonicalize_comparison): Convert |
| certain compares for arch13 in order to make use of the condition |
| code result produced by the new instructions. |
| (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk, |
| nxrk, and nxgrk instruction patterns. |
| * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name) |
| (inv_no): Add new code iterator together with some attributes. |
| ("*andc_split_<mode>"): Disable splitter for arch13. |
| ("*<ANDOR:bitops_name>c<GPR:mode>_cc") |
| ("*<ANDOR:bitops_name>c<GPR:mode>_cconly") |
| ("*<ANDOR:bitops_name>c<GPR:mode>") |
| ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc") |
| ("*n<ANDOR:inv_bitops_name><mode>_cconly") |
| ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc") |
| ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions. |
| |
| 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * common/config/s390/s390-common.c (processor_flags_table): New |
| entry for arch13. |
| * config.gcc: Support arch13 with the --with-arch= configure flag. |
| * config/s390/driver-native.c (s390_host_detect_local_cpu): |
| * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13. |
| * config/s390/s390.c (s390_get_sched_attrmask) |
| (s390_get_unit_mask): Add PROCESSOR_ARCH13. |
| * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13. |
| * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P) |
| (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13) |
| (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro |
| definitions. |
| * config/s390/s390.opt: Support arch13 as processor type in |
| command line options. |
| |
| 2019-04-02 Martin Liska <mliska@suse.cz> |
| |
| PR translation/89912 |
| * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): |
| Fix param description of graphite-max-arrays-per-scop. |
| |
| 2019-04-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro. |
| (ASAN_CC1_SPEC): Use it in 64-bit mode. |
| * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon. |
| |
| 2019-04-01 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR rtl-optimization/85412 |
| * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before |
| sel_sched_region_1, not after. |
| |
| 2019-04-01 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR rtl-optimization/86928 |
| * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke |
| compute_live if necessary. |
| (sel_redirect_edge_and_branch): Likewise. |
| |
| 2019-04-01 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/89865 |
| * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard |
| register if it is a part of small class. |
| |
| 2019-04-01 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR rtl-optimization/87273 |
| * sel-sched-ir.c (merge_fences): Remove assert. |
| |
| 2019-04-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/46590 |
| * domwalk.h (dom_walker::dom_walker): Consolidate constructors. |
| (dom_walker::m_reachability): Add in place of... |
| (dom_walker::m_skip_unreachable_blocks): ...this. |
| * domwalk.c (dom_walker::dom_walker): Consoliate constructors. |
| Move complex initialization ... |
| (dom_walker::walk): Here. Especially compute m_bb_to_rpo |
| lazily and initialize edge flags on each invocation. |
| (dom_walker::bb_reachable): Use m_reachability. |
| |
| 2019-04-01 Martin Liska <mliska@suse.cz> |
| |
| PR driver/89861 |
| * opt-suggestions.c (option_proposer::build_option_suggestions): |
| Add variant without any argument in order to provide better |
| hints. |
| |
| 2019-04-01 Richard Biener <rguenther@suse.de> |
| |
| PR c/71598 |
| * gimple.c: Include langhooks.h. |
| (gimple_get_alias_set): Treat enumeral types as the underlying |
| integer type. |
| |
| 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/89862 |
| * rtl.h (word_register_operation_p): Exclude CONST_INT from operations |
| that operates on the full registers for WORD_REGISTER_OPERATIONS |
| architectures. |
| |
| 2019-03-29 Jim Wilson <jimw@sifive.com> |
| |
| * common/config/riscv/riscv-common.c (riscv_parse_arch_string): |
| Clear MASK_RVC and then set if C subset supported. |
| |
| 2019-03-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/89872 |
| * gimplify.c (gimplify_compound_literal_expr): Don't optimize a |
| non-addressable complit into its initializer if it is volatile. |
| |
| 2019-03-29 Roman Zhuykov <zhroma@ispras.ru> |
| |
| * opts-common.c (integral_argument): Set errno properly in one case. |
| |
| 2019-03-29 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Remove -Wchkp from documentation. |
| |
| 2019-03-29 Martin Liska <mliska@suse.cz> |
| |
| * dbgcnt.c (print_limit_reach): New function. |
| (dbg_cnt): Use it. |
| |
| 2019-03-29 Martin Liska <mliska@suse.cz> |
| |
| * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style. |
| (dbg_cnt_process_opt): Parse first tokens aas |
| dbg_cnt_process_single_pair is also using strtok. |
| |
| 2019-03-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/87485 |
| * function.c (expand_function_end): Move stack_protect_epilogue |
| before loading of return value into hard register(s). |
| |
| 2019-03-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/89621 |
| * tree-inline.h (struct copy_body_data): Add |
| dont_remap_vla_if_no_change flag. |
| * tree-inline.c (remap_type_3, remap_type_2): New functions. |
| (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change |
| and remap_type_2 returns false. |
| * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change. |
| Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx |
| only from where it is copied to nested contexts. |
| |
| 2019-03-28 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89865 |
| * config/i386/i386.md (RMW operation with LEA peephole): |
| Use LEAMODE mode attribute instead of SWI mode iterator for |
| LEA pattern. |
| |
| 2019-03-28 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89848 |
| * config/i386/i386.c (dimode_scalar_chain::make_vector_copies): |
| Also process XEXP (src, 0) of a shift insn. |
| |
| 2019-03-28 David Malcolm <dmalcolm@redhat.com> |
| |
| PR middle-end/89725 |
| * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json): |
| Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl. |
| |
| 2019-03-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P |
| test. |
| (cprop_hardreg_bb, cprop_hardreg_debug): New functions. |
| (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing |
| immediately after first one with df_analyze in between, but rather |
| process all bbs, queueing ones that need second pass in a worklist, |
| df_analyze, process queued debug insn changes and if second pass is |
| needed, process bbs from worklist, df_analyze, process queued debug |
| insns again. |
| |
| * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P |
| or CALL_P instead of INSN_P && !DEBUG_INSN_P. |
| (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P. |
| |
| 2019-03-28 Jonathan Wakely <jwakely@redhat.com> |
| |
| PR c/79022 |
| * gengtype.h (create_nested_ptr_option): Fix parameter names to match |
| definition. |
| |
| 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl> |
| |
| PR target/85667 |
| * config/i386/i386.c (ix86_function_value_1): Call the newly added |
| function for 32-bit MS_ABI. |
| (function_value_ms_32): New function. |
| |
| 2019-03-27 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/gcn/gcn.md (CC_SAVE_REG): New constant. |
| (movdi): Call gen_movdi_symbol_save_scc. |
| (gen_movdi_symbol_save_scc): New insn and split. |
| |
| 2019-03-27 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR rtl-optimization/89313 |
| * function.c (matching_constraint_num): New static function. |
| (match_asm_constraints_1): Use it. Fixup white space and comment. |
| Don't replace inputs with non-matching constraints which conflict |
| with early clobber outputs. |
| |
| 2019-03-27 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/87761 |
| PR rtl-optimization/89826 |
| * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test |
| slightly later. |
| (pass_cprop_hardreg::execute): Call df_analyze after adding the |
| note problem to get REG_DEAD/REG_UNUSED notes updated. |
| |
| 2019-03-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89463 |
| * tree-ssa-dce.c (remove_dead_stmt): Take output vector to |
| queue edges to remove. |
| (eliminate_unnecessary_stmts): Remove dead PHIs alongside |
| dead stmts. Delay edge removal until PHIs are removed to |
| make debug-stmt creation not confused by seemingly degenerate |
| PHIs. |
| |
| 2019-03-27 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS |
| throughout file. |
| * config/rs6000/darwin.h: Likewise. |
| * config/rs6000/rs6000.c: Likewise. |
| |
| 2019-03-27 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always |
| assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting. |
| |
| 2019-03-26 Andrew Waterman <andrew@sifive.com> |
| Jim Wilson <jimw@sifive.com> |
| |
| * config/riscv/generic.md (generic_alu, generic_load, generic_store) |
| (generic_xfer, generic_branch, generic_imul, generic_idivsi) |
| (generic_idivdi, generic_fmul_single, generic_fmul_double) |
| (generic_fdiv, generic_fsqrt): Add check for generic tune. |
| (generic_alu): Add auipc to type list. |
| * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New. |
| (riscv_microarchitecture): Declare. |
| * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare. |
| * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture |
| field. |
| (riscv_microarchitecture): New. |
| (sifive_7_tune_info): New. |
| (riscv_cpu_info_table): Add microarchitecture value for rocket and |
| size. Add sifive-3-series, sifive-5-series, and sifive-7-series |
| entries. |
| (riscv_store_data_bypass_p): New. |
| (riscv_option_override): Set riscv_microarchitecture from |
| cpu->microarchitecture. |
| * config/riscv/riscv.md: Include sifive-7.md. |
| (type): Add auipc. |
| (tune): New. |
| (auipc<mode>): Change type to auipc. |
| (restore_stack_nonlocal): New. |
| * config/riscv/sifive-7.md: New. |
| * doc/invoke.texi (RISC-V Options): Update mtune docs. |
| |
| 2019-03-26 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89827 |
| * config/i386/i386.c (dimode_scalar_chain::convert_reg): |
| Also process XEXP (src, 0) of a shift insn. |
| |
| 2019-03-26 Richard Biener <rguenther@suse.de> |
| |
| * tree-inline.c (remap_gimple_stmt): Cache gimple_block. |
| (copy_debug_stmt): Likewise. |
| (expand_call_inline): Likewise. |
| (copy_bb): Avoid redundant lookup & set of gimple_block. |
| * gimple-low.c (lower_gimple_return): Likewise. |
| (lower_builtin_setjmp): Likewise. |
| |
| 2019-03-26 Jakub Jelinek <jakub@redhat.com> |
| |
| * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS |
| is constant 0, turn into static const data member initialized to false. |
| (hash_table::hash_table): Only initialize m_gather_mem_stats #if |
| GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param. |
| |
| 2019-03-26 Jason Merrill <jason@redhat.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| * mem-stats.h (mem_alloc_description::unregister_descriptor): New |
| method. |
| (mem_alloc_description::release_object_overhead): Fix comment typos. |
| * hash-table.h (hash_table::~hash_table): Call |
| release_instance_overhead only if m_entries is non-NULL, otherwise |
| call unregister_descriptor. |
| |
| 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/81740 |
| * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): |
| In case of outer loop vectorization, check for backward dependence |
| at the inner loop if outer loop dependence is reversed. |
| |
| 2019-03-26 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct |
| rs6000_vector_mem init. Correct wI and wJ comment. |
| |
| 2019-03-25 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR rtl-optimization/88347 |
| PR rtl-optimization/88423 |
| * sched-deps.c (sched_analyze_insn): Take into account that for |
| tablejumps the barrier appears after a label and a jump_table_data. |
| |
| 2019-03-25 Martin Sebor <msebor@redhat.com> |
| |
| PR c/89812 |
| * c-common.c (check_user_alignment): Rename local. Correct maximum |
| alignment in diagnostic. Avoid assuming argument fits in SHWI, |
| convert it to UHWI when it fits. |
| |
| 2019-03-25 Johan Karlsson <johan.karlsson@enea.com> |
| |
| PR debug/86964 |
| * dwarf2out.c (premark_used_variables): New function. |
| (prune_unused_types_walk): Do not mark not premarked external |
| variables. |
| (prune_unused_types): Call premark_used_variables. |
| |
| 2019-03-25 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/89676 |
| * lra-constraints.c (curr_insn_transform): Do match reload for |
| early clobbers when the match was successful only for different |
| registers. |
| |
| 2019-03-25 Martin Sebor <msebor@redhat.com> |
| |
| * doc/extend.texi (Common Type Attributes): Document vector_size. |
| (Common Variable Attributes): Mention size constraint. Correct |
| quoting and typos. |
| (Vector Extensions): Use @dfn when defining bas type. Clarify |
| base type and size constraints. |
| |
| 2019-03-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89789 |
| * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice |
| changes from non-undefined back to undefined. |
| |
| 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de> |
| |
| * dwarf2out.c (comp_dir_string): cached_wd could be set to both a |
| heap string and a gc string, but since this variable is unknown to |
| ggc the gc string might get reused and corrupted. Fixed by always |
| using a heap string. |
| |
| 2019-03-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89779 |
| * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return |
| to remove IV defs, delay actual removal. |
| (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset. |
| (tree_ssa_iv_optimize): Remove eliminated IV defs at the |
| very end, properly also reset loop control IV information. |
| |
| 2019-03-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89802 |
| * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly |
| move EH data to folded stmt. |
| |
| 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-builtin-types.def: Remove few unused types and |
| fix sort order for others. |
| |
| 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-c.c (s390_fn_types_compatible): Print the |
| expected and found types with -mdebug during builtin matching. |
| |
| 2019-03-25 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89790 |
| * fold-const.c (operand_equal_p): Revert last change with |
| updated comment. |
| |
| 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL |
| notes for the result of the __tls_get_addr calls. |
| * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New. |
| |
| 2019-03-24 Jeff Law <law@redhat.com> |
| |
| * config/bfin/bfin.md (movpdi): Fix length for alternative 1. |
| |
| PR rtl-optimization/87761 |
| * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET, |
| not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan |
| as needed. |
| (pass_cprop_hardreg::execute): Add df note problem and defer insn |
| rescans. Reprocess blocks as needed, calling df_analyze before |
| reprocessing. Always call df_analyze before fixing up debug bind |
| insns. |
| |
| 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit |
| big endian. |
| |
| 2019-03-22 Andrew Pinski <apinski@marvell.com> |
| |
| * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type |
| attrribute for uxtw. |
| |
| 2019-03-26 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/87761 |
| * config/mips/mips-protos.h (mips_split_move): Add new argument. |
| (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move. |
| (mips_split_move): Accept new INSN argument. Try to forward SRC |
| into the next instruction. |
| (mips_split_move_insn): Pass INSN through to mips_split_move. |
| |
| 2019-03-22 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/89676 |
| * lra-constraints.c (curr_insn_transform): Do match reload for |
| early clobbers even if the match was successful. |
| |
| 2019-03-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/87481 |
| * doc/invoke.texi (-fconstexpr-ops-limit=): Document. |
| |
| 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo. |
| |
| 2019-03-22 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>, |
| <avx512>_fmsub_<mode>_mask3<round_name>, |
| <avx512>_fnmadd_<mode>_mask3<round_name>, |
| <avx512>_fnmsub_<mode>_mask3<round_name>, |
| avx512f_vmfmadd_<mode>_mask3<round_name>, |
| avx512f_vmfmsub_<mode>_mask3<round_name>, |
| *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate> |
| instead of register_operand and %v instead of v for match_operand 1. |
| (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ... |
| (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use |
| <round_nimm_predicate> instead of register_operand and %v instead of v |
| for match_operand 1. |
| |
| * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>, |
| <avx512>_fmadd_<mode>_mask3<round_name>, |
| <avx512>_fmsub_<mode>_mask<round_name>, |
| <avx512>_fmsub_<mode>_mask3<round_name>, |
| <avx512>_fnmadd_<mode>_mask<round_name>, |
| <avx512>_fnmadd_<mode>_mask3<round_name>, |
| <avx512>_fnmsub_<mode>_mask<round_name>, |
| <avx512>_fnmsub_<mode>_mask3<round_name>, |
| <avx512>_fmaddsub_<mode>_mask<round_name>, |
| <avx512>_fmaddsub_<mode>_mask3<round_name>, |
| <avx512>_fmsubadd_<mode>_mask<round_name>, |
| <avx512>_fmsubadd_<mode>_mask3<round_name>): Use |
| <round_nimm_predicate> instead of nonimmediate_operand. |
| (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>, |
| fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>): |
| Use register_operand instead of <round_nimm_predicate> for the |
| operand that needs to match output. |
| (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>, |
| *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>): |
| Likewise. Formatting fixes. |
| |
| PR target/89784 |
| * config/i386/i386.c (enum ix86_builtins): Remove |
| IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3. |
| * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask, |
| __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz, |
| __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask, |
| __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz, |
| __builtin_ia32_vfmsubss3_mask3): New builtins. |
| * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>, |
| avx512f_vmfmadd_<mode>_mask3<round_name>, |
| avx512f_vmfmadd_<mode>_maskz_1<round_name>, |
| *avx512f_vmfmsub_<mode>_mask<round_name>, |
| avx512f_vmfmsub_<mode>_mask3<round_name>, |
| *avx512f_vmfmasub_<mode>_maskz_1<round_name>, |
| *avx512f_vmfnmadd_<mode>_mask<round_name>, |
| *avx512f_vmfnmadd_<mode>_mask3<round_name>, |
| *avx512f_vmfnmadd_<mode>_maskz_1<round_name>, |
| *avx512f_vmfnmsub_<mode>_mask<round_name>, |
| avx512f_vmfnmsub_<mode>_mask3<round_name>, |
| *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns. |
| (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand. |
| * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss, |
| _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd, |
| _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss, |
| _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd, |
| _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss, |
| _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd, |
| _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss, |
| _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd, |
| _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss, |
| _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss, |
| _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss, |
| _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss, |
| _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss, |
| _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss, |
| _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss, |
| _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss, |
| _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss, |
| _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss, |
| _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss, |
| _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics. |
| |
| 2019-03-21 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/89350 |
| * builtins.c (compute_objsize): Also ignore offsets whose upper |
| bound is negative. |
| * gimple-ssa-warn-restrict.c (builtin_memref): Add new member. |
| (builtin_memref::builtin_memref): Initialize new member. |
| Allow EXPR to be null. |
| (builtin_memref::extend_offset_range): Replace local with a member. |
| Avoid assuming pointer offsets are unsigned. |
| (builtin_memref::set_base_and_offset): Determine base object |
| before computing offset range. |
| (builtin_access::builtin_access): Handle memset. |
| (builtin_access::generic_overlap): Replace local with a member. |
| (builtin_access::strcat_overlap): Same. |
| (builtin_access::overlap): Same. |
| (maybe_diag_overlap): Same. |
| (maybe_diag_access_bounds): Same. |
| (wrestrict_dom_walker::check_call): Handle memset. |
| (check_bounds_or_overlap): Same. |
| |
| 2019-03-21 Jan Hubicka <hubicka@ucw.cz> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR lto/89692 |
| * tree.c (fld_type_variant, fld_incomplete_type_of, |
| fld_process_array_type): Call fld->pset.add and don't call |
| add_tree_to_fld_list if it returns true. |
| (free_lang_data_in_type): Similarly with self-recursive call. Purge |
| non-marked types from TYPE_NEXT_VARIANT list. |
| (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t). |
| |
| 2019-03-21 Jakub Jelinek <jakub@redhat.com> |
| |
| * hash-table.h (hash_table): Add Lazy template parameter defaulted |
| to false, if true, don't alloc_entries during construction, but defer |
| it to the first method that needs m_entries allocated. |
| (hash_table::hash_table, hash_table::~hash_table, |
| hash_table::alloc_entries, hash_table::find_empty_slot_for_expand, |
| hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow, |
| hash_table::clear_slot, hash_table::traverse_noresize, |
| hash_table::traverse, hash_table::iterator::slide): Adjust all methods. |
| * hash-set.h (hash_set): Add Lazy template parameter defaulted to |
| false. |
| (hash_set::contains): If Lazy is true, use find_slot_with_hash with |
| NO_INSERT instead of find_with_hash. |
| (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter, |
| hash_set::m_table): Add Lazy to template params of hash_table. |
| (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param. |
| * attribs.c (test_attribute_exclusions): Likewise. |
| * hash-set-tests.c (test_set_of_strings): Add iterator tests for |
| hash_set. Add tests for hash_set with Lazy = true. |
| |
| 2019-03-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89779 |
| * tree.c (tree_nop_conversion): Consolidate and fix defensive |
| checks with respect to released SSA names now having error_mark_node |
| type. |
| * fold-const.c (operand_equal_p): Likewise. |
| |
| 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| PR target/89775 |
| * config/s390/s390.c (global_not_special_regno_p): Move to make it |
| available to ... |
| (s390_optimize_register_info): Use global_not_special_regno_p to |
| check for global regs. |
| |
| 2019-03-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89752 |
| * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't |
| update this_alternative nor this_alternative_set. |
| |
| 2019-03-19 Jim Wilson <jimw@sifive.com> |
| |
| PR target/89411 |
| * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals |
| align, size, offset. Use them to handle a BLKmode reference. Update |
| comment. |
| (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p. |
| |
| 2019-03-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/89768 |
| * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode |
| instead of GEN_INT. |
| (unroll_loop_runtime_iterations): Likewise. |
| |
| 2019-03-19 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/89644 |
| * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p |
| rather than endptr as an indicator of nul-termination. |
| |
| PR tree-optimization/89644 |
| * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated |
| arrays in determining sequence sizes in strncpy and stpncpy. |
| |
| 2019-03-19 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/89737 |
| * predict.c (combine_predictions_for_bb): Empty likely_edges and |
| unlikely_edges if there's an edge that belongs to both these sets. |
| |
| 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/89746 |
| * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a |
| non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned, |
| go via a stack temporary. |
| |
| 2019-03-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89378 |
| * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart |
| instead of gen_rtx_SUBREG. |
| * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise. |
| |
| 2019-03-19 Richard Biener <rguenther@suse.de> |
| |
| PR debug/88389 |
| * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO. |
| |
| 2019-03-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/87809 |
| PR lto/89335 |
| * tree.c (free_lang_data_in_decl): Do not free context of C++ |
| destrutors. |
| |
| 2019-03-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89506 |
| * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use |
| subs for the first alternative except when operands[3] is 1. |
| |
| PR target/89752 |
| * gimplify.c (gimplify_asm_expr): For output argument with |
| TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise |
| diagnose error. |
| |
| 2019-03-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/89753 |
| * loop-unroll.c (decide_unroll_constant_iterations): Make guard for |
| explicit unrolling factor even more robust. |
| |
| 2019-03-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89726 |
| * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil |
| compensation use x2 += 1 instead of x2 -= -1 and when honoring |
| signed zeros, do another copysign after the compensation. |
| |
| 2019-03-18 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/89720 |
| * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min |
| more conservatively, the same as anti-range. |
| |
| 2019-03-18 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/88945 |
| * tree-ssanames.c (release_ssa_name_fn): For released SSA names |
| use a TREE_TYPE of error_mark_node to avoid ICEs when dumping |
| basic-blocks that are removed. Remove restoring SSA_NAME_VAR. |
| * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking. |
| |
| 2019-03-18 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/gcn/gcn-run.c (struct output): Make next_output unsigned. |
| Extend queue to 1024 entries. |
| Add "consumed" field. |
| (gomp_print_output): Remove print_index parameter. |
| Add final parameter. |
| Change limit to unsigned. |
| Use consumed field to implement circular buffer. |
| Detect interrupted print in final pass. |
| Flush output at the end. |
| (run): Update gomp_print_output usage. |
| (main): Initialize kernargs->output_data.consumed. |
| |
| 2019-03-18 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the |
| calculation of the minimum number of scalar iterations for |
| fully-predicated loops. |
| |
| 2019-03-18 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/89546 |
| * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if |
| any propagation to its children took place. |
| |
| 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com> |
| |
| PR target/89627 |
| * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset |
| parameter, and make use of it. |
| (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single. |
| |
| 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.opt (mcode-density-frame): Get the inital value |
| from TARGET_CODE_DENSITY_FRAME_DEFAULT. |
| * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define. |
| * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define. |
| * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to |
| match what the ops is doing. |
| (push_multi_fp_blink): Likewise. |
| * config/arc/arc.c (arc_override_options): Enable enter/leave when |
| compiling for size and elf target. |
| (arc_save_callee_enter): Adjust note to match what enter/leave |
| operation does. |
| |
| 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (tst_movb): Fix constraint. |
| |
| 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define. |
| |
| 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare. |
| * config/arc/arc.c (arc_conditional_register_usage): Remove all |
| reg_alloc_order references. |
| (size_alloc_order): Define. |
| (arc_adjust_reg_alloc_order): New function. |
| * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register |
| order. |
| (ADJUST_REG_ALLOC_ORDER): Define. |
| (HONOR_REG_ALLOC_ORDER): Likewise. |
| |
| 2019-03-18 Richard Biener <rguenther@suse.de> |
| |
| PR target/87561 |
| * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided |
| loads and stores a bit more. |
| |
| 2019-03-18 Richard Biener <rguenther@suse.de> |
| |
| PR target/87561 |
| * config/i386/i386.c (ix86_add_stmt_cost): Apply strided |
| load pessimization to stores as well. |
| |
| 2019-03-18 Andrey Belevantsev <abel@ispras.ru> |
| |
| PR middle-end/86979 |
| * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible |
| successor, use NULL as its av set. |
| |
| 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR rtl-optimization/89721 |
| * lra-constraints (invariant_p): Return false if side_effects_p holds. |
| |
| 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| PR target/87532 |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): |
| When handling vec_extract, use modular arithmetic to allow |
| constant selectors greater than vector length. |
| * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow |
| V1TImode vectors to have constant selector values greater than 0. |
| Use modular arithmetic to compute vector index. |
| (rs6000_split_vec_extract_var): Use modular arithmetic to compute |
| index for in-memory vectors. Correct code generation for |
| in-register vectors. |
| (altivec_expand_vec_ext_builtin): Use modular arithmetic to |
| compute index. |
| |
| 2019-03-15 Alexandre Oliva <aoliva@redhat.com> |
| |
| PR c++/88534 |
| PR c++/88537 |
| * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of |
| VAR_DECL args. |
| |
| 2019-03-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/89709 |
| * tree.c (inchash::add_expr): Strip any location wrappers. |
| * fold-const.c (operand_equal_p): Move stripping of location wrapper |
| after hash verification. |
| |
| PR debug/89704 |
| * dwarf2out.c (add_const_value_attribute): Return false for MINUS, |
| SIGN_EXTEND and ZERO_EXTEND. |
| |
| 2019-03-14 Jason Merrill <jason@redhat.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather |
| than if is_empty (*slot). |
| * hash-set-tests.c (test_set_of_strings): Add tests for addition of |
| existing elt and for elt removal. |
| * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal |
| of already removed elt. |
| |
| 2019-03-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89650 |
| * config/i386/i386.c (remove_partial_avx_dependency): Handle |
| REG_EH_REGION note. |
| |
| 2019-03-14 Martin Liska <mliska@suse.cz> |
| |
| PR other/89712 |
| * doc/invoke.texi: Remove -fdump-class-hierarchy option. |
| |
| 2019-03-14 Richard Biener <rguenther@suse.de> |
| |
| PR target/89711 |
| * config/i386/i386.c (make_resolver_func): Properly set |
| DECL_CONTEXT on the RESULT_DECL. |
| * config/rs6000/rs6000.c (make_resolver_func): Likewise. |
| |
| 2019-03-14 Richard Biener <rguenther@suse.de> |
| |
| * gimple-pretty-print.c: Include cfgloop.h. |
| (dump_gimple_phi): Adjust. |
| (dump_gimple_bb_header): Dump loop header for GIMPLE. |
| (pp_cfg_jump): Adjust. |
| (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well. |
| * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call. |
| (lower_phi_internal_fn): Remove. |
| (verify_gimple_call): Remove IFN_PHI special-casing. |
| (dump_function_to_file): Dump IL state. |
| * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes |
| done to deal with PHI nodes being present in non-SSA state. |
| |
| 2019-03-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR ipa/89684 |
| * multiple_target.c (create_dispatcher_calls): Change |
| references_to_redirect from vector of ipa_ref * to vector of ipa_ref. |
| In the node->iterate_referring loop, push *ref rather than ref, call |
| ref->remove_reference () and always pass 0 to iterate_referring. |
| |
| PR rtl-optimization/89679 |
| * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it |
| would contain a paradoxical SUBREG. |
| |
| 2019-03-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89710 |
| * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use |
| safe_dyn_cast. |
| |
| 2019-03-14 Martin Liska <mliska@suse.cz> |
| |
| * coverage.c (coverage_begin_function): Stream also |
| end_column. |
| * doc/gcov.texi: Document 2 new fields in JSON file. Improve |
| documentation about function declaration location. |
| * gcov-dump.c (tag_function): Print whole range |
| of function declaration. |
| * gcov.c (struct function_info): Add end_column field. |
| (function_info::function_info): Initialize it. |
| (output_json_intermediate_file): Output {start,end}_column |
| fields. |
| (read_graph_file): Read end_column. |
| |
| 2019-03-14 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89698 |
| * fold-const.c (operand_equal_p): For INDIRECT_REF check |
| that the access types are similar. |
| |
| 2019-03-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/89703 |
| * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types |
| aren't compatible also with builtin_decl_explicit. Check pure |
| or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}} |
| and BUILT_IN_STPNCPY{,_CHK}. |
| |
| 2019-03-14 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89523 |
| * config/i386/i386.c (ix86_print_operand): Handle 'M' to add |
| addr32 prefix to VSIB address for X32. |
| * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend |
| "%M2" to opcode. |
| (*avx512pf_gatherpf<mode>df_mask): Likewise. |
| (*avx512pf_scatterpf<mode>sf_mask): Likewise. |
| (*avx512pf_scatterpf<mode>df_mask): Likewise. |
| (*avx2_gathersi<mode>): Prepend "%M3" to opcode. |
| (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode. |
| (*avx2_gatherdi<mode>): Prepend "%M3" to opcode. |
| (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode. |
| (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode. |
| (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.` |
| (*avx512f_gathersi<mode>): Prepend "%M4" to opcode. |
| (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode. |
| (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode. |
| (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode. |
| (*avx512f_scattersi<mode>): Prepend "%M0" to opcode. |
| (*avx512f_scatterdi<mode>): Likewise. |
| |
| 2019-03-13 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR target/85860 |
| * lra-constraints.c (inherit_in_ebb): Update |
| potential_reload_hard_regs along with live_hard_regs. |
| |
| 2019-03-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/89498 |
| * dwarf2out.c (size_of_die): For dw_val_class_view_list always use |
| DWARF_OFFSET_SIZE. |
| (value_format): For dw_val_class_view_list never use DW_FORM_loclistx. |
| |
| 2019-03-13 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/89662 |
| * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type |
| has a size. |
| |
| 2019-03-13 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89677 |
| * tree-scalar-evolution.c (simplify_peeled_chrec): Do not |
| throw FP expressions at tree-affine. |
| |
| 2019-03-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-pretty-print.c (dump_generic_node): For -gimple properly |
| dump negative integer constants using _Literal (type) -num. |
| |
| 2019-03-13 Jakub Jelinek <jakub@redhat.com> |
| |
| * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove |
| nonlocal_value member. |
| |
| PR middle-end/88588 |
| * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args. |
| (ipa_simd_modify_function_body): Handle PHIs. |
| |
| 2019-03-12 Robin Dapp <rdapp@linux.ibm.com> |
| |
| * config/s390/s390.c (s390_option_override_internal): Use more |
| aggressive inlining parameters. |
| |
| 2019-03-12 Robin Dapp <rdapp@linux.ibm.com> |
| |
| * config/s390/3906.md: New file. |
| * config/s390/s390.c (MAX_SCHED_UNITS): Increase. |
| (LONGRUNNING_THRESHOLD): Remove. |
| (MAX_SCHED_MIX_SCORE): Decrease. |
| (MAX_SCHED_MIX_DISTANCE): Decrease. |
| (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely. |
| (struct s390_sched_state): New struct to hold scheduling state. |
| (S390_SCHED_STATE_NORMAL): Remove. |
| (S390_SCHED_STATE_CRACKED): Remove. |
| (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add. |
| (s390_get_sched_attrmask): Use new attribute. |
| (s390_get_unit_mask): Use new units. |
| (s390_is_fpd): New function. |
| (s390_is_fxd): New function. |
| (s390_is_longrunning): New function. |
| (s390_sched_score): Use new functions. |
| (s390_sched_reorder): Likewise. |
| (s390_sched_variable_issue): Rework and use new functions. |
| (s390_sched_init): Use new functions. |
| * config/s390/s390.h (s390_tune_attr): Add z14. |
| * config/s390/s390.md: Add z14. |
| |
| 2019-03-12 Robin Dapp <rdapp@linux.ibm.com> |
| |
| * config/s390/2964.md: Update pipeline description. |
| * config/s390/s390.c (MAX_SCHED_UNITS): Increase. |
| (LONGRUNNING_THRESHOLD): Remove. |
| (LATENCY_FACTOR): Remove. |
| (s390_get_unit_mask): Add unit. |
| (s390_sched_score): Use fxd/fpd. |
| (s390_sched_variable_issue): Use fxd/fpd. |
| |
| 2019-03-12 Martin Liska <mliska@suse.cz> |
| |
| * config/i386/i386.c: Reword an error message. |
| |
| 2019-03-12 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraph.c (cgraph_node::dump): Dump more info for former thunks, |
| terminate with newline. |
| |
| 2019-03-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/52726 |
| * config/s390/s390.md (tabort): Use %wd instead of |
| HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital |
| letters and periods. |
| * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in |
| output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace |
| 's with %< and %>. |
| |
| PR middle-end/89663 |
| * builtins.c (expand_builtin_int_roundingfn, |
| expand_builtin_int_roundingfn_2): Return NULL_RTX instead of |
| gcc_unreachable if validate_arglist fails. |
| |
| 2019-03-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89664 |
| * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly |
| free the occurance tree after the early out. |
| |
| 2019-03-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/89655 |
| PR bootstrap/89656 |
| * vr-values.c (vr_values::update_value_range): If |
| old_vr->varying_p (), don't update it, make new_vr also VARYING |
| and return false. |
| |
| 2019-03-11 Martin Liska <mliska@suse.cz> |
| |
| * config/aarch64/aarch64.c (aarch64_override_options_internal): |
| Fix double string quoting. |
| |
| 2019-03-11 Martin Liska <mliska@suse.cz> |
| |
| * collect-utils.c (collect_wait): Wrap apostrophes |
| in gcc internal format with %'. |
| * collect2.c (main): Likewise. |
| (scan_prog_file): Likewise. |
| (scan_libraries): Likewise. |
| * config/i386/i386.c (ix86_expand_call): Likewise. |
| (ix86_handle_interrupt_attribute): Likewise. |
| * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise. |
| * config/nds32/nds32.c (nds32_insert_attributes): Likewise. |
| * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise. |
| * lto-wrapper.c (find_crtoffloadtable): Likewise. |
| * symtab.c (symtab_node::verify_base): Likewise. |
| * tree-cfg.c (verify_gimple_label): Likewise. |
| * tree.c (verify_type_variant): Likewise. |
| |
| 2019-03-11 Martin Liska <mliska@suse.cz> |
| |
| * builtins.c (expand_builtin_thread_pointer): Wrap an option name |
| in a string format message and fix GNU coding style. |
| (expand_builtin_set_thread_pointer): Likewise. |
| * common/config/aarch64/aarch64-common.c |
| (aarch64_rewrite_selected_cpu): Likewise. |
| * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise. |
| * common/config/arc/arc-common.c (arc_handle_option): Likewise. |
| * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise. |
| * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise. |
| * common/config/i386/i386-common.c (ix86_handle_option): Likewise. |
| * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise. |
| * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise. |
| * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise. |
| * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise. |
| * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option): |
| Likewise. |
| * common/config/riscv/riscv-common.c |
| (riscv_subset_list::parsing_subset_version): Likewise. |
| (riscv_subset_list::parse_std_ext): Likewise. |
| (riscv_subset_list::parse_sv_or_non_std_ext): Likewise. |
| (riscv_subset_list::parse): Likewise. |
| * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise. |
| * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise. |
| (aarch64_override_options_internal): Likewise. |
| (aarch64_validate_mcpu): Likewise. |
| (aarch64_validate_march): Likewise. |
| (aarch64_validate_mtune): Likewise. |
| (aarch64_override_options): Likewise. |
| * config/alpha/alpha.c (alpha_option_override): Likewise. |
| * config/arc/arc.c (arc_init): Likewise. |
| (parse_mrgf_banked_regs_option): Likewise. |
| (arc_override_options): Likewise. |
| (arc_expand_builtin_aligned): Likewise. |
| * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise. |
| (arm_expand_builtin): Likewise. |
| * config/arm/arm.c (arm_option_check_internal): Likewise. |
| (arm_configure_build_target): Likewise. |
| (arm_option_override): Likewise. |
| (arm_options_perform_arch_sanity_checks): Likewise. |
| (arm_handle_cmse_nonsecure_entry): Likewise. |
| (arm_handle_cmse_nonsecure_call): Likewise. |
| (arm_tls_referenced_p): Likewise. |
| (thumb1_expand_prologue): Likewise. |
| * config/avr/avr.c (avr_option_override): Likewise. |
| * config/bfin/bfin.c (bfin_option_override): Likewise. |
| * config/c6x/c6x.c (c6x_option_override): Likewise. |
| * config/cr16/cr16.c (cr16_override_options): Likewise. |
| * config/cris/cris.c (cris_option_override): Likewise. |
| * config/csky/csky.c (csky_handle_isr_attribute): Likewise. |
| * config/darwin-c.c (macosx_version_as_macro): Likewise. |
| * config/darwin.c (darwin_override_options): Likewise. |
| * config/frv/frv.c (frv_expand_builtin): Likewise. |
| * config/h8300/h8300.c (h8300_option_override): Likewise. |
| * config/i386/i386.c (parse_mtune_ctrl_str): Likewise. |
| (ix86_option_override_internal): Likewise. |
| (warn_once_call_ms2sysv_xlogues): Likewise. |
| (ix86_expand_prologue): Likewise. |
| (split_stack_prologue_scratch_regno): Likewise. |
| (ix86_warn_parameter_passing_abi): Likewise. |
| * config/ia64/ia64.c (fix_range): Likewise. |
| * config/m68k/m68k.c (m68k_option_override): Likewise. |
| * config/microblaze/microblaze.c (microblaze_option_override): Likewise. |
| * config/mips/mips.c (mips_emit_probe_stack_range): Likewise. |
| (mips_set_compression_mode): Likewise. |
| * config/mmix/mmix.c (mmix_option_override): Likewise. |
| * config/mn10300/mn10300.c (mn10300_option_override): Likewise. |
| * config/msp430/msp430.c (msp430_option_override): Likewise. |
| * config/nds32/nds32.c (nds32_option_override): Likewise. |
| * config/nios2/nios2.c (nios2_custom_check_insns): Likewise. |
| (nios2_option_override): Likewise. |
| (nios2_expand_custom_builtin): Likewise. |
| * config/nvptx/mkoffload.c (main): Likewise. |
| * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise. |
| * config/pa/pa.c (fix_range): Likewise. |
| (pa_option_override): Likewise. |
| * config/riscv/riscv.c (riscv_parse_cpu): Likewise. |
| (riscv_option_override): Likewise. |
| * config/rl78/rl78.c (rl78_option_override): Likewise. |
| * config/rs6000/aix61.h: Likewise. |
| * config/rs6000/aix71.h: Likewise. |
| * config/rs6000/aix72.h: Likewise. |
| * config/rs6000/driver-rs6000.c (elf_platform): Likewise. |
| * config/rs6000/freebsd64.h: Likewise. |
| * config/rs6000/linux64.h: Likewise. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise. |
| (rs6000_expand_zeroop_builtin): Likewise. |
| (rs6000_expand_mtfsb_builtin): Likewise. |
| (rs6000_expand_set_fpscr_rn_builtin): Likewise. |
| (rs6000_expand_set_fpscr_drn_builtin): Likewise. |
| (rs6000_invalid_builtin): Likewise. |
| (rs6000_expand_split_stack_prologue): Likewise. |
| * config/rs6000/rtems.h: Likewise. |
| * config/rx/rx.c (valid_psw_flag): Likewise. |
| (rx_expand_builtin): Likewise. |
| * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise. |
| * config/s390/s390.c (s390_expand_builtin): Likewise. |
| (s390_function_profiler): Likewise. |
| (s390_option_override_internal): Likewise. |
| (s390_option_override): Likewise. |
| * config/sh/sh.c (sh_option_override): Likewise. |
| (sh_builtin_saveregs): Likewise. |
| (sh_fix_range): Likewise. |
| * config/sh/vxworks.h: Likewise. |
| * config/sparc/sparc.c (sparc_option_override): Likewise. |
| * config/spu/spu.c (spu_option_override): Likewise. |
| (fix_range): Likewise. |
| * config/visium/visium.c (visium_option_override): Likewise. |
| (visium_handle_interrupt_attr): Likewise. |
| * config/xtensa/xtensa.c (xtensa_option_override): Likewise. |
| * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise. |
| (dbg_cnt_process_opt): Likewise. |
| * dwarf2out.c (output_dwarf_version): Likewise. |
| * except.c (expand_eh_return): Likewise. |
| * gcc.c (defined): Likewise. |
| (driver_handle_option): Likewise. |
| (process_command): Likewise. |
| (compare_files): Likewise. |
| (driver::prepare_infiles): Likewise. |
| (driver::do_spec_on_infiles): Likewise. |
| (driver::maybe_run_linker): Likewise. |
| * omp-offload.c (oacc_parse_default_dims): Likewise. |
| * opts-global.c (handle_common_deferred_options): Likewise. |
| * opts.c (parse_sanitizer_options): Likewise. |
| (common_handle_option): Likewise. |
| (enable_warning_as_error): Likewise. |
| * passes.c (enable_disable_pass): Likewise. |
| * plugin.c (parse_plugin_arg_opt): Likewise. |
| (default_plugin_dir_name): Likewise. |
| * targhooks.c (default_expand_builtin_saveregs): Likewise. |
| (default_pch_valid_p): Likewise. |
| * toplev.c (init_asm_output): Likewise. |
| (process_options): Likewise. |
| (toplev::run_self_tests): Likewise. |
| * tree-cfg.c (verify_gimple_call): Likewise. |
| * tree-inline.c (inline_forbidden_p_stmt): Likewise. |
| (tree_inlinable_function_p): Likewise. |
| * var-tracking.c (vt_find_locations): Likewise. |
| |
| 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not |
| only on the else branch. |
| |
| 2019-03-11 Martin Liska <mliska@suse.cz> |
| |
| * gcov.c (output_intermediate_json_line): Print function |
| name of each line. |
| (output_json_intermediate_file): Add new argument. |
| * doc/gcov.texi: Document the change. |
| |
| 2019-03-11 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/89588 |
| * loop-unroll.c (decide_unroll_constant_iterations): Make guard for |
| explicit unrolling factor more robust. |
| |
| 2019-03-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89649 |
| * tree-vectorizer.h (vect_loop_versioning): Adjust prototype. |
| * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize |
| on the prolog and epilog loops. |
| (vect_loop_versioning): Return copy of loop. |
| * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize |
| on the non-vectorized version of the loop. |
| |
| 2019-03-10 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/68924 |
| * config/i386/sse.md (*vec_extractv2di_0_sse): |
| Add (=r,x) alternative and corresponding splitter. |
| |
| 2019-03-10 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/85762 |
| PR tree-optimization/87008 |
| PR tree-optimization/85459 |
| * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool |
| it points to if there is a type changing MEM_REF. Adjust all callers. |
| (build_accesses_from_assign): Disable total scalarization if |
| contains_vce_or_bfcref_p returns true through the new parameter, for |
| both rhs and lhs. |
| |
| 2019-03-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/88568 |
| * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for |
| dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT. |
| |
| PR target/79645 |
| * common.opt (fdiagnostics-show-labels, |
| fdiagnostics-show-line-numbers, fdiagnostics-format=, |
| fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support, |
| gas-locview-support, ginline-points, ginternal-reset-location-views): |
| Terminate description text with a dot. |
| * config/microblaze/microblaze.opt (mxl-prefetch): Likewise. |
| * config/mcore/mcore.opt (m210, m340): Likewise. |
| * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove, |
| mnops=): Start description text with a capital letter. |
| * config/arc/arc.opt (msize-level=): Likewise. |
| * config/sh/sh.opt (minline-ic_invalidate): Likewise. |
| * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib, |
| mnewlib): Likewise. |
| * config/ft32/ft32.opt (msim): Likewise. |
| (mft32b, mcompress): Likewise. Terminate description text with a dot. |
| (mnodiv, mnopm): Terminate description text with a dot. |
| * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with |
| a colon. |
| * config/i386/i386.opt (prefer_vector_width, instrument_return): |
| Likewise. |
| * config/rx/rx.opt (nofpu): Remove trailing spaces from description |
| text. |
| |
| PR rtl-optimization/89634 |
| * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1 |
| are modified in BB_END (e->src) instruction. |
| |
| 2019-03-08 David Malcolm <dmalcolm@redhat.com> |
| |
| PR target/79926 |
| * config/i386/i386.c (ix86_set_current_function): Make "sorry" |
| messages more amenable to translation, and improve wording. |
| |
| 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild |
| ud- and du-chains between phases. |
| |
| 2019-03-08 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR debug/89631 |
| * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT |
| instead of POLY_INT_CST. |
| |
| 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE |
| requirement. |
| |
| 2019-03-08 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/68924 |
| PR target/78782 |
| PR target/87558 |
| * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic. |
| (_mm_storeu_si64): Ditto. |
| |
| 2019-03-08 Martin Liska <mliska@suse.cz> |
| |
| PR target/86952 |
| * config/i386/i386.c (ix86_option_override_internal): Disable |
| jump tables when retpolines are used. |
| |
| 2019-03-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR go/63560 |
| * ipa-split.c (execute_split_functions): Do not split |
| 'noinline' or 'section' function. |
| |
| 2019-03-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/79846 |
| * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of |
| HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of |
| HOST_WIDE_INT_PRINT_DEC. Formatting fixes. |
| |
| PR ipa/80000 |
| * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces |
| from diagnostics. Formatting fixes. |
| |
| PR target/85665 |
| * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in |
| warn_odr diagnostics. |
| |
| PR other/80058 |
| * lra-constraints.c (process_alt_operands): Avoid one space before |
| " at the end of line and another after " on another line in a string |
| literal. |
| * attribs.c (handle_dll_attribute): Likewise. |
| * config/avr/avr-devices.c (avr_texinfo): Likewise. |
| |
| * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap |
| warning_at or inform messages in G_() if there is no ?:. |
| |
| PR tree-optimization/89550 |
| * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at |
| returned true. Formatting fixes. |
| (expand_builtin_strnlen): Formatting fixes. |
| * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING |
| if warning_at returned true. |
| * tree-cfg.c (pass_warn_function_return::execute): Likewise. |
| |
| 2019-03-08 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89578 |
| * cfgloop.h (struct loop): Add owned_clique field. |
| * cfgloopmanip.c (copy_loop_info): Copy it. |
| * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique |
| cliques. |
| * tree-inline.c (copy_loops): Remap owned_clique. |
| * lto-streamer-in.c (input_cfg): Stream owned_clique. |
| * lto-streamer-out.c (output_cfg): Likewise. |
| |
| 2019-03-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/80190 |
| * config/darwin.c: Include intl.h. |
| (darwin_build_constant_cfstring): Improve i18n of diagnostics by not |
| composing the message out of two separate parts. |
| |
| 2019-03-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/80003 |
| * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics |
| doesn't start with a capital letter and doesn't end with a dot. |
| (ix86_function_arg_boundary): Make sure diagnostics doesn't start |
| with a capital letter. |
| (ix86_mangle_function_version_assembler_name): Likewise. |
| (ix86_generate_version_dispatcher_body): Likewise. |
| (fold_builtin_cpu): Likewise. |
| (get_builtin_code_for_version): Likewise. Remove extraneous space. |
| (ix86_handle_interrupt_attribute): Make the diagnostics easier for |
| translators, wrap full type name in %qs. |
| |
| PR translation/79999 |
| * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about |
| depend clause with source (or sink) modifier. |
| * omp-expand.c (expand_omp_ordered_sink): Likewise. |
| |
| PR target/89602 |
| * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask, |
| *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns. |
| (avx512f_load<mode>_mask): New define_expand. |
| * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask, |
| __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask, |
| __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask, |
| __builtin_ia32_movess_mask): New builtins. |
| * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss, |
| _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss, |
| _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd, |
| _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics. |
| |
| 2019-03-07 Martin Jambor <mjambor@suse.cz> |
| |
| PR lto/87525 |
| * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit |
| for extern inline functions. |
| |
| 2019-03-07 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/88235 |
| * cgraph.h (cgraph_node): New inline method former_thunk_p. |
| * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk. |
| (clone_of_p): Treat expanded thunks like thunks, be optimistic if they |
| have multiple callees. At the end check if declarations match as |
| opposed to cgraph_nodes. |
| |
| 2019-03-07 Martin Liska <mliska@suse.cz> |
| |
| * cgraph.c (cgraph_node::verify_node): Verify with a neighbour |
| which is equivalent to searching for this in clones chain. |
| * symtab.c (symtab_node::verify_base): Similarly compare ASM |
| names with a neighbour and special case first node in a chain. |
| |
| 2019-01-25 Jason Merrill <jason@redhat.com> |
| |
| PR c++/80916 - spurious "static but not defined" warning. |
| * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false |
| for an internal symbol with DECL_EXTERNAL. |
| |
| 2019-04-07 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89618 |
| * cfgloopmanip.c (copy_loop_info): Copy forgotten fields. |
| * tree-inline.c (copy_loops): Simplify. |
| |
| 2019-03-07 Martin Liska <mliska@suse.cz> |
| |
| * dwarf2out.c (add_AT_vms_delta): Revert function removal. |
| |
| 2019-03-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89595 |
| * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take |
| stmt iterator as reference, take boolean output parameter to |
| indicate whether the stmt was removed and thus the iterator |
| already advanced. |
| (dom_opt_dom_walker::before_dom_children): Re-iterate over |
| stmts created by folding. |
| |
| 2019-03-07 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/89585 |
| * doc/extend.texi (Basic Asm): Document qualifiers are not allowed |
| at toplevel. |
| |
| 2019-03-06 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR rtl-optimization/88845 |
| * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during |
| LRA. |
| * lra.c (remove_scratches_1): New function. |
| (remove_scratches): Use it. |
| (lra_emit_move): Likewise. |
| |
| 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on |
| unaligned_access variable. |
| * config/arc/arc.c (arc_override_options): Set unaligned access |
| default on for HS CPUs. |
| * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic. |
| |
| 2019-03-06 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/89577 |
| * doc/gcov.texi: Prefer to use --coverage. |
| * doc/sourcebuild.texi: Likewise. |
| |
| 2019-03-02 Jason Merrill <jason@redhat.com> |
| |
| PR c++/86485 - -Wmaybe-unused with empty class ?: |
| * gimplify.c (gimplify_cond_expr): Use INIT_EXPR. |
| |
| 2019-03-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89587 |
| * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only |
| if_multiarch. |
| |
| PR middle-end/89590 |
| * builtins.c (maybe_emit_free_warning): Punt if free doesn't have |
| exactly one argument. |
| |
| 2019-03-05 Jakub Jelinek <jakub@redhat.com> |
| Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/89570 |
| * match.pd (vec_cond into cond_op simplification): Don't use |
| get_conditional_internal_fn, use as_internal_fn (cond_op). |
| |
| 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR target/89222 |
| * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem |
| to decide when to split off a non-zero offset from a symbol. |
| * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets |
| in function symbols. |
| |
| 2019-03-05 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89594 |
| * tree-if-conv.c (pass_if_conversion::execute): Handle |
| case where .LOOP_VECTORIZED_FUNCTION was removed. |
| |
| 2019-03-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/89560 |
| * fold-const.c (fold_checksum_tree): Don't use fixed size buffer, |
| instead alloca it only when needed with the needed size. |
| |
| PR tree-optimization/89570 |
| * match.pd (vec_cond into cond_op simplification): Guard with |
| vectorized_internal_fn_supported_p test and #if GIMPLE. |
| |
| PR tree-optimization/89566 |
| * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): |
| Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed. |
| Punt if get_user_idx_format succeeds, but idx_format argument is |
| not provided or doesn't have pointer type, or if idx_args is above |
| number of provided arguments. |
| |
| 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR tree-optimization/89437 |
| * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications. |
| |
| 2019-03-04 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89572 |
| * tree-scalar-evolution.c: (get_loop_exit_condition): Use |
| safe_dyn_cast. |
| |
| 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/89487 |
| * tree-loop-distribution.c (has_nonaddressable_dataref_p): New. |
| (create_rdg_vertices): Compute has_nonaddressable_dataref_p. |
| (distribute_loop): Don't do runtime alias check if there is non- |
| addressable data reference. |
| * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL |
| is a register variable. |
| |
| 2019-03-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89506 |
| * config/arm/arm.md (cmpsi2_addneg): Use |
| trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...). |
| If operands[2] is 0 or INT_MIN, force use of subs. |
| (*compare_scc splitter): Use gen_int_mode. |
| (*negscc): Likewise. |
| * config/arm/thumb2.md (*thumb2_negscc): Likewise. |
| |
| 2019-03-01 Kito Cheng <kito.cheng@gmail.com> |
| Monk Chiang <sh.chiang04@gmail.com> |
| |
| * common/config/riscv/riscv-common.c: Include sstream. |
| (riscv_subset_list::to_string): New. |
| (riscv_arch_str): Likewise. |
| * config.gcc (riscv*-*-*): Handle --with-riscv-attribute= |
| * config.in: Regen. |
| * config/riscv/riscv-protos.h (riscv_arch_str): New. |
| * config/riscv/riscv.c (INCLUDE_STRING): Defined. |
| (riscv_emit_attribute): New. |
| (riscv_file_start): Emit attribute if needed. |
| (riscv_option_override): Init riscv_emit_attribute_p. |
| * config/riscv/riscv.opt (mriscv-attribute): New option. |
| * configure.ac (riscv*-*-*): Check binutils is supporting ELF |
| * configure: Regen. |
| * doc/install.texi: Document --with-riscv-attribute. |
| * doc/invoke.texi: Document -mriscv-attribute. |
| |
| * common/config/riscv/riscv-common.c: |
| Include config/riscv/riscv-protos.h. |
| (INCLUDE_STRING): Defined. |
| (RISCV_DONT_CARE_VERSION): Defined. |
| (riscv_subset_t): Declare. |
| (riscv_subset_t::riscv_subset_t): New. |
| (riscv_subset_list): Declare. |
| (riscv_subset_list::riscv_subset_list): New. |
| (riscv_subset_list::~riscv_subset_list): Likewise. |
| (riscv_subset_list::parsing_subset_version): Likewise. |
| (riscv_subset_list::parse_std_ext): Likewise. |
| (riscv_subset_list::parse_sv_or_non_std_ext): Likewise. |
| (riscv_subset_list::add): Likewise. |
| (riscv_subset_list::lookup): Likewise. |
| (riscv_subset_list::xlen): Likewise. |
| (riscv_subset_list::parse): Likewise. |
| (riscv_supported_std_ext): Likewise. |
| (current_subset_list): Likewise. |
| (riscv_parse_arch_string): Using riscv_subset_list::parse to |
| parse. |
| |
| 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): If |
| rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index. |
| * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option. |
| |
| 2019-03-01 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR rtl-optimization/85899 |
| * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for |
| fallthru edges leading to the exit block. |
| |
| 2019-03-01 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/89517 |
| * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16, |
| rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line. |
| |
| 2019-03-01 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/89535 |
| * tree-vect-stmts.c (vectorizable_call): Record the vector types |
| for each operand. Calculate the fallback choice for mask operands |
| and pass it to vect_get_vec_def_for_operand. |
| |
| 2019-03-01 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89541 |
| * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may |
| get virtual operands. |
| (get_expr_operands): Handle CONST_DECL like other decls. |
| |
| 2019-03-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/89503 |
| * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit |
| on DECL_P and EXPR_P. |
| |
| 2019-03-01 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89497 |
| * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags |
| argument, defaulted to zero. |
| * passes.c (execute_function_todo): Pass down SSA update flags |
| to cleanup_tree_cfg. |
| * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h. |
| (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA |
| form if requested. |
| (cleanup_tree_cfg): Get and pass down SSA update flags. |
| |
| 2019-03-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/89539 |
| * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to |
| early_lto_debug argument. |
| |
| 2019-02-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR tree-optimization/89536 |
| * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test |
| only whether bit #0 of the value is 0 instead of the entire value. |
| |
| 2019-02-28 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/87068 - missing diagnostic with fallthrough statement. |
| * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found |
| at the end of a seq, save its location to walk_stmt_info. |
| (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of |
| a switch. |
| |
| 2019-02-28 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/88585 |
| * tree.c (find_atomic_core_type): Move ahead in file. |
| (check_base_type): Correctly compare alignments of atomic types. |
| |
| 2019-02-28 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89455 |
| * config/i386/i386.c (get_builtin_code_for_version): Identify |
| Westmere from PCLMUL, instead of AES. |
| |
| 2019-02-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89434 |
| * config/arm/arm.md (*subsi3_carryin_compare_const): Use |
| trunc_int_for_mode (-INTVAL (...), SImode), just instead of |
| -UINTVAL (...). |
| |
| 2019-02-28 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/88530 |
| * config/aarch64/aarch64-option-extensions.def: Document it. |
| * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature |
| if empty hwcaps. |
| |
| 2019-02-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/89520 |
| * convert.c (convert_to_real_1, convert_to_integer_1): Punt for |
| builtins if they don't have a single scalar floating point argument. |
| Formatting fixes. |
| |
| 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR rtl-optimization/89490 |
| * varasm.c (get_block_for_section): Bail out for mergeable sections. |
| (default_use_anchors_for_symbol_p, output_object_block): Assert the |
| block section is not mergeable. |
| |
| 2019-02-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/70341 |
| * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename |
| old define_insn to ... |
| (*arm_casesi_internal): ... this. Add mode to LABEL_REFs. |
| * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand. |
| Rename old define_insn to ... |
| (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs. |
| (thumb2_casesi_internal_pic): New define_expand. Rename old |
| define_insn to ... |
| (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs. |
| * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch |
| MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it. |
| |
| 2019-02-27 Richard Biener <rguenther@suse.de> |
| |
| PR debug/88878 |
| * dwarf2out.c (use_debug_types): Disable when in_lto_p. |
| |
| 2019-02-27 Richard Biener <rguenther@suse.de> |
| |
| * passes.c (should_skip_pass_p): Do not skip cgraph-edge |
| building. |
| |
| 2019-02-27 Richard Biener <rguenther@suse.de> |
| |
| PR debug/88878 |
| * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug |
| parameter, prefix section name with .gnu.debuglto_ if true. |
| (dwarf2out_finish): Pass false to output_comdat_type_unit. |
| (dwarf2out_early_finish): Pass true to output_comdat_type_unit. |
| |
| 2019-02-27 Richard Biener <rguenther@suse.de> |
| |
| PR debug/89514 |
| * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p |
| rather than on use_debug_types, doing what output_die does. |
| (value_format): Likewise. |
| |
| 2019-02-27 Martin Jambor <mjambor@suse.cz> |
| Martin Sebor <msebor@redhat.com> |
| |
| * doc/invoke.texi (Warning Options): Reword description of |
| -Wno-absolute-value. |
| |
| 2019-02-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/89280 |
| * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p, |
| builtin_setjmp_setup_bb): New functions. |
| (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges. |
| When visiting __builtin_setjmp_setup block, queue in special |
| setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding |
| __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks |
| from visited after the loop if they don't have any visited successor |
| blocks. |
| |
| 2018-02-26 Steve Ellcey <sellcey@marvell.com> |
| |
| * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name): |
| New function. |
| (TARGET_GET_MULTILIB_ABI_NAME): New macro. |
| |
| 2019-02-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/89507 |
| * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs |
| with types other than sizetype/ssizetype. |
| |
| 2019-02-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc-opts.h (enum processor_type): Rename to... |
| (enum sparc_processor_type): ...this. |
| (enum sparc_code_model_type): New enumeration type. |
| (enum sparc_memory_model_type): Tweak comments. |
| * config/sparc/sparc.opt (mcpu): Adjust to above renaming. |
| (mtune): Likewise. |
| (mcmodel): Use sparc_code_model enumeration and variable. |
| (sparc_code_model): New enumeration. |
| (mdebug): Add Undocumented marker. |
| * config/sparc/sparc.h (enum cmodel): Delete. |
| (sparc_cmodel): Likewise. |
| (TARGET_CM_MEDLOW): Adjust to above renaming. |
| (TARGET_CM_MEDMID): Likewise. |
| (TARGET_CM_MEDANY): Likewise. |
| (TARGET_CM_EMBMEDANY): Likewise. |
| * config/sparc/sparc.c (sparc_cmodel): Delete. |
| (sparc_option_override): Remove string/value mapping support for the |
| code model. Move code and memory model support to after the handling |
| of target flags. Do private machine setup last. |
| (sparc_emit_set_symbolic_const64): Use sparc_code_model. |
| (sparc_legitimize_reload_address): Likewise. |
| (sparc_output_mi_thunk): Likewise. |
| * config/sparc/sparc.md (cpu): Adjust comment to above renaming. |
| |
| 2019-02-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/89500 |
| * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment. |
| (handle_builtin_strlen): Remove noncst_bound variable. Always |
| optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to |
| cst if the first cst bytes starting at x are known to be non-zero, |
| even if the string is not zero terminated. Don't try to modify |
| *si for strnlen. Update strlen_to_stridx only for strlen or if |
| we can prove strnlen returns the same value as strlen would. |
| |
| 2019-02-26 Martin Liska <mliska@suse.cz> |
| |
| * alloc-pool.h (struct pool_usage): Remove extra |
| print_dash_line. |
| * bitmap.h (struct bitmap_usage): Likewise. |
| * ggc-common.c (struct ggc_usage): Likewise. |
| * mem-stats.h (struct mem_usage): Likewise. |
| (mem_alloc_description::dump): Print dash lines |
| here and repeat header at the end of a table report. |
| It's then more readable. |
| * tree-phinodes.c (phinodes_print_statistics): Make |
| horizontal alignment. |
| * tree-ssanames.c (ssanames_print_statistics): Likewise. |
| * vec.c (struct vec_usage): Remove extra print_dash_line. |
| * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT. |
| |
| 2019-02-26 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * doc/extend.texi (__builtin_object_size): |
| Use @pxref instead of @xref inside parenthesis. |
| (__builtin_has_attribute): Add missing comma after @xref. |
| (__builtin_object_size): Ditto. |
| * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i]. |
| |
| 2019-02-26 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/87761 |
| * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to |
| detect obviously dead insns and delete them. |
| |
| 2019-02-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89505 |
| * tree-ssa-structalias.c (compute_dependence_clique): Make sure |
| to handle restrict pointed-to vars with multiple subvars |
| correctly. |
| |
| 2019-02-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89489 |
| * tree-parloops.c (create_loop_fn): Copy over last_clique. |
| |
| 2019-02-26 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix |
| and move around comment. |
| <BIT_AND_EXPR>: Likewise. |
| <BIT_NOT_EXPR>: Add specific handling for boolean types. |
| |
| 2019-02-26 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89474 |
| * config/i386/i386.c (remove_partial_avx_dependency): Call |
| df_analyze etc. before creation of the v4sf_const0 pseudo, rather than |
| after changing possibly many instructions to use that pseudo. Fix up |
| insertion of v4sf_const0 setter at the start of bb. |
| |
| 2019-02-25 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR c/80409 |
| * doc/extend.texi (Variadic Pointer Args): New section. |
| |
| 2019-02-25 Sandra Loosemore <sandra@codesourcery.com> |
| Martin Sebor <msebor@gmail.com> |
| |
| * common.opt (Wattribute-alias): Likewise. |
| * doc/invoke.texi (Option Summary): List general form of |
| -Wattribute-alias=. List positive form of -Wmissing-attributes. |
| (-Wmissing-attributes): Invert entry, rewrite and correct default. |
| Add cross-references. |
| (-Wattribute-alias): Rewrite and correct default. Mention |
| considered attributes (same as for -Wmissing-attributes). |
| |
| 2019-02-25 Paul A. Clarke <pc@us.ibm.com> |
| |
| * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian. |
| (_mm_cvtpd_ps): Likewise. |
| (_mm_cvttpd_epi32): Likewise. |
| |
| PR target/89338 |
| * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch. |
| (_mm_cvt_ss2si): Fix type mismatch and 32-bit. |
| |
| PR target/89339 |
| * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit. |
| |
| 2019-02-25 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/88530 |
| * common/config/aarch64/aarch64-common.c |
| (struct aarch64_option_extension): Add is_synthetic. |
| (all_extensions): Use it. |
| (TARGET_OPTION_INIT_STRUCT): Define hook. |
| (struct gcc_targetm_common): Moved to end. |
| (all_extensions_by_on): New. |
| (opt_ext_cmp, typedef opt_ext): New. |
| (aarch64_option_init_struct): New. |
| (aarch64_contains_opt): New. |
| (aarch64_get_extension_string_for_isa_flags): Output smallest set. |
| * config/aarch64/aarch64-option-extensions.def |
| (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto. |
| (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3, |
| sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres): |
| Set is_synthetic to false. |
| (crypto): Set is_synthetic to true. |
| * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add |
| SYNTHETIC. |
| |
| 2019-02-25 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32, |
| vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32, |
| vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32, |
| vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32, |
| vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32, |
| vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32, |
| vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32, |
| vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32): |
| Rename ... |
| (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16, |
| vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16, |
| vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16, |
| vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16, |
| vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16, |
| vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16, |
| vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16, |
| vfmlsl_laneq_high_f16): ... To this. |
| * config/arm/neon.md: Update comments. |
| |
| 2019-02-25 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32, |
| vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32, |
| vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32, |
| vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32, |
| vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32, |
| vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32, |
| vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32, |
| vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32): |
| Rename ... |
| (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16, |
| vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16, |
| vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16, |
| vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16, |
| vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16, |
| vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16, |
| vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16, |
| vfmlslq_laneq_high_f16): ... To this. |
| |
| 2019-02-25 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR rtl-optimization/86096 |
| * df-scan.c (df_mw_compare): Do not check mw_reg fields when |
| comparing mw_order values. |
| |
| 2019-02-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89434 |
| * config/arm/arm.md (*subsi3_carryin_const): Use |
| arm_neg_immediate_operand predicate instead of |
| arm_not_immediate_operand, "L" constraint instead of "K" and |
| print it using %n2 instead of %B2. |
| (*subsi3_carryin_const0): New define_insn. |
| (*subsi3_carryin_compare_const): Use const_int_I_operand predicate |
| instead of arm_not_operand and "I" constraint instead of "K" and |
| print it using %n3 instead of %B2. Instead of using match_dup 2 add |
| another match_operand and in the condition check that it is negation |
| of operands[2]. |
| (*subsi3_carryin_compare_const0): New define_ins. |
| (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of |
| *subsi3_carryin_const. |
| (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const, |
| split into *subsi3_carryin_compare_const0 if the highpart is zero. |
| |
| PR target/89438 |
| * config/arm.vfp.md (*negdf2_vfp): Use |
| gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000). |
| * config/arm/neon.md (neon_copysignf<mode>): Likewise. |
| |
| 2019-02-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/89445 |
| * simplify-rtx.c (simplify_ternary_operation): Don't use |
| simplify_merge_mask on operands that may trap. |
| * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of |
| SCALAR_FLOAT_MODE_P checks. For integral division by zero, if |
| second operand is CONST_VECTOR, check if any element could be zero. |
| Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless |
| their operands can trap. |
| |
| 2019-02-23 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-ssa-sprintf.c (target_strtol): Rename... |
| (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX. |
| (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to |
| check for range error. |
| |
| 2019-02-23 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR driver/69471 |
| * opts-common.c (prune_options): Also prune joined switches |
| with Negative and RejectNegative. |
| * config/i386/i386.opt (march=): Add Negative(march=). |
| (mtune=): Add Negative(mtune=). |
| * doc/options.texi: Document Negative used together with Joined |
| and RejectNegative. |
| |
| 2019-02-22 Martin Sebor <msebor@redhat.com> |
| |
| * doc/extend.texi (Other Builtins): Add |
| __builtin_is_constant_evaluated. |
| |
| 2019-02-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/87609 |
| * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques. |
| |
| 2019-02-22 Jeff Law <law@redhat.com> |
| |
| PR rtl-optimization/87761 |
| * config/mips/mips.md: Add new combiner pattern to recognize |
| a bitfield extraction using (ashiftrt (truncate (ashift (...)))). |
| |
| 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com> |
| |
| PR target/89324 |
| * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on |
| destination register in peepholes generating patterns for ADDS/SUBS. |
| (add<mode>3_compare0, |
| *addsi3_compare0_uxtw, add<mode>3_compareC, |
| add<mode>3_compareV_imm, add<mode>3_compareV, |
| *adds_<optab><ALLX:mode>_<GPI:mode>, |
| *subs_<optab><ALLX:mode>_<GPI:mode>, |
| *adds_<optab><ALLX:mode>_shift_<GPI:mode>, |
| *subs_<optab><ALLX:mode>_shift_<GPI:mode>, |
| *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2, |
| *sub<mode>3_compare0, *subsi3_compare0_uxtw, |
| sub<mode>3_compare1): Allow stack pointer for source register. |
| * config/aarch64/predicates.md (aarch64_general_reg): New predicate. |
| |
| 2019-02-22 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/88993 |
| PR tree-optimization/88853 |
| * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func): |
| New helper. |
| (sprintf_dom_walker::call_info::is_string_func): New helper. |
| (format_directive): Only issue "may exceed" 4095/INT_MAX warnings |
| for formatted string functions. |
| (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment. |
| |
| 2019-02-22 Martin Sebor <msebor@redhat.com> |
| |
| PR c/89425 |
| * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in |
| unreachable subexpressions. |
| |
| 2019-02-22 H.J. Lu <hongjiu.lu@intel.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| Sunil K Pandey <sunil.k.pandey@intel.com> |
| |
| PR target/87007 |
| * config/i386/i386-passes.def: Add |
| pass_remove_partial_avx_dependency. |
| * config/i386/i386-protos.h |
| (make_pass_remove_partial_avx_dependency): New. |
| * config/i386/i386.c (make_pass_remove_partial_avx_dependency): |
| New function. |
| (pass_data_remove_partial_avx_dependency): New. |
| (pass_remove_partial_avx_dependency): Likewise. |
| (make_pass_remove_partial_avx_dependency): Likewise. |
| * config/i386/i386.md (avx_partial_xmm_update): New attribute. |
| (*extendsfdf2): Add avx_partial_xmm_update. |
| (truncdfsf2): Likewise. |
| (*float<SWI48:mode><MODEF:mode>2): Likewise. |
| (SF/DF conversion splitters): Disabled for TARGET_AVX. |
| |
| 2019-02-22 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR middle-end/85598 |
| * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop |
| analysis for pass. |
| |
| 2019-02-22 Thiago Macieira <thiago.macieira@intel.com> |
| |
| PR target/89444 |
| * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES. |
| (PTA_SKYLAKE): Add PTA_AES. |
| (PTA_GOLDMONT): Likewise. |
| |
| 2019-02-22 Sudakshina Das <sudi.das@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti |
| instruction if enabled. |
| (aarch64_override_options): Remove reference to return address key. |
| |
| 2019-02-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89440 |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove |
| not necessary assert. |
| |
| 2019-02-22 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR fortran/72741 |
| * omp-general.c (oacc_replace_fn_attrib): Mostly split out into... |
| (oacc_replace_fn_attrib_attr): ... this new function. |
| * omp-general.h (oacc_replace_fn_attrib_attr): New prototype. |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround. |
| |
| 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/arm-cpus.in (ares): Rename to... |
| (neoverse-n1): ... This. Add ares as alias. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm-tune.md: Likewise. |
| * doc/invoke.txt (ARM Options): Document neoverse-n1. |
| |
| 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (neoverse-e1): Define. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option. |
| |
| 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (ares_tunings): Rename to... |
| (neoversen1_tunings): ... This. |
| * config/aarch64/aarch64-cores.def (ares): Change tuning to the above. |
| (neoverse-n1): New CPU. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.txt (AArch64 Options): Document neoverse-n1. |
| |
| 2019-02-22 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/87609 |
| * cfghooks.h (dependence_hash): New typedef. |
| (struct copy_bb_data): New type. |
| (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument. |
| (duplicate_block): Likewise. |
| * cfghooks.c (duplicate_block): Pass down copy_bb_data. |
| (copy_bbs): Create and pass down copy_bb_data. |
| * cfgrtl.c (cfg_layout_duplicate_bb): Adjust. |
| (rtl_duplicate_bb): Likewise. |
| * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL |
| remap dependence info. |
| |
| 2019-02-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/87609 |
| * tree-core.h (tree_base): Document special clique values. |
| * tree-inline.c (remap_dependence_clique): Do not use the |
| special clique value of one. |
| (maybe_set_dependence_info): Use clique one. |
| (clear_dependence_clique): New callback. |
| (compute_dependence_clique): Clear clique one from all refs |
| before assigning it (again). |
| |
| 2019-02-21 Martin Sebor <msebor@redhat.com> |
| |
| * doc/extend.texi (__clear_cache): Correct signature. |
| |
| 2019-02-21 Ian Lance Taylor <iant@golang.org> |
| |
| PR go/89170 |
| * varasm.c (decode_addr_const): Call lookup_constant_def rather |
| than output_constant_def. |
| (add_constant_to_table): New static function. |
| (output_constant_def): Call add_constant_to_table. |
| (tree_output_constant_def): Likewise. |
| |
| 2019-02-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/89285 |
| * builtins.c (fold_builtin_arith_overflow): If first two args are |
| INTEGER_CSTs, set intres and ovfres to constants rather than calls |
| to ifn. |
| |
| 2019-02-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/87412 |
| * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an |
| error for -mindirect-branch/-mfunction-return with incompatible |
| -fcf-protection. |
| |
| 2019-02-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/88714 |
| * constraints.md (q): Remove. |
| * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint |
| instead of q. |
| |
| 2019-02-21 Martin Jambor <mjambor@suse.cz> |
| |
| PR hsa/89302 |
| * omp-general.c (omp_extract_for_data): Removed a duplicate call |
| to omp_adjust_for_condition, moved NE_EXPR code_cond processing... |
| (omp_adjust_for_condition): ...here. Added necessary parameters. |
| * omp-general.h (omp_adjust_for_condition): Updated declaration. |
| * omp-grid.c (grid_attempt_target_gridification): Adjust to pass |
| proper values to new parameters of omp_adjust_for_condition. |
| |
| 2019-02-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/89412 |
| * expr.c (expand_assignment): If result is a MEM, use change_address |
| instead of simplify_gen_subreg. |
| |
| 2019-02-20 Jakub Jelinek <jakub@redhat.com> |
| David Malcolm <dmalcolm@redhat.com> |
| |
| PR middle-end/89091 |
| * fold-const.c (decode_field_reference): Return NULL_TREE if |
| lang_hooks.types.type_for_size returns NULL. Check it before |
| overwriting *exp_. Use return NULL_TREE instead of return 0. |
| |
| 2019-02-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/88074 |
| PR middle-end/89415 |
| * toplev.c (do_compile): Double the emin/emax exponents to workaround |
| buggy mpc_norm. |
| |
| 2019-02-20 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89397 |
| * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check |
| TARGET_SSE in addition to TARGET_SSE_MATH. |
| |
| (ix86_excess_precision): Ditto. |
| (ix86_float_exceptions_rounding_supported_p): Ditto. |
| (use_rsqrt_p): Ditto. |
| * config/i386/sse.md (rsqrt<mode>2): Ditto. |
| |
| 2019-02-20 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c/89410 |
| * diagnostic-show-locus.c (layout::calculate_line_spans): Use |
| linenum_arith_t when determining if two adjacent line spans are |
| close enough to merge. |
| (diagnostic_show_locus): Use linenum_arith_t when iterating over |
| lines within each line_span. |
| |
| 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| PR target/86487 |
| * lra-constraints.c(uses_hard_regs_p): Fix handling of |
| paradoxical SUBREGS. |
| |
| 2019-02-20 Li Jia He <helijia@linux.ibm.com> |
| |
| PR target/88100 |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin) |
| <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH, |
| ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before |
| range checking it. |
| |
| 2019-02-19 Jonathan Wakely <jwakely@redhat.com> |
| |
| * config/gcn/gcn.c (print_operand): Fix typo. |
| |
| 2019-02-19 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/88074 |
| * toplev.c (do_compile): Initialize mpfr's exponent range |
| based on available float modes. |
| |
| 2019-02-19 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * rtlanal.c (get_initial_register_offset): Fall back to the estimate |
| as long as the epilogue isn't completed. |
| |
| 2019-02-18 Martin Sebor <msebor@redhat.com> |
| |
| * doc/cpp.texi (Conditional syntax): Add __has_attribute, |
| __has_cpp_attribute, and __has_include. |
| |
| 2019-02-18 Martin Sebor <msebor@redhat.com> |
| |
| * doc/invoke.texi (-Wreturn-type): Correct and expand. |
| |
| 2019-02-18 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/89294 |
| * tree.c (valid_constant_size_p): Avoid assuming size is a constant |
| expression. |
| * tree.h (cst_size_error): Add the cst_size_not_constant enumerator. |
| |
| 2019-02-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89296 |
| * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting |
| of no-warning flag to cases that might emit the bogus warning. |
| |
| 2019-02-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/88714 |
| * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of |
| "q" constraint. |
| * config/arm/vfp.md (*movdi_vfp): Likewise. |
| * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of |
| "q" constraint for operands[0]. |
| |
| PR target/89369 |
| * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask, |
| *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct |
| pattern in a temporary buffer. |
| (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather |
| than 64-operands[2]. |
| |
| PR target/89361 |
| * config/s390/s390.c (s390_indirect_branch_attrvalue, |
| s390_indirect_branch_settings): Define unconditionally. |
| (s390_set_current_function): Likewise, but guard the whole body except |
| the s390_indirect_branch_settings call with |
| #if S390_USE_TARGET_ATTRIBUTE. |
| (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally. |
| |
| * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze, |
| *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt): |
| Use HOST_WIDE_INT_M1U instead of ~(0ULL). |
| (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use |
| HOST_WIDE_INT_1U instead of 1ULL. |
| (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int |
| to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul. |
| (*insv<mode><clobbercc_or_nocc>_appendbitsleft, |
| z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U |
| instead of 1UL. |
| (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U |
| instead of 1ul. |
| |
| 2019-02-18 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/89209 |
| * tree-sra.c (create_access_replacement): New optional parameter |
| reg_tree. Use it as a type if non-NULL and access type is not of |
| a register type. |
| (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it |
| to create_access_replacement. |
| (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name. |
| Check lacc is non-NULL before attempting to re-create it on the RHS. |
| |
| 2019-02-18 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/89306 |
| * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1 |
| by default. |
| (symbol_table::free_edge): Recycle m_summary_id. |
| * cgraph.h (get_summary_id): New. |
| (symbol_table::release_symbol): Set m_summary_id to -1 |
| by default. |
| (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id. |
| * ipa-fnsummary.c (ipa_fn_summary_t): Switch from |
| function_summary to fast_function_summary. |
| * ipa-fnsummary.h (ipa_fn_summary_t): Likewise. |
| * ipa-pure-const.c (class funct_state_summary_t): |
| Switch from function_summary to fast_function_summary. |
| * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise. |
| (class ipa_ref_opt_summary_t): Switch from function_summary |
| to fast_function_summary. |
| * symbol-summary.h (class function_summary_base): New class |
| that is created from base of former function_summary. |
| (function_summary_base::unregister_hooks): New. |
| (class function_summary): Inherit from function_summary_base. |
| (class call_summary_base): New class |
| that is created from base of former call_summary. |
| (class call_summary): Inherit from call_summary_base. |
| (struct is_same): New. |
| (class fast_function_summary): New summary class. |
| (class fast_call_summary): New summary class. |
| * vec.h (vec_safe_grow_cleared): New function. |
| |
| 2019-02-18 Martin Liska <mliska@suse.cz> |
| |
| * config/i386/i386.c (ix86_get_multilib_abi_name): New function. |
| (TARGET_GET_MULTILIB_ABI_NAME): New macro defined. |
| * doc/tm.texi: Document new target hook. |
| * doc/tm.texi.in: Likewise. |
| * target.def: Add new target macro. |
| * gcc.c (find_fortran_preinclude_file): Do not search multilib |
| suffixes. |
| |
| 2019-02-17 Alan Modra <amodra@gmail.com> |
| |
| PR target/89271 |
| * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int |
| output reg on add insn. |
| (<bd>tf_<mode> split): Likewise. Match predicates with insn. |
| |
| 2019-02-16 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89372 |
| * config/i386/sse.md (ssedoublemode): Remove V4HI. |
| (PMULHRSW): Likewise. |
| (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not |
| TARGET_AVX2. |
| (ssse3_pmulhrswv4hi3): New expander. |
| |
| 2019-02-16 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require |
| MMX. Add isa attribute. |
| |
| 2019-02-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/66152 |
| * builtins.h (c_readstr): Declare. |
| * builtins.c (c_readstr): Remove forward declaration. Add |
| null_terminated_p argument, if false, read all bytes from the |
| string instead of stopping after '\0'. |
| * expr.c (string_cst_read_str): New function. |
| (store_expr): Use string_cst_read_str instead of |
| builtin_strncpy_read_str. Try to store by pieces the whole |
| exp_len first, and only if that fails, split it up into |
| store by pieces followed by clear_storage. Formatting fix. |
| |
| * config/i386/i386.md (*movqi_internal): Remove static from |
| buf variable. Use output_asm_insn (buf, operands); return ""; |
| instead of return buf;. |
| * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>, |
| *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3, |
| *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise. |
| |
| 2019-02-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/linux.h (ASAN_CC1_SPEC): Define. |
| (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC. |
| * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise. |
| (CC1_SPEC): Likewise. |
| * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit. |
| |
| 2019-02-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * asan.c (asan_emit_stack_protection): Use full-sized mask to align |
| the base address on 64-bit strict-alignment platforms. |
| |
| 2019-02-15 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'. |
| |
| 2019-02-15 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define. |
| |
| 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com> |
| |
| PR rtl-optimization/88308 |
| * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts |
| on copied instruction. |
| |
| 2019-02-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * final.c (insn_current_reference_address): Replace test on JUMP_P |
| with test on jump_to_label_p. |
| * config/visium/visium-passes.def: New file. |
| * config/visium/t-visium (PASSES_EXTRA): Define. |
| * config/visium/visium-protos.h (make_pass_visium_reorg): Declare. |
| * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust. |
| (TRAMPOLINE_ALIGNMENT): Define. |
| * config/visium/visium.c (visium_option_override): Do not register |
| the machine-specific reorg pass here. |
| (visium_trampoline_init): Align the BRA insn on a 64-bit boundary |
| for the GR6. |
| (output_branch): Adjust threshold for long branch instruction. |
| * config/visium/visium.md (cpu): Move around. |
| (length): Adjust for the GR6. |
| |
| 2019-02-15 Richard Biener <rguenther@suse.de> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/89278 |
| * tree-loop-distribution.c: Include tree-eh.h. |
| (generate_memset_builtin, generate_memcpy_builtin): Call |
| rewrite_to_non_trapping_overflow on builtin->size before passing it |
| to force_gimple_operand_gsi. |
| |
| 2019-02-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR other/89342 |
| * optc-save-gen.awk: Handle optimize_fast like optimize_size or |
| optimize_debug. |
| * opth-gen.awk: Likewise. |
| |
| 2019-02-15 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT): |
| Enable MMX, SSE and SSE2 by default. |
| * config/i386/i386.c (ix86_option_override_internal): Do not |
| explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here. |
| |
| 2019-02-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/89354 |
| * combine.c (make_extraction): Punt if extraction_mode is narrower |
| than len bits. |
| |
| 2019-02-14 Maya Rashish <coypu@sdf.org> |
| |
| * config.gcc (*-*-netbsd*): Add netbsd-d.o. |
| * config/netbsd-d.c: New file. |
| * config/t-netbsd: Add netbsd-d.o |
| |
| 2018-02-14 Steve Ellcey <sellcey@marvell.com> |
| |
| * config/aarch64/aarch64.c (aarch64_attribute_table): Change |
| affects_type_identity to true for aarch64_vector_pcs. |
| (aarch64_comp_type_attributes): New function. |
| (TARGET_COMP_TYPE_ATTRIBUTES): New macro. |
| |
| 2019-02-14 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/88850 |
| * config/arm/iterators.md (ANY64): Add V4HF. |
| |
| 2019-02-14 Martin Liska <mliska@suse.cz> |
| |
| PR rtl-optimization/89242 |
| * dce.c (delete_unmarked_insns): Call free_dominance_info we |
| process a transformation. |
| |
| 2019-02-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/89314 |
| * fold-const.c (fold_binary_loc): Cast strlen argument to |
| const char * before dereferencing it. Formatting fixes. |
| |
| PR middle-end/89284 |
| * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized. |
| |
| 2019-02-13 Ian Lance Taylor <iant@golang.org> |
| |
| * optc-save-gen.awk: Set var_opt_hash for initial optimizations |
| and set current index for other optimizations. |
| |
| 2019-02-13 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use |
| nonimmediate_operand as operand 2 predicate. |
| (vec_set<VF2_512_256:mode>_0): Ditto. |
| (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto. |
| (*vec_concatv2si): Remove alternative 2. |
| (*vec_concatv4si_0): Use vm constraint for alternative 0. |
| (*vec_concatv4si_0): Remove preferred_for_speed attribute. |
| (vec_concatv2di): Split alternatives 4,5,6 to ... |
| (*vec_concatv2di_0) ... new pattern. |
| |
| 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR target/89190 |
| * config/arm/arm.c (ldm_stm_operation_p) Set |
| addr_reg_in_reglist correctly for first register. |
| (load_multiple_sequence): Remove dead base check. |
| (gen_ldm_seq): Correctly set write_back for Thumb-1. |
| |
| 2019-02-13 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/88847 |
| * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>): |
| Expose as @aarch64_pred_mov. |
| * config/aarch64/aarch64.c (aarch64_classify_address): |
| Use expand_insn which legitimizes operands. |
| |
| 2019-02-13 Martin Liska <mliska@suse.cz> |
| |
| * builtins.h (expand_builtin_with_bounds): Remove declaration. |
| * calls.c (struct arg_data): Remove special_slot, pointer_arg |
| and pointer_offset fields. |
| (initialize_argument_information): Remove usage of dead |
| fields. |
| * cgraph.h (struct cgraph_thunk_info): Remove |
| add_pointer_bounds_args. |
| * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead |
| fields. |
| (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead |
| fields. |
| * config/i386/i386.c (ix86_function_arg_advance): Remove |
| unrelated comment. |
| (struct builtin_isa): Remove leaf_p and nothrow_p fields. |
| (def_builtin): Remove usage of dead fields. |
| (ix86_add_new_builtins): Likewise. |
| * ipa-fnsummary.c (compute_fn_summary): Likewise. |
| * ipa-icf.c (sem_function::equals_wpa): Likewise. |
| (sem_function::init): Likewise. |
| (sem_variable::merge): Likewise. |
| * ipa-visibility.c (function_and_variable_visibility): Likewise. |
| * ipa.c (symbol_table::remove_unreachable_nodes): Likewise. |
| * lto-cgraph.c (lto_output_node): Likewise. |
| (lto_output_varpool_node): Likewise. |
| (input_node): Likewise. |
| (input_varpool_node): Likewise. |
| * lto-streamer-out.c (lto_output): Likewise. |
| * tree-inline.c (expand_call_inline): Remove usage of |
| assign_stmts. |
| * tree-inline.h (struct copy_body_data): Likewise. |
| * varpool.c (varpool_node::dump): Likewise. |
| |
| 2019-02-13 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/89303 |
| * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var |
| into pt->vars_contains_escaped_heap instead of setting |
| pt->vars_contains_escaped_heap to it. |
| |
| PR middle-end/89281 |
| * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of |
| INTVAL (size), compare it to GET_MODE_MASK instead of |
| 1 << GET_MODE_BITSIZE. |
| |
| PR target/89290 |
| * config/i386/predicates.md (x86_64_immediate_operand): Allow |
| TLS UNSPECs offsetted by signed 32-bit CONST_INT even with |
| -mcmodel=large. |
| |
| 2019-02-13 Martin Liska <mliska@suse.cz> |
| |
| PR lto/88858 |
| * cfgrtl.c (remove_barriers_from_footer): New function. |
| (try_redirect_by_replacing_jump): Use it. |
| (cfg_layout_redirect_edge_and_branch): Likewise. |
| |
| 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com> |
| |
| * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be, |
| vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines. |
| * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator. |
| (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns. |
| * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1. |
| (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE): |
| New BU_CRYPTO_2. |
| * config/rs6000/rs6000.c (builtin_function_type) |
| <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE, |
| CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE, |
| CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options. |
| * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be, |
| vec_ncipher_be, vec_ncipherlast_be): New builtin functions. |
| |
| 2019-02-12 Pat Haugen <pthaugen@us.ibm.com> |
| |
| * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate |
| -maltivec. Delete -maltivec=be and -maltivec=le documentation. |
| |
| 2019-02-12 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89229 |
| * config/i386/i386.md (*movoi_internal_avx): Revert revision |
| 268678 and revision 268657. |
| (*movti_internal): Likewise. |
| |
| 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com> |
| |
| PR target/89233 |
| * config/s390/s390.c (s390_decompose_address): Update comment. |
| (s390_check_qrst_address): Reject invalid address forms after |
| LRA. |
| |
| 2019-02-12 Martin Liska <mliska@suse.cz> |
| |
| PR lto/88876 |
| * ipa-pure-const.c (propagate_pure_const): Revert hunk as |
| we need default values of funct_state for a function that |
| is not optimized. |
| |
| 2019-02-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * asan.c (asan_expand_mark_ifn): Take into account the alignment of |
| the object to pick the size of stores on strict-alignment platforms. |
| |
| * config/sparc/sparc.md (*movsi_insn): Minor tweak. |
| (*movdi_insn_sp32): Likewise. |
| (*movdi_insn_sp64): Likewise. |
| |
| 2019-02-12 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/88677 |
| * cgraphunit.c (analyze_functions): Clear READONLY flag for external |
| types that needs constructiong. |
| * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING. |
| |
| 2019-02-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89253 |
| * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can |
| duplicate the loop. |
| |
| 2019-02-11 David Malcolm <dmalcolm@redhat.com> |
| |
| PR lto/88147 |
| * input.c (selftest::test_line_offset_overflow): New selftest. |
| (selftest::input_c_tests): Call it. |
| |
| 2019-02-11 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/88771 |
| * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable |
| when -Wstringop-overflow is set. |
| (builtin_memref::builtin_memref): Adjust excessive upper bound |
| only when lower bound is not excessive. |
| (maybe_diag_overlap): Detect and diagnose excessive bounds via |
| -Wstringop-ovefflow. |
| (maybe_diag_offset_bounds): Rename... |
| (maybe_diag_access_bounds): ...to this. |
| (check_bounds_or_overlap): Adjust for name change above. |
| |
| 2019-02-11 Martin Sebor <msebor@redhat.com> |
| |
| PR c++/87996 |
| * builtins.c (max_object_size): Move from here... |
| * builtins.h (max_object_size): ...and here... |
| * tree.c (max_object_size): ...to here... |
| * tree.h (max_object_size): ...and here. |
| |
| 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right |
| and shift-left vector built-ins need to include a TRUNC_MOD_EXPR |
| for correct semantics. |
| |
| 2019-02-11 Alan Modra <amodra@gmail.com> |
| |
| * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention |
| -mlongcall and -mpltseq. |
| (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls. |
| (RS/6000 and PowerPC Options <-mpltseq>): Document. |
| * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define. |
| * config/rs6000/sysv4.opt (mpltseq): New option. |
| * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine. |
| (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler |
| support is lacking. Don't allow -mpltseq with -mbss-plt. |
| * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if |
| -mpltseq given for ELFv1. |
| * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ. |
| Only use UNSPEC_PLTSEQ for inline PLT calls. |
| (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only |
| use UNSPEC_PLTSEQ for inline PLT calls. |
| (rs6000_indirect_call_template_1, rs6000_longcall_ref), |
| (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace |
| uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying. |
| * config/rs6000/rs6000.md (pltseq_tocsave_<mode>), |
| (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>), |
| (pltseq_mtctr_<mode>): Likewise. |
| |
| 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> |
| |
| * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with |
| Solaris ld. |
| * configure: Regenerate. |
| |
| 2019-02-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/88714 |
| * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint |
| instead of r. |
| |
| 2019-02-11 Hans-Peter Nilsson <hp@axis.com> |
| |
| * function.c (assign_parm_setup_block): Use the stored |
| size, not the passed size, when allocating stack-space, |
| also for a parameter with alignment larger than |
| MAX_SUPPORTED_STACK_ALIGNMENT. |
| |
| 2019-02-11 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/89009 |
| * ipa-cp.c (build_toporder_info): Remove usage of a param. |
| * ipa-inline.c (inline_small_functions): Likewise. |
| * ipa-pure-const.c (propagate_pure_const): Likewise. |
| (propagate_nothrow): Likewise. |
| * ipa-reference.c (propagate): Likewise. |
| * ipa-utils.c (struct searchc_env): Remove unused field. |
| (searchc): Always search across AVAIL_INTERPOSABLE. |
| (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as |
| the only called IPA pure const can properly not propagate |
| across interposable boundary. |
| * ipa-utils.h (ipa_reduced_postorder): Remove param. |
| |
| 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.md (call_internal, call_value_internal, |
| sibcall_internal, sibcall_value_internal): Use SImode for mem rtx. |
| |
| 2019-02-11 Hans-Peter Nilsson <hp@axis.com> |
| |
| * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name |
| typo. |
| |
| 2019-02-10 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ |
| in comments |
| |
| 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly. |
| |
| 2019-02-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/89268 |
| * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only |
| if preds is non-NULL. |
| |
| 2019-02-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/89272 |
| * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for |
| polymorphic types. |
| |
| 2019-02-10 Monk Chiang <sh.chiang04@gmail.com> |
| |
| * config/nds32/nds32.md (trap): New pattern. |
| |
| 2019-02-10 Monk Chiang <sh.chiang04@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register |
| dwarf span. |
| |
| 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support |
| to split POST_INC. |
| |
| 2019-02-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-visibility.c (localize_node): Also do not localize |
| LDPR_PREVAILING_DEF_IRONLY_EXP. |
| |
| 2019-02-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/87957 |
| * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P |
| instead of type_with_linkage. |
| |
| 2019-02-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/88755 |
| * params.def (uninlined-function-insns, uninlined-function-time, |
| uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper |
| bound so we don't get overflows. |
| |
| 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com> |
| |
| * config/rs6000/rs6000-string.c (expand_compare_loop, |
| expand_block_compare): Insert REG_BR_PROB notes in inline expansion of |
| memcmp/strncmp. |
| |
| 2019-02-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/89246 |
| * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): |
| If !node->definition and TYPE_ARG_TYPES is non-NULL, use |
| TYPE_ARG_TYPES instead of DECL_ARGUMENTS. |
| |
| 2019-02-09 Alan Modra <amodra@gmail.com> |
| |
| PR target/88343 |
| * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return |
| case. Match logic in rs6000_emit_prologue emitting pic_offset_table |
| setup. |
| |
| 2019-02-08 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR middle-end/88560 |
| * lra-constraints.c (process_alt_operands): Don't increase reject |
| for memory when offset memory is required. |
| |
| 2019-02-08 Robin Dapp <rdapp@linux.ibm.com> |
| |
| * config/s390/vector.md: Implement vector copysign. |
| |
| 2019-02-08 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * expr.c (expand_constructor): Correct indentations. |
| |
| 2019-02-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89247 |
| * tree-if-conv.c: Include tree-cfgcleanup.h. |
| (version_loop_for_if_conversion): Record LOOP_VECTORIZED call. |
| (tree_if_conversion): Pass through predicate vector. |
| (pass_if_conversion::execute): Do CFG cleanup and SSA update |
| inline, see if any if-converted loops we refrece in |
| LOOP_VECTORIZED calls vanished and fixup. |
| * tree-if-conv.h (tree_if_conversion): Adjust prototype. |
| |
| 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com> |
| |
| * config/s390/constraints.md (jdd): New constraint. |
| |
| 2019-02-08 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89229 |
| * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for |
| upper 16 vector registers without TARGET_AVX512VL. |
| (*movti_internal): Likewise. |
| |
| 2019-02-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/89234 |
| * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn |
| is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P. |
| (copy_reg_eh_region_note_backward): Likewise. |
| |
| 2019-02-08 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89223 |
| * tree-data-ref.c (initialize_matrix_A): Fail if constant |
| doesn't fit in HWI. |
| (analyze_subscript_affine_affine): Handle failure from |
| initialize_matrix_A. |
| |
| 2019-02-08 Jakub Jelinek <jakub@redhat.com> |
| |
| * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of |
| cfun everywhere. |
| |
| 2019-02-07 David Malcolm <dmalcolm@redhat.com> |
| |
| PR tree-optimization/86637 |
| PR tree-optimization/89235 |
| * tree-vect-loop.c (optimize_mask_stores): Add an |
| auto_purge_vect_location sentinel to ensure that vect_location is |
| purged on exit. |
| * tree-vectorizer.c |
| (auto_purge_vect_location::~auto_purge_vect_location): New dtor. |
| (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel |
| to ensure that vect_location is purged on exit. |
| (pass_slp_vectorize::execute): Likewise, replacing the manual |
| reset. |
| * tree-vectorizer.h (class auto_purge_vect_location): New class. |
| |
| 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/iterators.md (max_opp): New code_attr. |
| (USMAX): New code iterator. |
| * config/aarch64/predicates.md (aarch64_smin): New predicate. |
| (aarch64_smax): Likewise. |
| * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to... |
| (*aarch64_<su>abd<mode>_3): ... Change RTL representation to |
| MINUS (MAX MIN). |
| |
| 2019-02-07 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/89229 |
| * config/i386/i386.md (*movoi_internal_avx): Set mode to OI |
| for TARGET_AVX512VL. |
| (*movti_internal): Set mode to TI for TARGET_AVX512VL. |
| |
| 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-builtin-types.def: Add new types. |
| * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2) |
| (s390_vec_xlw4): Make the memory operand into a const pointer. |
| (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision |
| float. |
| * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate |
| a new vector type with the alignment of the scalar memory operand. |
| |
| 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/88714 |
| * config/arm/arm-protos.h (valid_operands_ldrd_strd, |
| arm_count_ldrdstrd_insns): New declarations. |
| * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of |
| MINUS. |
| (valid_operands_ldrd_strd): New function. |
| (arm_count_ldrdstrd_insns): New function. |
| * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode |
| sets instead of single DImode set and define new insns to match this. |
| |
| 2019-02-07 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data): |
| Make it a C initializer. |
| |
| 2019-02-07 Tamar Christina <tamar.christina@arm.com> |
| |
| PR/target 88850 |
| * config/arm/neon.md (*neon_mov<mode>): Add r -> r case. |
| |
| 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/arm/neon.md (neon_<sup>dot<vsi2qi>): |
| Use neon_dot<q> for type. |
| (neon_<sup>dot_lane<vsi2qi>): Likewise. |
| |
| 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): |
| Use neon_dot<q> for type. |
| (aarch64_<sur>dot_lane<vsi2qi>): Likewise. |
| (aarch64_<sur>dot_laneq<vsi2qi>): Likewise. |
| |
| 2019-02-06 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/89225 |
| * lra-constaints.c (simplify_operand_subreg): Add subreg mode |
| sizes check. |
| |
| 2019-02-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage |
| after restoring registers saved to allocate the frame on Windows. |
| |
| 2019-02-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89182 |
| * graphite.h (cached_scalar_evolution_in_region): Declare. |
| * graphite.c (struct seir_cache_key): New. |
| (struct sese_scev_hash): Likewise. |
| (seir_cache): New global. |
| (cached_scalar_evolution_in_region): New function. |
| (graphite_transform_loops): Allocate and release seir_cache. |
| * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use |
| cached_scalar_evolution_in_region. |
| * graphite-scop-detection.c (scop_detection::can_represent_loop): |
| Simplify. |
| (scop_detection::graphite_can_represent_expr: Use |
| cached_scalar_evolution_in_region. |
| (scop_detection::stmt_simple_for_scop_p): Likewise. |
| (find_params_in_bb): Likewise. |
| (gather_bbs::before_dom_children): Likewise. |
| * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise. |
| (add_loop_constraints): Likewise. |
| |
| 2019-02-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/89210 |
| * fold-const-call.c (fold_const_vec_convert): Pass true as last |
| operand to new_unary_operation only if both element types are integral |
| and it isn't a widening conversion. Return NULL_TREE if |
| new_unary_operation failed. |
| |
| 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| PR target/88856 |
| * config/s390/s390.md: Remove load and test FP splitter. |
| |
| 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com> |
| |
| PR target/89112 |
| * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence, |
| expand_compare_loop, expand_block_compare_gpr, |
| expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert |
| REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add |
| #include "profile-count.h" and "predict.h" for types and functions |
| needed to work with REG_BR_PROB notes. |
| |
| 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com> |
| |
| PR target/89112 |
| * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label |
| for the long branch case. |
| |
| 2019-02-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89188 |
| * dce.c (delete_unmarked_insns): Don't remove no-op moves if they |
| can throw, non-call exceptions are enabled and we can't delete |
| dead exceptions or alter cfg. Set must_clean if |
| delete_insn_and_edges returns true, don't set it blindly for calls. |
| Assert that delete_unreachable_blocks is called only if can_alter_cfg. |
| |
| PR rtl-optimization/89195 |
| * combine.c (make_extraction): For MEMs, don't extract bytes outside |
| of the original MEM. |
| |
| 2019-02-05 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/89000 |
| * gcov.c (function_summary): Remove argument. |
| (file_summary): New function. |
| (print_usage): Replace tabs with spaces. |
| (generate_results): Use new function file_summary. |
| |
| 2019-02-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89186 |
| * optabs.c (prepare_cmp_insn): Pass x and y to |
| emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0). |
| |
| 2019-02-05 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/89150 |
| * bitmap.h (struct bitmap_obstack): Do not mark GTY. |
| (struct bitmap_element): Drop chain_prev so we properly recurse on |
| the prev member, supporting tree views. |
| (struct bitmap_head): GTY skip the obstack member. |
| |
| 2019-02-04 Alexander Monakov <amonakov@ispras.ru> |
| |
| PR c/88698 |
| * doc/extend.texi (Vector Extensions): Add an example of using vector |
| types together with x86 intrinsics. |
| |
| 2019-02-04 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase |
| str[] size to 160, and comment. |
| |
| 2019-02-04 Alan Modra <amodra@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_indirect_call_template_1), |
| (rs6000_pltseq_template): Guard output of TLS markers with |
| TARGET_TLS_MARKERS. |
| (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv), |
| (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding |
| to use inline PLT sequences. |
| * config/rs6000/rs6000.md (pltseq_tocsave_<mode>), |
| (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>), |
| (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate. |
| |
| 2019-02-04 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/88985 |
| * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail |
| out when ipa_fn_summaries does not contain entry for callee. |
| |
| 2019-02-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.h: Remove superfluous blank lines. |
| * config/sparc/sparc.c (global_offset_table_rtx): Rename into... |
| (got_register_rtx): ...this. |
| (sparc_got): Adjust to above renaming. |
| (sparc_tls_got): Likewise. |
| (sparc_delegitimize_address): Likewise. |
| (sparc_output_mi_thunk): Likewise. |
| (sparc_init_pic_reg): Likewise. |
| (save_local_or_in_reg_p): Fix test on the GOT register. |
| (USE_HIDDEN_LINKONCE): Move around. |
| (get_pc_thunk_name): Likewise. |
| (gen_load_pcrel_sym): Likewise. |
| (load_got_register): Likewise. |
| |
| 2019-02-04 Kito Cheng <kito.cheng@gmail.com> |
| |
| * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule |
| of the dynamic linker: "ld-linux-nds32[le|be][f].so.1". |
| |
| 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model |
| into consideration. |
| |
| 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com> |
| |
| * config.gcc (with_nds32_lib, glibc): |
| Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting. |
| * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete. |
| (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete. |
| |
| 2019-02-03 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89071 |
| * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative. |
| Do not prefer (v,v) alternative for non-AVX targets and (m,v) |
| alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set. |
| (*rcpsf2_sse): Ditto. |
| (*rsqrtsf2_sse): Ditto. |
| (sse4_1_round<mode<2): Ditto. |
| |
| 2019-02-03 Richard Biener <rguenther@suse.de> |
| |
| PR debug/87295 |
| * dwarf2out.c (copy_ancestor_tree): Register non-stubs as |
| orig. |
| |
| 2019-02-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/87887 |
| * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): |
| Punt with warning on aggregate return or argument types. Ignore |
| type/mode checking for uniform arguments. |
| |
| 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * combine.c (try_combine): Do not print "Can't combine" messages unless |
| printing failed combination attempts. |
| |
| 2019-02-01 Martin Jambor <mjambor@suse.cz> |
| |
| PR hsa/87863 |
| * omp-grid.c (grid_mark_variable_segment): Set assembler name of group |
| segment and global segment variables before making them static. |
| |
| 2019-02-01 Martin Jambor <mjambor@suse.cz> |
| |
| * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two |
| missed optimization dump with dump_enabled_p. |
| |
| 2019-02-01 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/88597 |
| * tree-scalar-evolution.c (analyze_scalar_evolution): Set up |
| the instantiate cache. |
| (instantiate_scev_binary): Elide second operand procesing |
| if equal to the first. |
| * tree-chrec.c (chrec_contains_symbols): Add visited set. |
| (chrec_contains_undetermined): Likewise. |
| (tree_contains_chrecs): Likewise. |
| |
| 2019-02-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200. |
| |
| 2019-02-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/89143 |
| * wide-int-range.h (wide_int_range_absu): Declare. |
| * wide-int-range.cc (wide_int_range_absu): New function. |
| * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR. |
| |
| PR tree-optimization/88107 |
| * tree-cfg.c (find_outermost_region_in_block): Add ALL argument, |
| instead of assertion that eh_region_outermost is non-NULL, if it |
| is NULL, set *ALL to true and return NULL. |
| (move_sese_region_to_fn): Adjust caller, if all is set, call |
| duplicate_eh_regions with NULL region. |
| |
| 2019-02-01 Richard Biener <rguenth@suse.de> |
| |
| PR rtl-optimization/88593 |
| * mode-switching.c (optimize_mode_switching): Free dominators before |
| calling cleanup_cfg. |
| |
| 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| PR tree-optimization/88932 |
| * tree-predcom.c (try_combine_chains): Get loop bbs in dom order. |
| |
| 2019-01-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/89137 |
| * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid |
| bogus clang warning. |
| |
| 2019-01-31 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89071 |
| * config/i386/i386.md (*extendsfdf2): Split out reg->reg |
| alternative to avoid partial SSE register stall for TARGET_AVX. |
| (truncdfsf2): Ditto. |
| (sse4_1_round<mode>2): Ditto. |
| |
| 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| PR tree-optimization/89008 |
| * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't |
| process anything of the form X * 0. |
| |
| 2019-01-31 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89135 |
| * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks |
| with abnormal preds. |
| |
| 2019-01-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR sanitizer/89124 |
| * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining |
| always_inline callees into no_sanitize_address callers. |
| |
| 2019-01-31 Richard Biener <rguenther@suse.de> |
| |
| PR rtl-optimization/89115 |
| * lra.c (lra_rtx_hash): Properly hash CONST_INT values. |
| |
| 2019-01-30 Martin Sebor <msebor@redhat.com> |
| |
| PR other/89106 |
| * doc/extend.texi (cast to a union): Correct and expand. |
| |
| 2019-01-30 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/87246 |
| * lra-constraints.c (simplify_operand_subreg): Reload memory |
| in subreg if the address became invalid. |
| |
| 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| PR target/87064 |
| * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar): |
| Disable for little-endian. |
| |
| 2019-01-30 Richard Biener <rguenther@suse.de> |
| |
| PR rtl-optimization/89115 |
| * opts.c (default_options_optimization): Reduce |
| PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1. |
| Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative |
| to the default. |
| |
| 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| |
| * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin): |
| Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to |
| type of vector element when vec_extract is implemented by direct |
| move. |
| |
| 2019-01-30 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * doc/invoke.texi (C Language Options): List "-fopenacc-dim". |
| |
| 2019-01-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89111 |
| * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict |
| canonicalization to appropriately sized access types. |
| |
| 2019-01-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/89105 |
| * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn |
| for arguments to functions that are TU-local and shouldn't be |
| referenced by assembly. |
| |
| 2019-01-30 Ulrich Drepper <drepper@redhat.com> |
| |
| * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears |
| after '='. |
| |
| 2019-01-29 Martin Sebor <msebor@redhat.com> |
| |
| PR c/88956 |
| * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays. |
| |
| 2019-01-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/66676 |
| PR ipa/89104 |
| * omp-simd-clone.c (simd_clone_clauses_extract) |
| <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL |
| OMP_CLAUSE_ALIGNED_ALIGNMENT. |
| |
| 2019-01-29 Vineet Gupta <vgupta@synopsys.com> |
| |
| * config.gcc: Force .init_array for ARC. |
| |
| 2019-01-29 Richard Biener <rguenther@suse.de> |
| |
| PR debug/87295 |
| * dwarf2out.c (collect_skeleton_dies): New helper. |
| (copy_decls_for_unworthy_types): Call it. |
| (build_abbrev_table): Assert we do not try to replace |
| DW_AT_signature refs with local refs. |
| |
| 2019-01-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/89002 |
| * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ |
| for lastprivate/linear IV, push gimplify context around gimplify_assign |
| and, if it needed any temporaries, pop it into a gimple bind around the |
| sequence. |
| |
| 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| * common.opt (-Wattribute-alias): Remove "no-" from name. |
| Make -Wattribute-alias command line option and |
| #pragma GCC diagnostic ignored "-Wattribute-alias" work again. |
| |
| 2019-01-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/89073 |
| * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx, |
| -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document |
| x86 ISA options. |
| (bmi2): Add missing @opindex. |
| * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3 |
| options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2, |
| avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd, |
| avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi, |
| avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2, |
| cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase, |
| fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig, |
| pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf, |
| sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave, |
| xsavec, xsaveopt and xsaves options. |
| |
| 2019-01-28 Richard Biener <rguenther@suse.de> |
| |
| PR debug/89076 |
| * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX |
| support removal. |
| |
| 2019-01-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88739 |
| * tree-cfg.c (verify_types_in_gimple_reference): Verify |
| BIT_FIELD_REFs only are applied to mode-precision operands |
| when they are integral. |
| (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR. |
| * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating |
| BIT_FIELD_REFs of non-mode-precision integral operands. |
| |
| 2019-01-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/87214 |
| * config/i386/sse.md |
| (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>, |
| avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the |
| first constants in pairs are multiples of 2. Formatting fixes. |
| (avx512vl_shuf_<shuffletype>32x4_1<mask_name>, |
| avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the |
| first constants in each quadruple are multiples of 4. Formatting fixes. |
| |
| 2019-01-26 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/88933 |
| * tree-inline.c: Include tree-cfgcleanup.h. |
| (delete_unreachable_blocks_update_callgraph): Move... |
| * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph): |
| ...here, make externally visible, make second argument bool, adjust |
| all callers. |
| * tree-cfgcleanup.c: Include cgraph.h. |
| * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph): |
| Declare. |
| * ipa-prop.c: Include tree-cfgcleanup.h. |
| (ipcp_transform_function): Call |
| delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG. |
| |
| 2019-01-25 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/88846 |
| * ira.c (process_set_for_memref_referenced_p): New. |
| (memref_referenced_p): Add new param. Use |
| process_set_for_memref_referenced_p. Add new switch cases. |
| (memref_used_between_p): Pass new arg to memref_referenced_p. |
| |
| 2019-01-25 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/88469 |
| * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new |
| argument ABI_BREAK. Set to true if the calculated alignment has |
| changed in gcc-9. Check bit-fields for their base type alignment. |
| (aarch64_layout_arg): Warn if argument passing has changed in gcc-9. |
| (aarch64_function_arg_boundary): Likewise. |
| (aarch64_gimplify_va_arg_expr): Likewise. |
| |
| 2019-01-25 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR middle-end/89037 |
| * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi |
| instead of accessing TREE_INT_CST_ELT directly. |
| |
| 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| * doc/sourcebuild.texi (Environment attributes): Add fenv and |
| fenv_exceptions description. |
| |
| 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR rtl-optimization/87763 |
| * config/aarch64/aarch64.c (aarch64_select_cc_mode): |
| Allow SUBREG when matching CC_NZmode compare. |
| |
| 2019-01-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89049 |
| * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): |
| Look at the pattern stmt to determine if the stmt is vectorized. |
| |
| 2019-01-25 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (*pred_mov<mode>) |
| (pred_mov<mode>): Handle all-register forms using both a new |
| alternative and a split. |
| |
| 2019-01-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/86865 |
| * graphite-scop-detection.c (scop_detection::can_represent_loop): |
| Reject non-do-while loops. |
| |
| 2019-01-24 Peter Bergner <bergner@linux.ibm.com> |
| |
| * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P. |
| * config/rs6000/constraints.md (Q constraint): Use REG_P. |
| * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P. |
| * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use |
| SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P. |
| * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. |
| * config/rs6000/predicates.md (altivec_register_operand, vint_operand, |
| vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand, |
| vlogical_operand, gpc_reg_operand, int_reg_operand, |
| int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P. |
| (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand, |
| cc_reg_not_cr0_operand, input_operand): Use SUBREG_P. |
| (save_world_operation, restore_world_operation, lmw_operation, |
| stmw_operation): Use MEM_P and REG_P. |
| (tie_operand): Use MEM_P. |
| (vrsave_operation, crsave_operation): Use REG_P. |
| (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P. |
| (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P. |
| (quad_int_reg_operand): Use HARD_REGISTER_NUM_P. |
| (call_operand): Use HARD_REGISTER_P. |
| (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand): |
| Use CONST_INT_P. |
| (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P. |
| * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p, |
| quad_aligned_load_p, replace_swapped_aligned_store, |
| recombine_lvx_pattern, replace_swapped_aligned_load, |
| recombine_stvx_pattern): Use MEM_P. |
| (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant): |
| Use MEM_P and SYMBOL_REF_P. |
| (rtx_is_swappable_p): Use REG_P and CONST_INT_P. |
| (insn_is_swappable_p): Use REG_P and MEM_P. |
| (insn_is_swap_p, (alignment_mask): Use CONST_INT_P. |
| * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move): |
| Use CONST_INT_P. |
| * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove): |
| Use CONST_DOUBLE_P. |
| (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and |
| CONST_WIDE_INT_P. |
| (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P, |
| CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P. |
| (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P, |
| HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and |
| reg_or_subregno: |
| (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P. |
| (easy_altivec_constant, rs6000_legitimate_offset_address_p, |
| rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin, |
| rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin, |
| rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare, |
| rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner, |
| rs6000_split_logical_di): Use CONST_INT_P. |
| (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P, |
| REG_P and SYMBOL_REF_P. |
| (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P. |
| (print_operand): Use CONST_INT_P, MEM_P and REG_P. |
| (virtual_stack_registers_memory_p, rs6000_legitimate_address_p, |
| mems_ok_for_quad_peep): Use CONST_INT_P and REG_P. |
| (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P. |
| (small_data_operand, print_operand_address): Use CONST_INT_P and |
| SYMBOL_REF_P. |
| (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P. |
| (rs6000_init_hard_regno_mode_ok, direct_move_p): |
| Use HARD_REGISTER_NUM_P. |
| (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P. |
| (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P, |
| SUBREG_P and SYMBOL_REF_P. |
| (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P |
| and HARD_REGISTER_NUM_P. |
| (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and |
| reg_or_subregno. |
| (rs6000_adjust_cost, find_mem_ref): Use MEM_P. |
| (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use |
| MEM_P and REG_P. |
| (legitimate_indirect_address_p, legitimate_lo_sum_address_p, |
| registers_ok_for_quad_peep, rs6000_output_function_epilogue, |
| find_addr_reg): Use REG_P. |
| (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P. |
| (rs6000_emit_le_vsx_move): Use SUBREG_P. |
| (offsettable_ok_by_alignment, constant_pool_expr_p, |
| legitimate_small_data_p, rs6000_output_dwarf_dtprel, |
| rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p, |
| rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra, |
| rs6000_assemble_integer, create_TOC_reference, |
| rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info, |
| rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P. |
| (rs6000_split_vec_extract_var): Use reg_or_subregno. |
| * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use |
| CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P. |
| * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. |
| * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. |
| * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P. |
| (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P. |
| (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P. |
| (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P. |
| * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3 |
| and cbranch<mode>4): Use CONST_INT_P. |
| (multiple define_splits): Use REG_P and SUBREG_P. |
| (define_expands call, call_value): Use MEM_P. |
| (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P. |
| (define insn *mtcrfsi): Use CONST_INT_P and REG_P. |
| * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>, |
| *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P |
| and HARD_REGISTER_NUM_P. |
| (multiple define_splits): Use HARD_REGISTER_NUM_P. |
| |
| 2019-01-24 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR rtl-optimization/88948 |
| * rtl.h (prepare_copy_insn): New prototype. |
| * gcse.c (prepare_copy_insn): New function, split out from |
| process_insert_insn. |
| (process_insert_insn): Use prepare_copy_insn. |
| * store-motion.c (replace_store_insn): Use prepare_copy_insn |
| instead of gen_move_insn. |
| |
| 2019-01-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/89006 |
| * config/i386/i386.c (ix86_pic_register_p): Return true for |
| UNSPEC_SET_GOT too. |
| |
| PR tree-optimization/88964 |
| * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also |
| punt if HONOR_SNANS (chrec). |
| |
| PR middle-end/89015 |
| * tree-nested.c (convert_nonlocal_reference_stmt, |
| convert_local_reference_stmt, convert_tramp_reference_stmt, |
| convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat |
| gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL |
| or GIMPLE_OMP_TASK. |
| |
| PR tree-optimization/89027 |
| * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers |
| for "omp simd array" variables. |
| |
| 2019-01-24 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/88469 |
| * profile-count.h (profile_count): On ARM systems using GCC 6/7/8 |
| force the alignment of m_val. |
| |
| 2019-01-24 Richard Biener <rguenther@suse.de> |
| |
| PR lto/87187 |
| * tree-streamer-out.c (write_ts_decl_common_tree_pointers): |
| When in "legacy" debug mode make sure to reset self-origins. |
| |
| 2019-01-24 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/88994 |
| * gcov-io.c (mangle_path): Do not allocate a bigger buffer, |
| result will be always smaller or equal to the original. |
| * gcov.c (mangle_name): Fix else branch where we should |
| also copy to PTR and shift the pointer. |
| |
| 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com> |
| |
| * tree-ssa-dom.c (test_for_singularity): Fix a comment typo. |
| * vr-values.c (find_case_label_ranges): Fix a comment typo. |
| |
| 2019-01-23 Xuepeng Guo <xuepeng.guo@intel.com> |
| |
| * common/config/i386/i386-common.c |
| (OPTION_MASK_ISA_ENQCMD_SET, |
| OPTION_MASK_ISA_ENQCMD_UNSET): New macros. |
| (ix86_handle_option): Handle -menqcmd. |
| * config.gcc (enqcmdintrin.h): New header file. |
| * config/i386/cpuid.h (bit_ENQCMD): New bit. |
| * config/i386/driver-i386.c (host_detect_local_cpu): Handle |
| -menqcmd. |
| * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New |
| function type. |
| * config/i386/i386-builtin.def (__builtin_ia32_enqcmd, |
| __builtin_ia32_enqcmds): New builtins. |
| * config/i386/i386-c.c (__ENQCMD__): New macro. |
| * config/i386/i386-option.c (ix86_target_string): Add |
| -menqcmd. |
| (ix86_valid_target_attribute_inner_p): Likewise. |
| * config/i386/i386-expand.c |
| (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and |
| IX86_BUILTIN_ENQCMDS. |
| * config/i386/i386.h (TARGET_ENQCMD): New. |
| * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New. |
| (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern. |
| (movdir64b_<mode>): Parameterize to enable share expansion code |
| with ENQCMD in function ix86_expand_builtin. |
| * config/i386/i386.opt: Add -menqcmd. |
| * config/i386/immintrin.h: Include enqcmdintrin.h. |
| * config/i386/enqcmdintrin.h: New intrinsic file. |
| * doc/invoke.texi: Add -menqcmd. |
| |
| 2019-01-23 Bin Cheng <bin.cheng@arm.com> |
| Steve Ellcey <sellcey@marvell.com> |
| |
| PR target/85711 |
| * recog.c (address_operand): Return false on wrong mode for address. |
| (constrain_operands): Check for mode with 'p' constraint. |
| |
| 2019-01-23 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/88998 |
| * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives. |
| Disparage MMX alternative. |
| (sse2_cvtpd2pi): Ditto. |
| (sse2_cvttpd2pi): Ditto. |
| |
| 2019-01-23 David Malcolm <dmalcolm@redhat.com> |
| |
| PR driver/89014 |
| * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix |
| use-after-free of the result of |
| aarch64_get_extension_string_for_isa_flags. |
| |
| 2019-01-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/44715 |
| * doc/extend.texi: Document break and continue behavior in |
| statement expressions. |
| |
| 2019-01-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/89008 |
| * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do |
| not leave another stray operand. |
| |
| 2019-01-23 Jakub Jelinek <jakub@redhat.com> |
| |
| * BASE-VER: Bump to 9.0.1. |
| |
| 2019-01-23 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE |
| thunk that returns by reference, use the type of the return object |
| of the thunk instead of that of the alias to build the dereference. |
| |
| 2019-01-23 Vineet Gupta <vgupta@synopsys.com> |
| |
| * config/arc/atomic.md: Add operand to DMB instruction. |
| |
| 2019-01-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/88964 |
| * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use |
| build_zero_cst instead of build_int_cst. Return false for loop |
| invariants which honor signed zeros. |
| |
| 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3. |
| |
| 2019-01-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88965 |
| * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h. |
| (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy |
| is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first. |
| |
| PR middle-end/88968 |
| * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with |
| non-integral DECL_BIT_FIELD_REPRESENTATIVEs. |
| |
| PR target/87064 |
| * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar): |
| Disable for little endian. |
| |
| 2019-01-22 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/88469 |
| * config/arm/arm.c (arm_needs_double_word_align): Check |
| DECL_BIT_FIELD_TYPE. |
| |
| 2019-01-22 Hongtao Liu <hongtao.liu@intel.com> |
| H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/88909 |
| * config/i386/i386-builtin.def: Add mask2 to all builtin |
| initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and |
| SPECIAL_ARGS. |
| * config/i386/i386.c (BDESC): Add mask2 to the definition. |
| (BDESC_FIRST): Likewise. |
| (define_builtin): Add an argument for mask2. Updated to handle |
| both ix86_isa_flags and ix86_isa_flags2. |
| (define_builtin_const): Likewise. |
| (define_builtin_pure): Likewise. |
| (define_builtin2): Deleted. |
| (define_builtin_const2): Likewise. |
| (builtin_description): Add a member, mask2. |
| (bdesc_*): Add mask2 to builtin initializations. |
| (ix86_init_mmx_sse_builtins): Update calls to def_builtin, |
| def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2 |
| support. |
| (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support. |
| |
| 2019-01-22 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/88954 |
| * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check |
| noplt attribute. |
| |
| 2019-01-22 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/88469 |
| * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's |
| alignment is dominated by a bitfield with 64-bit aligned base type. |
| (arm_function_arg): Emit a warning if the alignment has changed since |
| earlier GCC releases. |
| (arm_function_arg_boundary): Likewise. |
| (arm_setup_incoming_varargs): Likewise. |
| |
| 2019-01-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88862 |
| * graphite-scop-detection.c |
| (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR. |
| |
| 2019-01-22 Andrew Stubbs <ams@codesourcery.com> |
| |
| * doc/extend.tex (AMD GCN Function Attributes): New section. |
| * doc/install.texi (amdgcn-unknown-amdhsa): New instructions. |
| * doc/invoke.texi (AMD GCN Options): New section. |
| * doc/md.texi (Constraints for Particular Machines): Add AMD GCN. |
| |
| 2019-01-22 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT |
| register and decoded HIGH/LO_SUM combinations for labels in PIC mode. |
| |
| 2019-01-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/88044 |
| * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition |
| is false in the first iteration, but !every_iteration, return false |
| instead of true with niter->niter zero. |
| |
| PR rtl-optimization/88904 |
| * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention |
| any nonequal registers before processing BB_END (b). |
| |
| PR target/88905 |
| * optabs.c (add_equal_note): Add op0_mode argument, use it instead of |
| GET_MODE (op0). |
| (expand_binop_directly, expand_doubleword_clz, |
| expand_doubleword_popcount, expand_ctz, expand_ffs, |
| expand_unop_direct, maybe_emit_unop_insn): Adjust callers. |
| |
| PR rtl-optimization/49429 |
| PR target/49454 |
| PR rtl-optimization/86334 |
| PR target/88906 |
| * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs |
| addressable from here... |
| (emit_block_op_via_libcall): ... to here. |
| |
| 2019-01-22 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.c (vect_analyze_loop_operations): Use |
| auto_vec for cost vector to fix memleak. |
| (vectorize_fold_left_reduction): Properly gather SLP defs. |
| (vectorizable_comparison): Do not swap operands to properly |
| gather SLP defs. |
| |
| 2019-01-22 Alan Modra <amodra@gmail.com> |
| |
| PR target/88614 |
| * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg |
| stays a reg. Allow a const_int. |
| * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare. |
| * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define. |
| (IS_NOMARK_TLSGETADDR): Define. |
| * config/rs6000/rs6000.c (edit_tls_call_insn): Delete. |
| (rs6000_output_tlsargs): New function. |
| (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS |
| __tls_get_addr call takes an arg. |
| (rs6000_call_sysv): Generate sysv4 secure plt call pattern here.. |
| * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here, |
| delete split.. |
| (call_value_nonlocal_sysv): ..or here, delete split. |
| (tls_gdld_nomark): Delete. |
| (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2 |
| predicate. Call rs6000_output_tlsargs. Adjust length to suit. |
| (call_value_nonlocal_sysv): Likewise. |
| (call_value_nonlocal_sysv_secure): Likewise. |
| (call_value_nonlocal_aix): Likewise. |
| (call_value_indirect_aix): Likewise. |
| (call_value_indirect_elfv2): Likewise. |
| (call_value_local32, call_value_local64): Disable for no-mark tls. |
| (call_value_local_aix): Likewise. |
| |
| 2019-01-21 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/88938 |
| * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32, |
| case IX86_BUILTIN_BEXTRI64]: Sanitize operands. |
| |
| 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com> |
| |
| * hash-map-tests.c (test_map_of_strings_to_int): Show how to use |
| string contents as hash_map keys. |
| |
| 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR c/88928 |
| * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter |
| for rvalue context. Handle rvalues correctly. Use min_align_of_type |
| instead of TYPE_ALIGN. |
| (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly. |
| Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL |
| pointer from TYPE_STUB_DECL. |
| |
| 2019-01-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88934 |
| * tree-vect-slp.c (vect_mask_constant_operand_p): Always look |
| at the possibly non-constant operand. |
| (vect_get_constant_vectors): Adjust. |
| |
| 2019-01-21 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/71659 |
| * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED. |
| * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED |
| instead of _X86INTRIN_H_INCLUDED. |
| * onfig/i386/clwbintrin.h: Likewise. |
| * config/i386/pkuintrin.h: Likewise. |
| * config/i386/prfchwintrin.h: Likewise. |
| * config/i386/rdseedintrin.h: Likewise. |
| * config/i386/wbnoinvdintrin.h: Likewise. |
| * config/i386/xsavecintrin.h: Likewise. |
| * config/i386/xsavesintrin.h: Likewise. |
| * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check. |
| * config/i386/xsaveintrin.h: Likewise. |
| * config/i386/xsaveoptintrin.h: Likewise. |
| * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>, |
| <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>, |
| <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>, |
| <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>, |
| <wbnoinvdintrin.h> and <pkuintrin.h> to ... |
| * config/i386/immintrin.h: Here. |
| |
| 2019-01-20 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/87615 |
| * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked |
| with aa_walk_budget. |
| * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add |
| aa_walk_budget_p parameter. |
| * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA |
| walk. Updated all callers. |
| (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1. |
| (eliminated_by_inlining_prob): New parameter fbi, pass it on to |
| unmodified_parm. |
| (will_be_nonconstant_expr_predicate): New parameter fbi, removed |
| parameter info. Extract info from fbi. Pass fbi to recursive calls |
| and to unmodified_parm. |
| (phi_result_unknown_predicate): New parameter fbi, removed parameter |
| info, updated call to will_be_nonconstant_expr_predicate. |
| (param_change_prob): New parameter fbi, limit AA walking. |
| (analyze_function_body): Initialize aa_walk_budget in fbi. Update |
| calls to various above functions. |
| * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p |
| parameter. Use it to limit AA walking. |
| * ipa-prop.c (detect_type_change_from_memory_writes): New parameter |
| fbi, limit AA walk. |
| (detect_type_change): New parameter fbi, pass it on to |
| detect_type_change_from_memory_writes. |
| (detect_type_change_ssa): Likewise. |
| (aa_overwalked): Removed. |
| (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line |
| accordingly, adjust to the neew AA limiting scheme. |
| (parm_ref_data_preserved_p): Likewise. |
| (ipa_compute_jump_functions_for_edge): Adjust call to |
| get_dynamic_type. |
| (ipa_analyze_call_uses): Likewise. |
| (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa. |
| (ipa_analyze_node): Initialize aa_walk_budget. |
| (ipcp_transform_function): Likewise. |
| * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call |
| to get_dynamic_type. |
| |
| 2019-01-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move |
| outside of #if CHECKING_P code. |
| |
| 2019-01-19 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood): |
| New function, split out from... |
| (loop_versioning::analyze_stride): ...here. |
| (loop_versioning::find_per_loop_multiplication): Use gassign. |
| (loop_versioning::analyze_term_using_scevs): Return a success code. |
| (loop_versioning::analyze_arbitrary_term): New function. |
| (loop_versioning::analyze_address_fragment): Use |
| analyze_arbitrary_term if all else fails. |
| |
| 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/88892 |
| * config/rs6000/rs6000.md (*movsi_from_df): Allow only register |
| operands. |
| |
| 2019-01-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88903 |
| * tree-vect-stmts.c (vectorizable_shift): Verify we see all |
| scalar stmts a SLP shift amount is composed of when detecting |
| shifts by scalars. |
| |
| 2019-01-18 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/88799 |
| * config/arm/arm-cpus.in (mp): New feature. |
| (sec): New feature. |
| (fgroup ARMv7ve): Add mp and sec features. |
| (arch armv7-a): Add options to allow mp and sec extensions. |
| (cpu generic-armv7-a): Add options to allow mp and sec extensions. |
| (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec |
| extenstions to the base architecture. |
| (cpu cortex-a8): Add sec extension to the base architecture. |
| (cpu marvell-pj4): Add mp and sec extensions to the base architecture. |
| * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch |
| variants down to the base v7-a varaint. |
| * config/arm/t-multilib (v7_a_arch_variants): New variable. |
| * doc/invoke.texi (ARM Options): Add +mp and +sec to the list |
| of permitted extensions for -march=armv7-a and for |
| -mcpu=generic-armv7-a. |
| |
| 2019-01-18 Martin Liska <mliska@suse.cz> |
| |
| * params.def: Fix comment. |
| * tree-profile.c (gimple_init_gcov_profiler): Bump function |
| name. |
| (gimple_gen_ic_func_profiler): Likewise. |
| |
| 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New |
| * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle |
| and put in error checks for stack protector guard options. |
| (aarch64_stack_protect_guard): New. |
| (TARGET_STACK_PROTECT_GUARD): Define. |
| * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New. |
| (reg_stack_protect_address<mode>): New. |
| (stack_protect_set): Adjust for SSP_GLOBAL. |
| (stack_protect_test): Likewise. |
| * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New. |
| (-mstack-protector-guard): Likewise. |
| (-mstack-protector-guard-offset): Likewise. |
| |
| 2019-01-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/86214 |
| * tree-inline.h (struct copy_body_data): Add |
| add_clobbers_to_eh_landing_pads member. |
| * tree-inline.c (add_clobbers_to_eh_landing_pad): New function. |
| (copy_edges_for_bb): Call it if EH edge destination is < |
| id->add_clobbers_to_eh_landing_pads. Fix a comment typo. |
| (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads |
| if flag_stack_reuse != SR_NONE and clear it afterwards. |
| |
| 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org> |
| |
| PR target/85596 |
| * doc/install.texi (with-multilib-list): Document for aarch64. |
| |
| 2019-01-18 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88734 |
| * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace |
| (("..."))) with ("..."). |
| |
| 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * doc/extend.texi (Built-in Functions for Memory Model Aware |
| Atomic Operations): Document atomic fetch and nand. |
| |
| 2019-01-18 Martin Liska <mliska@suse.cz> |
| Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/88587 |
| * cgraph.h (create_version_clone_with_body): Add new argument |
| with attributes. |
| * cgraphclones.c (cgraph_node::create_version_clone): Add |
| DECL_ATTRIBUTES to a newly created decl. And call |
| valid_attribute_p so that proper cl_target_optimization_node |
| is set for the newly created declaration. |
| * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES |
| for declaration. |
| (expand_target_clones): Do not call valid_attribute_p, it must |
| be already done. |
| * tree-inline.c (copy_decl_for_dup_finish): Reset mode for |
| vector types. |
| |
| 2019-01-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88734 |
| * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace |
| (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of |
| arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics. |
| |
| 2019-01-17 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/88273 |
| * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): |
| Handle anti-ranges the same as no range at all. |
| |
| 2018-01-17 Steve Ellcey <sellcey@cavium.com> |
| |
| * config/aarch64/aarch64.c (cgraph.h): New include. |
| (intl.h): New include. |
| (supported_simd_type): New function. |
| (currently_supported_simd_type): Ditto. |
| (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto. |
| (aarch64_simd_clone_adjust): Ditto. |
| (aarch64_simd_clone_usable): Ditto. |
| (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro. |
| (TARGET_SIMD_CLONE_ADJUST): Ditto. |
| (TARGET_SIMD_CLONE_USABLE): Ditto. |
| * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check. |
| * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust |
| call. |
| |
| 2019-01-17 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/88800 |
| * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking |
| NO_WARNING bit here. Avoid folding out-of-bounds calls. |
| * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove |
| redundant argument. Add new argument and issue diagnostics under |
| its control. Detect out-of-bounds access even with warnings |
| disabled. |
| (check_bounds_or_overlap): Change return type. Add argument. |
| (wrestrict_dom_walker::check_call): Adjust. |
| * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument. |
| * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in |
| check_bounds_or_overlap's return value. |
| (handle_builtin_stxncpy): Same. |
| (handle_builtin_strcat): Same. |
| |
| 2019-01-17 Andrew Stubbs <ams@codesourcery.com> |
| Kwok Cheung Yeung <kcy@codesourcery.com> |
| Julian Brown <julian@codesourcery.com> |
| Tom de Vries <tom@codesourcery.com> |
| |
| * doc/sourcebuild.texi: Document dg-add-options sqrt_insn. |
| |
| 2019-01-17 Andrew Stubbs <ams@codesourcery.com> |
| |
| * doc/sourcebuild.texi: Document dg-require-effective-target |
| llvm_binutils and offload_gcn. |
| |
| 2019-01-17 Andrew Stubbs <ams@codesourcery.com> |
| Kwok Cheung Yeung <kcy@codesourcery.com> |
| Julian Brown <julian@codesourcery.com> |
| Tom de Vries <tom@codesourcery.com> |
| |
| * doc/sourcebuild.texi: Document dg-required-effective-target |
| exceptions. |
| |
| 2019-01-17 Andrew Stubbs <ams@codesourcery.com> |
| Kwok Cheung Yeung <kcy@codesourcery.com> |
| Julian Brown <julian@codesourcery.com> |
| Tom de Vries <tom@codesourcery.com> |
| Jan Hubicka <hubicka@ucw.cz> |
| Martin Jambor <mjambor@suse.cz> |
| |
| * config.gcc: Add amdgcn*-*-amdhsa configuration. |
| * configure.ac: Check for dlopen. |
| * configure: Regenerate. |
| |
| 2019-01-17 Andrew Stubbs <ams@codesourcery.com> |
| Kwok Cheung Yeung <kcy@codesourcery.com> |
| Julian Brown <julian@codesourcery.com> |
| Tom de Vries <tom@codesourcery.com> |
| Jan Hubicka <hubicka@ucw.cz> |
| Martin Jambor <mjambor@suse.cz> |
| |
| * common/config/gcn/gcn-common.c: New file. |
| * config/gcn/driver-gcn.c: New file. |
| * config/gcn/gcn-builtins.def: New file. |
| * config/gcn/gcn-hsa.h: New file. |
| * config/gcn/gcn-modes.def: New file. |
| * config/gcn/gcn-opts.h: New file. |
| * config/gcn/gcn-passes.def: New file. |
| * config/gcn/gcn-protos.h: New file. |
| * config/gcn/gcn-run.c: New file. |
| * config/gcn/gcn-tree.c: New file. |
| * config/gcn/gcn.c: New file. |
| * config/gcn/gcn.h: New file. |
| * config/gcn/gcn.opt: New file. |
| * config/gcn/t-gcn-hsa: New file. |
| |
| 2019-01-17 Andrew Stubbs <ams@codesourcery.com> |
| Kwok Cheung Yeung <kcy@codesourcery.com> |
| Julian Brown <julian@codesourcery.com> |
| Tom de Vries <tom@codesourcery.com> |
| Jan Hubicka <hubicka@ucw.cz> |
| Martin Jambor <mjambor@suse.cz> |
| |
| * config/gcn/constraints.md: New file. |
| * config/gcn/gcn-valu.md: New file. |
| * config/gcn/gcn.md: New file. |
| * config/gcn/predicates.md: New file. |
| |
| 2019-01-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace |
| flag_non_call_exceptions with cfun->can_throw_non_call_exceptions. |
| (stmt_uses_0_or_null_in_undefined_way): Likewise. |
| * tree-ssa-alias.c (same_addr_size_stores_p): Likewise. |
| |
| 2019-01-17 Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/88851 |
| * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New. |
| * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use |
| it and document registers. |
| |
| 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (ares_tunings): Define. |
| * config/aarch64/aarch64-cores.def (ares): Use the above. |
| |
| 2019-01-17 Wei Xiao <wei3.xiao@intel.com> |
| |
| PR target/88794 |
| Revert: |
| 2018-11-06 Wei Xiao <wei3.xiao@intel.com> |
| |
| * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics. |
| (_mm512_fixupimm_round_pd): Update parameters and builtin. |
| (_mm512_maskz_fixupimm_round_pd): Ditto. |
| (_mm512_fixupimm_round_ps): Ditto. |
| (_mm512_maskz_fixupimm_round_ps): Ditto. |
| (_mm_fixupimm_round_sd): Ditto. |
| (_mm_maskz_fixupimm_round_sd): Ditto. |
| (_mm_fixupimm_round_ss): Ditto. |
| (_mm_maskz_fixupimm_round_ss): Ditto. |
| (_mm512_fixupimm_pd): Ditto. |
| (_mm512_maskz_fixupimm_pd): Ditto. |
| (_mm512_fixupimm_ps): Ditto. |
| (_mm512_maskz_fixupimm_ps): Ditto. |
| (_mm_fixupimm_sd): Ditto. |
| (_mm_maskz_fixupimm_sd): Ditto. |
| (_mm_fixupimm_ss): Ditto. |
| (_mm_maskz_fixupimm_ss): Ditto. |
| (_mm512_mask_fixupimm_round_pd): Update builtin. |
| (_mm512_mask_fixupimm_round_ps): Ditto. |
| (_mm_mask_fixupimm_round_sd): Ditto. |
| (_mm_mask_fixupimm_round_ss): Ditto. |
| (_mm512_mask_fixupimm_pd): Ditto. |
| (_mm512_mask_fixupimm_ps): Ditto. |
| (_mm_mask_fixupimm_sd): Ditto. |
| (_mm_mask_fixupimm_ss): Ditto. |
| * config/i386/avx512vlintrin.h: |
| (_mm256_fixupimm_pd): Update parameters and builtin. |
| (_mm256_maskz_fixupimm_pd): Ditto. |
| (_mm256_fixupimm_ps): Ditto. |
| (_mm256_maskz_fixupimm_ps): Ditto. |
| (_mm_fixupimm_pd): Ditto. |
| (_mm_maskz_fixupimm_pd): Ditto. |
| (_mm_fixupimm_ps): Ditto. |
| (_mm_maskz_fixupimm_ps): Ditto. |
| (_mm256_mask_fixupimm_pd): Update builtin. |
| (_mm256_mask_fixupimm_ps): Ditto. |
| (_mm_mask_fixupimm_pd): Ditto. |
| (_mm_mask_fixupimm_ps): Ditto. |
| * config/i386/i386-builtin-types.def: Add new types and remove |
| useless ones. |
| * config/i386/i386-builtin.def: Update builtin definitions. |
| * config/i386/i386.c: Handle new builtin types and remove useless ones. |
| * config/i386/sse.md: Update VFIXUPIMM* patterns. |
| (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update. |
| (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. |
| (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update. |
| (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update. |
| (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. |
| (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update. |
| * config/i386/subst.md: |
| (round_saeonly_sd_mask_operand4): Add new subst_attr. |
| (round_saeonly_sd_mask_op4): Ditto. |
| (round_saeonly_expand_operand5): Ditto. |
| (round_saeonly_expand): Update. |
| |
| 2019-01-17 Wei Xiao <wei3.xiao@intel.com> |
| |
| PR target/88794 |
| Revert: |
| 2018-11-12 Wei Xiao <wei3.xiao@intel.com> |
| |
| * config/i386/sse.md: Combine VFIXUPIMM* patterns |
| (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update. |
| (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. |
| (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove. |
| (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update. |
| (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. |
| (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove. |
| |
| 2019-01-17 Wei Xiao <wei3.xiao@intel.com> |
| |
| PR target/88794 |
| Revert: |
| 2018-12-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88489 |
| * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator. |
| (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it |
| instead of UNSPEC_FIXUPIMM. |
| |
| 2019-01-17 Richard Biener <rguenther@suse.de> |
| |
| PR lto/86736 |
| * dwarf2out.c (want_pubnames): Never generate pubnames sections |
| and friends for the LTO part of debug info. |
| |
| 2019-01-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/86214 |
| * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts |
| if x == y. |
| |
| PR rtl-optimization/88870 |
| * dce.c (deletable_insn_p): Never delete const/pure calls that can |
| throw if we can't alter the cfg or delete dead exceptions. |
| (mark_insn): Don't call find_call_stack_args for such calls. |
| |
| 2019-01-17 Kewen Lin <linkw@gcc.gnu.org> |
| |
| * doc/extend.texi: Add four new prototypes for vec_ld and seven new |
| prototypes for vec_st. |
| * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries |
| for scalar address type variants of altivec_vec_ld/altivec_vec_st, |
| mainly on signed/unsigned long long and double. |
| |
| 2019-01-16 David Malcolm <dmalcolm@redhat.com> |
| |
| PR target/88861 |
| * combine.c (delete_noop_moves): Convert to "bool" return, |
| returning true if any edges are eliminated. |
| (combine_instructions): Also return true if delete_noop_moves |
| returns true. |
| |
| 2019-01-16 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use |
| correct max nunits for endian swap. |
| (aarch64_expand_fcmla_builtin): Correct subreg code. |
| * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>, |
| aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct |
| lane endianness. |
| |
| 2019-01-16 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/alpha/alpha.c (alpha_gimplify_va_arg): |
| Handle split indirect COMPLEX_TYPE arguments. |
| |
| 2019-01-16 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/86891 |
| * config/aarch64/aarch64-modes.def: Add comment about how the carry |
| bit is set by add and compare. |
| (CC_ADC): New CC_MODE. |
| * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables |
| to cache the code and mode of X. Adjust the shape of a CC_Cmode |
| comparison. Add detection for CC_ADCmode. |
| (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add |
| CC_ADCmode. |
| * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode. |
| (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU. |
| (add<mode>3_compareC_cconly_imm): Delete. Merge into... |
| (add<mode>3_compareC_cconly): ... this. Restructure the comparison |
| to eliminate the need for zero-extending the operands. |
| (add<mode>3_compareC_imm): Delete. Merge into ... |
| (add<mode>3_compareC): ... this. Restructure the comparison to |
| eliminate the need for zero-extending the operands. |
| (add<mode>3_carryin): Use LTU for the overflow detection. |
| (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out. |
| Reexpress comparison for overflow. |
| (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC. |
| (add<mode>3_carryinC): Likewise. |
| (add<mode>3_carryinV): Use LTU for carry between partials. |
| * config/aarch64/predicates.md (aarch64_carry_operation): Update |
| handling of CC_Cmode and add CC_ADCmode. |
| (aarch64_borrow_operation): Likewise. |
| |
| 2019-01-16 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): |
| Remove patternmode. |
| * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise. |
| * config/arm/neon.md (neon_vcmla_lane<rot><mode>, |
| neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): |
| Remove endianness conversion. |
| |
| 2019-01-16 Martin Liska <mliska@suse.cz> |
| |
| * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR |
| for GCC driver. |
| * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as |
| a new argument. |
| * gcc.c (add_sysrooted_hdrs_prefix): New function. |
| (path_prefix_reset): Move up in the source file. |
| (find_fortran_preinclude_file): Make complex search for the |
| fortran header files. |
| |
| 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com> |
| |
| * godump.c (go_output_typedef): When outputting a typedef, refer |
| to the underlying type by its name and not its structure. |
| |
| 2019-01-15 David Malcolm <dmalcolm@redhat.com> |
| |
| PR c++/88795 |
| * tree.c (build_function_type): Assert that arg_types is not |
| error_mark_node. |
| |
| 2019-01-15 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR inline-asm/52813 |
| * doc/extend.texi: Document that listing the stack pointer in the |
| clobber list of an asm is a deprecated feature. |
| * common.opt (Wdeprecated): Moved from c-family/c.opt. |
| * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated |
| warning instead of an error for clobbers of the stack pointer. |
| Add a note explaining why. |
| |
| 2019-01-15 Richard Biener <rguenther@suse.de> |
| |
| PR debug/88046 |
| * dwarf2out.c (gen_member_die): Do not generate inheritance |
| DIEs late. |
| |
| 2019-01-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88855 |
| * tree-if-conv.c (combine_blocks): Collect |
| SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals. |
| |
| 2019-01-15 Tom de Vries <tdevries@suse.de> |
| |
| PR target/80547 |
| * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle |
| lhs == NULL_TREE for gang-level reduction. |
| |
| 2019-01-15 Richard Biener <rguenther@suse.de> |
| Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR ipa/88788 |
| * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and |
| return true if SSA_NAME is already marked in visited bitmap. |
| (malloc_candidate_p): Pass visited to malloc_candidate_p_1. |
| |
| 2019-01-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/88775 |
| * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize |
| equal == 0 equality pointer comparisons some more if compared in |
| integral types and either one points to an automatic var and the |
| other to a global, or we can prove at least one points to the middle |
| or both point to start or both point to end. |
| |
| 2019-01-14 Andi Kleen <ak@linux.intel.com> |
| |
| * Makefile.in: Lower autofdo sampling rate by 10x. |
| * Makefile.tpl: Dito. |
| |
| 2019-01-14 Tom Honermann <tom@honermann.net> |
| |
| * defaults.h: Define CHAR8_TYPE. |
| |
| 2019-01-14 Martin Sebor <msebor@redhat.com> |
| |
| PR target/88638 |
| * doc/extend.texi (Darwin Format Checks): Clarify. |
| |
| 2019-01-14 Richard Biener <rguenther@suse.de> |
| |
| * genmatch.c (dt_simplify::gen_1): Change dumping dependent on |
| whether we are in (simplify ...) or (match ...) context. |
| |
| 2019-01-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/88796 |
| * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field. |
| * cfgexpand.c (stack_protect_prologue): Initialize |
| crtl->stack_protect_guard_decl. |
| * function.c (stack_protect_epilogue): Use it instead of calling |
| targetm.stack_protect_guard again. |
| * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from |
| MEMs with MEM_EXPR equal to crtl->stack_protect_guard or |
| crtl->stack_protect_guard_decl. |
| * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE |
| on the returned MEM_EXPR. |
| |
| 2019-01-12 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting |
| vector length using -fopenacc-dim. |
| |
| 2019-01-12 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector |
| lengths into account. |
| |
| 2019-01-12 Svante Signell <svante.signell@gmail.com> |
| |
| * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define. |
| (TARGET_CAN_SPLIT_STACK): Define. |
| (TARGET_THREAD_SPLIT_STACK_OFFSET): Define. |
| |
| 2019-01-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * params.def (inline-unit-growth): Set to 40. |
| |
| 2019-01-12 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo. |
| |
| 2019-01-12 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading |
| region calling vector-partitionable routine, set default_vector_length |
| to WARP_SIZE. |
| |
| 2019-01-12 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new |
| variable default_vector_length. |
| |
| 2019-01-12 Tom de Vries <tdevries@suse.de> |
| |
| PR middle-end/88703 |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults |
| from oacc_default_dims, as oacc_validate_dims would do it, and apply |
| dimensions limits. |
| |
| 2019-01-12 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1) |
| (nvptx_goacc_validate_dims): Add used parameter. |
| * doc/tm.texi: Regenerate. |
| * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add |
| argument to call to targetm.goacc.validate_dims. |
| (default_goacc_validate_dims): Add used |
| parameter. |
| * target.def (validate_dims): Add used parameter in DEFHOOK. |
| * targhooks.h (default_goacc_validate_dims): Add used parameter. |
| |
| 2019-01-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/85956 |
| PR lto/88733 |
| * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds |
| field. |
| * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of |
| ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with |
| a dummy "omp dummy var" variable if id->adjust_array_error_bounds. |
| * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds. |
| |
| 2019-01-11 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/87305 |
| * lra-assigns.c |
| (setup_live_pseudos_and_spill_after_risky_transforms): Add code |
| for little endian pseudos used as paradoxical subreg. |
| |
| 2019-01-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/88693 |
| * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p |
| for STRING_CSTs that don't contain any NUL characters in the first |
| TREE_STRING_LENGTH bytes. |
| |
| 2019-01-11 Alan Modra <amodra@gmail.com> |
| |
| PR 88777 |
| PR 88614 |
| * genattrtab.c (min_fn): Don't translate values. |
| (min_attr_value): Return INT_MAX when the value can't be calculated. |
| Return minimum among any values that can be calculated. |
| (max_attr_value): Adjust. |
| |
| 2019-01-11 Jakub Jelinek <jakub@redhat.com> |
| |
| * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H). |
| |
| 2019-01-11 Steve Ellcey <sellcey@marvell.com> |
| |
| * config/aarch64/aarch64.c (aarch64_simd_call_p): New function. |
| (aarch64_hard_regno_call_part_clobbered): Add insn argument. |
| (aarch64_return_call_with_max_clobbers): New function. |
| (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro. |
| * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn |
| argument. |
| * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto. |
| * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto. |
| * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto. |
| * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto. |
| * cselib.c (cselib_process_insn): Add argument to |
| targetm.hard_regno_call_part_clobbered call. |
| * ira-conflicts.c (ira_build_conflicts): Ditto. |
| * ira-costs.c (ira_tune_allocno_costs): Ditto. |
| * lra-constraints.c (inherit_reload_reg): Ditto. |
| * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field. |
| * lra-lives.c (check_pseudos_live_through_calls): Add call_insn |
| argument. Call targetm.return_call_with_max_clobbers. |
| Add argument to targetm.hard_regno_call_part_clobbered call. |
| (calls_have_same_clobbers_p): New function. |
| (process_bb_lives): Add call_insn and last_call_insn variables. |
| Pass call_insn to check_pseudos_live_through_calls. |
| Modify if stmt to check targetm.return_call_with_max_clobbers. |
| Update setting of flush variable. |
| (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p |
| to false. |
| * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL. |
| * regcprop.c (copyprop_hardreg_forward_1): Add argument to |
| targetm.hard_regno_call_part_clobbered call. |
| * reginfo.c (choose_hard_reg_mode): Ditto. |
| * regrename.c (check_new_reg_p): Ditto. |
| * reload.c (find_equiv_reg): Ditto. |
| * reload1.c (emit_reload_insns): Ditto. |
| * sched-deps.c (deps_analyze_insn): Ditto. |
| * sel-sched.c (init_regs_for_mode): Ditto. |
| (mark_unavailable_hard_regs): Ditto. |
| * targhooks.c (default_dwarf_frame_reg_mode): Ditto. |
| * target.def (hard_regno_call_part_clobbered): Add insn argument. |
| (return_call_with_max_clobbers): New target function. |
| * doc/tm.texi: Regenerate. |
| * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook. |
| * hooks.c (hook_bool_uint_mode_false): Change to |
| hook_bool_insn_uint_mode_false. |
| * hooks.h (hook_bool_uint_mode_false): Ditto. |
| |
| 2019-01-11 Steve Ellcey <sellcey@marvell.com> |
| |
| * config/aarch64/aarch64.c (aarch64_simd_call_p): New function. |
| (aarch64_remove_extra_call_preserved_regs): New function. |
| (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro. |
| * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook. |
| * doc/tm.texi: Regenerate. |
| * final.c (get_call_reg_set_usage): Call new hook. |
| * target.def (remove_extra_call_preserved_regs): New hook. |
| * targhooks.c (default_remove_extra_call_preserved_regs): New function. |
| * targhooks.h (default_remove_extra_call_preserved_regs): New function. |
| |
| 2019-01-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/88714 |
| * passes.c (finish_optimization_passes): Call print_combine_total_stats |
| inside of pass_combine_1 dump rather than pass_profile_1. |
| |
| 2019-01-11 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER) |
| (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER) |
| (PTX_NUM_PER_WORKER_BARRIERS): Define. |
| (nvptx_apply_dim_limits): Prevent vector_length 64 and |
| num_workers 16. |
| |
| 2019-01-11 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up. |
| |
| 2019-01-11 Jan Beulich <jbeulich@suse.com> |
| |
| * config/i386/i386.md (rex64suffix): Add L suffix for SI. |
| * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>, |
| sse2_cvtsi2sd): Add {l}. |
| (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T |
| syntax. |
| |
| 2019-01-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88785 |
| * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into |
| define_expand. |
| (*float<floatunssuffix>v2div2sf2): New define_insn. |
| (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand. |
| (*float<floatunssuffix>v2div2sf2_mask): New define_insn. |
| (*float<floatunssuffix>v2div2sf2_mask_1): Replace |
| subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with |
| match_operands with "const0_operand" "C". |
| |
| 2019-01-10 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c |
| (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins... |
| (aarch64_init_simd_builtins): ...Here |
| |
| 2019-01-10 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/87305 |
| * lra-assigns.c |
| (setup_live_pseudos_and_spill_after_risky_transforms): Check |
| allocation for big endian pseudos used as paradoxical subregs and |
| spill them if it is wrong. |
| * lra-constraints.c (lra_constraints): Add a comment. |
| |
| 2019-01-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88792 |
| * tree-ssa-pre.c (get_representative_for): Do not return a |
| value-number here. |
| |
| 2019-01-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/84877 |
| PR bootstrap/88450 |
| * function.c (assign_stack_local_1): Revert the 2018-11-21 changes. |
| (assign_parm_setup_block): Do the argument slot realignment here |
| instead. |
| |
| 2019-01-10 Stefan Agner <stefan@agner.ch> |
| |
| PR target/88648 |
| * config/arm/arm.c (arm_option_override_internal): Force |
| opts->x_inline_asm_unified to true only if TARGET_THUMB2_P. |
| |
| 2019-01-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c/88568 |
| * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting |
| DECL_EXTERNAL. |
| |
| 2019-01-10 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/arm-builtins.c |
| (enum arm_type_qualifiers): Add qualifier_lane_pair_index. |
| (MAC_LANE_PAIR_QUALIFIERS): New. |
| (arm_expand_builtin_args): Use it. |
| (arm_expand_builtin_1): Likewise. |
| * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New. |
| * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New. |
| * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX. |
| * config/arm/arm_neon.h: |
| (vcadd_rot90_f16): New. |
| (vcaddq_rot90_f16): New. |
| (vcadd_rot270_f16): New. |
| (vcaddq_rot270_f16): New. |
| (vcmla_f16): New. |
| (vcmlaq_f16): New. |
| (vcmla_lane_f16): New. |
| (vcmla_laneq_f16): New. |
| (vcmlaq_lane_f16): New. |
| (vcmlaq_laneq_f16): New. |
| (vcmla_rot90_f16): New. |
| (vcmlaq_rot90_f16): New. |
| (vcmla_rot90_lane_f16): New. |
| (vcmla_rot90_laneq_f16): New. |
| (vcmlaq_rot90_lane_f16): New. |
| (vcmlaq_rot90_laneq_f16): New. |
| (vcmla_rot180_f16): New. |
| (vcmlaq_rot180_f16): New. |
| (vcmla_rot180_lane_f16): New. |
| (vcmla_rot180_laneq_f16): New. |
| (vcmlaq_rot180_lane_f16): New. |
| (vcmlaq_rot180_laneq_f16): New. |
| (vcmla_rot270_f16): New. |
| (vcmlaq_rot270_f16): New. |
| (vcmla_rot270_lane_f16): New. |
| (vcmla_rot270_laneq_f16): New. |
| (vcmlaq_rot270_lane_f16): New. |
| (vcmlaq_rot270_laneq_f16): New. |
| (vcadd_rot90_f32): New. |
| (vcaddq_rot90_f32): New. |
| (vcadd_rot270_f32): New. |
| (vcaddq_rot270_f32): New. |
| (vcmla_f32): New. |
| (vcmlaq_f32): New. |
| (vcmla_lane_f32): New. |
| (vcmla_laneq_f32): New. |
| (vcmlaq_lane_f32): New. |
| (vcmlaq_laneq_f32): New. |
| (vcmla_rot90_f32): New. |
| (vcmlaq_rot90_f32): New. |
| (vcmla_rot90_lane_f32): New. |
| (vcmla_rot90_laneq_f32): New. |
| (vcmlaq_rot90_lane_f32): New. |
| (vcmlaq_rot90_laneq_f32): New. |
| (vcmla_rot180_f32): New. |
| (vcmlaq_rot180_f32): New. |
| (vcmla_rot180_lane_f32): New. |
| (vcmla_rot180_laneq_f32): New. |
| (vcmlaq_rot180_lane_f32): New. |
| (vcmlaq_rot180_laneq_f32): New. |
| (vcmla_rot270_f32): New. |
| (vcmlaq_rot270_f32): New. |
| (vcmla_rot270_lane_f32): New. |
| (vcmla_rot270_laneq_f32): New. |
| (vcmlaq_rot270_lane_f32): New. |
| (vcmlaq_rot270_laneq_f32): New. |
| * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90, |
| vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, |
| vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, |
| vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, |
| vcmlaq_lane270): New. |
| * config/arm/neon.md (neon_vcmla_lane<rot><mode>, |
| neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New. |
| * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New. |
| * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New. |
| (arm_option_reconfigure_globals): Use them. |
| * config/arm/iterators.md (VDF, VQ_HSF): New. |
| (VCADD, VCMLA): New. |
| (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF. |
| * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): |
| New. |
| * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270, |
| UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New. |
| |
| 2019-01-10 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): |
| Add qualifier_lane_pair_index. |
| (emit-rtl.h): Include. |
| (TYPES_QUADOP_LANE_PAIR): New. |
| (aarch64_simd_expand_args): Use it. |
| (aarch64_simd_expand_builtin): Likewise. |
| (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): |
| New. |
| (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE, |
| AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data, |
| aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New. |
| (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins. |
| (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF, |
| AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, |
| AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF, |
| AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, |
| AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF, |
| AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, |
| AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF, |
| AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF. |
| * config/aarch64/iterators.md (FCMLA_maybe_lane): New. |
| * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): |
| Add __ARM_FEATURE_COMPLEX. |
| * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, |
| fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, |
| fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, |
| fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, |
| fcmlaq_lane270): New. |
| * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>, |
| aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>, |
| aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New. |
| * config/aarch64/arm_neon.h: |
| (vcadd_rot90_f16): New. |
| (vcaddq_rot90_f16): New. |
| (vcadd_rot270_f16): New. |
| (vcaddq_rot270_f16): New. |
| (vcmla_f16): New. |
| (vcmlaq_f16): New. |
| (vcmla_lane_f16): New. |
| (vcmla_laneq_f16): New. |
| (vcmlaq_lane_f16): New. |
| (vcmlaq_rot90_lane_f16): New. |
| (vcmla_rot90_laneq_f16): New. |
| (vcmla_rot90_lane_f16): New. |
| (vcmlaq_rot90_f16): New. |
| (vcmla_rot90_f16): New. |
| (vcmlaq_laneq_f16): New. |
| (vcmla_rot180_laneq_f16): New. |
| (vcmla_rot180_lane_f16): New. |
| (vcmlaq_rot180_f16): New. |
| (vcmla_rot180_f16): New. |
| (vcmlaq_rot90_laneq_f16): New. |
| (vcmlaq_rot270_laneq_f16): New. |
| (vcmlaq_rot270_lane_f16): New. |
| (vcmla_rot270_laneq_f16): New. |
| (vcmlaq_rot270_f16): New. |
| (vcmla_rot270_f16): New. |
| (vcmlaq_rot180_laneq_f16): New. |
| (vcmlaq_rot180_lane_f16): New. |
| (vcmla_rot270_lane_f16): New. |
| (vcadd_rot90_f32): New. |
| (vcaddq_rot90_f32): New. |
| (vcaddq_rot90_f64): New. |
| (vcadd_rot270_f32): New. |
| (vcaddq_rot270_f32): New. |
| (vcaddq_rot270_f64): New. |
| (vcmla_f32): New. |
| (vcmlaq_f32): New. |
| (vcmlaq_f64): New. |
| (vcmla_lane_f32): New. |
| (vcmla_laneq_f32): New. |
| (vcmlaq_lane_f32): New. |
| (vcmlaq_laneq_f32): New. |
| (vcmla_rot90_f32): New. |
| (vcmlaq_rot90_f32): New. |
| (vcmlaq_rot90_f64): New. |
| (vcmla_rot90_lane_f32): New. |
| (vcmla_rot90_laneq_f32): New. |
| (vcmlaq_rot90_lane_f32): New. |
| (vcmlaq_rot90_laneq_f32): New. |
| (vcmla_rot180_f32): New. |
| (vcmlaq_rot180_f32): New. |
| (vcmlaq_rot180_f64): New. |
| (vcmla_rot180_lane_f32): New. |
| (vcmla_rot180_laneq_f32): New. |
| (vcmlaq_rot180_lane_f32): New. |
| (vcmlaq_rot180_laneq_f32): New. |
| (vcmla_rot270_f32): New. |
| (vcmlaq_rot270_f32): New. |
| (vcmlaq_rot270_f64): New. |
| (vcmla_rot270_lane_f32): New. |
| (vcmla_rot270_laneq_f32): New. |
| (vcmlaq_rot270_lane_f32): New. |
| (vcmlaq_rot270_laneq_f32): New. |
| * config/aarch64/aarch64.h (TARGET_COMPLEX): New. |
| * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270, |
| UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New. |
| (FCADD, FCMLA): New. |
| (rot): New. |
| * config/arm/types.md (neon_fcadd, neon_fcmla): New. |
| |
| 2019-01-09 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR other/16615 |
| |
| * config/pa/pa.c: Change "can not" to "cannot". |
| * gimple-ssa-evrp-analyze.c: Likewise. |
| * ipa-icf.c: Likewise. |
| * ipa-polymorphic-call.c: Likewise. |
| * ipa-pure-const.c: Likewise. |
| * lra-constraints.c: Likewise. |
| * lra-remat.c: Likewise. |
| * reload1.c: Likewise. |
| * reorg.c: Likewise. |
| * tree-ssa-uninit.c: Likewise. |
| |
| 2019-01-09 Sandra Loosemore <sandra@codesourcery.com> |
| |
| PR other/16615 |
| |
| * Makefile.in: Mechanically replace "can not" with "cannot". |
| * alias.c: Likewise. |
| * builtins.c: Likewise. |
| * calls.c: Likewise. |
| * cgraph.c: Likewise. |
| * cgraph.h: Likewise. |
| * cgraphclones.c: Likewise. |
| * cgraphunit.c: Likewise. |
| * combine-stack-adj.c: Likewise. |
| * combine.c: Likewise. |
| * common/config/i386/i386-common.c: Likewise. |
| * config/aarch64/aarch64.c: Likewise. |
| * config/alpha/sync.md: Likewise. |
| * config/arc/arc.c: Likewise. |
| * config/arc/predicates.md: Likewise. |
| * config/arm/arm-c.c: Likewise. |
| * config/arm/arm.c: Likewise. |
| * config/arm/arm.h: Likewise. |
| * config/arm/arm.md: Likewise. |
| * config/arm/cortex-r4f.md: Likewise. |
| * config/csky/csky.c: Likewise. |
| * config/csky/csky.h: Likewise. |
| * config/darwin-f.c: Likewise. |
| * config/epiphany/epiphany.md: Likewise. |
| * config/i386/i386.c: Likewise. |
| * config/i386/sol2.h: Likewise. |
| * config/m68k/m68k.c: Likewise. |
| * config/mcore/mcore.h: Likewise. |
| * config/microblaze/microblaze.md: Likewise. |
| * config/mips/20kc.md: Likewise. |
| * config/mips/sb1.md: Likewise. |
| * config/nds32/nds32.c: Likewise. |
| * config/nds32/predicates.md: Likewise. |
| * config/pa/pa.c: Likewise. |
| * config/rs6000/e300c2c3.md: Likewise. |
| * config/rs6000/rs6000.c: Likewise. |
| * config/s390/s390.h: Likewise. |
| * config/sh/sh.c: Likewise. |
| * config/sh/sh.md: Likewise. |
| * config/spu/vmx2spu.h: Likewise. |
| * cprop.c: Likewise. |
| * dbxout.c: Likewise. |
| * df-scan.c: Likewise. |
| * doc/cfg.texi: Likewise. |
| * doc/extend.texi: Likewise. |
| * doc/fragments.texi: Likewise. |
| * doc/gty.texi: Likewise. |
| * doc/invoke.texi: Likewise. |
| * doc/lto.texi: Likewise. |
| * doc/md.texi: Likewise. |
| * doc/objc.texi: Likewise. |
| * doc/rtl.texi: Likewise. |
| * doc/tm.texi: Likewise. |
| * dse.c: Likewise. |
| * emit-rtl.c: Likewise. |
| * emit-rtl.h: Likewise. |
| * except.c: Likewise. |
| * expmed.c: Likewise. |
| * expr.c: Likewise. |
| * fold-const.c: Likewise. |
| * genautomata.c: Likewise. |
| * gimple-fold.c: Likewise. |
| * hard-reg-set.h: Likewise. |
| * ifcvt.c: Likewise. |
| * ipa-comdats.c: Likewise. |
| * ipa-cp.c: Likewise. |
| * ipa-devirt.c: Likewise. |
| * ipa-fnsummary.c: Likewise. |
| * ipa-icf.c: Likewise. |
| * ipa-inline-transform.c: Likewise. |
| * ipa-inline.c: Likewise. |
| * ipa-polymorphic-call.c: Likewise. |
| * ipa-profile.c: Likewise. |
| * ipa-prop.c: Likewise. |
| * ipa-pure-const.c: Likewise. |
| * ipa-reference.c: Likewise. |
| * ipa-split.c: Likewise. |
| * ipa-visibility.c: Likewise. |
| * ipa.c: Likewise. |
| * ira-build.c: Likewise. |
| * ira-color.c: Likewise. |
| * ira-conflicts.c: Likewise. |
| * ira-costs.c: Likewise. |
| * ira-int.h: Likewise. |
| * ira-lives.c: Likewise. |
| * ira.c: Likewise. |
| * ira.h: Likewise. |
| * loop-invariant.c: Likewise. |
| * loop-unroll.c: Likewise. |
| * lower-subreg.c: Likewise. |
| * lra-assigns.c: Likewise. |
| * lra-constraints.c: Likewise. |
| * lra-eliminations.c: Likewise. |
| * lra-lives.c: Likewise. |
| * lra-remat.c: Likewise. |
| * lra-spills.c: Likewise. |
| * lra.c: Likewise. |
| * lto-cgraph.c: Likewise. |
| * lto-streamer-out.c: Likewise. |
| * postreload-gcse.c: Likewise. |
| * predict.c: Likewise. |
| * profile-count.h: Likewise. |
| * profile.c: Likewise. |
| * recog.c: Likewise. |
| * ree.c: Likewise. |
| * reload.c: Likewise. |
| * reload1.c: Likewise. |
| * reorg.c: Likewise. |
| * resource.c: Likewise. |
| * rtl.def: Likewise. |
| * rtl.h: Likewise. |
| * rtlanal.c: Likewise. |
| * sched-deps.c: Likewise. |
| * sched-ebb.c: Likewise. |
| * sched-rgn.c: Likewise. |
| * sel-sched-ir.c: Likewise. |
| * sel-sched.c: Likewise. |
| * shrink-wrap.c: Likewise. |
| * simplify-rtx.c: Likewise. |
| * symtab.c: Likewise. |
| * target.def: Likewise. |
| * toplev.c: Likewise. |
| * tree-call-cdce.c: Likewise. |
| * tree-cfg.c: Likewise. |
| * tree-complex.c: Likewise. |
| * tree-core.h: Likewise. |
| * tree-eh.c: Likewise. |
| * tree-inline.c: Likewise. |
| * tree-loop-distribution.c: Likewise. |
| * tree-nrv.c: Likewise. |
| * tree-profile.c: Likewise. |
| * tree-sra.c: Likewise. |
| * tree-ssa-alias.c: Likewise. |
| * tree-ssa-dce.c: Likewise. |
| * tree-ssa-dom.c: Likewise. |
| * tree-ssa-forwprop.c: Likewise. |
| * tree-ssa-loop-im.c: Likewise. |
| * tree-ssa-loop-ivcanon.c: Likewise. |
| * tree-ssa-loop-ivopts.c: Likewise. |
| * tree-ssa-loop-niter.c: Likewise. |
| * tree-ssa-phionlycprop.c: Likewise. |
| * tree-ssa-phiopt.c: Likewise. |
| * tree-ssa-propagate.c: Likewise. |
| * tree-ssa-threadedge.c: Likewise. |
| * tree-ssa-threadupdate.c: Likewise. |
| * tree-ssa-uninit.c: Likewise. |
| * tree-ssanames.c: Likewise. |
| * tree-streamer-out.c: Likewise. |
| * tree.c: Likewise. |
| * tree.h: Likewise. |
| * vr-values.c: Likewise. |
| |
| 2019-01-09 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype. |
| (ix86_split_xorsign): Ditto. |
| * config/i386/i386.c (ix86_expand_xorsign): New function. |
| (ix86_split_xorsign): Ditto. |
| * config/i386/i386.md (UNSPEC_XORSIGN): New unspec. |
| (xorsign<mode>3): New expander. |
| (xorsign<mode>3_1): New insn_and_split pattern. |
| * config/i386/sse.md (xorsign<mode>3): New expander. |
| |
| 2019-01-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/sparc/sparc.md (*tablejump_sp32): Merge into... |
| (*tablejump_sp64): Likewise. |
| (*tablejump<P:mode>): ...this. |
| (*call_address_sp32): Merge into... |
| (*call_address_sp64): Likewise. |
| (*call_address<P:mode>): ...this. |
| (*call_symbolic_sp32): Merge into... |
| (*call_symbolic_sp64): Likewise. |
| (*call_symbolic<P:mode>): ...this. |
| (call_value): Remove constraint and add predicate. |
| (*call_value_address_sp32): Merge into... |
| (*call_value_address_sp64): Likewise. |
| (*call_value_address<P:mode>): ...this. |
| (*call_value_symbolic_sp32): Merge into... |
| (*call_value_symbolic_sp64): Likewise. |
| (*call_value_symbolic<P:mode>): ...this. |
| (*sibcall_symbolic_sp32): Merge into... |
| (*sibcall_symbolic_sp64): Likewise. |
| (*sibcall_symbolic<P:mode>): ...this. |
| (sibcall_value): Remove constraint and add predicate. |
| (*sibcall_value_symbolic_sp32): Merge into... |
| (*sibcall_value_symbolic_sp64): Likewise. |
| (*sibcall_value_symbolic<P:mode>): ...this. |
| (window_save): Minor tweak. |
| (*branch_sp32): Merge into... |
| (*branch_sp64): Likewise. |
| (*branch<P:mode>): ...this. |
| |
| 2019-01-09 Eric Botcazou <ebotcazou@adacore.com> |
| James Clarke <jrtc27@jrtc27.com> |
| |
| PR target/84010 |
| * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode |
| consistently in TLS address generation and adjust code to the renaming |
| of patterns. Mark calls to __tls_get_addr as const. |
| * config/sparc/sparc.md (tgd_hi22): Turn into... |
| (tgd_hi22<P:mode>): ...this and use Pmode throughout. |
| (tgd_lo10): Turn into... |
| (tgd_lo10<P:mode>): ...this and use Pmode throughout. |
| (tgd_add32): Merge into... |
| (tgd_add64): Likewise. |
| (tgd_add<P:mode>): ...this and use Pmode throughout. |
| (tldm_hi22): Turn into... |
| (tldm_hi22<P:mode>): ...this and use Pmode throughout. |
| (tldm_lo10): Turn into... |
| (tldm_lo10<P:mode>): ...this and use Pmode throughout. |
| (tldm_add32): Merge into... |
| (tldm_add64): Likewise. |
| (tldm_add<P:mode>): ...this and use Pmode throughout. |
| (tldm_call32): Merge into... |
| (tldm_call64): Likewise. |
| (tldm_call<P:mode>): ...this and use Pmode throughout. |
| (tldo_hix22): Turn into... |
| (tldo_hix22<P:mode>): ...this and use Pmode throughout. |
| (tldo_lox10): Turn into... |
| (tldo_lox10<P:mode>): ...this and use Pmode throughout. |
| (tldo_add32): Merge into... |
| (tldo_add64): Likewise. |
| (tldo_add<P:mode>): ...this and use Pmode throughout. |
| (tie_hi22): Turn into... |
| (tie_hi22<P:mode>): ...this and use Pmode throughout. |
| (tie_lo10): Turn into... |
| (tie_lo10<P:mode>): ...this and use Pmode throughout. |
| (tie_ld64): Use DImode throughout. |
| (tie_add32): Merge into... |
| (tie_add64): Likewise. |
| (tie_add<P:mode>): ...this and use Pmode throughout. |
| (tle_hix22_sp32): Merge into... |
| (tle_hix22_sp64): Likewise. |
| (tle_hix22<P:mode>): ...this and use Pmode throughout. |
| (tle_lox22_sp32): Merge into... |
| (tle_lox22_sp64): Likewise. |
| (tle_lox22<P:mode>): ...this and use Pmode throughout. |
| (*tldo_ldub_sp32): Merge into... |
| (*tldo_ldub_sp64): Likewise. |
| (*tldo_ldub<P:mode>): ...this and use Pmode throughout. |
| (*tldo_ldub1_sp32): Merge into... |
| (*tldo_ldub1_sp64): Likewise. |
| (*tldo_ldub1<P:mode>): ...this and use Pmode throughout. |
| (*tldo_ldub2_sp32): Merge into... |
| (*tldo_ldub2_sp64): Likewise. |
| (*tldo_ldub2<P:mode>): ...this and use Pmode throughout. |
| (*tldo_ldsb1_sp32): Merge into... |
| (*tldo_ldsb1_sp64): Likewise. |
| (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout. |
| (*tldo_ldsb2_sp32): Merge into... |
| (*tldo_ldsb2_sp64): Likewise. |
| (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout. |
| (*tldo_ldub3_sp64): Use DImode throughout. |
| (*tldo_ldsb3_sp64): Likewise. |
| (*tldo_lduh_sp32): Merge into... |
| (*tldo_lduh_sp64): Likewise. |
| (*tldo_lduh<P:mode>): ...this and use Pmode throughout. |
| (*tldo_lduh1_sp32): Merge into... |
| (*tldo_lduh1_sp64): Likewise. |
| (*tldo_lduh1<P:mode>): ...this and use Pmode throughout. |
| (*tldo_ldsh1_sp32): Merge into... |
| (*tldo_ldsh1_sp64): Likewise. |
| (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout. |
| (*tldo_lduh2_sp64): Use DImode throughout. |
| (*tldo_ldsh2_sp64): Likewise. |
| (*tldo_lduw_sp32): Merge into... |
| (*tldo_lduw_sp64): Likewise. |
| (*tldo_lduw<P:mode>): ...this and use Pmode throughout. |
| (*tldo_lduw1_sp64): Use DImode throughout. |
| (*tldo_ldsw1_sp64): Likewise. |
| (*tldo_ldx_sp64): Likewise. |
| (*tldo_stb_sp32): Merge into... |
| (*tldo_stb_sp64): Likewise. |
| (*tldo_stb<P:mode>): ...this and use Pmode throughout. |
| (*tldo_sth_sp32): Merge into... |
| (*tldo_sth_sp64): Likewise. |
| (*tldo_sth<P:mode>): ...this and use Pmode throughout. |
| (*tldo_stw_sp32): Merge into... |
| (*tldo_stw_sp64): Likewise. |
| (*tldo_stw<P:mode>): ...this and use Pmode throughout. |
| (*tldo_stx_sp64): Use DImode throughout. |
| |
| 2018-01-09 Sudakshina Das <sudi.das@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_override_options): Add case to |
| check configure option to set BTI and Return Address Signing. |
| * configure.ac: Add --enable-standard-branch-protection and |
| --disable-standard-branch-protection. |
| * configure: Regenerated. |
| * doc/install.texi: Document the same. |
| |
| 2018-01-09 Sudakshina Das <sudi.das@arm.com> |
| Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
| |
| * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o. |
| * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE. |
| * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update |
| if bti is enabled. |
| * config/aarch64/aarch64-bti-insert.c: New file. |
| * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti |
| pass. |
| * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the |
| new bti pass. |
| * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG, |
| UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC. |
| (bti_noarg, bti_j, bti_c, bti_jc): New define_insns. |
| * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o. |
| |
| 2018-01-09 Sudakshina Das <sudi.das@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare. |
| * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection): |
| Disable bti for -mbranch-protection=none. |
| (aarch64_handle_standard_branch_protection): Enable bti for |
| -mbranch-protection=standard. |
| (aarch64_handle_bti_protection): Enable bti for "bti" in the string to |
| -mbranch-protection. |
| (aarch64_bti_enabled): Check if bti is enabled. |
| * config/aarch64/aarch64.opt: Declare target variable. |
| * doc/invoke.texi: Add bti to the -mbranch-protection documentation. |
| |
| 2018-01-09 Sudakshina Das <sudi.das@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new |
| epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM. |
| (aarch64_expand_epilogue): Likewise. |
| (aarch64_output_mi_thunk): Likewise. |
| * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change |
| TAILCALL_ADDR_REGS to x16 and x17. |
| * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM. |
| |
| 2018-01-09 Sudakshina Das <sudi.das@arm.com> |
| |
| * config/aarch64/aarch64-option-extensions.def: Define |
| AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres. |
| * config/aarch64/aarch64.h (AARCH64_FL_RNG): New. |
| (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New. |
| (AARCH64_FL_PREDRES): New. |
| (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and |
| AARCH64_FL_PREDRES by default. |
| * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres. |
| |
| 2018-01-09 Sudakshina Das <sudi.das@arm.com> |
| |
| * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for |
| ARMv8.5-A. |
| * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New. |
| (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New. |
| * doc/invoke.texi: Document ARMv8.5-A. |
| |
| 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand. |
| (xorsign<mode>3): Likewise. |
| |
| 2019-01-09 Jelinek <jakub@redhat.com> |
| |
| PR middle-end/88758 |
| * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use |
| vector_cst_elt instead of VECTOR_CST_ENCODED_ELT. |
| |
| PR rtl-optimization/88331 |
| * function.c (assign_stack_local_1): Don't set dynamic_align_addr if |
| not currently_expanding_to_rtl. |
| |
| 2019-01-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/invoke.texi (-Os): Remove trailing spaces. |
| (-finline-functions): Remove reference to -O2. |
| |
| 2019-01-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/79593 |
| * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2. |
| |
| * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize |
| UNSPEC_FUSION_GPR to its argument. Formatting fixes. |
| |
| 2019-01-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR bootstrap/88721 |
| * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING |
| to -1 on entry. |
| |
| PR debug/88723 |
| * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked |
| UNSPECs and UNSPEC_MOVE_GOTDATA specifically. |
| |
| 2019-01-08 H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR target/88717 |
| * config/i386/i386.c (ix86_avx_u128_mode_exit): Call |
| ix86_avx_u128_mode_entry. |
| |
| 2019-01-08 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/88753 |
| * tree-switch-conversion.c (switch_conversion::build_one_array): |
| Come up with local variable constructor. Convert first to |
| type of constructor values. |
| |
| 2019-01-08 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/86554 |
| * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim, |
| rpo_avail): Move earlier. |
| (visit_nary_op): When value-numbering to expressions |
| with different overflow behavior make sure there's an |
| available expression on the path. |
| |
| 2019-01-08 Sam Tebbs <sam.tebbs@arm.com> |
| |
| * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX, |
| aarch64_parse_branch_protection, |
| struct aarch64_branch_protect_type, |
| aarch64_handle_no_branch_protection, |
| aarch64_handle_standard_branch_protection, |
| aarch64_validate_mbranch_protection, |
| aarch64_handle_pac_ret_protection, |
| aarch64_handle_attr_branch_protection, |
| accepted_branch_protection_string, |
| aarch64_pac_ret_subtypes, |
| aarch64_branch_protect_types, |
| aarch64_handle_pac_ret_leaf): Define. |
| (aarch64_override_options_after_change_1, aarch64_override_options): |
| Add check for accepted_branch_protection_string. |
| (aarch64_option_save): Save accepted_branch_protection_string. |
| (aarch64_option_restore): Save accepted_branch_protection_string. |
| * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection. |
| * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate |
| msign-return-address. |
| * doc/invoke.texi: Add mbranch-protection. |
| |
| 2019-01-08 Alan Modra <amodra@gmail.com> |
| |
| PR target/88614 |
| * genattrtab.c (max_attr_value, min_attr_value, or_attr_value): |
| Delete "unknownp" parameter. Adjust callers. Handle |
| CONST_INT, PLUS, MINUS, and MULT. |
| (attr_value_aligned): Renamed from or_attr_value. |
| (min_attr_value): Return INT_MIN for unhandled rtl case.. |
| (min_fn): ..and translate to INT_MAX here. |
| (write_length_unit_log): Modify to cope without "unknown". |
| (write_attr_value): Handle IF_THEN_ELSE. |
| |
| 2019-01-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset |
| optimization for masked stores. |
| |
| 2019-01-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR middle-end/88567 |
| * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the |
| output vector directly to duplicate_and_interleave instead of |
| going through a temporary. Postpone insertion of ctor_seq to |
| the end of the loop. |
| |
| 2019-01-07 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/86891 |
| * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter |
| unsigned_p. Handle signed and unsigned overflow correction as |
| required. |
| * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update |
| prototype. |
| * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand |
| for operand 2. |
| (add<mode>3_compareV_imm): Make this callable for expanding. |
| (subv<GPI:mode>4): Use register_operand for operand 1. Use |
| aarch64_plus_operand for operand 2. |
| (subv<GPI:mode>_insn): New insn pattern. |
| (subv<GPI:mode>_imm): Likewise. |
| (negv<GPI:mode>3): New expand pattern. |
| (negv<GPI:mode>_insn): New insn pattern. |
| (negv<GPI:mode>_cmp_only): Likewise. |
| (cmpv<GPI:mode>_insn): Likewise. |
| (subvti4): Use register_operand for operand 1. Update call to |
| aarch64_expand_subvti. |
| (usubvti4): Likewise. |
| (negvti3): New expand pattern. |
| (negdi_carryout): New insn pattern. |
| (negvdi_carryinV): New insn pattern. |
| (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous |
| version the named version. |
| (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of |
| operands. |
| (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn |
| patterns. |
| (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn |
| patterns. |
| (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete. |
| (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete. |
| (sub<mode>3_carryinCV): Delete. |
| (sub<GPI:mode>3_carryinV): New expand pattern. |
| sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns. |
| |
| 2019-01-07 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor |
| of tree_operand_hash. |
| |
| 2019-01-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/88598 |
| * tree.h (single_nonzero_element): Declare. |
| * tree.c (single_nonzero_element): New function. |
| * match.pd: Fold certain reductions of X & CST to X[I] & CST[I] |
| if I is the only nonzero element of CST. |
| |
| 2019-01-07 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/88598 |
| * tree.h (initializer_each_zero_or_onep): Declare. |
| * tree.c (initializer_each_zero_or_onep): New function. |
| (signed_or_unsigned_type_for): Handle float types too. |
| (unsigned_type_for, signed_type_for): Update comments accordingly. |
| * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to |
| x & { 0 or -1, 0 or -1, ... }. |
| |
| 2019-01-07 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/install.texi: Replace references to x86_64-unknown-linux-gnu |
| with x86_64-pc-linux-gnu. |
| |
| 2019-01-07 Tom de Vries <tdevries@suse.de> |
| |
| PR target/85486 |
| * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New |
| function. |
| (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable |
| routines. |
| |
| 2019-01-07 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use |
| V_256_512 iterator instead of V_512 and TARGET_AVX instead of |
| TARGET_AVX512F as condition. |
| |
| PR debug/88723 |
| * dwarf2out.c (const_ok_for_output_1): Remove redundant call to |
| const_not_ok_for_debug_p target hook. |
| (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1 |
| on UNSPEC and subexpressions thereof if all subexpressions of the |
| UNSPEC are CONSTANT_P. |
| |
| PR tree-optimization/88676 |
| * tree-ssa-phiopt.c (two_value_replacement): New function. |
| (tree_ssa_phiopt_worker): Call it. |
| |
| PR sanitizer/88619 |
| * cfgexpand.c (expand_stack_vars): Only align prev_offset to |
| ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb. |
| |
| PR c++/85052 |
| * tree-vect-generic.c: Include insn-config.h and recog.h. |
| (expand_vector_piecewise): Add defaulted ret_type argument, |
| if non-NULL, use that in preference to type for the result type. |
| (expand_vector_parallel): Formatting fix. |
| (do_vec_conversion, do_vec_narrowing_conversion, |
| expand_vector_conversion): New functions. |
| (expand_vector_operations_1): Call expand_vector_conversion |
| for VEC_CONVERT ifn calls. |
| * internal-fn.def (VEC_CONVERT): New internal function. |
| * internal-fn.c (expand_VEC_CONVERT): New function. |
| * fold-const-call.c (fold_const_vec_convert): New function. |
| (fold_const_call): Use it for CFN_VEC_CONVERT. |
| * doc/extend.texi (__builtin_convertvector): Document. |
| |
| 2019-01-07 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare. |
| * config/nvptx/nvptx.c (vector_red_size, vector_red_align, |
| vector_red_partition, vector_red_sym): New global variables. |
| (nvptx_option_override): Initialize vector_red_sym. |
| (nvptx_declare_function_name): Restore red_partition register. |
| (nvptx_file_end): Emit code to declare the vector reduction variables. |
| (nvptx_output_red_partition): New function. |
| (nvptx_expand_shared_addr): Add vector argument. Use it to handle |
| large vector reductions. |
| (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR. |
| (nvptx_init_builtins): Add VECTOR_ADDR. |
| (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr. |
| Handle nvptx_expand_shared_addr. |
| (nvptx_get_shared_red_addr): Add vector argument and handle large |
| vectors. |
| (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle |
| large vectors. |
| (nvptx_goacc_reduction_init): Likewise. |
| (nvptx_goacc_reduction_fini): Likewise. |
| (nvptx_goacc_reduction_teardown): Likewise. |
| (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup, |
| init,fini,teardown}. |
| (nvptx_init_axis_predicate): Initialize vector_red_partition. |
| (nvptx_set_current_function): Init vector_red_partition. |
| * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv. |
| (nvptx_red_partition): New insn. |
| * config/nvptx/nvptx.h (struct machine_function): Add red_partition. |
| |
| 2019-01-07 Tom de Vries <tdevries@suse.de> |
| |
| PR target/85381 |
| * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for |
| empty loops. |
| |
| 2019-01-07 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (oacc_bcast_partition): Declare. |
| (nvptx_option_override): Init oacc_bcast_partition. |
| (nvptx_init_oacc_workers): New function. |
| (nvptx_declare_function_name): Call nvptx_init_oacc_workers. |
| (nvptx_needs_shared_bcast): New function. |
| (nvptx_find_par): Generalize to enable vectors to use shared-memory |
| to propagate state. |
| (nvptx_shared_propagate): Initialize vector bcast partition and |
| synchronization state. |
| (nvptx_single): Generalize to enable vectors to use shared-memory |
| to propagate state. |
| (nvptx_process_pars): Likewise. |
| (nvptx_set_current_function): Initialize oacc_broadcast_partition. |
| * config/nvptx/nvptx.h (struct machine_function): Add |
| bcast_partition and sync_bar members. |
| |
| 2019-01-07 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p) |
| (nvptx_apply_dim_limits): New function. |
| (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than |
| PTX_WARP_SIZE. |
| |
| 2019-01-07 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to |
| as late as possible. |
| |
| 2019-01-07 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove. |
| (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define. |
| (nvptx_goacc_validate_dims_1, nvptx_dim_limit) |
| (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH, |
| PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH. |
| |
| 2019-01-07 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts. |
| |
| 2019-01-07 Tom de Vries <tdevries@suse.de> |
| |
| * omp-offload.c (oacc_get_min_dim): New function. |
| * omp-offload.h (oacc_get_min_dim): Declare. |
| |
| 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl> |
| |
| PR target/88521 |
| * config/i386/i386.c (function_value_ms_64): Return small sturct in |
| AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes. |
| |
| 2019-01-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR tree-opt/86020 |
| Revert: |
| 2017-05-22 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-inline.c (edge_badness): Use inlined_time instead of |
| inline_summaries->get. |
| |
| 2019-01-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * opts.c (enable_fdo_optimizations): Enable |
| version-loops-for-strides, loop-interchange, unrol-and-jam |
| and tree-loop-distribution. |
| * invoke.texi: Document newly enabled options. |
| |
| 2019-01-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * doc/invoke.texi (max-inline-insns-small): New parameters. |
| * ipa-inline.c (want_early_inline_function_p): simplify. |
| (want_inline_small_function_p): Fix pasto from previous patch; |
| use max-inline-insns-small bound. |
| * params.def (max-inline-insns-small): New param. |
| * ipa-fnsummary.c (analyze_function_body): Initialize time/size |
| variables correctly. |
| |
| 2019-01-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * doc/invoke.texi: Document max-inline-insns-size, |
| uninlined-function-insns, uninlined-function-time, |
| uninlined-thunk-insns and uninlined-thunk-time. |
| * params.def: Add max-inline-insns-size, |
| uninlined-function-insns, uninlined-function-time, |
| uninlined-thunk-insns and uninlined-thunk-time. |
| * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use |
| new parameters. |
| * ipa-inline.c (can_inline_edge_by_limits_p, |
| want_inline_small_function_p): Use new parameters. |
| |
| 2019-01-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-fnsummary.c (analyze_function_body): Fix accounting of time. |
| |
| 2019-01-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/82564 |
| PR target/88620 |
| * expr.c (expand_assignment): For calls returning VLA structures |
| if to_rtx is not a MEM, force it into a stack temporary. |
| |
| PR debug/88635 |
| * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains |
| SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument. |
| Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in |
| subexpressions of both operands. |
| (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the |
| subrtxes are CONSTANT_P. |
| * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert |
| 2018-11-09 changes. |
| |
| 2019-01-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| * params.def (hot-bb-count-ws-permille): Set to 990. |
| |
| 2019-01-04 Martin Sebor <msebor@redhat.com> |
| |
| PR c/88546 |
| * attribs.c (decls_mismatched_attributes): Avoid warning for attribute |
| leaf. |
| |
| 2019-01-04 Martin Sebor <msebor@redhat.com> |
| |
| PR c/88363 |
| * doc/extend.texi (attribute alloc_align, alloc_size): Update. |
| |
| 2019-01-04 Jakub Jelinek <jakub@redhat.com> |
| |
| * gdbinit.in: Turn off pagination for the skip commands, restore |
| it to previous state afterwards. |
| |
| 2019-01-04 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/88594 |
| * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead |
| of GET_MODE (opN) as modes of the libcall arguments. |
| |
| 2019-01-04 Jan Beulich <jbeulich@suse.com> |
| |
| * config/i386/sse.md |
| (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>, |
| <avx512>_cmp<mode>3<mask_scalar_merge_name>, |
| <avx512>_ucmp<mode>3<mask_scalar_merge_name>, |
| <avx512>_ucmp<mode>3<mask_scalar_merge_name>, |
| avx512f_vmcmp<mode>3<round_saeonly_name>, |
| avx512f_vmcmp<mode>3_mask<round_saeonly_name>, |
| avx512f_maskcmp<mode>3, |
| <avx512>_cvt<ssemodesuffix>2mask<mode>, |
| <avx512>_cvt<ssemodesuffix>2mask<mode>, |
| *<avx512>_cvtmask2<ssemodesuffix><mode>, |
| *<avx512>_cvtmask2<ssemodesuffix><mode>, |
| <avx512>_eq<mode>3<mask_scalar_merge_name>_1, |
| <avx512>_eq<mode>3<mask_scalar_merge_name>_1, |
| <avx512>_gt<mode>3<mask_scalar_merge_name>, |
| <avx512>_gt<mode>3<mask_scalar_merge_name>, |
| <avx512>_testm<mode>3<mask_scalar_merge_name>, |
| <avx512>_testnm<mode>3<mask_scalar_merge_name>, |
| *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext, |
| *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask, |
| *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext, |
| *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask, |
| avx512cd_maskb_vec_dup<mode>, |
| avx512cd_maskw_vec_dup<mode>, |
| avx512dq_fpclass<mode><mask_scalar_merge_name>, |
| avx512dq_vmfpclass<mode>, |
| avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k |
| instead of =Yk. |
| |
| 2019-01-03 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/88659 |
| * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set. |
| |
| 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com> |
| |
| * config/rs6000/rs6000-string.c (expand_block_move): Don't use |
| unaligned vsx and avoid lxvd2x/stxvd2x. |
| (gen_lvx_v4si_move): New function. |
| |
| 2019-01-03 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define. |
| (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New |
| function. |
| * config/nvptx/nvptx.h (struct machine_function): Add axis_dims. |
| |
| 2019-01-03 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (struct offload_attrs): New. |
| (populate_offload_attrs): New function. Factor mask extraction out of |
| nvptx_reorg. Add extraction of dimensions. |
| (nvptx_reorg): Use populate_offload_attrs. |
| |
| 2019-01-03 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out |
| cases for oacc_min_dims_p and routine_p. Add asserts for |
| oacc_default_dims_p and offload_region_p. |
| |
| 2019-01-03 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function, |
| factored out of ... |
| (nvptx_goacc_validate_dims): ... here. |
| |
| 2019-01-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR tree-optimization/85574 |
| * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused |
| structure. |
| (struct ssa_equip_hash_traits): Declare. |
| (val_ssa_equiv): Use custom hash traits using operand_equal_p. |
| |
| 2019-01-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/88644 |
| * dwarf2out.c (modified_type_die): If type is equal to sizetype, |
| change it to qualified_type. |
| |
| 2019-01-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ... |
| (ipa_merge_profiles): ... here; do not ICE on thunks and aliases. |
| |
| 2019-01-02 Martin Sebor <msebor@redhat.com> |
| Jeff Law <law@redhat.com> |
| |
| * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2. |
| (get_range_strlen_tree): Update appropriately. |
| (get_range_strlen) |
| * gimple-fold.h (get_range_strlen): Drop unused last argument. |
| |
| * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range |
| rather than set_range_info. |
| * tree-ssa-strlen.c (set_strlen_range): Extracted from |
| maybe_set_strlen_range. Handle potentially boundary crossing |
| cases more conservatively. |
| (maybe_set_strlen_range): Parts refactored into set_strlen_range. |
| Call set_strlen_range. |
| * tree-ssa-strlen.h (set_strlen_range): Add prototype. |
| |
| PR middle-end/88663 |
| * gimple-fold.c (get_range_strlen): Update prototype to no longer |
| need the flexp argument. |
| (get_range_strlen_tree): Drop flexp argument. Drop flexp argument |
| from calls to get_range_strlen. Update comments. Just update |
| VAL for an unterminated const char array and let the reset of the |
| code handle it normally. No longer try to set *flexp. Adjust |
| return value. |
| (get_range_strlen): Update for the new get_range_strlen API. |
| (get_maxval_strlen): Similarly. |
| (gimple_fold_builtin_strlen): Handle update meaning of return value |
| from get_range_strlen. |
| * gimple-ssa-sprintf.c (get_string_length): Update for the new |
| get_range_strlen API. |
| |
| 2019-01-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR lto/88130 |
| * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return |
| false at WPA time when body was removed. |
| |
| 2019-01-02 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/88650 |
| * predict.c (set_even_probabilities): Calculate probability |
| remainer only when really used. |
| |
| 2019-01-02 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/88651 |
| * tree-data-ref.c (analyze_subscript_affine_affine): Use |
| widest_ints when mangling max_stmt_execution results. |
| |
| 2019-01-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/88621 |
| * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid |
| bitfields when canoncalizing. |
| |
| 2019-01-02 Richard Biener <rguenther@suse.de> |
| |
| PR target/87545 |
| * config/i386/x86-tune-costs.h (intel_cost): Adjust |
| cost of cheap SSE instruction. |
| |
| 2019-01-02 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/85574 |
| * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare. |
| * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New |
| function. |
| (sem_item_optimizer::do_congruence_step_f): Sort the congruence |
| set after UIDs before splitting them. |
| |
| 2019-01-01 Martin Sebor <msebor@redhat.com> |
| Jeff Law <law@redhat.com> |
| |
| * gimple-fold.c (get_range_strlen_tree): Record if the computed |
| length is optimistic. If it is, then arrange to compute the |
| conservative length as well. |
| |
| * gimple-fold.h (get_range_strlen): Update prototype. |
| * builtins.c (check_access): Update call to get_range_strlen to use |
| c_strlen_data pointer. Change various variable accesses to instead |
| pull data from the c_strlen_data structure. |
| (check_strncat_sizes, expand_builtin_strncat): Likewise. |
| * calls.c (maybe_warn_nonstring_arg): Likewise. |
| * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset |
| minimum length if maximum lengh is unknown. |
| * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code |
| that used c_strlen, it's no longer needed. Restructure slightly. |
| (format_string): Set unlikely range appropriately. |
| * gimple-fold.c (get_range_strlen): Update comments. Fix minor |
| formatting issues. |
| (get_range_strlen): Accept c_strlen_data pointer for external |
| call sites as well. Pass through to call to internal get_range_strlen. |
| Adjust minlen, maxlen and maxbound as needed. |
| (get_maxval_strlen): Update comments. |
| (gimple_fold_builtin_strlen): Update call to get_range_strlen |
| to use c_strlen_data pointer. Change variable accesses to instead |
| use c_strlen_data data members. |
| |
| * gimple-fold.c (get_range_strlen): Update prototype. |
| (get_range_strlen_tree): Update prototype. Drop minlen/maxlen |
| local variables. Use pdata to return information to caller. |
| Update calls to get_range_strlen. Update pdata->maxbound. |
| (get_range_strlen -- static version): Similarly. |
| (get_range_strlen -- extern version): Update for internal |
| get_range_strlen API change. Convert to external data format. |
| (get_maxval_strlen): Similarly. |
| |
| 2019-01-01 Jan Hubicka <hubicka@ucw.cz> |
| |
| * coverage.c (get_coverage_counts): Use current_function_decl. |
| * profile.c (read_thunk_profile): New function. |
| (branch_prob): Add THUNK parameter. |
| * tree-profile.c (tree_profiling): Handle thunks. |
| * value-prof.c (init_node_map): Handle thunks. |
| * value-prof.h (branch_prob): Upate prototype. |
| (read_thunk_profile): Declare. |
| |
| 2019-01-01 Jakub Jelinek <jakub@redhat.com> |
| |
| Update copyright years. |
| |
| * gcc.c (process_command): Update copyright notice dates. |
| * gcov-dump.c (print_version): Ditto. |
| * gcov.c (print_version): Ditto. |
| * gcov-tool.c (print_version): Ditto. |
| * gengtype.c (create_file): Ditto. |
| * doc/cpp.texi: Bump @copying's copyright year. |
| * doc/cppinternals.texi: Ditto. |
| * doc/gcc.texi: Ditto. |
| * doc/gccint.texi: Ditto. |
| * doc/gcov.texi: Ditto. |
| * doc/install.texi: Ditto. |
| * doc/invoke.texi: Ditto. |
| |
| Copyright (C) 2019 Free Software Foundation, Inc. |
| |
| Copying and distribution of this file, with or without modification, |
| are permitted in any medium without royalty provided the copyright |
| notice and this notice are preserved. |