6269 lines
224 KiB
Plaintext
6269 lines
224 KiB
Plaintext
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].
|
||
* fortran/invoke.texi (-ffpe-trap): Use @var for every item
|
||
in the list.
|
||
|
||
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
|
||
* gcc/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 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.
|