2019-03-26 00:33:36 +01:00
|
|
|
|
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 23:56:40 +01:00
|
|
|
|
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 22:19:09 +01:00
|
|
|
|
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 22:14:40 +01:00
|
|
|
|
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 18:23:31 +01:00
|
|
|
|
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 14:53:50 +01:00
|
|
|
|
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 14:50:46 +01:00
|
|
|
|
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 13:18:38 +01:00
|
|
|
|
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 13:15:59 +01:00
|
|
|
|
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 11:10:31 +01:00
|
|
|
|
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 11:09:43 +01:00
|
|
|
|
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 11:05:15 +01:00
|
|
|
|
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 21:26:53 +01:00
|
|
|
|
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>
|
2019-03-24 16:20:52 +01:00
|
|
|
|
|
2019-03-24 20:25:49 +01:00
|
|
|
|
* config/bfin/bfin.md (movpdi): Fix length for alternative 1.
|
|
|
|
|
|
2019-03-24 16:20:52 +01:00
|
|
|
|
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-25 18:23:31 +01:00
|
|
|
|
|
2019-03-23 17:15:48 +01:00
|
|
|
|
2019-03-23 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
|
|
|
|
|
big endian.
|
|
|
|
|
|
2019-03-23 01:22:33 +01:00
|
|
|
|
2019-03-22 Andrew Pinski <apinski@marvell.com>
|
|
|
|
|
|
|
|
|
|
* config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
|
|
|
|
|
attrribute for uxtw.
|
|
|
|
|
|
2019-03-24 16:20:52 +01:00
|
|
|
|
2019-03-26 Jeff Law <law@redhat.com>
|
2019-03-22 19:14:56 +01:00
|
|
|
|
|
|
|
|
|
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 17:59:21 +01:00
|
|
|
|
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 15:40:59 +01:00
|
|
|
|
2019-03-22 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/87481
|
|
|
|
|
* doc/invoke.texi (-fconstexpr-ops-limit=): Document.
|
|
|
|
|
|
2019-03-22 14:49:18 +01:00
|
|
|
|
2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
|
|
|
|
|
|
re PR target/89784 (Missing AVX512 intrinsics)
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_vmfnmasub_<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.
* gcc.target/i386/sse-13.c (__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): Define.
* gcc.target/i386/sse-23.c (__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): Define.
* gcc.target/i386/avx-1.c (__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): Define.
* gcc.target/i386/sse-14.c: Add tests for
_mm_mask{,3,z}_f{,n}m{add,sub}_round_s{s,d} builtins.
* gcc.target/i386/sse-22.c: Likewise.
2019-03-22 Hongtao Liu <hongtao.liu@intel.com>
* gcc.target/i386/avx512f-vfmaddXXXsd-1.c (avx512f_test): Add tests
for _mm_mask{,3,z}_*.
* gcc.target/i386/avx512f-vfmaddXXXss-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfmsubXXXsd-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfmsubXXXss-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfnmaddXXXsd-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfnmaddXXXss-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfnmsubXXXsd-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfnmsubXXXss-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfmaddXXXsd-2.c: New test.
* gcc.target/i386/avx512f-vfmaddXXXss-2.c: New test.
* gcc.target/i386/avx512f-vfmsubXXXsd-2.c: New test.
* gcc.target/i386/avx512f-vfmsubXXXss-2.c: New test.
* gcc.target/i386/avx512f-vfnmaddXXXsd-2.c: New test.
* gcc.target/i386/avx512f-vfnmaddXXXss-2.c: New test.
* gcc.target/i386/avx512f-vfnmsubXXXsd-2.c: New test.
* gcc.target/i386/avx512f-vfnmsubXXXss-2.c: New test.
From-SVN: r269868
2019-03-22 11:08:40 +01:00
|
|
|
|
2019-03-22 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-03-22 13:58:09 +01:00
|
|
|
|
* 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.
|
|
|
|
|
|
sse.md (<avx512>_fmadd_<mode>_mask<round_name>, [...]): Use <round_nimm_predicate> instead of nonimmediate_operand.
* 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.
From-SVN: r269869
2019-03-22 11:12:18 +01:00
|
|
|
|
* 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.
|
|
|
|
|
|
re PR target/89784 (Missing AVX512 intrinsics)
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_vmfnmasub_<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.
* gcc.target/i386/sse-13.c (__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): Define.
* gcc.target/i386/sse-23.c (__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): Define.
* gcc.target/i386/avx-1.c (__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): Define.
* gcc.target/i386/sse-14.c: Add tests for
_mm_mask{,3,z}_f{,n}m{add,sub}_round_s{s,d} builtins.
* gcc.target/i386/sse-22.c: Likewise.
2019-03-22 Hongtao Liu <hongtao.liu@intel.com>
* gcc.target/i386/avx512f-vfmaddXXXsd-1.c (avx512f_test): Add tests
for _mm_mask{,3,z}_*.
* gcc.target/i386/avx512f-vfmaddXXXss-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfmsubXXXsd-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfmsubXXXss-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfnmaddXXXsd-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfnmaddXXXss-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfnmsubXXXsd-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfnmsubXXXss-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfmaddXXXsd-2.c: New test.
* gcc.target/i386/avx512f-vfmaddXXXss-2.c: New test.
* gcc.target/i386/avx512f-vfmsubXXXsd-2.c: New test.
* gcc.target/i386/avx512f-vfmsubXXXss-2.c: New test.
* gcc.target/i386/avx512f-vfnmaddXXXsd-2.c: New test.
* gcc.target/i386/avx512f-vfnmaddXXXss-2.c: New test.
* gcc.target/i386/avx512f-vfnmsubXXXsd-2.c: New test.
* gcc.target/i386/avx512f-vfnmsubXXXss-2.c: New test.
From-SVN: r269868
2019-03-22 11:08:40 +01:00
|
|
|
|
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>,
|
2019-03-22 13:58:09 +01:00
|
|
|
|
avx512f_vmfnmsub_<mode>_mask3<round_name>,
|
|
|
|
|
*avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
|
re PR target/89784 (Missing AVX512 intrinsics)
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_vmfnmasub_<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.
* gcc.target/i386/sse-13.c (__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): Define.
* gcc.target/i386/sse-23.c (__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): Define.
* gcc.target/i386/avx-1.c (__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): Define.
* gcc.target/i386/sse-14.c: Add tests for
_mm_mask{,3,z}_f{,n}m{add,sub}_round_s{s,d} builtins.
* gcc.target/i386/sse-22.c: Likewise.
2019-03-22 Hongtao Liu <hongtao.liu@intel.com>
* gcc.target/i386/avx512f-vfmaddXXXsd-1.c (avx512f_test): Add tests
for _mm_mask{,3,z}_*.
* gcc.target/i386/avx512f-vfmaddXXXss-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfmsubXXXsd-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfmsubXXXss-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfnmaddXXXsd-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfnmaddXXXss-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfnmsubXXXsd-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfnmsubXXXss-1.c (avx512f_test): Likewise.
* gcc.target/i386/avx512f-vfmaddXXXsd-2.c: New test.
* gcc.target/i386/avx512f-vfmaddXXXss-2.c: New test.
* gcc.target/i386/avx512f-vfmsubXXXsd-2.c: New test.
* gcc.target/i386/avx512f-vfmsubXXXss-2.c: New test.
* gcc.target/i386/avx512f-vfnmaddXXXsd-2.c: New test.
* gcc.target/i386/avx512f-vfnmaddXXXss-2.c: New test.
* gcc.target/i386/avx512f-vfnmsubXXXsd-2.c: New test.
* gcc.target/i386/avx512f-vfnmsubXXXss-2.c: New test.
From-SVN: r269868
2019-03-22 11:08:40 +01:00
|
|
|
|
(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-22 03:58:27 +01:00
|
|
|
|
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 23:04:29 +01:00
|
|
|
|
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).
|
|
|
|
|
|
hash-table.h (hash_table): Add Lazy template parameter defaulted to false...
* 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.
c-family/
* c-common.c (per_file_includes_t): Use false as Lazy in hash_set
template param.
jit/
* jit-recording.c (reproducer::m_set_identifiers): Use false as Lazy
in hash_set template param.
From-SVN: r269859
2019-03-21 23:00:04 +01:00
|
|
|
|
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 15:27:32 +01:00
|
|
|
|
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 16:28:38 +01:00
|
|
|
|
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 12:26:42 +01:00
|
|
|
|
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 23:33:34 +01:00
|
|
|
|
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 20:04:14 +01:00
|
|
|
|
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 18:45:34 +01:00
|
|
|
|
2019-03-19 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
2019-03-19 19:35:42 +01:00
|
|
|
|
PR tree-optimization/89644
|
|
|
|
|
* tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
|
|
|
|
|
rather than endptr as an indicator of nul-termination.
|
|
|
|
|
|
2019-03-19 18:45:34 +01:00
|
|
|
|
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 18:08:28 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-03-19 17:58:42 +01:00
|
|
|
|
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 17:10:59 +01:00
|
|
|
|
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 15:57:18 +01:00
|
|
|
|
2019-03-19 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR debug/88389
|
|
|
|
|
* opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
|
|
|
|
|
|
2019-03-19 15:53:43 +01:00
|
|
|
|
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 09:11:25 +01:00
|
|
|
|
2019-03-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-03-19 11:05:10 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-03-19 09:11:25 +01:00
|
|
|
|
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 09:06:48 +01:00
|
|
|
|
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 08:25:59 +01:00
|
|
|
|
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-19 00:48:50 +01:00
|
|
|
|
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 14:59:11 +01:00
|
|
|
|
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 14:13:27 +01:00
|
|
|
|
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.
|
|
|
|
|
|
Fix a case in which the vector cost model was ignored
This patch fixes a case in which we vectorised something with a
fully-predicated loop even after the cost model had rejected it.
E.g. the loop in the testcase has the costs:
Vector inside of loop cost: 27
Vector prologue cost: 0
Vector epilogue cost: 0
Scalar iteration cost: 7
Scalar outside cost: 6
Vector outside cost: 0
prologue iterations: 0
epilogue iterations: 0
and we can see that the loop executes at most three times, but we
decided to vectorise it anyway.
(The costs here are equal for three iterations, but the same thing
happens even when the vector code is strictly more expensive.)
The problem is the handling of "/VF" in:
/* Calculate number of iterations required to make the vector version
profitable, relative to the loop bodies only. The following condition
must hold true:
SIC * niters + SOC > VIC * ((niters-PL_ITERS-EP_ITERS)/VF) + VOC
where
SIC = scalar iteration cost, VIC = vector iteration cost,
VOC = vector outside cost, VF = vectorization factor,
PL_ITERS = prologue iterations, EP_ITERS= epilogue iterations
SOC = scalar outside cost for run time cost model check. */
We treat the "/VF" as truncating, but for fully-predicated loops, it's
closer to a ceil division, since fractional iterations are handled by a
full iteration with some predicate bits set to false.
The easiest fix seemed to be to calculate the minimum number of vector
iterations first, then use that to calculate the minimum number of scalar
iterations.
Calculating the minimum number of vector iterations might make sense for
unpredicated loops too, since calculating the scalar niters directly
doesn't take into account the fact that the VIC multiple has to be an
integer. But the handling of PL_ITERS and EP_ITERS for unpredicated
loops is a bit hand-wavy anyway, so maybe vagueness here cancels out
vagueness there?
Either way, changing this for unpredicated loops would be much too
invasive for stage 4, so the patch keeps it specific to fully-predicated
loops (i.e. SVE) for now. There's no functional change for other targets.
2019-03-18 Richard Sandiford <richard.sandiford@arm.com>
gcc/
* tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
calculation of the minimum number of scalar iterations for
fully-predicated loops.
gcc/testsuite/
* gcc.target/aarch64/sve/cost_model_1.c: New test.
From-SVN: r269763
2019-03-18 13:25:32 +01:00
|
|
|
|
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 12:28:01 +01:00
|
|
|
|
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.
|
|
|
|
|
|
gcc/riscv: Correctly ignore empty C++ structs when flattening for ABI
This fixes PR target/89627.
The RISC-V ABI document[1] says:
For the purposes of this section, "struct" refers to a C struct
with its hierarchy flattened, including any array fields. That is,
struct { struct { float f[1]; } g[2]; } and struct { float f; float
g; } are treated the same. Fields containing empty structs or
unions are ignored while flattening, even in C++, unless they have
nontrivial copy constructors or destructors.
However, this flattening only applies when one of the fields of the
flattened structure can be placed into a floating point register,
otherwise no flattening occurs.
Currently GCC fails to correctly consider that empty C++ structures
have a non-zero size when constructing the arguments from a flattened
structure, and as a result, trying to pass a C++ structure like this:
struct sf { struct {} e; float f; };
Doesn't work correctly, GCC fails to take the offset of 'f' within
'sf' into account and will actually pass the space backing 'e' as the
contents of 'f'.
This patch fixes this so that 'f' will be passed correctly. A couple
of new tests are added to cover this functionality.
[1] https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md
gcc/ChangeLog:
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.
gcc/testsuite/ChangeLog:
PR target/89627
* g++.target/riscv/call-with-empty-struct-float.C: New file.
* g++.target/riscv/call-with-empty-struct-int.C: New file.
* g++.target/riscv/call-with-empty-struct.H: New file.
* g++.target/riscv/riscv.exp: New file.
From-SVN: r269760
2019-03-18 11:42:53 +01:00
|
|
|
|
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 10:28:45 +01:00
|
|
|
|
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 10:28:33 +01:00
|
|
|
|
2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* config/arc/arc.md (tst_movb): Fix constraint.
|
|
|
|
|
|
2019-03-18 10:28:22 +01:00
|
|
|
|
2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
|
|
|
|
|
|
2019-03-18 10:28:11 +01:00
|
|
|
|
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 10:17:43 +01:00
|
|
|
|
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 10:16:56 +01:00
|
|
|
|
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 08:51:06 +01:00
|
|
|
|
2019-03-18 Andrey Belevantsev <abel@ispras.ru>
|
|
|
|
|
|
2019-03-18 09:31:41 +01:00
|
|
|
|
PR middle-end/86979
|
2019-03-18 08:51:06 +01:00
|
|
|
|
* sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
|
|
|
|
|
successor, use NULL as its av set.
|
|
|
|
|
|
2019-03-15 23:09:15 +01:00
|
|
|
|
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 20:52:43 +01:00
|
|
|
|
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 14:56:55 +01:00
|
|
|
|
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 09:00:46 +01:00
|
|
|
|
2019-03-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-03-15 10:23:11 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-03-15 09:00:46 +01:00
|
|
|
|
PR debug/89704
|
|
|
|
|
* dwarf2out.c (add_const_value_attribute): Return false for MINUS,
|
|
|
|
|
SIGN_EXTEND and ZERO_EXTEND.
|
|
|
|
|
|
2019-03-14 23:47:01 +01:00
|
|
|
|
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-14 21:38:52 +01:00
|
|
|
|
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 15:19:33 +01:00
|
|
|
|
2019-03-14 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR other/89712
|
|
|
|
|
* doc/invoke.texi: Remove -fdump-class-hierarchy option.
|
|
|
|
|
|
2019-03-14 15:05:26 +01:00
|
|
|
|
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 14:25:27 +01:00
|
|
|
|
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 13:21:36 +01:00
|
|
|
|
2019-03-14 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-03-14 14:05:34 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-03-14 13:21:36 +01:00
|
|
|
|
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 12:07:41 +01:00
|
|
|
|
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 10:33:54 +01:00
|
|
|
|
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 10:24:21 +01:00
|
|
|
|
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 09:56:47 +01:00
|
|
|
|
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 09:49:54 +01:00
|
|
|
|
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 21:35:18 +01:00
|
|
|
|
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 21:22:15 +01:00
|
|
|
|
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 18:19:43 +01:00
|
|
|
|
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 12:32:11 +01:00
|
|
|
|
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-13 11:56:32 +01:00
|
|
|
|
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 09:24:41 +01:00
|
|
|
|
2019-03-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-03-13 09:48:56 +01:00
|
|
|
|
* ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
|
|
|
|
|
nonlocal_value member.
|
|
|
|
|
|
2019-03-13 09:24:41 +01:00
|
|
|
|
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 18:12:56 +01:00
|
|
|
|
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 18:08:27 +01:00
|
|
|
|
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 17:57:08 +01:00
|
|
|
|
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 16:11:42 +01:00
|
|
|
|
2019-03-12 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* config/i386/i386.c: Reword an error message.
|
|
|
|
|
|
2019-03-12 13:39:18 +01:00
|
|
|
|
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 09:17:08 +01:00
|
|
|
|
2019-03-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-03-12 11:07:25 +01:00
|
|
|
|
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 %>.
|
|
|
|
|
|
2019-03-12 09:17:08 +01:00
|
|
|
|
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 08:56:23 +01:00
|
|
|
|
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 22:58:43 +01:00
|
|
|
|
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 21:56:07 +01:00
|
|
|
|
2019-03-11 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* config/aarch64/aarch64.c (aarch64_override_options_internal):
|
|
|
|
|
Fix double string quoting.
|
|
|
|
|
|
2019-03-11 14:59:04 +01:00
|
|
|
|
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 14:58:44 +01:00
|
|
|
|
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 14:30:35 +01:00
|
|
|
|
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 12:48:49 +01:00
|
|
|
|
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 12:37:46 +01:00
|
|
|
|
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 12:31:05 +01:00
|
|
|
|
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 23:59:31 +01:00
|
|
|
|
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 17:20:06 +01:00
|
|
|
|
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 09:25:48 +01:00
|
|
|
|
2019-03-09 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-03-09 13:08:23 +01:00
|
|
|
|
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.
|
|
|
|
|
|
re PR target/79645 (missing period in microblaze.opt)
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.
lto/
* lang.opt: Terminate description text with a dot.
From-SVN: r269523
2019-03-09 10:28:04 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-03-09 09:25:48 +01:00
|
|
|
|
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 23:27:08 +01:00
|
|
|
|
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 20:47:05 +01:00
|
|
|
|
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 19:18:23 +01:00
|
|
|
|
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 18:29:02 +01:00
|
|
|
|
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 16:53:47 +01:00
|
|
|
|
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 13:55:40 +01:00
|
|
|
|
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 13:37:54 +01:00
|
|
|
|
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 11:46:39 +01:00
|
|
|
|
2019-03-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-03-08 11:53:27 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-03-08 11:52:38 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-03-08 11:51:28 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-03-08 11:50:23 +01:00
|
|
|
|
* gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
|
|
|
|
|
warning_at or inform messages in G_() if there is no ?:.
|
|
|
|
|
|
2019-03-08 11:46:39 +01:00
|
|
|
|
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 11:20:12 +01:00
|
|
|
|
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 08:39:31 +01:00
|
|
|
|
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.
|
|
|
|
|
|
re PR target/89602 (Missing AVX512 intrinsics)
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.
* gcc.target/i386/avx512f-vmovss-1.c: New test.
* gcc.target/i386/avx512f-vmovss-2.c: New test.
* gcc.target/i386/avx512f-vmovss-3.c: New test.
* gcc.target/i386/avx512f-vmovsd-1.c: New test.
* gcc.target/i386/avx512f-vmovsd-2.c: New test.
* gcc.target/i386/avx512f-vmovsd-3.c: New test.
From-SVN: r269467
2019-03-07 20:10:21 +01:00
|
|
|
|
2019-03-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-03-07 22:32:21 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-03-07 20:46:11 +01:00
|
|
|
|
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.
|
|
|
|
|
|
re PR target/89602 (Missing AVX512 intrinsics)
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.
* gcc.target/i386/avx512f-vmovss-1.c: New test.
* gcc.target/i386/avx512f-vmovss-2.c: New test.
* gcc.target/i386/avx512f-vmovss-3.c: New test.
* gcc.target/i386/avx512f-vmovsd-1.c: New test.
* gcc.target/i386/avx512f-vmovsd-2.c: New test.
* gcc.target/i386/avx512f-vmovsd-3.c: New test.
From-SVN: r269467
2019-03-07 20:10:21 +01:00
|
|
|
|
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 17:42:20 +01:00
|
|
|
|
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 17:03:34 +01:00
|
|
|
|
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 16:33:52 +01:00
|
|
|
|
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-03-07 16:10:22 +01:00
|
|
|
|
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-03-07 15:53:37 +01:00
|
|
|
|
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 14:47:53 +01:00
|
|
|
|
2019-03-07 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* dwarf2out.c (add_AT_vms_delta): Revert function removal.
|
|
|
|
|
|
2019-03-07 13:46:44 +01:00
|
|
|
|
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 09:18:36 +01:00
|
|
|
|
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 16:36:43 +01:00
|
|
|
|
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 11:45:51 +01:00
|
|
|
|
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 11:01:16 +01:00
|
|
|
|
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-05 23:20:41 +01:00
|
|
|
|
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 17:22:16 +01:00
|
|
|
|
2019-03-05 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-03-05 18:25:01 +01:00
|
|
|
|
PR target/89587
|
|
|
|
|
* config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
|
|
|
|
|
if_multiarch.
|
|
|
|
|
|
2019-03-05 17:22:16 +01:00
|
|
|
|
PR middle-end/89590
|
|
|
|
|
* builtins.c (maybe_emit_free_warning): Punt if free doesn't have
|
|
|
|
|
exactly one argument.
|
|
|
|
|
|
2019-03-05 16:05:07 +01:00
|
|
|
|
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 16:04:01 +01:00
|
|
|
|
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 15:57:12 +01:00
|
|
|
|
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 09:43:16 +01:00
|
|
|
|
2019-03-05 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-03-05 10:03:50 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-03-05 09:44:21 +01:00
|
|
|
|
PR tree-optimization/89570
|
|
|
|
|
* match.pd (vec_cond into cond_op simplification): Guard with
|
|
|
|
|
vectorized_internal_fn_supported_p test and #if GIMPLE.
|
|
|
|
|
|
2019-03-05 09:43:16 +01:00
|
|
|
|
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 13:36:04 +01:00
|
|
|
|
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 13:23:17 +01:00
|
|
|
|
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 02:38:25 +01:00
|
|
|
|
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 09:05:10 +01:00
|
|
|
|
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-02 01:36:22 +01:00
|
|
|
|
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 18:44:15 +01:00
|
|
|
|
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 17:18:04 +01:00
|
|
|
|
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.
|
|
|
|
|
|
AArch64: Make every option in options.def one line
Due to config.gcc all the options need to be on one line because of the grep
lines which would select only the first line of the option.
This causes it not to select the right bits on options that are spread over
multiple lines when the --with-arch configure option is used. The issue happens
silently and you just get a compiler with an incorrect set of default flags.
This solution just collapses everything back to one line as they were in GCC7.
Unfortunately this does make some lines quite long.
I do have an alternate patch which used the pre-processors to first flatten the
file in config.gcc. I will send that one out for GCC 10.
gcc/ChangeLog:
PR target/89517
* config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
From-SVN: r269309
2019-03-01 14:34:14 +01:00
|
|
|
|
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 14:05:40 +01:00
|
|
|
|
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 13:52:19 +01:00
|
|
|
|
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 10:26:40 +01:00
|
|
|
|
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 10:21:30 +01:00
|
|
|
|
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 09:10:19 +01:00
|
|
|
|
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-03-01 00:03:01 +01:00
|
|
|
|
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 23:29:42 +01:00
|
|
|
|
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 17:45:44 +01:00
|
|
|
|
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 15:24:52 +01:00
|
|
|
|
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 14:13:33 +01:00
|
|
|
|
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 11:43:41 +01:00
|
|
|
|
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 08:16:38 +01:00
|
|
|
|
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 21:14:55 +01:00
|
|
|
|
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 15:50:35 +01:00
|
|
|
|
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.
|
2019-02-27 19:11:26 +01:00
|
|
|
|
* 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 15:50:35 +01:00
|
|
|
|
|
2019-02-27 15:04:18 +01:00
|
|
|
|
2019-02-27 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR debug/88878
|
|
|
|
|
* dwarf2out.c (use_debug_types): Disable when in_lto_p.
|
|
|
|
|
|
2019-02-27 14:24:40 +01:00
|
|
|
|
2019-02-27 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* passes.c (should_skip_pass_p): Do not skip cgraph-edge
|
|
|
|
|
building.
|
|
|
|
|
|
2019-02-27 13:51:43 +01:00
|
|
|
|
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 12:59:07 +01:00
|
|
|
|
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 11:07:01 +01:00
|
|
|
|
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 09:41:01 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-02-27 01:00:56 +01:00
|
|
|
|
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 22:27:33 +01:00
|
|
|
|
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 22:08:22 +01:00
|
|
|
|
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 21:36:29 +01:00
|
|
|
|
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 18:27:52 +01:00
|
|
|
|
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 18:21:43 +01:00
|
|
|
|
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 18:08:06 +01:00
|
|
|
|
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 15:09:19 +01:00
|
|
|
|
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 12:03:45 +01:00
|
|
|
|
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 11:55:16 +01:00
|
|
|
|
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 11:08:29 +01:00
|
|
|
|
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-26 03:33:26 +01:00
|
|
|
|
2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c/80409
|
|
|
|
|
* doc/extend.texi (Variadic Pointer Args): New section.
|
|
|
|
|
|
2019-02-25 21:38:42 +01:00
|
|
|
|
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).
|
|
|
|
|
|
[rs6000] PR89338, PR89339: Fix compat vector intrinsics for BE and 32-bit
Test FAILS: sse2-cvtpd2dq-1, sse2-cvtpd2ps, sse2-cvttpd2dq on powerpc64
(big-endian).
_mm_cvtpd_epi32, _mm_cvtpd_ps, _mm_cvttpd_epi32: Type conversion from
vector doubleword type to vector word type leaves the results in even
lanes in big endian mode.
Test FAILS: sse-cvtss2si-1, sse-cvtss2si-2, sse-movmskb-1 on powerpc
(32-bit big-endian).
Incorrect type for interpreting the result from mfvsrd instruction leads
to incorrect results. Also, mfvsrd instruction only works as expected in
64-bit mode or for 32-bit quantities in 32-bit mode. A more general,
if slower, solution is needed for 32-bit mode.
2019-02-25 Paul A. Clarke <pc@us.ibm.com>
[gcc]
* 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.
From-SVN: r269195
2019-02-25 20:36:05 +01:00
|
|
|
|
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.
|
|
|
|
|
|
AArch64: Fix command line options canonicalization version #2. (PR target/88530)
Commandline options on AArch64 don't get canonicalized into the smallest
possible set before output to the assembler. This means that overlapping feature
sets are emitted with superfluous parts.
Normally this isn't an issue, but in the case of crypto we have retro-actively
split it into aes and sha2. We need to emit only +crypto to the assembler
so old assemblers continue to work.
Because of how -mcpu=native and -march=native work they end up enabling all
feature bits. Instead we need to get the smallest possible set, which would also
fix the problem with older the assemblers and the retro-active split.
The function that handles this is called quite often. It is called for any
push/pop options or attribute that changes arch, cpu etc. In order to not make
this search for the smallest set too expensive we sort the options based on the
number of features (bits) they enable. This allows us to process the list
linearly instead of quadratically (Once we have enabled a feature, we know that
anything else that enables it can be ignored. By sorting we'll get the biggest
groups first and thus the smallest combination of commandline flags).
The Option handling structures have been extended to have a boolean to indicate
whether the option is synthetic, with that I mean if the option flag itself
enables a new feature.
e.g. +crypto isn't an actual feature, it just enables other features, but others
like +rdma enable multiple dependent features but is itself also a feature.
There are two ways to solve this.
1) Either have the options that are feature bits also turn themselves on, e.g.
change rdma to turn on FP, SIMD and RDMA as dependency bits.
2) Make a distinction between these two different type of features and have the
framework handle it correctly.
Even though it's more code I went for the second approach, as it's the one
that'll be less fragile (people can't forget it) and gives the least surprises.
Effectively this patch changes the following:
The values before the => are the old compiler and after the => the new code.
-march=armv8.2-a+crypto+sha2 => -march=armv8.2-a+crypto
-march=armv8.2-a+sha2+aes => -march=armv8.2-a+crypto
The remaining behaviors stay the same.
gcc/ChangeLog:
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.
gcc/testsuite/ChangeLog:
PR target/88530
* gcc.target/aarch64/options_set_1.c: New test.
* gcc.target/aarch64/options_set_2.c: New test.
* gcc.target/aarch64/options_set_3.c: New test.
* gcc.target/aarch64/options_set_4.c: New test.
* gcc.target/aarch64/options_set_5.c: New test.
* gcc.target/aarch64/options_set_6.c: New test.
* gcc.target/aarch64/options_set_7.c: New test.
* gcc.target/aarch64/options_set_8.c: New test.
* gcc.target/aarch64/options_set_9.c: New test.
From-SVN: r269193
2019-02-25 18:57:01 +01:00
|
|
|
|
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.
|
|
|
|
|
|
Arm: Update Armv8.4-a's FP16 FML intrinsics
This patch updates the Armv8.4-a FP16 FML intrinsics's suffixes from u32 to f16
to be more consistent with the naming convention for intrinsics.
The specifications for these intrinsics have not been published yet so we do
not need to maintain the old names.
The patch was created with the following script:
grep -lIE "(vfml[as].+)_u32" -r gcc/ | grep -iEv ".+Changelog.*" \
| xargs sed -i -E -e "s/(vfml[as].+)_u32/\1_f16/g"
gcc/ChangeLog:
* 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.
gcc/testsuite/ChangeLog:
* gcc.target/arm/simd/fp16fml_high.c (test_vfmlal_high_u32,
test_vfmlalq_high_u32, test_vfmlsl_high_u32, test_vfmlslq_high_u32):
Rename ....
(test_vfmlal_high_f16, test_vfmlalq_high_f16, test_vfmlsl_high_f16,
test_vfmlslq_high_f16): ... To this.
* gcc.target/arm/simd/fp16fml_lane_high.c (test_vfmlal_lane_high_u32,
tets_vfmlsl_lane_high_u32, test_vfmlal_laneq_high_u32,
test_vfmlsl_laneq_high_u32, test_vfmlalq_lane_high_u32,
test_vfmlslq_lane_high_u32, test_vfmlalq_laneq_high_u32,
test_vfmlslq_laneq_high_u32): Rename ...
(test_vfmlal_lane_high_f16, tets_vfmlsl_lane_high_f16,
test_vfmlal_laneq_high_f16, test_vfmlsl_laneq_high_f16,
test_vfmlalq_lane_high_f16, test_vfmlslq_lane_high_f16,
test_vfmlalq_laneq_high_f16, test_vfmlslq_laneq_high_f16): ... To this.
* gcc.target/arm/simd/fp16fml_lane_low.c (test_vfmlal_lane_low_u32,
test_vfmlsl_lane_low_u32, test_vfmlal_laneq_low_u32,
test_vfmlsl_laneq_low_u32, test_vfmlalq_lane_low_u32,
test_vfmlslq_lane_low_u32, test_vfmlalq_laneq_low_u32,
test_vfmlslq_laneq_low_u32): Rename ...
(test_vfmlal_lane_low_f16, test_vfmlsl_lane_low_f16,
test_vfmlal_laneq_low_f16, test_vfmlsl_laneq_low_f16,
test_vfmlalq_lane_low_f16, test_vfmlslq_lane_low_f16,
test_vfmlalq_laneq_low_f16, test_vfmlslq_laneq_low_f16): ... To this.
* gcc.target/arm/simd/fp16fml_low.c (test_vfmlal_low_u32,
test_vfmlalq_low_u32, test_vfmlsl_low_u32, test_vfmlslq_low_u32):
Rename ...
(test_vfmlal_low_f16, test_vfmlalq_low_f16, test_vfmlsl_low_f16,
test_vfmlslq_low_f16): ... To this.
From-SVN: r269192
2019-02-25 18:48:55 +01:00
|
|
|
|
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.
|
|
|
|
|
|
AArch64: Update Armv8.4-a's FP16 FML intrinsics
This patch updates the Armv8.4-a FP16 FML intrinsics's suffixes from u32 to f16
to be more consistent with the naming convention for intrinsics.
The specifications for these intrinsics have not been published yet so we do
not need to maintain the old names.
The patch was created with the following script:
grep -lIE "(vfml[as].+)_u32" -r gcc/ | grep -iEv ".+Changelog.*" \
| xargs sed -i -E -e "s/(vfml[as].+)_u32/\1_f16/g"
gcc/ChangeLog:
* 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.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/fp16_fmul_high.h (test_vfmlal_high_u32,
test_vfmlalq_high_u32, test_vfmlsl_high_u32, test_vfmlslq_high_u32):
Rename ...
(test_vfmlal_high_f16, test_vfmlalq_high_f16, test_vfmlsl_high_f16,
test_vfmlslq_high_f16): ... To this.
* gcc.target/aarch64/fp16_fmul_lane_high.h (test_vfmlal_lane_high_u32,
tets_vfmlsl_lane_high_u32, test_vfmlal_laneq_high_u32,
test_vfmlsl_laneq_high_u32, test_vfmlalq_lane_high_u32,
test_vfmlslq_lane_high_u32, test_vfmlalq_laneq_high_u32,
test_vfmlslq_laneq_high_u32): Rename ...
(test_vfmlal_lane_high_f16, tets_vfmlsl_lane_high_f16,
test_vfmlal_laneq_high_f16, test_vfmlsl_laneq_high_f16,
test_vfmlalq_lane_high_f16, test_vfmlslq_lane_high_f16,
test_vfmlalq_laneq_high_f16, test_vfmlslq_laneq_high_f16): ... To this.
* gcc.target/aarch64/fp16_fmul_lane_low.h (test_vfmlal_lane_low_u32,
test_vfmlsl_lane_low_u32, test_vfmlal_laneq_low_u32,
test_vfmlsl_laneq_low_u32, test_vfmlalq_lane_low_u32,
test_vfmlslq_lane_low_u32, test_vfmlalq_laneq_low_u32,
test_vfmlslq_laneq_low_u32): Rename ...
(test_vfmlal_lane_low_f16, test_vfmlsl_lane_low_f16,
test_vfmlal_laneq_low_f16, test_vfmlsl_laneq_low_f16,
test_vfmlalq_lane_low_f16, test_vfmlslq_lane_low_f16,
test_vfmlalq_laneq_low_f16, test_vfmlslq_laneq_low_f16): ... To this.
* gcc.target/aarch64/fp16_fmul_low.h (test_vfmlal_low_u32,
test_vfmlalq_low_u32, test_vfmlsl_low_u32, test_vfmlslq_low_u32):
Rename ...
(test_vfmlal_low_f16, test_vfmlalq_low_f16, test_vfmlsl_low_f16,
test_vfmlslq_low_f16): ... To This.
* lib/target-supports.exp
(check_effective_target_arm_fp16fml_neon_ok_nocache): Update test.
From-SVN: r269191
2019-02-25 18:46:16 +01:00
|
|
|
|
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 16:14:39 +01:00
|
|
|
|
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 10:51:27 +01:00
|
|
|
|
2019-02-25 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-02-25 11:32:38 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-02-25 10:51:27 +01:00
|
|
|
|
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 20:23:51 +01:00
|
|
|
|
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 21:25:57 +01:00
|
|
|
|
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 20:39:35 +01:00
|
|
|
|
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 19:38:36 +01:00
|
|
|
|
2019-02-22 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
* doc/extend.texi (Other Builtins): Add
|
|
|
|
|
__builtin_is_constant_evaluated.
|
|
|
|
|
|
2019-02-22 18:56:59 +01:00
|
|
|
|
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 17:38:43 +01:00
|
|
|
|
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 (...)))).
|
|
|
|
|
|
Handle stack pointer with SUBS/ADDS instructions.
In general the stack pointer was not handled for many SUBS/ADDS patterns in
aarch64.md.
Both the "extended register" and "immediate" forms allow the stack pointer to be
used as the source register, while no form allows the stack pointer for the
destination register.
The define_insn patterns generating ADDS/SUBS did not allow the stack pointer
for any operand, while the define_peephole2 patterns that generated RTX to be
matched by these patterns allowed the stack pointer for any operand.
The patterns are fixed by adding the 'k' constraint for the first source operand
to all define_insns that generate the ADDS/SUBS "extended register" and
"immediate" forms (but not the "shifted register" form).
In peephole optimizations, constraint strings are ignored (see "(gccint) C
Constraint Interface" info node in the documentation), so the decision to act or
not is based solely on the predicate and condition.
This patch introduces a new predicate "aarch64_general_reg" to be used in
define_peephole2 patterns where only GENERAL_REGS registers are acceptable and
uses that predicate in the peepholes that generate patterns for ADDS/SUBS.
Full bootstrap and regtest done on aarch64-none-linux-gnu.
Regression tests done on aarch64-none-linux-gnu and aarch64-none-elf cross
compiler.
OK for trunk?
gcc/ChangeLog:
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.
gcc/testsuite/ChangeLog:
2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
PR target/89324
* gcc.dg/rtl/aarch64/subs_adds_sp.c: New test.
* gfortran.fortran-torture/compile/pr89324.f90: New test.
From-SVN: r269122
2019-02-22 17:35:22 +01:00
|
|
|
|
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 19:38:36 +01:00
|
|
|
|
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 17:24:36 +01:00
|
|
|
|
2019-02-22 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/89425
|
|
|
|
|
* c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
|
|
|
|
|
unreachable subexpressions.
|
|
|
|
|
|
i386: Add pass_remove_partial_avx_dependency
With -mavx, for
$ cat foo.i
extern float f;
extern double d;
extern int i;
void
foo (void)
{
d = f;
f = i;
}
we need to generate
vxorp[ds] %xmmN, %xmmN, %xmmN
...
vcvtss2sd f(%rip), %xmmN, %xmmX
...
vcvtsi2ss i(%rip), %xmmN, %xmmY
to avoid partial XMM register stall. This patch adds a pass to generate
a single
vxorps %xmmN, %xmmN, %xmmN
at entry of the nearest dominator for basic blocks with SF/DF conversions,
which is in the fake loop that contains the whole function, instead of
generating one
vxorp[ds] %xmmN, %xmmN, %xmmN
for each SF/DF conversion.
NB: The LCM algorithm isn't appropriate here since it may place a vxorps
inside the loop. Simple testcase show this:
$ cat badcase.c
extern float f;
extern double d;
void
foo (int n, int k)
{
for (int j = 0; j != n; j++)
if (j < k)
d = f;
}
It generates
...
loop:
if(j < k)
vxorps %xmm0, %xmm0, %xmm0
vcvtss2sd f(%rip), %xmm0, %xmm0
...
loopend
...
This is because LCM only works when there is a certain benifit. But for
conditional branch, LCM wouldn't move
vxorps %xmm0, %xmm0, %xmm0
out of loop. SPEC CPU 2017 on Intel Xeon with AVX512 shows:
1. The nearest dominator
|RATE |Improvement|
|500.perlbench_r | 0.55% |
|538.imagick_r | 8.43% |
|544.nab_r | 0.71% |
2. LCM
|RATE |Improvement|
|500.perlbench_r | -0.76% |
|538.imagick_r | 7.96% |
|544.nab_r | -0.13% |
Performance impacts of SPEC CPU 2017 rate on Intel Xeon with AVX512
using
-Ofast -flto -march=skylake-avx512 -funroll-loops
before
commit e739972ad6ad05e32a1dd5c29c0b950a4c4bd576
Author: uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu Jan 31 20:06:42 2019 +0000
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268427 138bc75d-0d04-0410-961f-82ee72b054a4
are:
|INT RATE |Improvement|
|500.perlbench_r | 0.55% |
|502.gcc_r | 0.14% |
|505.mcf_r | 0.08% |
|523.xalancbmk_r | 0.18% |
|525.x264_r |-0.49% |
|531.deepsjeng_r |-0.04% |
|541.leela_r |-0.26% |
|548.exchange2_r |-0.3% |
|557.xz_r |BuildSame|
|FP RATE |Improvement|
|503.bwaves_r |-0.29% |
|507.cactuBSSN_r | 0.04% |
|508.namd_r |-0.74% |
|510.parest_r |-0.01% |
|511.povray_r | 2.23% |
|519.lbm_r | 0.1% |
|521.wrf_r | 0.49% |
|526.blender_r | 0.13% |
|527.cam4_r | 0.65% |
|538.imagick_r | 8.43% |
|544.nab_r | 0.71% |
|549.fotonik3d_r | 0.15% |
|554.roms_r | 0.08% |
After commit e739972ad6ad05e32a1dd5c29c0b950a4c4bd576, on Skylake client,
impacts on 538.imagick_r with
-fno-unsafe-math-optimizations -march=native -Ofast -funroll-loops -flto
1. Size comparision:
before:
text data bss dec hex filename
2436377 8352 4528 2449257 255f69 imagick_r
after:
text data bss dec hex filename
2425249 8352 4528 2438129 2533f1 imagick_r
2. Number of vxorps:
before after difference
4948 4135 -19.66%
3. Performance improvement:
|RATE |Improvement|
|538.imagick_r | 5.5% |
gcc/
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.
gcc/testsuite/
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
* gcc.target/i386/pr87007-1.c: New test.
* gcc.target/i386/pr87007-2.c: Likewise.
Co-Authored-By: Hongtao Liu <hongtao.liu@intel.com>
Co-Authored-By: Sunil K Pandey <sunil.k.pandey@intel.com>
From-SVN: r269119
2019-02-22 16:54:08 +01:00
|
|
|
|
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 14:46:01 +01:00
|
|
|
|
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 13:49:21 +01:00
|
|
|
|
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 11:55:22 +01:00
|
|
|
|
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 11:52:49 +01:00
|
|
|
|
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 11:50:35 +01:00
|
|
|
|
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 09:59:20 +01:00
|
|
|
|
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 09:58:04 +01:00
|
|
|
|
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 09:56:50 +01:00
|
|
|
|
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 09:38:14 +01:00
|
|
|
|
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 09:36:30 +01:00
|
|
|
|
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-22 00:23:12 +01:00
|
|
|
|
2019-02-21 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
* doc/extend.texi (__clear_cache): Correct signature.
|
|
|
|
|
|
2019-02-21 23:50:24 +01:00
|
|
|
|
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.
|
|
|
|
|
|
re PR c++/89285 (ICE after casting the this pointer in the constructor in C++17 mode)
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.
* constexpr.c (struct constexpr_fundef): Add parms and result members.
(retrieve_constexpr_fundef): Adjust for the above change.
(register_constexpr_fundef): Save constexpr body with copy_fn,
temporarily set DECL_CONTEXT on DECL_RESULT before that.
(get_fundef_copy): Change FUN argument to FUNDEF with
constexpr_fundef * type, grab body and parms/result out of
constexpr_fundef struct and temporarily change it for copy_fn calls
too.
(cxx_eval_builtin_function_call): For __builtin_FUNCTION temporarily
adjust current_function_decl from ctx->call context. Test
!potential_constant_expression instead of !is_constant_expression.
(cxx_bind_parameters_in_call): Grab parameters from new_call. Undo
convert_for_arg_passing changes for TREE_ADDRESSABLE type passing.
(cxx_eval_call_expression): Adjust get_fundef_copy caller.
(cxx_eval_conditional_expression): For IF_STMT, allow then or else
operands to be NULL.
(label_matches): Handle BREAK_STMT and CONTINUE_STMT.
(cxx_eval_loop_expr): Add support for FOR_STMT, WHILE_STMT and DO_STMT.
(cxx_eval_switch_expr): Add support for SWITCH_STMT.
(cxx_eval_constant_expression): Handle IF_STMT, FOR_STMT, WHILE_STMT,
DO_STMT, CONTINUE_STMT, SWITCH_STMT, BREAK_STMT and CONTINUE_STMT.
For SIZEOF_EXPR, recurse on the result of fold_sizeof_expr. Ignore
DECL_EXPR with USING_DECL operand.
* lambda.c (maybe_add_lambda_conv_op): Build thisarg using
build_int_cst to make it a valid constant expression.
* g++.dg/ubsan/vptr-4.C: Expect reinterpret_cast errors.
* g++.dg/cpp1y/constexpr-84192.C (f2): Adjust expected diagnostics.
* g++.dg/cpp1y/constexpr-70265-2.C (foo): Adjust expected line of
diagnostics.
* g++.dg/cpp1y/constexpr-89285.C: New test.
* g++.dg/cpp0x/constexpr-arith-overflow.C (add, sub, mul): Ifdef out
for C++11.
(TEST_ADD, TEST_SUB, TEST_MUL): Define to Assert (true) for C++11.
* g++.dg/cpp0x/constexpr-arith-overflow2.C: New test.
From-SVN: r269078
2019-02-21 22:21:25 +01:00
|
|
|
|
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 14:41:53 +01:00
|
|
|
|
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 13:04:26 +01:00
|
|
|
|
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 12:00:47 +01:00
|
|
|
|
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-21 00:02:29 +01:00
|
|
|
|
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-21 00:01:41 +01:00
|
|
|
|
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 23:41:26 +01:00
|
|
|
|
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 22:58:45 +01:00
|
|
|
|
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 21:07:20 +01:00
|
|
|
|
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 15:11:43 +01:00
|
|
|
|
2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
|
|
|
|
|
|
|
|
|
|
PR target/86487
|
|
|
|
|
* lra-constraints.c(uses_hard_regs_p): Fix handling of
|
|
|
|
|
paradoxical SUBREGS.
|
|
|
|
|
|
[rs6000] fix PR 88100, range check for vec_splat_{su}{8,16,32}
GCC revision 259524 implemented range check for the vec_splat_{su}{8,16,32}
builtins. However, as a consequence of the implementation, the range check
is not done correctly for the expected vspltis[bhw] instructions. The result
is that we may not get a valid error message if the valid range of the data
is exceeded.
Although the input of the function prototype of vec_splat_{su}{8,16,32} is
const int, the actual data usage range is limited to the data range of 5 bits
signed. We should limit the int_cst.val[0] data to the 5 bit signed data range
without any modification in the input arg0 parameter. However, the sext_hwi
function intercepts the data of TREE_INT_CST_LOW (arg0) as size bits in the
sext_hwi (TREE_INT_CST_LOW (arg0), size) statement. This will cause some of
the excess data to fall within the range of 5 bits signed, so that the correct
diagnostic information cannot be generated, we need to remove the sext_hwi to
ensure that the input data has not been modified.
This patch fix range check for the vec_splat_s[8,16,32] builtins. The argument
must be a 5-bit const int as specified for the vspltis[bhw] instructions.
for gcc/ChangeLog
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.
for gcc/testsuite/ChangeLog
PR target/88100
* gcc/testsuite/gcc.target/powerpc/pr88100.c: New testcase.
From-SVN: r269033
2019-02-20 03:35:39 +01:00
|
|
|
|
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 20:30:59 +01:00
|
|
|
|
2019-02-19 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/gcn/gcn.c (print_operand): Fix typo.
|
|
|
|
|
|
2019-02-19 13:46:48 +01:00
|
|
|
|
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 10:25:39 +01:00
|
|
|
|
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 19:37:55 +01:00
|
|
|
|
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 18:44:11 +01:00
|
|
|
|
2019-02-18 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi (-Wreturn-type): Correct and expand.
|
|
|
|
|
|
2019-02-18 17:31:17 +01:00
|
|
|
|
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 13:56:15 +01:00
|
|
|
|
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 11:08:04 +01:00
|
|
|
|
2019-02-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-02-18 13:52:36 +01:00
|
|
|
|
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].
|
|
|
|
|
|
2019-02-18 12:20:43 +01:00
|
|
|
|
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].
|
|
|
|
|
|
2019-02-18 12:16:33 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-02-18 11:08:04 +01:00
|
|
|
|
* 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 09:59:04 +01:00
|
|
|
|
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 09:21:23 +01:00
|
|
|
|
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 09:19:47 +01:00
|
|
|
|
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.
|
|
|
|
|
|
[RS6000] Fix <bd>_<mode> and <bd>tf_<mode> splitters
This patch fixes a bug that can result in "insn does not satisfy its
constraints" if these splitters fire due to not getting ctr for the
jump insn. Since the jump insn can have any of r,m,d,wi,c,l as the
decremented count output, it's not sufficient to check for
gpc_reg_operand (which matches VSX regs for example). Seen after
correcting register_move_cost when the cost of gpr <-> vsx is much
lower. Since this is a prerequisite to fixing PR89271, I'm mentioning
that PR in the ChangeLog.
The <bd>tf_<mode> split had a further bug in that it wouldn't match
if the count output was m,d,wi, or l.
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.
From-SVN: r268968
2019-02-17 04:01:41 +01:00
|
|
|
|
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 23:16:04 +01:00
|
|
|
|
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 21:29:24 +01:00
|
|
|
|
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 11:05:16 +01:00
|
|
|
|
2019-02-16 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-02-16 12:20:33 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-02-16 11:05:16 +01:00
|
|
|
|
* 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-16 00:08:49 +01:00
|
|
|
|
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 22:40:24 +01:00
|
|
|
|
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 21:47:31 +01:00
|
|
|
|
2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
2019-02-15 22:40:24 +01:00
|
|
|
|
* config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
|
2019-02-15 21:47:31 +01:00
|
|
|
|
|
2019-02-15 19:02:50 +01:00
|
|
|
|
2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
|
|
|
|
|
|
2019-02-15 16:41:25 +01:00
|
|
|
|
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 11:40:34 +01:00
|
|
|
|
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 08:39:45 +01:00
|
|
|
|
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 08:17:24 +01:00
|
|
|
|
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 00:54:25 +01:00
|
|
|
|
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-15 00:10:47 +01:00
|
|
|
|
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 22:25:39 +01:00
|
|
|
|
2019-02-14 Maya Rashish <coypu@sdf.org>
|
|
|
|
|
|
2019-02-15 00:10:47 +01:00
|
|
|
|
* config.gcc (*-*-netbsd*): Add netbsd-d.o.
|
2019-02-14 22:25:39 +01:00
|
|
|
|
* config/netbsd-d.c: New file.
|
|
|
|
|
* config/t-netbsd: Add netbsd-d.o
|
|
|
|
|
|
2019-02-14 22:04:12 +01:00
|
|
|
|
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 18:17:20 +01:00
|
|
|
|
2019-02-14 Tamar Christina <tamar.christina@arm.com>
|
|
|
|
|
|
|
|
|
|
PR target/88850
|
|
|
|
|
* config/arm/iterators.md (ANY64): Add V4HF.
|
|
|
|
|
|
2019-02-14 12:30:58 +01:00
|
|
|
|
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 08:31:14 +01:00
|
|
|
|
2019-02-14 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-02-14 10:25:01 +01:00
|
|
|
|
PR tree-optimization/89314
|
|
|
|
|
* fold-const.c (fold_binary_loc): Cast strlen argument to
|
|
|
|
|
const char * before dereferencing it. Formatting fixes.
|
|
|
|
|
|
2019-02-14 08:31:14 +01:00
|
|
|
|
PR middle-end/89284
|
|
|
|
|
* passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
|
|
|
|
|
|
2019-02-14 01:25:40 +01:00
|
|
|
|
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 22:51:41 +01:00
|
|
|
|
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 17:22:25 +01:00
|
|
|
|
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 15:04:41 +01:00
|
|
|
|
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 14:49:34 +01:00
|
|
|
|
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 09:45:37 +01:00
|
|
|
|
2019-02-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-02-13 14:32:00 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-02-13 13:12:09 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-02-13 09:45:37 +01:00
|
|
|
|
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 07:57:38 +01:00
|
|
|
|
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.
|
|
|
|
|
|
rs6000: Add support for the vec_sbox_be, vec_cipher_be etc. builtins.
The 5 new builtins vec_sbox_be, vec_cipher_be, vec_cipherlast_be, vec_ncipher_be
and vec_ncipherlast_be only support vector unsigned char type parameters.
Add new instruction crypto_vsbox_<mode> and crypto_<CR_insn>_<mode> to handle
them accordingly, where the new mode CR_vqdi can be expanded to vector unsigned
long long for none _be postfix builtins or vector unsigned char for _be postfix
builtins.
gcc/ChangeLog
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.
gcc/testsuite/ChangeLog
2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
* gcc.target/powerpc/crypto-builtin-1.c
(crypto1_be, crypto2_be, crypto3_be, crypto4_be, crypto5_be):
New testcases.
From-SVN: r268834
2019-02-13 07:31:01 +01:00
|
|
|
|
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 23:03:00 +01:00
|
|
|
|
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.
|
|
|
|
|
|
i386: Revert revision 268678 and revision 268657
i386 backend has
INT_MODE (OI, 32);
INT_MODE (XI, 64);
So, XI_MODE represents 64 INTEGER bytes = 64 * 8 = 512 bit operation,
in case of const_1, all 512 bits set.
We can load zeros with narrower instruction, (e.g. 256 bit by inherent
zeroing of highpart in case of 128 bit xor), so TImode in this case.
Some targets prefer V4SF mode, so they will emit float xorps for zeroing
Then the introduction of AVX512F fubared everything by overloading the
meaning of insn mode.
How should we use INSN mode, MODE_XI, in standard_sse_constant_opcode
and patterns which use standard_sse_constant_opcode? 2 options:
1. MODE_XI should only used to check if EXT_REX_SSE_REG_P is true
in any register operand. The operand size must be determined by operand
itself , not by MODE_XI. The operand encoding size should be determined
by the operand size, EXT_REX_SSE_REG_P and AVX512VL.
2. MODE_XI should be used to determine the operand encoding size.
EXT_REX_SSE_REG_P and AVX512VL should be checked for encoding
instructions.
gcc/
PR target/89229
* config/i386/i386.md (*movoi_internal_avx): Revert revision
268678 and revision 268657.
(*movti_internal): Likewise.
gcc/testsuite/
PR target/89229
* gcc.target/i386/pr89229-1.c: New test.
From-SVN: r268811
2019-02-12 20:00:35 +01:00
|
|
|
|
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 15:51:39 +01:00
|
|
|
|
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 14:46:41 +01:00
|
|
|
|
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 13:23:08 +01:00
|
|
|
|
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 12:25:11 +01:00
|
|
|
|
2019-02-12 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
|
2019-02-14 15:49:03 +01:00
|
|
|
|
PR lto/88677
|
2019-02-12 12:25:11 +01:00
|
|
|
|
* 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 10:29:39 +01:00
|
|
|
|
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.
|
|
|
|
|
|
linemap_line_start: protect against location_t overflow (PR lto/88147)
PR lto/88147 reports an assertion failure due to a bogus location_t value
when adding a line to a pre-existing line map, when there's a large
difference between the two line numbers.
For some "large differences", this leads to a location_t value that exceeds
LINE_MAP_MAX_LOCATION, in which case linemap_line_start returns 0. This
isn't ideal, but at least should lead to safe degradation of location
information.
However, if the difference is very large, it's possible for the line
number offset (relative to the start of the map) to be sufficiently large
that overflow occurs when left-shifted by the column-bits, and hence
the check against the LINE_MAP_MAX_LOCATION limit fails, leading to
a seemingly-valid location_t value, but encoding the wrong location. This
triggers the assertion failure:
linemap_assert (SOURCE_LINE (map, r) == to_line);
The fix (thanks to Martin) is to check for overflow when determining
whether to reuse an existing map, and to not reuse it if it would occur.
gcc/ChangeLog: David Malcolm <dmalcolm@redhat.com>
PR lto/88147
* input.c (selftest::test_line_offset_overflow): New selftest.
(selftest::input_c_tests): Call it.
libcpp/ChangeLog: Martin Liska <mliska@suse.cz>
PR lto/88147
* line-map.c (linemap_line_start): Don't reuse the existing line
map if the line offset is sufficiently large to cause overflow
when computing location_t values.
From-SVN: r268789
2019-02-12 02:09:31 +01:00
|
|
|
|
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 18:44:05 +01:00
|
|
|
|
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 18:35:17 +01:00
|
|
|
|
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 17:50:33 +01:00
|
|
|
|
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.
|
|
|
|
|
|
[RS6000] No inline PLT for V4 bss-plt, implement -mno-pltseq
Inline PLT calls need PLT to be an array of addresses. PowerPC 32-bit
bss-plt works differently, so this patch disables inline PLT calls
when -mbss-plt. The patch also adds support for a new -mno-pltseq
option, which may be required when linking with -mbss-plt code.
* 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.
From-SVN: r268770
2019-02-11 16:19:59 +01:00
|
|
|
|
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 13:06:19 +01:00
|
|
|
|
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 11:39:59 +01:00
|
|
|
|
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 10:03:51 +01:00
|
|
|
|
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 09:13:03 +01:00
|
|
|
|
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 08:04:00 +01:00
|
|
|
|
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 03:04:02 +01:00
|
|
|
|
2019-02-11 Hans-Peter Nilsson <hp@axis.com>
|
|
|
|
|
|
|
|
|
|
* config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
|
|
|
|
|
typo.
|
|
|
|
|
|
2019-02-11 02:39:54 +01:00
|
|
|
|
2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
|
|
|
|
|
in comments
|
|
|
|
|
|
2019-02-10 13:27:01 +01:00
|
|
|
|
2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
|
|
|
|
|
|
2019-02-10 12:06:58 +01:00
|
|
|
|
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-10 11:46:43 +01:00
|
|
|
|
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 10:45:55 +01:00
|
|
|
|
2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/nds32/nds32.md (trap): New pattern.
|
|
|
|
|
|
2019-02-10 10:09:19 +01:00
|
|
|
|
2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
|
|
|
|
|
dwarf span.
|
|
|
|
|
|
2019-02-10 10:00:43 +01:00
|
|
|
|
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 22:54:28 +01:00
|
|
|
|
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 19:01:03 +01:00
|
|
|
|
2019-02-09 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
|
2019-02-09 19:07:12 +01:00
|
|
|
|
PR lto/87957
|
2019-02-09 19:01:03 +01:00
|
|
|
|
* tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
|
|
|
|
|
instead of type_with_linkage.
|
|
|
|
|
|
2019-02-09 18:56:22 +01:00
|
|
|
|
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 18:06:12 +01:00
|
|
|
|
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 09:55:39 +01:00
|
|
|
|
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-08 23:20:58 +01:00
|
|
|
|
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 20:01:10 +01:00
|
|
|
|
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 15:25:48 +01:00
|
|
|
|
2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/vector.md: Implement vector copysign.
|
|
|
|
|
|
2019-02-08 15:19:09 +01:00
|
|
|
|
2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* expr.c (expand_constructor): Correct indentations.
|
|
|
|
|
|
2019-02-08 14:21:36 +01:00
|
|
|
|
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.
|
|
|
|
|
|
S/390: Introduce jdd constraint
Implementation of section anchors in S/390 back-end added in r266741
broke jump labels in S/390 Linux kernel [1]. Currently jump labels
pass global variable addresses to .quad directive in inline assembly
using "X" constraint. In the past this used to produce regular symbol
references, however, after r266741 we sometimes get values like
(plus (reg) (const_int)), where (reg) points to a section anchor.
Strictly speaking, this is still correct, since "X" accepts anything.
Thus, now we need another way to support jump labels.
The existing "i" constraint cannot be used, since with -fPIC it must
not accept non-local symbols, however, jump labels do require that,
e.g. __tracepoint_xdp_exception from kernel proper might be referenced
from kernel modules.
The existing "ZL" constraint cannot be used for the same reason.
The existing "b" constraint cannot be used because of the way
expand_asm_stmt works. It deduces whether the constraint allows
regs, subregs or mems, and processes asm operands differently based on
that. "b" is supposed to accept values like (mem (symbol_ref)), and
there appears to be no way to explain to expand_asm_stmt that for "b"
mem's address must not be in a register.
This patch introduces the new machine-specific constraint named "jdd" -
"j" prefix is already used for constants, and "d" stands for "data".
It accepts anything that fits into the data section, whether or not
this might require a relocation, that is, anything that passes
CONSTANT_P check.
[1] https://lkml.org/lkml/2019/1/23/346
gcc/ChangeLog:
2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
* config/s390/constraints.md (jdd): New constraint.
gcc/testsuite/ChangeLog:
2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
* gcc.target/s390/jump-label.c: New test.
From-SVN: r268688
2019-02-08 13:39:27 +01:00
|
|
|
|
2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/constraints.md (jdd): New constraint.
|
|
|
|
|
|
2019-02-08 12:30:53 +01:00
|
|
|
|
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 11:26:33 +01:00
|
|
|
|
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 09:18:09 +01:00
|
|
|
|
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 08:14:57 +01:00
|
|
|
|
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-08 00:00:18 +01:00
|
|
|
|
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 19:18:16 +01:00
|
|
|
|
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 18:58:19 +01:00
|
|
|
|
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 16:53:38 +01:00
|
|
|
|
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 15:54:15 +01:00
|
|
|
|
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 12:05:22 +01:00
|
|
|
|
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 11:05:57 +01:00
|
|
|
|
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 10:32:46 +01:00
|
|
|
|
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 10:31:33 +01:00
|
|
|
|
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 22:48:45 +01:00
|
|
|
|
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 22:03:03 +01:00
|
|
|
|
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 12:18:33 +01:00
|
|
|
|
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 10:16:19 +01:00
|
|
|
|
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 18:14:11 +01:00
|
|
|
|
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 17:32:06 +01:00
|
|
|
|
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 17:30:45 +01:00
|
|
|
|
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 16:38:57 +01:00
|
|
|
|
2019-02-05 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-02-05 17:21:36 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-02-05 16:38:57 +01:00
|
|
|
|
PR rtl-optimization/89195
|
|
|
|
|
* combine.c (make_extraction): For MEMs, don't extract bytes outside
|
|
|
|
|
of the original MEM.
|
|
|
|
|
|
2019-02-05 13:17:45 +01:00
|
|
|
|
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 10:17:18 +01:00
|
|
|
|
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 09:32:16 +01:00
|
|
|
|
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 16:00:41 +01:00
|
|
|
|
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 14:19:49 +01:00
|
|
|
|
2019-02-04 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
|
|
|
|
|
str[] size to 160, and comment.
|
|
|
|
|
|
[RS6000] Emit inline PLT when -mno-tls-markers
I restricted output of inline PLT sequences to when TLS marker relocs
were also available, which is obviously true when just considering
assembler support. However, there is a -mno-tls-markers option to
disable emitting the marker relocs. Currently that option also
disables inline PLT sequences, which is a bug (*). This patch fixes
that problem.
*) To be honest, it was a deliberate bug. I didn't want to have to
deal with inline PLT __tls_get_addr sequences lacking the marker
relocs in the linker, but it turns out the existing linker support for
old-style __tls_get_addr calls works reasonably well.
* 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.
From-SVN: r268519
2019-02-04 14:18:14 +01:00
|
|
|
|
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 13:19:48 +01:00
|
|
|
|
2019-02-04 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
2019-02-04 13:26:14 +01:00
|
|
|
|
PR ipa/88985
|
2019-02-04 13:19:48 +01:00
|
|
|
|
* ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
|
|
|
|
|
out when ipa_fn_summaries does not contain entry for callee.
|
|
|
|
|
|
2019-02-04 12:12:29 +01:00
|
|
|
|
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 10:00:24 +01:00
|
|
|
|
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 08:31:45 +01:00
|
|
|
|
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 08:17:36 +01:00
|
|
|
|
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 17:48:41 +01:00
|
|
|
|
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 11:53:01 +01:00
|
|
|
|
2019-02-03 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR debug/87295
|
|
|
|
|
* dwarf2out.c (copy_ancestor_tree): Register non-stubs as
|
|
|
|
|
orig.
|
|
|
|
|
|
2019-02-02 01:04:39 +01:00
|
|
|
|
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 17:26:48 +01:00
|
|
|
|
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 17:22:13 +01:00
|
|
|
|
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 17:15:36 +01:00
|
|
|
|
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 14:41:43 +01:00
|
|
|
|
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 11:46:36 +01:00
|
|
|
|
2019-02-01 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
|
|
|
|
|
* parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
|
|
|
|
|
|
2019-02-01 09:43:02 +01:00
|
|
|
|
2019-02-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-02-01 09:44:23 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-02-01 09:43:02 +01:00
|
|
|
|
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 09:07:35 +01:00
|
|
|
|
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 03:39:52 +01:00
|
|
|
|
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-02-01 00:05:01 +01:00
|
|
|
|
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 21:06:42 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-01-31 14:53:06 +01:00
|
|
|
|
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 12:51:59 +01:00
|
|
|
|
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 09:20:45 +01:00
|
|
|
|
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 09:09:59 +01:00
|
|
|
|
2019-01-31 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/89115
|
|
|
|
|
* lra.c (lra_rtx_hash): Properly hash CONST_INT values.
|
|
|
|
|
|
2019-01-31 03:33:58 +01:00
|
|
|
|
2019-01-30 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR other/89106
|
|
|
|
|
* doc/extend.texi (cast to a union): Correct and expand.
|
|
|
|
|
|
2019-01-30 22:49:23 +01:00
|
|
|
|
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 21:52:08 +01:00
|
|
|
|
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 16:11:04 +01:00
|
|
|
|
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 16:01:40 +01:00
|
|
|
|
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 15:40:10 +01:00
|
|
|
|
2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi (C Language Options): List "-fopenacc-dim".
|
|
|
|
|
|
2019-01-30 13:41:13 +01:00
|
|
|
|
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 08:51:24 +01:00
|
|
|
|
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 08:18:22 +01:00
|
|
|
|
2019-01-30 Ulrich Drepper <drepper@redhat.com>
|
|
|
|
|
|
|
|
|
|
* dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
|
|
|
|
|
after '='.
|
|
|
|
|
|
2019-01-30 04:04:14 +01:00
|
|
|
|
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 22:09:41 +01:00
|
|
|
|
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 16:08:16 +01:00
|
|
|
|
2019-01-29 Vineet Gupta <vgupta@synopsys.com>
|
|
|
|
|
|
2019-01-29 22:09:41 +01:00
|
|
|
|
* config.gcc: Force .init_array for ARC.
|
2019-01-29 16:08:16 +01:00
|
|
|
|
|
2019-01-29 09:12:02 +01:00
|
|
|
|
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 23:33:33 +01:00
|
|
|
|
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 14:10:29 +01:00
|
|
|
|
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.
|
|
|
|
|
|
re PR target/89073 (x86 __attribute__ ((target("sha"))) not documented)
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.
From-SVN: r268335
2019-01-28 11:38:29 +01:00
|
|
|
|
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 10:36:50 +01:00
|
|
|
|
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 09:15:42 +01:00
|
|
|
|
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 12:56:44 +01:00
|
|
|
|
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 23:19:17 +01:00
|
|
|
|
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 23:13:43 +01:00
|
|
|
|
2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
|
|
|
|
|
|
2019-01-25 23:24:43 +01:00
|
|
|
|
PR rtl-optimization/88846
|
2019-01-25 23:13:43 +01:00
|
|
|
|
* 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 18:09:33 +01:00
|
|
|
|
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 17:57:32 +01:00
|
|
|
|
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 14:36:37 +01:00
|
|
|
|
2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
|
|
|
|
|
|
|
|
|
|
* doc/sourcebuild.texi (Environment attributes): Add fenv and
|
|
|
|
|
fenv_exceptions description.
|
|
|
|
|
|
2019-01-25 14:29:06 +01:00
|
|
|
|
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 13:46:24 +01:00
|
|
|
|
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 13:26:49 +01:00
|
|
|
|
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 09:13:34 +01:00
|
|
|
|
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.
|
|
|
|
|
|
altivec.md (build_vector_mask_for_load): Use MEM_P.
* 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.
From-SVN: r268253
2019-01-24 23:48:06 +01:00
|
|
|
|
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 21:48:01 +01:00
|
|
|
|
2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
2019-01-24 21:51:25 +01:00
|
|
|
|
PR rtl-optimization/88948
|
2019-01-24 21:48:01 +01:00
|
|
|
|
* 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 20:14:51 +01:00
|
|
|
|
2019-01-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-01-24 21:20:47 +01:00
|
|
|
|
PR debug/89006
|
|
|
|
|
* config/i386/i386.c (ix86_pic_register_p): Return true for
|
|
|
|
|
UNSPEC_SET_GOT too.
|
|
|
|
|
|
2019-01-24 20:49:09 +01:00
|
|
|
|
PR tree-optimization/88964
|
|
|
|
|
* gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
|
|
|
|
|
punt if HONOR_SNANS (chrec).
|
|
|
|
|
|
2019-01-24 20:17:13 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-01-24 20:14:51 +01:00
|
|
|
|
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 17:06:34 +01:00
|
|
|
|
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 13:36:14 +01:00
|
|
|
|
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 09:27:39 +01:00
|
|
|
|
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 03:18:16 +01:00
|
|
|
|
2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
|
|
|
|
|
|
2019-01-25 17:20:40 +01:00
|
|
|
|
* tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
|
|
|
|
|
* vr-values.c (find_case_label_ranges): Fix a comment typo.
|
2019-01-24 03:18:16 +01:00
|
|
|
|
|
2019-01-23 23:43:42 +01:00
|
|
|
|
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 20:10:58 +01:00
|
|
|
|
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 17:36:46 +01:00
|
|
|
|
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 15:41:16 +01:00
|
|
|
|
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 15:02:13 +01:00
|
|
|
|
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 14:34:35 +01:00
|
|
|
|
2019-01-23 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* BASE-VER: Bump to 9.0.1.
|
|
|
|
|
|
2019-01-23 12:07:56 +01:00
|
|
|
|
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 12:04:19 +01:00
|
|
|
|
2019-01-23 Vineet Gupta <vgupta@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* config/arc/atomic.md: Add operand to DMB instruction.
|
|
|
|
|
|
2019-01-23 09:35:38 +01:00
|
|
|
|
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-23 00:29:39 +01:00
|
|
|
|
2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
|
|
|
|
|
|
2019-01-22 23:27:32 +01:00
|
|
|
|
2019-01-22 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-01-22 23:30:44 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-01-22 23:28:42 +01:00
|
|
|
|
PR middle-end/88968
|
|
|
|
|
* gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
|
|
|
|
|
non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
|
|
|
|
|
|
2019-01-22 23:27:32 +01:00
|
|
|
|
PR target/87064
|
|
|
|
|
* config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
|
|
|
|
|
Disable for little endian.
|
|
|
|
|
|
2019-01-22 18:56:02 +01:00
|
|
|
|
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 17:20:25 +01:00
|
|
|
|
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 15:53:41 +01:00
|
|
|
|
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 15:03:22 +01:00
|
|
|
|
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 12:28:56 +01:00
|
|
|
|
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 11:51:22 +01:00
|
|
|
|
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 11:20:00 +01:00
|
|
|
|
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 10:10:25 +01:00
|
|
|
|
2019-01-22 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-01-22 10:58:23 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-01-22 10:12:31 +01:00
|
|
|
|
PR rtl-optimization/88904
|
|
|
|
|
* cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
|
|
|
|
|
any nonequal registers before processing BB_END (b).
|
|
|
|
|
|
2019-01-22 10:11:35 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-01-22 10:10:25 +01:00
|
|
|
|
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 09:30:51 +01:00
|
|
|
|
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.
|
|
|
|
|
|
[RS6000] PR88614, output_operand: invalid %z value
The direct cause of this PR is the fact that tls_gdld_nomark didn't
handle indirect calls. Also, most indirect calls were being optimised
back to direct calls anyway, due to tls_gdld_nomark not checking any
of the parallel elements except the first (plus the extra element that
distinguishes this call from normal calls). There were other unwanted
substitutions too.
So this patch attacks the problem of handling special calls in a
different way. Rather than adding another element to the call insn
parallel to distinguish -mno-tls-markers __tls_get_addr calls from any
other calls, we now inspect the second CALL arg. Each
call_value_nonlocal and call_value_indirect insn now checks for the
tlsgd/ld unspecs when !TARGET_TLS_MARKERS and emits the arg setup
insns. I disallow the local call patterns since we'll only see local
calls to __tls_get_addr in testcases, and it doesn't seem a good idea
to complicate the patterns just for a minor optimisation. Sibling
call insns aren't used for libcalls, so none of these insns need to
change.
The patch also fixes a minor problem with -mno-tls-markers
__tls_get_addr calls causing a "li 3,0" instruction to be emitted
prior to the arg setup instructions, due to using a libcall with one
arg. That isn't correct when the call insn itself sets up its arg.
Also, I've tidied the V4 secure-plt calls, generating them in
rs6000_call_sysv rather than by splitting in rs6000.md. The
CALL_INSN_FUNCTION_USAGE added in edit_tls_call_insn is no longer
needed (since git commit 0a4b5c66df9).
On the subject of unwanted substitutions, I also saw a
_GLOBAL_OFFSET_TABLE_ symbol_ref being substituted for the GOT reg,
resulting in code like "addi 3,_GLOBAL_OFFSET_TABLE_,tls_ld@got@tlsld".
Fixed by the unspec_tls change.
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.
From-SVN: r268135
2019-01-22 03:29:47 +01:00
|
|
|
|
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 21:14:40 +01:00
|
|
|
|
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 20:04:04 +01:00
|
|
|
|
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 18:12:09 +01:00
|
|
|
|
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 15:49:42 +01:00
|
|
|
|
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.
|
|
|
|
|
|
i386: Move Intel intrinsics head files to <immintrin.h>
According to Intel Intrinsics Guide:
https://software.intel.com/sites/landingpage/IntrinsicsGuide/
Intel intrinsics should be available by including <immintrin.h>. This
patch moves remaining Intel intrinsics head files from <x86intrin.h> to
<immintrin.h>.
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.
From-SVN: r268113
2019-01-21 13:23:49 +01:00
|
|
|
|
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.
|
|
|
|
|
|
Limit AA walking in IPA summary generation
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.
From-SVN: r268107
2019-01-20 21:17:02 +01:00
|
|
|
|
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 18:28:29 +01:00
|
|
|
|
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 13:59:51 +01:00
|
|
|
|
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 19:01:56 +01:00
|
|
|
|
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 14:13:21 +01:00
|
|
|
|
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 12:49:56 +01:00
|
|
|
|
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 12:32:53 +01:00
|
|
|
|
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 11:32:40 +01:00
|
|
|
|
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 11:07:27 +01:00
|
|
|
|
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 10:20:41 +01:00
|
|
|
|
2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
|
|
|
|
|
|
|
|
|
|
PR target/85596
|
|
|
|
|
* doc/install.texi (with-multilib-list): Document for aarch64.
|
|
|
|
|
|
2019-01-18 10:15:36 +01:00
|
|
|
|
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 09:38:06 +01:00
|
|
|
|
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 08:41:05 +01:00
|
|
|
|
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-18 00:34:42 +01:00
|
|
|
|
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 23:52:47 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-01-17 20:06:37 +01:00
|
|
|
|
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 17:33:55 +01:00
|
|
|
|
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 13:37:57 +01:00
|
|
|
|
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 13:36:49 +01:00
|
|
|
|
2019-01-17 Andrew Stubbs <ams@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* doc/sourcebuild.texi: Document dg-require-effective-target
|
|
|
|
|
llvm_binutils and offload_gcn.
|
|
|
|
|
|
2019-01-17 13:35:28 +01:00
|
|
|
|
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 13:34:28 +01:00
|
|
|
|
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 13:33:19 +01:00
|
|
|
|
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 13:31:28 +01:00
|
|
|
|
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 13:12:58 +01:00
|
|
|
|
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 13:06:04 +01:00
|
|
|
|
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 11:08:55 +01:00
|
|
|
|
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 10:54:56 +01:00
|
|
|
|
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 10:34:00 +01:00
|
|
|
|
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 09:51:01 +01:00
|
|
|
|
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 09:45:00 +01:00
|
|
|
|
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 09:04:28 +01:00
|
|
|
|
2019-01-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-01-17 09:05:12 +01:00
|
|
|
|
PR tree-optimization/86214
|
|
|
|
|
* cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
|
|
|
|
|
if x == y.
|
|
|
|
|
|
2019-01-17 09:04:28 +01:00
|
|
|
|
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 08:49:24 +01:00
|
|
|
|
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.
|
|
|
|
|
|
Fix ICE due to "combine" creating unreachable EH blocks (PR target/88861)
PR target/88861 reports an ICE in "ce2" due to an unreachable
basic block.
The block becomes unreachable in "combine" when delete_noop_moves
deletes an insn with a REG_EH_REGION, deleting the EH edge, the
only edge leading to the basic block.
Normally, rest_of_handle_combine would call cleanup_cfg, deleting
unreachable blocks, if combine_instructions returns true, and
combine_instructions does return true for some cases of edge-removal,
but it doesn't for this case, leading to the ICE.
This patch updates delete_noop_moves so that it returns true if
it deletes any edges, and passes that through to combine_instructions,
so that it too will return true if any edges were deleted, ensuring that
cleanup_cfg will be called by rest_of_handle_combine for this case,
deleting the now-unreachable block, and fixing the ICE.
gcc/ChangeLog:
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.
gcc/testsuite/ChangeLog:
PR target/88861
* g++.dg/torture/pr88861.C: New test.
From-SVN: r267984
2019-01-16 21:13:23 +01:00
|
|
|
|
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 19:29:00 +01:00
|
|
|
|
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 16:33:34 +01:00
|
|
|
|
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 16:22:08 +01:00
|
|
|
|
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 12:25:10 +01:00
|
|
|
|
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 10:38:21 +01:00
|
|
|
|
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-16 00:54:37 +01:00
|
|
|
|
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-16 00:29:15 +01:00
|
|
|
|
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 17:46:54 +01:00
|
|
|
|
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 17:06:42 +01:00
|
|
|
|
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 16:37:29 +01:00
|
|
|
|
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 11:11:16 +01:00
|
|
|
|
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 10:37:22 +01:00
|
|
|
|
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 09:11:00 +01:00
|
|
|
|
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-15 04:49:45 +01:00
|
|
|
|
2019-01-14 Andi Kleen <ak@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in: Lower autofdo sampling rate by 10x.
|
|
|
|
|
* Makefile.tpl: Dito.
|
|
|
|
|
|
2019-01-14 20:55:51 +01:00
|
|
|
|
2019-01-14 Tom Honermann <tom@honermann.net>
|
|
|
|
|
|
|
|
|
|
* defaults.h: Define CHAR8_TYPE.
|
|
|
|
|
|
2019-01-14 19:44:00 +01:00
|
|
|
|
2019-01-14 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/88638
|
|
|
|
|
* doc/extend.texi (Darwin Format Checks): Clarify.
|
|
|
|
|
|
2019-01-14 14:11:43 +01:00
|
|
|
|
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 13:01:01 +01:00
|
|
|
|
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 23:19:15 +01:00
|
|
|
|
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 23:17:42 +01:00
|
|
|
|
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 22:17:56 +01:00
|
|
|
|
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-12 19:18:23 +01:00
|
|
|
|
2019-01-05 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
|
|
|
|
|
* params.def (inline-unit-growth): Set to 40.
|
|
|
|
|
|
2019-01-12 17:55:45 +01:00
|
|
|
|
2019-01-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
|
|
|
|
|
|
2019-01-12 11:27:34 +01:00
|
|
|
|
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 11:27:23 +01:00
|
|
|
|
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 11:27:12 +01:00
|
|
|
|
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 11:27:00 +01:00
|
|
|
|
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 22:03:53 +01:00
|
|
|
|
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 20:25:31 +01:00
|
|
|
|
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 20:04:32 +01:00
|
|
|
|
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 19:44:00 +01:00
|
|
|
|
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 18:01:25 +01:00
|
|
|
|
2019-01-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
|
|
|
|
|
|
2019-01-11 17:50:17 +01:00
|
|
|
|
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 16:53:02 +01:00
|
|
|
|
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 13:05:54 +01:00
|
|
|
|
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.
|
|
|
|
|
|
[nvptx] Don't allow vector_length 64 with num_workers 16
When using a compiler build with:
...
+#define PTX_DEFAULT_VECTOR_LENGTH PTX_CTA_SIZE
...
consider a test-case:
...
int
main (void)
{
#pragma acc parallel vector_length (64)
#pragma acc loop worker
for (unsigned int i = 0; i < 32; i++)
#pragma acc loop vector
for (unsigned int j = 0; j < 64; j++)
;
return 0;
}
...
If num_workers is 16, either because:
- we add a "num_workers (16)" clause on the parallel directive, or
- we set "GOMP_OPENACC_DIM=:16:", or
- the libgomp plugin chooses 16 num_workers
we run into an illegal instruction at runtime, because a bar.sync instruction
tries to use a barrier 16. The instruction is illegal, because ptx supports
only 16 barriers per CTA, and the valid range is 0..15.
The problem is that with a warp-multiple vector length, we use a code generation
scheme with a per-worker barrier. And because barrier zero is reserved for
per-cta barrier, only the remaining 15 barriers can be used as per-worker
barrier, and consequently we can't use num_workers larger than 15.
This problem occurs only for vector_length 64. For vector_length 32, we use a
different code generation scheme, and for vector_length >= 96, the maximum
num_workers is not big enough not to trigger this problem.
Also, this problem only occurs for num_workers 16. As explained above,
num_workers 15 is safe to use, and 16 is already the maximum num_workers for
vector_length 64.
This patch fixes the problem in both the compiler (handling "num_workers (16)")
and in the libgomp nvptx plugin (with and without "GOMP_OPENACC_DIM=:16:").
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.
* plugin/plugin-nvptx.c (nvptx_exec): Prevent vector_length 64 and
num_workers 16.
From-SVN: r267838
2019-01-11 12:46:43 +01:00
|
|
|
|
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 12:46:31 +01:00
|
|
|
|
2019-01-11 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
|
|
|
|
|
|
2019-01-11 12:20:40 +01:00
|
|
|
|
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-11 00:20:19 +01:00
|
|
|
|
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 23:28:00 +01:00
|
|
|
|
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 22:02:50 +01:00
|
|
|
|
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 19:58:08 +01:00
|
|
|
|
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 16:44:16 +01:00
|
|
|
|
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 12:36:42 +01:00
|
|
|
|
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 11:44:46 +01:00
|
|
|
|
2019-01-10 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/88568
|
|
|
|
|
* attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
|
|
|
|
|
DECL_EXTERNAL.
|
|
|
|
|
|
arm-builtins.c (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
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.
gcc/testsuite/ChangeLog:
2019-01-10 Tamar Christina <tamar.christina@arm.com>
* gcc.target/aarch64/advsimd-intrinsics/vector-complex.c: Add AArch32 regexpr.
* gcc.target/aarch64/advsimd-intrinsics/vector-complex_f16.c: Likewise.
From-SVN: r267796
2019-01-10 04:34:06 +01:00
|
|
|
|
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.
|
|
|
|
|
|
aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
gcc/ChangeLog:
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.
gcc/testsuite/ChangeLog:
2019-01-10 Tamar Christina <tamar.christina@arm.com>
* gcc.target/aarch64/advsimd-intrinsics/vector-complex.c: New test.
* gcc.target/aarch64/advsimd-intrinsics/vector-complex_f16.c: New test.
From-SVN: r267795
2019-01-10 04:30:59 +01:00
|
|
|
|
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 22:44:56 +01:00
|
|
|
|
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 22:37:45 +01:00
|
|
|
|
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 20:16:02 +01:00
|
|
|
|
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 15:47:32 +01:00
|
|
|
|
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 15:34:20 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-01-09 15:32:06 +01:00
|
|
|
|
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.
|
|
|
|
|
|
[AArch64, 5/6] Enable BTI : Add new pass for BTI.
This patch is part of a series that enables ARMv8.5-A in GCC and
adds Branch Target Identification Mechanism.
This patch adds a new pass called "bti" which is triggered by the command
line argument -mbranch-protection whenever "bti" is turned on.
The pass iterates through the instructions and adds appropriated BTI
instructions based on the following:
* Add a new "BTI C" at the beginning of a function, unless its already
protected by a "PACIASP". We exempt the functions that are only called
directly.
* Add a new "BTI J" for every target of an indirect jump, jump table
targets, non-local goto targets or labels that might be referenced by
variables, constant pools, etc (NOTE_INSN_DELETED_LABEL).
Since we have already changed the use of indirect tail calls to only x16 and
x17, we do not have to use "BTI JC".
(check patch 3/6).
*** gcc/ChangeLog ***
2018-01-09 Sudakshina Das <sudi.das@arm.com>
Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
* gcc/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.
*** gcc/testsuite/ChangeLog ***
2018-01-09 Sudakshina Das <sudi.das@arm.com>
* gcc.target/aarch64/bti-1.c: New test.
* gcc.target/aarch64/bti-2.c: New test.
* gcc.target/aarch64/bti-3.c: New test.
* lib/target-supports.exp
(check_effective_target_aarch64_bti_hw): Add new check for BTI hw.
Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
From-SVN: r267769
2019-01-09 15:21:22 +01:00
|
|
|
|
2018-01-09 Sudakshina Das <sudi.das@arm.com>
|
|
|
|
|
Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
|
|
|
|
|
|
|
|
|
* config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
|
2019-01-09 15:34:20 +01:00
|
|
|
|
* config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
|
[AArch64, 5/6] Enable BTI : Add new pass for BTI.
This patch is part of a series that enables ARMv8.5-A in GCC and
adds Branch Target Identification Mechanism.
This patch adds a new pass called "bti" which is triggered by the command
line argument -mbranch-protection whenever "bti" is turned on.
The pass iterates through the instructions and adds appropriated BTI
instructions based on the following:
* Add a new "BTI C" at the beginning of a function, unless its already
protected by a "PACIASP". We exempt the functions that are only called
directly.
* Add a new "BTI J" for every target of an indirect jump, jump table
targets, non-local goto targets or labels that might be referenced by
variables, constant pools, etc (NOTE_INSN_DELETED_LABEL).
Since we have already changed the use of indirect tail calls to only x16 and
x17, we do not have to use "BTI JC".
(check patch 3/6).
*** gcc/ChangeLog ***
2018-01-09 Sudakshina Das <sudi.das@arm.com>
Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
* gcc/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.
*** gcc/testsuite/ChangeLog ***
2018-01-09 Sudakshina Das <sudi.das@arm.com>
* gcc.target/aarch64/bti-1.c: New test.
* gcc.target/aarch64/bti-2.c: New test.
* gcc.target/aarch64/bti-3.c: New test.
* lib/target-supports.exp
(check_effective_target_aarch64_bti_hw): Add new check for BTI hw.
Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
From-SVN: r267769
2019-01-09 15:21:22 +01:00
|
|
|
|
* 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.
|
|
|
|
|
|
2019-01-09 15:14:28 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-01-09 15:10:58 +01:00
|
|
|
|
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.
|
|
|
|
|
|
[AArch64, 2/6] Add new arch command line feaures from ARMv8.5-A
This patch is part of a series that enables ARMv8.5-A in GCC and
adds Branch Target Identification Mechanism.
This patch add all the command line feature that are added by ARMv8.5.
Optional extensions to armv8.5-a:
+rng : Random number Generation Instructions.
+memtag : Memory Tagging Extension.
ARMv8.5-A features that are optional to older arch:
+sb : Speculation barrier instruction.
+ssbs: Speculative Store Bypass Safe instruction.
+predres: Execution and Data Prediction Restriction instructions.
All of the above only effect the assembler and have already gone in the
trunk of binutils.
*** gcc/ChangeLog ***
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.
* gcc/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.
* gcc/doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
From-SVN: r267766
2019-01-09 15:08:01 +01:00
|
|
|
|
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.
|
2019-01-29 22:09:41 +01:00
|
|
|
|
* config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
|
[AArch64, 2/6] Add new arch command line feaures from ARMv8.5-A
This patch is part of a series that enables ARMv8.5-A in GCC and
adds Branch Target Identification Mechanism.
This patch add all the command line feature that are added by ARMv8.5.
Optional extensions to armv8.5-a:
+rng : Random number Generation Instructions.
+memtag : Memory Tagging Extension.
ARMv8.5-A features that are optional to older arch:
+sb : Speculation barrier instruction.
+ssbs: Speculative Store Bypass Safe instruction.
+predres: Execution and Data Prediction Restriction instructions.
All of the above only effect the assembler and have already gone in the
trunk of binutils.
*** gcc/ChangeLog ***
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.
* gcc/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.
* gcc/doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
From-SVN: r267766
2019-01-09 15:08:01 +01:00
|
|
|
|
(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.
|
2019-01-29 22:09:41 +01:00
|
|
|
|
* doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
|
[AArch64, 2/6] Add new arch command line feaures from ARMv8.5-A
This patch is part of a series that enables ARMv8.5-A in GCC and
adds Branch Target Identification Mechanism.
This patch add all the command line feature that are added by ARMv8.5.
Optional extensions to armv8.5-a:
+rng : Random number Generation Instructions.
+memtag : Memory Tagging Extension.
ARMv8.5-A features that are optional to older arch:
+sb : Speculation barrier instruction.
+ssbs: Speculative Store Bypass Safe instruction.
+predres: Execution and Data Prediction Restriction instructions.
All of the above only effect the assembler and have already gone in the
trunk of binutils.
*** gcc/ChangeLog ***
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.
* gcc/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.
* gcc/doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
From-SVN: r267766
2019-01-09 15:08:01 +01:00
|
|
|
|
|
2019-01-09 15:05:55 +01:00
|
|
|
|
2018-01-09 Sudakshina Das <sudi.das@arm.com>
|
|
|
|
|
|
|
|
|
|
* config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
|
|
|
|
|
ARMv8.5-A.
|
2019-01-29 22:09:41 +01:00
|
|
|
|
* config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
|
2019-01-09 15:05:55 +01:00
|
|
|
|
(AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
|
2019-01-29 22:09:41 +01:00
|
|
|
|
* doc/invoke.texi: Document ARMv8.5-A.
|
2019-01-09 15:05:55 +01:00
|
|
|
|
|
2019-01-09 14:57:06 +01:00
|
|
|
|
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 11:24:43 +01:00
|
|
|
|
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.
|
2019-01-09 11:16:10 +01:00
|
|
|
|
|
|
|
|
|
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 09:25:14 +01:00
|
|
|
|
2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi (-Os): Remove trailing spaces.
|
|
|
|
|
(-finline-functions): Remove reference to -O2.
|
|
|
|
|
|
2019-01-08 22:35:38 +01:00
|
|
|
|
2019-01-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-01-08 23:29:56 +01:00
|
|
|
|
PR rtl-optimization/79593
|
|
|
|
|
* config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
|
|
|
|
|
|
2019-01-08 22:35:38 +01:00
|
|
|
|
* config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
|
|
|
|
|
UNSPEC_FUSION_GPR to its argument. Formatting fixes.
|
|
|
|
|
|
2019-01-08 20:09:52 +01:00
|
|
|
|
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 18:40:18 +01:00
|
|
|
|
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 15:45:28 +01:00
|
|
|
|
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 14:05:47 +01:00
|
|
|
|
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.
|
|
|
|
|
|
[PATCH 2/3][GCC][AARCH64] Add new -mbranch-protection option to combine pointer signing and BTI
gcc/ChangeLog:
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.
gcc/testsuite/Changelog:
2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
* gcc.target/aarch64/(return_address_sign_1.c,
return_address_sign_2.c, return_address_sign_3.c (__attribute__)):
Change option to -mbranch-protection.
* gcc.target/aarch64/(branch-protection-option.c,
branch-protection-option-2.c, branch-protection-attr.c,
branch-protection-attr-2.c): New file.
From-SVN: r267717
2019-01-08 11:31:11 +01:00
|
|
|
|
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.
|
|
|
|
|
|
genattrtab bit-rot, and if_then_else in values
This patch started off just by adding if_then_else support in
write_attr_value to be able to write a saner expression for powerpc
tls_gdld_nomark length. Then I noticed bit-rot in functions used to
calculate insn_default_length, insn_min_length, and length_unit_log
(which are used by the shorten_branches pass). These functions
don't handle a const_int length value and return an "unknown" status
that isn't used, or in the case of or_attr_value, doesn't need to be
used. min_attr_value also attempts to return INT_MAX for the
unhandled rtl case, but this can get lost in recursive calls. I fixed
that problem by returning INT_MIN instead, and translating that to
INT_MAX in the only caller of min_attr_value.
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.
From-SVN: r267666
2019-01-07 23:54:40 +01:00
|
|
|
|
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 19:53:44 +01:00
|
|
|
|
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 17:00:52 +01:00
|
|
|
|
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 15:49:00 +01:00
|
|
|
|
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 15:34:06 +01:00
|
|
|
|
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 13:17:10 +01:00
|
|
|
|
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.
|
|
|
|
|
|
[1/2] PR88598: Optimise x * { 0 or 1, 0 or 1, ... }
The PR has:
vect__6.24_42 = vect__5.23_41 * { 0.0, 1.0e+0, 0.0, 0.0 };
which for -fno-signed-zeros -fno-signaling-nans can be simplified to:
vect__6.24_42 = vect__5.23_41 & { 0, -1, 0, 0 };
I deliberately didn't handle COMPLEX_CST or CONSTRUCTOR in
initializer_each_zero_or_onep since there are no current use cases.
The patch also makes (un)signed_type_for handle floating-point types.
I tried to audit all callers and the few that handle null returns would
be unaffected.
2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
gcc/
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, ... }.
gcc/testsuite/
PR tree-optimization/88598
* gcc.dg/pr88598-1.c: New test.
* gcc.dg/pr88598-2.c: Likewise.
* gcc.dg/pr88598-3.c: Likewise.
* gcc.dg/pr88598-4.c: Likewise.
* gcc.dg/pr88598-5.c: Likewise.
From-SVN: r267645
2019-01-07 13:16:30 +01:00
|
|
|
|
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 11:32:30 +01:00
|
|
|
|
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 11:01:49 +01:00
|
|
|
|
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 09:49:08 +01:00
|
|
|
|
2019-01-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-01-07 10:52:29 +01:00
|
|
|
|
* 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.
|
|
|
|
|
|
2019-01-07 10:51:46 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-01-07 09:51:59 +01:00
|
|
|
|
PR tree-optimization/88676
|
|
|
|
|
* tree-ssa-phiopt.c (two_value_replacement): New function.
|
|
|
|
|
(tree_ssa_phiopt_worker): Call it.
|
|
|
|
|
|
2019-01-07 09:50:57 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-01-07 09:49:08 +01:00
|
|
|
|
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 09:11:06 +01:00
|
|
|
|
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 09:10:56 +01:00
|
|
|
|
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 09:10:47 +01:00
|
|
|
|
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 09:10:37 +01:00
|
|
|
|
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 09:10:17 +01:00
|
|
|
|
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 09:10:08 +01:00
|
|
|
|
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 09:09:58 +01:00
|
|
|
|
2019-01-07 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
|
|
|
|
|
|
2019-01-07 09:09:40 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-01-07 08:31:19 +01:00
|
|
|
|
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-06 18:16:00 +01:00
|
|
|
|
2019-01-05 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
|
|
|
|
|
PR tree-opt/86020
|
|
|
|
|
Revert:
|
|
|
|
|
2017-05-22 Jan Hubicka <hubicka@ucw.cz>
|
2019-03-25 18:23:31 +01:00
|
|
|
|
|
2019-01-06 18:16:00 +01:00
|
|
|
|
* ipa-inline.c (edge_badness): Use inlined_time instead of
|
|
|
|
|
inline_summaries->get.
|
|
|
|
|
|
2019-01-06 17:44:51 +01:00
|
|
|
|
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 23:47:24 +01:00
|
|
|
|
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 19:16:55 +01:00
|
|
|
|
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 18:47:34 +01:00
|
|
|
|
2019-01-05 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
|
|
|
|
|
* ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
|
|
|
|
|
|
2019-01-05 12:12:35 +01:00
|
|
|
|
2019-01-05 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-01-05 12:14:12 +01:00
|
|
|
|
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.
|
|
|
|
|
|
2019-01-05 12:12:35 +01:00
|
|
|
|
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-05 01:20:04 +01:00
|
|
|
|
2019-01-04 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
|
|
|
|
|
* params.def (hot-bb-count-ws-permille): Set to 990.
|
|
|
|
|
|
2019-01-05 01:57:30 +01:00
|
|
|
|
2019-01-04 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/88546
|
|
|
|
|
* attribs.c (decls_mismatched_attributes): Avoid warning for attribute
|
|
|
|
|
leaf.
|
|
|
|
|
|
2019-01-04 23:48:45 +01:00
|
|
|
|
2019-01-04 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/88363
|
|
|
|
|
* doc/extend.texi (attribute alloc_align, alloc_size): Update.
|
|
|
|
|
|
2019-01-04 18:56:47 +01:00
|
|
|
|
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 10:00:05 +01:00
|
|
|
|
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 09:50:56 +01:00
|
|
|
|
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-04 04:13:33 +01:00
|
|
|
|
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 20:20:57 +01:00
|
|
|
|
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 16:08:36 +01:00
|
|
|
|
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 16:08:25 +01:00
|
|
|
|
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 16:08:15 +01:00
|
|
|
|
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 16:08:06 +01:00
|
|
|
|
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 13:23:27 +01:00
|
|
|
|
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 12:05:24 +01:00
|
|
|
|
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 11:19:03 +01:00
|
|
|
|
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 19:30:50 +01:00
|
|
|
|
2019-01-02 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
Jeff Law <law@redhat.com>
|
|
|
|
|
|
2019-01-03 00:59:51 +01:00
|
|
|
|
* 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.
|
2019-01-02 22:38:56 +01:00
|
|
|
|
|
|
|
|
|
* 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.
|
2019-01-04 04:13:33 +01:00
|
|
|
|
|
2019-01-02 19:30:50 +01:00
|
|
|
|
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-04 04:13:33 +01:00
|
|
|
|
|
2019-01-02 16:23:27 +01:00
|
|
|
|
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 15:03:53 +01:00
|
|
|
|
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 14:52:03 +01:00
|
|
|
|
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 13:19:10 +01:00
|
|
|
|
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 12:04:45 +01:00
|
|
|
|
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 09:49:07 +01:00
|
|
|
|
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 19:20:13 +01:00
|
|
|
|
2019-01-01 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
Jeff Law <law@redhat.com>
|
|
|
|
|
|
2019-01-02 07:17:54 +01:00
|
|
|
|
* 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.
|
|
|
|
|
|
2019-01-02 07:02:37 +01:00
|
|
|
|
* 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.
|
|
|
|
|
|
2019-01-01 19:20:13 +01:00
|
|
|
|
* 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 13:49:18 +01:00
|
|
|
|
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 12:34:49 +01:00
|
|
|
|
2019-01-01 Jakub Jelinek <jakub@redhat.com>
|
2018-01-03 10:17:54 +01:00
|
|
|
|
|
2019-01-01 13:31:55 +01:00
|
|
|
|
Update copyright years.
|
|
|
|
|
|
2018-01-03 10:17:54 +01:00
|
|
|
|
* 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.
|
ABOUT-GCC-NLS, [...]: Add copyright and license notices.
* ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
config/alpha/x-vms, config/arc/t-arc,
config/arm/README-interworking, config/arm/arm-c.c,
config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
config/cris/t-elfmulti, config/crx/t-crx,
config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
config/h8300/t-h8300, config/i386/athlon.md,
config/i386/darwin-libgcc.10.4.ver,
config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
config/i386/t-linux64, config/i386/t-nwld,
config/i386/t-rtems-i386, config/i386/t-sol2-10,
config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
config/iq2000/t-iq2000, config/libgcc-glibc.ver,
config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
config/m32r/t-m32r, config/m68hc11/t-m68hc11,
config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
config/m68k/t-uclinux, config/mcore/t-mcore,
config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
config/mips/crtn.asm, config/mips/irix-crti.asm,
config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
config/mips/mips-fixed.md, config/mips/sb1.md,
config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
config/mips/t-iris6, config/mips/t-isa3264,
config/mips/t-libgcc-mips16, config/mips/t-linux64,
config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
config/mn10300/t-linux, config/mn10300/t-mn10300,
config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
config/picochip/libgccExtras/clzsi2.asm,
config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
config/rs6000/darwin-libgcc.10.4.ver,
config/rs6000/darwin-libgcc.10.5.ver,
config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
config/rs6000/t-aix43, config/rs6000/t-aix52,
config/rs6000/t-darwin, config/rs6000/t-fprules,
config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
config/rs6000/t-lynx, config/rs6000/t-netbsd,
config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
config/rs6000/t-rtems, config/rs6000/t-spe,
config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
config/score/t-score-elf, config/sh/divcost-analysis,
config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
config/stormy16/stormy-abi, config/stormy16/t-stormy16,
config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
limitx.h, version.c, xcoff.h: Add copyright and license notices.
* config/h8300/genmova.sh: Include copyright and license notices
in generated output.
* config/h8300/mova.md: Regenerate.
* doc/install.texi2html: Include word "Copyright" in copyright
notice and use name "Free Software Foundation, Inc.".
* ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
ChangeLog-2007, ChangeLog-2008: Correct dates.
ada:
* ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and
license notices.
cp:
* ChangeLog, ChangeLog-1993, ChangeLog-1994, ChangeLog-1995,
ChangeLog-1996, ChangeLog-1997, ChangeLog-1998, ChangeLog-1999,
ChangeLog-2000, ChangeLog-2001, ChangeLog-2002, ChangeLog-2003,
ChangeLog-2004, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007,
ChangeLog-2008, ChangeLog.ptr, ChangeLog.tree-ssa, NEWS,
cfns.gperf: Add copyright and license notices.
* cfns.h: Regenerate.
* ChangeLog, ChangeLog-2004: Correct dates.
fortran:
* ChangeLog, ChangeLog-2002, ChangeLog-2003, ChangeLog-2004,
ChangeLog-2005, ChangeLog-2006, ChangeLog-2007, ChangeLog-2008,
ChangeLog.ptr, config-lang.in, ioparm.def, mathbuiltins.def: Add
copyright and license notices.
* ChangeLog, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007,
ChangeLog-2008: Correct dates.
java:
* ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and
license notices.
objc:
* ChangeLog: Add copyright and license notices.
objcp:
* ChangeLog: Add copyright and license notices.
po:
* ChangeLog, EXCLUDES: Add copyright and license notices.
testsuite:
* ChangeLog, ChangeLog-1993-2007, ChangeLog-2008, ChangeLog.ptr,
ChangeLog.tree-ssa, README, README.QMTEST, README.compat,
README.gcc, g++.dg/README, g++.dg/compat/break/README,
g++.dg/gomp/gomp.exp, g++.old-deja/g++.brendan/README,
g++.old-deja/g++.oliva/ChangeLog, g++.old-deja/g++.robertl/README,
gcc.c-torture/ChangeLog.0,
gcc.c-torture/execute/builtins/builtins.exp, gcc.dg/README,
gcc.dg/gomp/gomp.exp, gcc.target/frv/frv.exp,
gcc.target/i386/math-torture/math-torture.exp,
gcc.target/mips/inter/mips16-inter.exp,
gcc.target/mips/mips-nonpic/README,
gcc.target/x86_64/abi/README.gcc,
gcc.target/xstormy16/xstormy16.exp, gcc.test-framework/README,
gfortran.dg/g77/README, gfortran.dg/gomp/gomp.exp,
gfortran.fortran-torture/ChangeLog.g95: Add copyright and license
notices.
* ChangeLog-1993-2007, ChangeLog: Correct dates.
From-SVN: r146533
2009-04-21 21:03:23 +02:00
|
|
|
|
|
2019-01-01 12:34:49 +01:00
|
|
|
|
Copyright (C) 2019 Free Software Foundation, Inc.
|
ABOUT-GCC-NLS, [...]: Add copyright and license notices.
* ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
config/alpha/x-vms, config/arc/t-arc,
config/arm/README-interworking, config/arm/arm-c.c,
config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
config/cris/t-elfmulti, config/crx/t-crx,
config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
config/h8300/t-h8300, config/i386/athlon.md,
config/i386/darwin-libgcc.10.4.ver,
config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
config/i386/t-linux64, config/i386/t-nwld,
config/i386/t-rtems-i386, config/i386/t-sol2-10,
config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
config/iq2000/t-iq2000, config/libgcc-glibc.ver,
config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
config/m32r/t-m32r, config/m68hc11/t-m68hc11,
config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
config/m68k/t-uclinux, config/mcore/t-mcore,
config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
config/mips/crtn.asm, config/mips/irix-crti.asm,
config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
config/mips/mips-fixed.md, config/mips/sb1.md,
config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
config/mips/t-iris6, config/mips/t-isa3264,
config/mips/t-libgcc-mips16, config/mips/t-linux64,
config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
config/mn10300/t-linux, config/mn10300/t-mn10300,
config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
config/picochip/libgccExtras/clzsi2.asm,
config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
config/rs6000/darwin-libgcc.10.4.ver,
config/rs6000/darwin-libgcc.10.5.ver,
config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
config/rs6000/t-aix43, config/rs6000/t-aix52,
config/rs6000/t-darwin, config/rs6000/t-fprules,
config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
config/rs6000/t-lynx, config/rs6000/t-netbsd,
config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
config/rs6000/t-rtems, config/rs6000/t-spe,
config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
config/score/t-score-elf, config/sh/divcost-analysis,
config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
config/stormy16/stormy-abi, config/stormy16/t-stormy16,
config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
limitx.h, version.c, xcoff.h: Add copyright and license notices.
* config/h8300/genmova.sh: Include copyright and license notices
in generated output.
* config/h8300/mova.md: Regenerate.
* doc/install.texi2html: Include word "Copyright" in copyright
notice and use name "Free Software Foundation, Inc.".
* ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
ChangeLog-2007, ChangeLog-2008: Correct dates.
ada:
* ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and
license notices.
cp:
* ChangeLog, ChangeLog-1993, ChangeLog-1994, ChangeLog-1995,
ChangeLog-1996, ChangeLog-1997, ChangeLog-1998, ChangeLog-1999,
ChangeLog-2000, ChangeLog-2001, ChangeLog-2002, ChangeLog-2003,
ChangeLog-2004, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007,
ChangeLog-2008, ChangeLog.ptr, ChangeLog.tree-ssa, NEWS,
cfns.gperf: Add copyright and license notices.
* cfns.h: Regenerate.
* ChangeLog, ChangeLog-2004: Correct dates.
fortran:
* ChangeLog, ChangeLog-2002, ChangeLog-2003, ChangeLog-2004,
ChangeLog-2005, ChangeLog-2006, ChangeLog-2007, ChangeLog-2008,
ChangeLog.ptr, config-lang.in, ioparm.def, mathbuiltins.def: Add
copyright and license notices.
* ChangeLog, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007,
ChangeLog-2008: Correct dates.
java:
* ChangeLog, ChangeLog.ptr, ChangeLog.tree-ssa: Add copyright and
license notices.
objc:
* ChangeLog: Add copyright and license notices.
objcp:
* ChangeLog: Add copyright and license notices.
po:
* ChangeLog, EXCLUDES: Add copyright and license notices.
testsuite:
* ChangeLog, ChangeLog-1993-2007, ChangeLog-2008, ChangeLog.ptr,
ChangeLog.tree-ssa, README, README.QMTEST, README.compat,
README.gcc, g++.dg/README, g++.dg/compat/break/README,
g++.dg/gomp/gomp.exp, g++.old-deja/g++.brendan/README,
g++.old-deja/g++.oliva/ChangeLog, g++.old-deja/g++.robertl/README,
gcc.c-torture/ChangeLog.0,
gcc.c-torture/execute/builtins/builtins.exp, gcc.dg/README,
gcc.dg/gomp/gomp.exp, gcc.target/frv/frv.exp,
gcc.target/i386/math-torture/math-torture.exp,
gcc.target/mips/inter/mips16-inter.exp,
gcc.target/mips/mips-nonpic/README,
gcc.target/x86_64/abi/README.gcc,
gcc.target/xstormy16/xstormy16.exp, gcc.test-framework/README,
gfortran.dg/g77/README, gfortran.dg/gomp/gomp.exp,
gfortran.fortran-torture/ChangeLog.g95: Add copyright and license
notices.
* ChangeLog-1993-2007, ChangeLog: Correct dates.
From-SVN: r146533
2009-04-21 21:03:23 +02:00
|
|
|
|
|
2018-04-06 22:04:17 +02:00
|
|
|
|
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.
|