combine: Fix find_split_point handling of constant store into ZERO_EXTRACT [PR93908]
git is miscompiled on s390x-linux with -O2 -march=zEC12 -mtune=z13.
I've managed to reduce it into the following testcase. The problem is that
during combine we see the s->k = -1; bitfield store and change the SET_SRC
from a pseudo into a constant:
(set (zero_extract:DI (mem/j:HI (plus:DI (reg/v/f:DI 60 [ s ])
(const_int 10 [0xa])) [0 +0 S2 A16])
(const_int 2 [0x2])
(const_int 7 [0x7]))
(const_int -1 [0xffffffffffffffff]))
This on s390x with the above option isn't recognized as valid instruction,
so find_split_point decides to handle it as IOR or IOR/AND.
src is -1, mask is 3 and pos is 7.
src != mask (this is also incorrect, we want to set all (both) bits in the
bitfield), so we go for IOR/AND, but instead of trying
mem = (mem & ~0x180) | ((-1 << 7) & 0x180)
we actually try
mem = (mem & ~0x180) | (-1 << 7)
and that is further simplified into:
mem = mem | (-1 << 7)
aka
mem = mem | 0xff80
which doesn't set just the 2-bit bitfield, but also many other bitfields
that shouldn't be touched.
We really should do:
mem = mem | 0x180
instead.
The problem is that we assume that no bits but those low len (2 here) will
be set in the SET_SRC, but there is nothing that can prevent that, we just
should ignore the other bits.
The following patch fixes it by masking src with mask, this way already
the src == mask test will DTRT, and as the code for or_mask uses
gen_int_mode, if the most significant bit is set after shifting it left by
pos, it will be properly sign-extended.
2020-02-25 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/93908
* combine.c (find_split_point): For store into ZERO_EXTRACT, and src
with mask.
* gcc.c-torture/execute/pr93908.c: New test.
2020-02-25 13:56:47 +01:00
|
|
|
|
2020-02-25 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/93908
|
|
|
|
|
* combine.c (find_split_point): For store into ZERO_EXTRACT, and src
|
|
|
|
|
with mask.
|
|
|
|
|
|
2020-02-25 12:34:00 +01:00
|
|
|
|
2019-02-25 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode.
|
|
|
|
|
|
2020-02-25 12:32:42 +01:00
|
|
|
|
2020-02-25 Roman Zhuykov <zhroma@ispras.ru>
|
|
|
|
|
|
|
|
|
|
Backport from master
|
|
|
|
|
2020-02-24 Roman Zhuykov <zhroma@ispras.ru>
|
|
|
|
|
|
|
|
|
|
* doc/install.texi (--enable-checking): Properly document current
|
|
|
|
|
behavior.
|
|
|
|
|
(--enable-stage1-checking): Minor clarification about bootstrap.
|
|
|
|
|
|
2020-02-18 19:06:32 +01:00
|
|
|
|
2020-02-24 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2020-02-19 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/93767
|
|
|
|
|
* tree-vect-data-refs.c (vect_compile_time_alias): Remove the
|
|
|
|
|
access-size bias from the offset calculations for negative strides.
|
|
|
|
|
|
2020-02-17 17:40:07 +01:00
|
|
|
|
2020-02-24 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
|
|
|
|
|
|
|
|
|
* collect2.c (tool_cleanup): Avoid calling not signal-safe
|
|
|
|
|
functions.
|
|
|
|
|
(maybe_run_lto_and_relink): Avoid possible signal handler
|
|
|
|
|
access to unintialzed memory (lto_o_files).
|
|
|
|
|
|
2020-02-24 01:22:57 +01:00
|
|
|
|
2020-02-23 Peter Bergner <bergner@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
Backport from master
|
|
|
|
|
2020-02-20 Peter Bergner <bergner@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR target/93658
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX
|
|
|
|
|
vector modes.
|
|
|
|
|
|
2020-02-24 01:17:12 +01:00
|
|
|
|
2020-02-23 Peter Bergner <bergner@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
Backport from master
|
|
|
|
|
2020-02-05 Michael Meissner <meissner@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR target/93568
|
|
|
|
|
* config/rs6000/rs6000.c (get_vector_offset): Fix Q constraint assert
|
|
|
|
|
to use "mem".
|
|
|
|
|
|
|
|
|
|
Backport from master
|
|
|
|
|
2020-02-03 Michael Meissner <meissner@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000.c (get_vector_offset): New helper function
|
|
|
|
|
to calculate the offset in memory from the start of a vector of a
|
|
|
|
|
particular element. Add code to keep the element number in
|
|
|
|
|
bounds if the element number is variable.
|
|
|
|
|
(rs6000_adjust_vec_address): Move calculation of offset of the
|
|
|
|
|
vector element to get_vector_offset.
|
|
|
|
|
(rs6000_split_vec_extract_var): Do not do the initial AND of
|
|
|
|
|
element here, move the code to get_vector_offset.
|
|
|
|
|
|
2020-02-24 01:13:00 +01:00
|
|
|
|
2020-02-23 Peter Bergner <bergner@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
Backport from master
|
|
|
|
|
2020-01-06 Michael Meissner <meissner@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator):
|
|
|
|
|
Use 'Q' for doing vector extract from memory.
|
|
|
|
|
(vsx_extract_v4sf_var): Use 'Q' for doing vector extract from
|
|
|
|
|
memory.
|
|
|
|
|
(vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for
|
|
|
|
|
doing vector extract from memory.
|
|
|
|
|
(vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector
|
|
|
|
|
extract from memory.
|
|
|
|
|
|
2020-02-22 00:34:09 +01:00
|
|
|
|
2020-02-21 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* gcc/config/pa/pa.c (pa_function_value): Fix check for word and
|
|
|
|
|
double-word size when handling aggregate return values.
|
|
|
|
|
* gcc/config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Fix to indicate
|
|
|
|
|
that homogeneous SFmode and DFmode aggregates are passed and returned
|
|
|
|
|
in general registers.
|
|
|
|
|
|
2020-02-20 21:58:57 +01:00
|
|
|
|
2020-02-20 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR target/93828
|
|
|
|
|
* config/i386/mmx.md (*vec_extractv2sf_1): Match source operand
|
|
|
|
|
to destination operand for shufps alternative.
|
|
|
|
|
(*vec_extractv2si_1): Ditto.
|
|
|
|
|
|
2020-02-20 12:05:27 +01:00
|
|
|
|
2020-02-20 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
Backport from master
|
|
|
|
|
2020-02-13 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR target/93656
|
|
|
|
|
* config/i386/i386.c (ix86_trampoline_init): Skip ENDBR32 at
|
|
|
|
|
the target function entry.
|
|
|
|
|
|
2019-12-05 15:20:38 +01:00
|
|
|
|
2020-02-18 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-12-05 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/92768
|
|
|
|
|
* tree-core.h (OEP_BITWISE): New flag.
|
|
|
|
|
* fold-const.c (operand_compare::operand_equal_p): Handle it.
|
|
|
|
|
* tree-vector-builder.h (tree_vector_builder::equal_p): Pass it.
|
|
|
|
|
|
2019-08-09 11:37:55 +02:00
|
|
|
|
2020-02-18 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-08-09 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/90313
|
|
|
|
|
* tree-tailcall.c (find_tail_calls): Reject calls that might
|
|
|
|
|
read from an escaped RESULT_DECL.
|
|
|
|
|
|
2020-01-27 20:37:55 +01:00
|
|
|
|
2020-02-18 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2020-01-28 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/93434
|
|
|
|
|
* tree-predcom.c (split_data_refs_to_components): Record which
|
|
|
|
|
components have had aliasing loads removed. Prevent store-store
|
|
|
|
|
commoning for all such components.
|
|
|
|
|
|
2019-11-29 14:04:56 +01:00
|
|
|
|
2020-02-18 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-11-29 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/92710
|
|
|
|
|
* tree-vect-stmts.c (vectorizable_simd_clone_call): Reject
|
|
|
|
|
vector mask arguments.
|
|
|
|
|
|
2019-11-11 20:43:52 +01:00
|
|
|
|
2020-02-18 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-11-11 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/92420
|
|
|
|
|
* tree-vect-stmts.c (get_negative_load_store_type): Move further
|
|
|
|
|
up file.
|
|
|
|
|
(get_group_load_store_type): Use it for reversed SLP accesses.
|
|
|
|
|
|
2019-08-21 20:34:43 +02:00
|
|
|
|
2020-02-18 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-08-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
|
|
|
|
|
|
|
|
|
|
PR target/90724
|
|
|
|
|
* config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y
|
|
|
|
|
in reg if it fails aarch64_plus_operand predicate.
|
|
|
|
|
|
2020-02-17 01:55:17 +01:00
|
|
|
|
2020-02-14 Hongtao Liu <hongtao.liu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR target/93724
|
|
|
|
|
* config/i386/avx512vbmi2intrin.h
|
|
|
|
|
(_mm512_shrdi_epi16, _mm512_mask_shrdi_epi16,
|
|
|
|
|
_mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
|
|
|
|
|
_mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32,
|
|
|
|
|
_m512_shrdi_epi64, _m512_mask_shrdi_epi64,
|
|
|
|
|
_m512_maskz_shrdi_epi64, _mm512_shldi_epi16,
|
|
|
|
|
_mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16,
|
|
|
|
|
_mm512_shldi_epi32, _mm512_mask_shldi_epi32,
|
|
|
|
|
_mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
|
|
|
|
|
_mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): Fix typo
|
|
|
|
|
of lacking a closing parenthesis.
|
|
|
|
|
* config/i386/avx512vbmi2vlintrin.h
|
|
|
|
|
(_mm256_shrdi_epi16, _mm256_mask_shrdi_epi16,
|
|
|
|
|
_mm256_maskz_shrdi_epi16, _mm256_shrdi_epi32,
|
|
|
|
|
_mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32,
|
|
|
|
|
_m256_shrdi_epi64, _m256_mask_shrdi_epi64,
|
|
|
|
|
_m256_maskz_shrdi_epi64, _mm256_shldi_epi16,
|
|
|
|
|
_mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
|
|
|
|
|
_mm256_shldi_epi32, _mm256_mask_shldi_epi32,
|
|
|
|
|
_mm256_maskz_shldi_epi32, _mm256_shldi_epi64,
|
|
|
|
|
_mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64,
|
|
|
|
|
_mm_shrdi_epi16, _mm_mask_shrdi_epi16,
|
|
|
|
|
_mm_maskz_shrdi_epi16, _mm_shrdi_epi32,
|
|
|
|
|
_mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32,
|
|
|
|
|
_mm_shrdi_epi64, _mm_mask_shrdi_epi64,
|
|
|
|
|
_m_maskz_shrdi_epi64, _mm_shldi_epi16,
|
|
|
|
|
_mm_mask_shldi_epi16, _mm_maskz_shldi_epi16,
|
|
|
|
|
_mm_shldi_epi32, _mm_mask_shldi_epi32,
|
|
|
|
|
_mm_maskz_shldi_epi32, _mm_shldi_epi64,
|
|
|
|
|
_mm_mask_shldi_epi64, _mm_maskz_shldi_epi64): Ditto.
|
|
|
|
|
|
2020-02-16 23:43:22 +01:00
|
|
|
|
2020-02-16 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR target/93743
|
|
|
|
|
* config/i386/i386.md (atan2xf3): Swap operands 1 and 2.
|
|
|
|
|
(atan2<mode>3): Update operand order in the call to gen_atan2xf3.
|
|
|
|
|
|
match.pd: Disallow side-effects in GENERIC for non-COND_EXPR to COND_EXPR simplifications [PR93744]
As the following testcases show (the first one reported, last two
found by code inspection), we need to disallow side-effects
in simplifications that turn some unconditional expression into conditional
one. From my little understanding of genmatch.c, it is able to
automatically disallow side effects if the same operand is used multiple
times in the match pattern, maybe if it is used multiple times in the
replacement pattern, and if it is used in conditional contexts in the match
pattern, could it be taught to handle this case too? If yes, perhaps
just the first hunk could be usable for 8/9 backports (+ the testcases).
2020-02-15 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/93744
* match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0,
A - ((A - B) & -(C cmp D)) -> (C cmp D) ? B : A,
A + ((B - A) & -(C cmp D)) -> (C cmp D) ? B : A): For GENERIC, make
sure @2 in the first and @1 in the other patterns has no side-effects.
* gcc.c-torture/execute/pr93744-1.c: New test.
* gcc.c-torture/execute/pr93744-2.c: New test.
* gcc.c-torture/execute/pr93744-3.c: New test.
2020-02-15 12:53:44 +01:00
|
|
|
|
2020-02-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/93744
|
|
|
|
|
* match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0): For
|
|
|
|
|
GENERIC, make sure @2 in the first and @1 in the other patterns has no
|
|
|
|
|
side-effects.
|
|
|
|
|
|
2020-02-14 19:21:02 +01:00
|
|
|
|
2020-02-14 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
PR target/93704
|
|
|
|
|
* config/sparc/sparc.c (eligible_for_call_delay): Test HAVE_GNU_LD in
|
|
|
|
|
conjunction with TARGET_GNU_TLS in early return.
|
|
|
|
|
|
2020-02-14 14:51:21 +01:00
|
|
|
|
2020-02-14 Alexander Monakov <amonakov@ispras.ru>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
PR rtl-optimization/88879
|
|
|
|
|
* sel-sched.c (sel_target_adjust_priority): Remove assert.
|
|
|
|
|
|
2020-02-05 14:04:29 +01:00
|
|
|
|
2020-02-14 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2020-02-05 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR middle-end/90648
|
|
|
|
|
* genmatch.c (dt_node::gen_kids_1): Emit number of argument
|
|
|
|
|
checks before matching calls.
|
|
|
|
|
|
2020-01-22 12:38:12 +01:00
|
|
|
|
2020-02-14 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2020-01-22 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/93381
|
|
|
|
|
* tree-ssa-structalias.c (find_func_aliases): Assume offsetting
|
|
|
|
|
throughout, handle all conversions the same.
|
|
|
|
|
|
2020-02-14 09:23:06 +01:00
|
|
|
|
2020-02-14 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2020-01-28 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/93439
|
|
|
|
|
* tree-parloops.c (create_loop_fn): Move clique bookkeeping...
|
|
|
|
|
* tree-cfg.c (move_sese_region_to_fn): ... here.
|
|
|
|
|
(verify_types_in_gimple_reference): Verify used cliques are
|
|
|
|
|
tracked.
|
|
|
|
|
|
2020-02-14 09:19:40 +01:00
|
|
|
|
2020-02-14 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2020-01-09 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR middle-end/93054
|
|
|
|
|
* gimplify.c (gimplify_expr): Deal with NOP definitions.
|
|
|
|
|
|
2020-02-14 09:17:57 +01:00
|
|
|
|
2020-02-14 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2020-01-20 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR debug/92763
|
|
|
|
|
* dwarf2out.c (prune_unused_types): Unconditionally mark
|
|
|
|
|
called function DIEs.
|
|
|
|
|
|
2020-02-14 09:14:42 +01:00
|
|
|
|
2020-02-14 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-11-29 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/92704
|
|
|
|
|
* tree-if-conv.c (combine_blocks): Deal with virtual PHIs
|
|
|
|
|
in loops performing only loads.
|
|
|
|
|
|
2020-02-14 09:10:48 +01:00
|
|
|
|
2020-02-14 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-11-27 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR middle-end/92674
|
|
|
|
|
* tree-inline.c (expand_call_inline): Delay purging EH/abnormal
|
|
|
|
|
edges and instead record blocks in bitmap.
|
|
|
|
|
(gimple_expand_calls_inline): Adjust.
|
|
|
|
|
(fold_marked_statements): Delay EH cleanup until all folding is
|
|
|
|
|
done.
|
|
|
|
|
(optimize_inline_calls): Do EH/abnormal cleanup for calls after
|
|
|
|
|
inlining finished.
|
|
|
|
|
|
2020-01-23 20:08:22 +01:00
|
|
|
|
2020-02-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
i386: Fix up _mm*_mask_popcnt_epi* [PR93696]
As mentioned in the PR and as
https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mask_popcnt_epi
also documents, _mm*_popcnt_epi* intrinsics are consistent with all other
unary AVX512* intrinsics regarding arguments, i.e. the
_mm*_whatever has just single argument (called a in the docs, and __A in the
GCC headers),
_mm*_mask_whatever has 3 arguments (called src, k, a in the docs and
_W, __U, __A in GCC headers) and
_mm*_maskz_whatever 2 arguments (called k, a in the docs and __U, __A in GCC
headers). Unfortunately, whomever implemented the _mm*_popcnt_epi*
intrinsics got it wrong for the _mm*_mask_popcnt_epi* ones, calling the
args __A, __U, __B and not passing them in the canonical order to the
builtins, making it API incompatible with ICC as well as clang (tested on
godbolts clang 7/8/9/trunk and ICC 19.0.{0,1}, older clang/ICC don't
understand those, so it isn't that it used to be broken even in other
compilers and got changed afterwards).
2020-02-13 Jakub Jelinek <jakub@redhat.com>
PR target/93696
* config/i386/avx512bitalgintrin.h (_mm512_mask_popcnt_epi8,
_mm512_mask_popcnt_epi16, _mm256_mask_popcnt_epi8,
_mm256_mask_popcnt_epi16, _mm_mask_popcnt_epi8,
_mm_mask_popcnt_epi16): Rename __B argument to __A and __A to __W,
pass __A to the builtin followed by __W instead of __A followed by
__B.
* config/i386/avx512vpopcntdqintrin.h (_mm512_mask_popcnt_epi32,
_mm512_mask_popcnt_epi64): Likewise.
* config/i386/avx512vpopcntdqvlintrin.h (_mm_mask_popcnt_epi32,
_mm256_mask_popcnt_epi32, _mm_mask_popcnt_epi64,
_mm256_mask_popcnt_epi64): Likewise.
* gcc.target/i386/pr93696-1.c: New test.
* gcc.target/i386/pr93696-2.c: New test.
* gcc.target/i386/avx512bitalg-vpopcntw-1.c (TEST): Fix argument order
of _mm*_mask_popcnt_*.
* gcc.target/i386/avx512vpopcntdq-vpopcntq-1.c (TEST): Likewise.
* gcc.target/i386/avx512vpopcntdq-vpopcntd-1.c (TEST): Likewise.
* gcc.target/i386/avx512bitalg-vpopcntb-1.c (TEST): Likewise.
* gcc.target/i386/avx512bitalg-vpopcntb.c (foo): Likewise.
* gcc.target/i386/avx512bitalg-vpopcntbvl.c (foo): Likewise.
* gcc.target/i386/avx512vpopcntdq-vpopcntd.c (foo): Likewise.
* gcc.target/i386/avx512bitalg-vpopcntwvl.c (foo): Likewise.
* gcc.target/i386/avx512bitalg-vpopcntw.c (foo): Likewise.
* gcc.target/i386/avx512vpopcntdq-vpopcntq.c (foo): Likewise.
2020-02-13 10:43:27 +01:00
|
|
|
|
PR target/93696
|
|
|
|
|
* config/i386/avx512bitalgintrin.h (_mm512_mask_popcnt_epi8,
|
|
|
|
|
_mm512_mask_popcnt_epi16, _mm256_mask_popcnt_epi8,
|
|
|
|
|
_mm256_mask_popcnt_epi16, _mm_mask_popcnt_epi8,
|
|
|
|
|
_mm_mask_popcnt_epi16): Rename __B argument to __A and __A to __W,
|
|
|
|
|
pass __A to the builtin followed by __W instead of __A followed by
|
|
|
|
|
__B.
|
|
|
|
|
* config/i386/avx512vpopcntdqintrin.h (_mm512_mask_popcnt_epi32,
|
|
|
|
|
_mm512_mask_popcnt_epi64): Likewise.
|
|
|
|
|
* config/i386/avx512vpopcntdqvlintrin.h (_mm_mask_popcnt_epi32,
|
|
|
|
|
_mm256_mask_popcnt_epi32, _mm_mask_popcnt_epi64,
|
|
|
|
|
_mm256_mask_popcnt_epi64): Likewise.
|
|
|
|
|
|
2020-02-13 08:17:07 +01:00
|
|
|
|
PR target/93673
|
|
|
|
|
* config/i386/sse.md (k<code><mode>): Drop mode from last operand and
|
|
|
|
|
use const_0_to_255_operand predicate instead of immediate_operand.
|
|
|
|
|
(avx512dq_fpclass<mode><mask_scalar_merge_name>,
|
|
|
|
|
avx512dq_vmfpclass<mode><mask_scalar_merge_name>,
|
|
|
|
|
vgf2p8affineinvqb_<mode><mask_name>,
|
|
|
|
|
vgf2p8affineqb_<mode><mask_name>): Drop mode from
|
|
|
|
|
const_0_to_255_operand predicated operands.
|
|
|
|
|
|
2020-01-23 20:08:22 +01:00
|
|
|
|
Backported from mainline
|
i386: Fix up vec_extract_lo* patterns [PR93670]
The VEXTRACT* insns have way too many different CPUID feature flags (ATT
syntax)
vextractf128 $imm, %ymm, %xmm/mem AVX
vextracti128 $imm, %ymm, %xmm/mem AVX2
vextract{f,i}32x4 $imm, %ymm, %xmm/mem {k}{z} AVX512VL+AVX512F
vextract{f,i}32x4 $imm, %zmm, %xmm/mem {k}{z} AVX512F
vextract{f,i}64x2 $imm, %ymm, %xmm/mem {k}{z} AVX512VL+AVX512DQ
vextract{f,i}64x2 $imm, %zmm, %xmm/mem {k}{z} AVX512DQ
vextract{f,i}32x8 $imm, %zmm, %ymm/mem {k}{z} AVX512DQ
vextract{f,i}64x4 $imm, %zmm, %ymm/mem {k}{z} AVX512F
As the testcase shows and the patch too, we didn't get it right in all
cases.
The first hunk is about avx512vl_vextractf128v8s[if] incorrectly
requiring TARGET_AVX512DQ. The corresponding insn is the first
vextract{f,i}32x4 above, so it requires VL+F, and the builtins have it
correct (TARGET_AVX512VL implies TARGET_AVX512F):
BDESC (OPTION_MASK_ISA_AVX512VL, 0, CODE_FOR_avx512vl_vextractf128v8sf, "__builtin_ia32_extractf32x4_256_mask", IX86_BUILTIN_EXTRACTF32X4_256, UNKNOWN, (int) V4SF_FTYPE_V8SF_INT_V4SF_UQI)
BDESC (OPTION_MASK_ISA_AVX512VL, 0, CODE_FOR_avx512vl_vextractf128v8si, "__builtin_ia32_extracti32x4_256_mask", IX86_BUILTIN_EXTRACTI32X4_256, UNKNOWN, (int) V4SI_FTYPE_V8SI_INT_V4SI_UQI)
We only need TARGET_AVX512DQ for avx512vl_vextractf128v4d[if].
The second hunk is about vec_extract_lo_v16s[if]{,_mask}. These are using
the vextract{f,i}32x8 insns (AVX512DQ above), but we weren't requiring that,
but instead incorrectly && 1 for non-masked and && (64 == 64 && TARGET_AVX512VL)
for masked insns. This is extraction from ZMM, so it doesn't need VL for
anything. The hunk actually only requires TARGET_AVX512DQ when the insn
is masked, if it is not masked, when TARGET_AVX512DQ isn't available we can
use vextract{f,i}64x4 instead which is available already in TARGET_AVX512F
and does the same thing, extracts the low 256 bits from 512 bits vector
(often we split it into just nothing, but there are some special cases like
when using xmm16+ when we can't without AVX512VL).
The last hunk is about vec_extract_lo_v8s[if]{,_mask}. The non-_mask
suffixed ones are ok already and just split into nothing (lowpart subreg).
The masked ones were incorrectly requiring TARGET_AVX512VL and
TARGET_AVX512DQ, when we only need TARGET_AVX512VL.
2020-02-12 Jakub Jelinek <jakub@redhat.com>
PR target/93670
* config/i386/sse.md (VI48F_256_DQ): New mode iterator.
(avx512vl_vextractf128<mode>): Use it instead of VI48F_256. Remove
TARGET_AVX512DQ from condition.
(vec_extract_lo_<mode><mask_name>): Use <mask_avx512dq_condition>
instead of <mask_mode512bit_condition> in condition. If
TARGET_AVX512DQ is false, emit vextract*64x4 instead of
vextract*32x8.
(vec_extract_lo_<mode><mask_name>): Drop <mask_avx512dq_condition>
from condition.
* gcc.target/i386/avx512vl-pr93670.c: New test.
2020-02-12 11:58:35 +01:00
|
|
|
|
2020-02-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/93670
|
|
|
|
|
* config/i386/sse.md (VI48F_256_DQ): New mode iterator.
|
|
|
|
|
(avx512vl_vextractf128<mode>): Use it instead of VI48F_256. Remove
|
|
|
|
|
TARGET_AVX512DQ from condition.
|
|
|
|
|
(vec_extract_lo_<mode><mask_name>): Use <mask_avx512dq_condition>
|
|
|
|
|
instead of <mask_mode512bit_condition> in condition. If
|
|
|
|
|
TARGET_AVX512DQ is false, emit vextract*64x4 instead of
|
|
|
|
|
vextract*32x8.
|
|
|
|
|
(vec_extract_lo_<mode><mask_name>): Drop <mask_avx512dq_condition>
|
|
|
|
|
from condition.
|
|
|
|
|
|
2020-02-10 22:44:40 +01:00
|
|
|
|
2020-02-10 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/93637
|
|
|
|
|
* config/i386/sse.md (VI_256_AVX2): New mode iterator.
|
|
|
|
|
(vcond_mask_<mode><sseintvecmodelower>): Use it instead of VI_256.
|
|
|
|
|
Change condition from TARGET_AVX2 to TARGET_AVX.
|
|
|
|
|
|
i386: Make xmm16-xmm31 call used even in ms ABI [PR65782]
On Tue, Feb 04, 2020 at 11:16:06AM +0100, Uros Bizjak wrote:
> I guess that Comment #9 patch form the PR should be trivially correct,
> but althouhg it looks obvious, I don't want to propose the patch since
> I have no means of testing it.
I don't have means of testing it either.
https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention?view=vs-2019
is quite explicit that [xyz]mm16-31 are call clobbered and only xmm6-15 (low
128-bits only) are call preserved.
We are talking e.g. about
/* { dg-options "-O2 -mabi=ms -mavx512vl" } */
typedef double V __attribute__((vector_size (16)));
void foo (void);
V bar (void);
void baz (V);
void
qux (void)
{
V c;
{
register V a __asm ("xmm18");
V b = bar ();
asm ("" : "=x" (a) : "0" (b));
c = a;
}
foo ();
{
register V d __asm ("xmm18");
V e;
d = c;
asm ("" : "=x" (e) : "0" (d));
baz (e);
}
}
where according to the MSDN doc gcc incorrectly holds the c value
in xmm18 register across the foo call; if foo is compiled by some Microsoft
compiler (or LLVM), then it could clobber %xmm18.
If all xmm18 occurrences are changed to say xmm15, then it is valid to hold
the 128-bit value across the foo call (though, surprisingly, LLVM saves it
into stack anyway).
The other parts are I guess mainly about SEH. Consider e.g.
void
foo (void)
{
register double x __asm ("xmm14");
register double y __asm ("xmm18");
asm ("" : "=x" (x));
asm ("" : "=v" (y));
x += y;
y += x;
asm ("" : : "x" (x));
asm ("" : : "v" (y));
}
looking at cross-compiler output, with -O2 -mavx512f this emits
.file "abcdeq.c"
.text
.align 16
.globl foo
.def foo; .scl 2; .type 32; .endef
.seh_proc foo
foo:
subq $40, %rsp
.seh_stackalloc 40
vmovaps %xmm14, (%rsp)
.seh_savexmm %xmm14, 0
vmovaps %xmm18, 16(%rsp)
.seh_savexmm %xmm18, 16
.seh_endprologue
vaddsd %xmm18, %xmm14, %xmm14
vaddsd %xmm18, %xmm14, %xmm18
vmovaps (%rsp), %xmm14
vmovaps 16(%rsp), %xmm18
addq $40, %rsp
ret
.seh_endproc
.ident "GCC: (GNU) 10.0.1 20200207 (experimental)"
Does whatever assembler mingw64 uses even assemble this (I mean the
.seh_savexmm %xmm16, 16 could be problematic)?
I can find e.g.
https://stackoverflow.com/questions/43152633/invalid-register-for-seh-savexmm-in-cygwin/43210527
which then links to
https://gcc.gnu.org/PR65782
2020-02-08 Uroš Bizjak <ubizjak@gmail.com>
Jakub Jelinek <jakub@redhat.com>
PR target/65782
* config/i386/i386.h (CALL_USED_REGISTERS): Make
xmm16-xmm31 call-used even in 64-bit ms-abi.
* gcc.target/i386/pr65782.c: New test.
Co-authored-by: Uroš Bizjak <ubizjak@gmail.com>
2020-02-08 10:59:40 +01:00
|
|
|
|
2020-02-08 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/65782
|
|
|
|
|
* config/i386/i386.h (CALL_USED_REGISTERS): Make
|
|
|
|
|
xmm16-xmm31 call-used even in 64-bit ms-abi.
|
|
|
|
|
|
2020-02-06 09:15:13 +01:00
|
|
|
|
2020-02-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2020-02-06 09:19:08 +01:00
|
|
|
|
PR libgomp/93515
|
|
|
|
|
* omp-low.c (use_pointer_for_field): For nested constructs, also
|
|
|
|
|
look for map clauses on target construct.
|
|
|
|
|
(scan_omp_1_stmt) <case GIMPLE_OMP_TARGET>: Bump temporarily
|
|
|
|
|
taskreg_nesting_level.
|
|
|
|
|
|
2020-02-06 09:15:13 +01:00
|
|
|
|
PR libgomp/93515
|
|
|
|
|
* gimplify.c (gimplify_scan_omp_clauses) <do_notice>: If adding
|
|
|
|
|
shared clause, call omp_notice_variable on outer context if any.
|
|
|
|
|
|
2020-02-05 11:32:37 +01:00
|
|
|
|
2020-02-05 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/93555
|
|
|
|
|
* omp-simd-clone.c (expand_simd_clones): If simd_clone_mangle or
|
|
|
|
|
simd_clone_create failed when i == 0, adjust clone->nargs by
|
|
|
|
|
clone->inbranch.
|
|
|
|
|
|
2020-01-30 21:28:17 +01:00
|
|
|
|
2020-01-30 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/93505
|
|
|
|
|
* combine.c (simplify_comparison) <case ROTATE>: Punt on out of range
|
|
|
|
|
rotate counts.
|
|
|
|
|
|
i386: Fix ix86_fold_builtin shift folding [PR93418]
The following testcase is miscompiled, because the variable shift left
operand, { -1, -1, -1, -1 } is represented as a VECTOR_CST with
VECTOR_CST_NPATTERNS 1 and VECTOR_CST_NELTS_PER_PATTERN 1, so when
we call builder.new_unary_operation, builder.encoded_nelts () will be just 1
and thus we encode the resulting vector as if all the elements were the
same.
For non-masked is_vshift, we could perhaps call builder.new_binary_operation
(TREE_TYPE (args[0]), args[0], args[1], false), but then there are masked
shifts, for non-is_vshift we could perhaps call it too but with args[2]
instead of args[1], but there is no builder.new_ternary_operation.
All this stuff is primarily for aarch64 anyway, on x86 we don't have any
variable length vectors, and it is not a big deal to compute all elements
and just let builder.finalize () find the most efficient VECTOR_CST
representation of the vector. So, instead of doing too much, this just
keeps using new_unary_operation only if only one VECTOR_CST is involved
(i.e. non-masked shift by constant) and for the rest just compute all elts.
2020-01-28 Jakub Jelinek <jakub@redhat.com>
PR target/93418
* config/i386/i386.c (ix86_fold_builtin) <do_shift>: If mask is not
-1 or is_vshift is true, use new_vector with number of elts npatterns
rather than new_unary_operation.
* gcc.target/i386/avx2-pr93418.c: New test.
2020-01-28 08:46:23 +01:00
|
|
|
|
2020-01-28 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/93418
|
|
|
|
|
* config/i386/i386.c (ix86_fold_builtin) <do_shift>: If mask is not
|
|
|
|
|
-1 or is_vshift is true, use new_vector with number of elts npatterns
|
|
|
|
|
rather than new_unary_operation.
|
|
|
|
|
|
2020-01-23 20:08:22 +01:00
|
|
|
|
2020-01-23 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/93402
|
|
|
|
|
* postreload.c (reload_combine_recognize_pattern): Don't try to adjust
|
|
|
|
|
USE insns.
|
|
|
|
|
|
2020-02-11 11:50:12 +01:00
|
|
|
|
2020-02-11 Tamar Christina <tamar.christina@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2020-01-31 Tamar Christina <tamar.christina@arm.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/91838
|
|
|
|
|
* simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case
|
|
|
|
|
to truncate if allowed or reject combination.
|
|
|
|
|
|
2020-02-07 12:50:40 +01:00
|
|
|
|
2020-02-07 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2020-02-07 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR target/85667
|
|
|
|
|
* config/i386/i386.c (function_arg_ms_64): Add a type argument.
|
|
|
|
|
Don't return aggregates with only SFmode and DFmode in SSE
|
|
|
|
|
register.
|
|
|
|
|
(ix86_function_arg): Pass type to function_arg_ms_64.
|
|
|
|
|
|
2020-01-30 13:29:35 +01:00
|
|
|
|
2020-01-30 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/pa/pa.c (pa_elf_select_rtx_section): Place function pointers
|
|
|
|
|
without a DECL in .data.rel.ro.local.
|
|
|
|
|
|
2020-01-17 12:49:15 +01:00
|
|
|
|
2020-01-30 Kito Cheng <kito.cheng@sifive.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2020-01-21 Kito Cheng <kito.cheng@sifive.com>
|
|
|
|
|
|
|
|
|
|
PR target/93304
|
|
|
|
|
* config/riscv/riscv-protos.h (riscv_hard_regno_rename_ok): New.
|
|
|
|
|
* config/riscv/riscv.c (riscv_hard_regno_rename_ok): New.
|
|
|
|
|
* config/riscv/riscv.h (HARD_REGNO_RENAME_OK): Defined.
|
|
|
|
|
|
2020-01-15 13:23:40 +01:00
|
|
|
|
2020-01-29 Szabolcs Nagy <szabolcs.nagy@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2020-01-21 Szabolcs Nagy <szabolcs.nagy@arm.com>
|
|
|
|
|
|
|
|
|
|
PR target/92424
|
|
|
|
|
* config/aarch64/aarch64.c (aarch64_declare_function_name): Set
|
|
|
|
|
cfun->machine->label_is_assembled.
|
|
|
|
|
(aarch64_print_patchable_function_entry): New.
|
|
|
|
|
(TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): Define.
|
|
|
|
|
* config/aarch64/aarch64.h (struct machine_function): New field,
|
|
|
|
|
label_is_assembled.
|
|
|
|
|
|
2020-01-17 14:17:21 +01:00
|
|
|
|
2020-01-27 Wilco Dijkstra <wdijkstr@arm.com>
|
|
|
|
|
|
|
|
|
|
PR target/92692
|
|
|
|
|
* config/aarch64/aarch64.c (aarch64_split_compare_and_swap)
|
|
|
|
|
Add assert to ensure prolog has been emitted.
|
|
|
|
|
(aarch64_split_atomic_op): Likewise.
|
|
|
|
|
* config/aarch64/atomics.md (aarch64_compare_and_swap<mode>)
|
|
|
|
|
Use epilogue_completed rather than reload_completed.
|
|
|
|
|
(aarch64_atomic_exchange<mode>): Likewise.
|
|
|
|
|
(aarch64_atomic_<atomic_optab><mode>): Likewise.
|
|
|
|
|
(atomic_nand<mode>): Likewise.
|
|
|
|
|
(aarch64_atomic_fetch_<atomic_optab><mode>): Likewise.
|
|
|
|
|
(atomic_fetch_nand<mode>): Likewise.
|
|
|
|
|
(aarch64_atomic_<atomic_optab>_fetch<mode>): Likewise.
|
|
|
|
|
(atomic_nand_fetch<mode>): Likewise.
|
|
|
|
|
|
aarch64: Fix aarch64_expand_subvti constant handling [PR93335]
The two patterns that call aarch64_expand_subvti ensure that {low,high}_in1
is a register, while {low,high}_in2 can be a register or immediate.
subdi3_compare1_imm uses the aarch64_plus_immediate predicate for its last
two operands (the value and negated value), but aarch64_expand_subvti calls
it whenever low_in2 is a CONST_INT, which leads to ICEs during vregs pass,
as the emitted insn is not recognized as valid subdi3_compare1_imm.
The following patch fixes that by only using subdi3_compare1_imm if it is ok
to do so, and otherwise force the constant into register and use the
non-immediate version - subdi3_compare1.
Furthermore, previously the code was calling force_reg on high_in2 only if
low_in2 is CONST_INT, on the (reasonable) assumption is that only if low_in2
is a CONST_INT, high_in2 can be non-REG, but with the above changes even in
the else we might have CONST_INT and force_reg doesn't do anything if the
operand is already a REG, so this patch calls it unconditionally.
2020-01-22 Jakub Jelinek <jakub@redhat.com>
PR target/93335
* config/aarch64/aarch64.c (aarch64_expand_subvti): Only use
gen_subdi3_compare1_imm if low_in2 satisfies aarch64_plus_immediate
predicate, not whenever it is CONST_INT. Otherwise, force_reg it.
Call force_reg on high_in2 unconditionally.
* gcc.c-torture/compile/pr93335.c: New test.
2020-01-22 18:08:31 +01:00
|
|
|
|
2020-01-22 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/93335
|
|
|
|
|
* config/aarch64/aarch64.c (aarch64_expand_subvti): Only use
|
|
|
|
|
gen_subdi3_compare1_imm if low_in2 satisfies aarch64_plus_immediate
|
|
|
|
|
predicate, not whenever it is CONST_INT. Otherwise, force_reg it.
|
|
|
|
|
Call force_reg on high_in2 unconditionally.
|
|
|
|
|
|
i386: Fix up -fdollars-in-identifiers with identifiers starting with $ in -masm=att [PR91298]
In AT&T syntax leading $ is special, so if we have identifiers that start
with dollar, we usually fail to assemble it (or assemble incorrectly).
As mentioned in the PR, what works is wrapping the identifiers inside of
parens, like:
movl $($a), %eax
leaq ($a)(,%rdi,4), %rax
movl ($a)(%rip), %eax
movl ($a)+16(%rip), %eax
.globl $a
.type $a, @object
.size $a, 72
$a:
.string "$a"
.quad ($a)
(this is x86_64 -fno-pic -O2). In some places ($a) is not accepted,
like as .globl operand, in .type, .size, so the patch overrides
ASM_OUTPUT_SYMBOL_REF rather than e.g. ASM_OUTPUT_LABELREF.
I didn't want to duplicate what assemble_name is doing (following
transparent aliases), so split assemble_name into two parts; just
mere looking at the first character of a name before calling assemble_name
wouldn't be good enough, a transparent alias could lead from a name
not starting with $ to one starting with it and vice versa.
2020-01-22 Jakub Jelinek <jakub@redhat.com>
PR target/91298
* output.h (assemble_name_resolve): Declare.
* varasm.c (assemble_name_resolve): New function.
(assemble_name): Use it.
* config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define.
* gcc.target/i386/pr91298-1.c: New test.
* gcc.target/i386/pr91298-2.c: New test.
2020-01-22 18:07:54 +01:00
|
|
|
|
PR target/91298
|
|
|
|
|
* output.h (assemble_name_resolve): Declare.
|
|
|
|
|
* varasm.c (assemble_name_resolve): New function.
|
|
|
|
|
(assemble_name): Use it.
|
|
|
|
|
* config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define.
|
|
|
|
|
|
2020-01-22 17:55:23 +01:00
|
|
|
|
Backported from mainline
|
|
|
|
|
2020-01-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/93333
|
|
|
|
|
* config/riscv/riscv.c (riscv_rtx_costs) <case ZERO_EXTRACT>: Verify
|
|
|
|
|
the last two operands are CONST_INT_P before using them as such.
|
|
|
|
|
|
2020-01-22 17:54:32 +01:00
|
|
|
|
PR target/93073
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for
|
|
|
|
|
compare_mode other than SFmode or DFmode.
|
|
|
|
|
|
i386: Fix wrong-code x86 issue with avx512{f,vl} fma PR93009
As mentioned in the PR, the following testcase is miscompiled with avx512vl.
The reason is that the fma *_bcst_1 define_insns have two alternatives:
"=v,v" "0,v" "v,0" "m,m" and use the same
vfmadd213* %3<avx512bcst>, %2, %0<sd_mask_op4>
pattern. If the first alternative is chosen, everything is ok, but if the
second alternative is chosen, %2 and %0 are the same register, so instead
of doing dest=dest*another+membcst we do dest=dest*dest+membcst.
Now, to fix this, either we'd need separate:
"vfmadd213<ssemodesuffix>\t{%3<avx512bcst>, %2, %0<sd_mask_op4>|%0<sd_mask_op4>, %2, %3<avx512bcst>}
vfmadd213<ssemodesuffix>\t{%3<avx512bcst>, %1, %0<sd_mask_op4>|%0<sd_mask_op4>, %1, %3<avx512bcst>}"
where for the second alternative, we'd just use %1 instead of %2, but
what I think is actually cleaner is just use a single alternative and
make the two multiplication operands commutative, which they really are.
2020-01-15 Jakub Jelinek <jakub@redhat.com>
PR target/93009
* config/i386/sse.md
(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1,
*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1,
*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1,
*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): Use
just a single alternative instead of two, make operands 1 and 2
commutative.
* gcc.target/i386/avx512vl-pr93009.c: New test.
2020-01-22 17:51:14 +01:00
|
|
|
|
2020-01-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/93009
|
|
|
|
|
* config/i386/sse.md
|
|
|
|
|
(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1,
|
|
|
|
|
*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1,
|
|
|
|
|
*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1,
|
|
|
|
|
*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): Use
|
|
|
|
|
just a single alternative instead of two, make operands 1 and 2
|
|
|
|
|
commutative.
|
|
|
|
|
|
2020-01-22 17:49:38 +01:00
|
|
|
|
2020-01-09 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR inline-asm/93202
|
|
|
|
|
* config/riscv/riscv.c (riscv_print_operand_reloc): Use
|
|
|
|
|
output_operand_lossage instead of gcc_unreachable.
|
|
|
|
|
* doc/md.texi (riscv f constraint): Fix typo.
|
|
|
|
|
|
2020-01-22 17:48:48 +01:00
|
|
|
|
2020-01-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/93088
|
|
|
|
|
* loop-iv.c (find_single_def_src): Punt after looking through
|
|
|
|
|
128 reg copies for regs with single definitions. Move definitions
|
|
|
|
|
to first uses.
|
|
|
|
|
|
2020-01-22 17:48:05 +01:00
|
|
|
|
2020-01-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR ipa/93087
|
|
|
|
|
* predict.c (compute_function_frequency): Don't call
|
|
|
|
|
warn_function_cold on functions that already have cold attribute.
|
|
|
|
|
|
2020-01-14 08:43:32 +01:00
|
|
|
|
2020-01-20 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
PR middle-end/93246
|
|
|
|
|
* alias.c (record_component_aliases): Take superset to record
|
|
|
|
|
into, recurse for alias-set zero fields.
|
|
|
|
|
(record_component_aliases): New oveerload wrapping around the above.
|
|
|
|
|
|
2020-01-20 03:10:52 +01:00
|
|
|
|
2020-01-19 Eric S. Raymond <esr@thyrsus.com>
|
|
|
|
|
Sandra Loosemore <sandra@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline:
|
|
|
|
|
|
|
|
|
|
2020-01-19 Eric S. Raymond <esr@thyrsus.com>
|
|
|
|
|
|
|
|
|
|
* doc/contribute.texi: Update for SVN -> Git transition.
|
|
|
|
|
* doc/install.texi: Likewise.
|
|
|
|
|
|
2020-01-15 20:22:39 +01:00
|
|
|
|
2020-01-15 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR target/93254
|
|
|
|
|
* config/i386/i386.md (*movsf_internal): Require SSE2 ISA for
|
|
|
|
|
alternatives 9 and 10. Do not require SSE2 ISA for alternatives
|
|
|
|
|
14 and 15.
|
|
|
|
|
|
2020-01-14 19:05:56 +01:00
|
|
|
|
2020-01-14 Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2020-01-13 Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR ipa/93223
|
|
|
|
|
* ipa-cp.c (devirtualization_time_bonus): Check whether isummary is
|
|
|
|
|
NULL.
|
|
|
|
|
|
2020-01-10 20:30:56 +01:00
|
|
|
|
2020-01-10 Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-12-17 Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR ipa/92971
|
|
|
|
|
* Ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Fix
|
|
|
|
|
definition of values, release memory on exit.
|
|
|
|
|
|
2020-01-10 17:50:15 +01:00
|
|
|
|
2020-01-10 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
PR target/93188
|
|
|
|
|
* config/arm/t-multilib (MULTILIB_MATCHES): Add rules to match
|
|
|
|
|
armv7-a{+mp,+sec,+mp+sec} to appropriate armv7 multilib variants
|
|
|
|
|
when only building rm-profile multilibs.
|
|
|
|
|
|
2020-01-10 17:46:42 +01:00
|
|
|
|
2020-01-10 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
* config/arm/t-multilib: Use arm->thumb multilib reuse rules
|
|
|
|
|
on a-profile.
|
|
|
|
|
|
2020-01-09 11:33:28 +01:00
|
|
|
|
2020-01-09 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-12-12 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
|
|
|
|
|
* ipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering
|
|
|
|
|
of execution of function call parameters.
|
|
|
|
|
|
2020-01-08 10:46:07 +01:00
|
|
|
|
2020-01-08 Georg-Johann Lay <avr@gjlay.de>
|
|
|
|
|
|
|
|
|
|
Backport from 2020-01-08 trunk r279995.
|
|
|
|
|
|
|
|
|
|
Add -nodevicespecs option for avr.
|
|
|
|
|
|
|
|
|
|
PR target/93182
|
|
|
|
|
* config/avr/avr.opt (-nodevicespecs): New driver option.
|
|
|
|
|
* config/avr/driver-avr.c (avr_devicespecs_file): Only issue
|
|
|
|
|
"-specs=device-specs/..." if that option is not set.
|
|
|
|
|
* doc/invoke.texi (AVR Options) <-nodevicespecs>: Document.
|
|
|
|
|
|
2020-01-07 00:52:55 +01:00
|
|
|
|
2020-01-06 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/pa/pa.md: Revert change to use ordered_comparison_operator
|
|
|
|
|
instead of cmpib_comparison_operator in cmpib patterns.
|
|
|
|
|
* config/pa/predicates.md (cmpib_comparison_operator): Revert removal
|
|
|
|
|
of cmpib_comparison_operator. Revise comment.
|
|
|
|
|
|
2020-01-01 21:57:04 +01:00
|
|
|
|
2020-01-01 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
2020-01-02 00:00:58 +01:00
|
|
|
|
PR target/67834
|
|
|
|
|
* config/pa/pa.c (pa_elf_select_rtx_section): New. Put references to
|
|
|
|
|
COMDAT group function labels in .data.rel.ro.local section.
|
|
|
|
|
* config/pa/pa32-linux.h (TARGET_ASM_SELECT_RTX_SECTION): Define.
|
|
|
|
|
|
2020-01-01 21:57:04 +01:00
|
|
|
|
PR target/93111
|
|
|
|
|
* config/pa/pa.md (scc): Use ordered_comparison_operator instead of
|
|
|
|
|
comparison_operator in B and S integer comparisons. Likewise, use
|
|
|
|
|
ordered_comparison_operator instead of cmpib_comparison_operator in
|
|
|
|
|
cmpib patterns.
|
|
|
|
|
* config/pa/predicates.md (cmpib_comparison_operator): Remove.
|
|
|
|
|
|
2019-12-25 21:31:04 +01:00
|
|
|
|
2019-12-25 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline.
|
|
|
|
|
2019-12-14 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin.h (DARWIN_EXTRA_SPECS): Add new
|
|
|
|
|
bundle spec. (DARWIN_BUNDLE1_SPEC): New.
|
|
|
|
|
(STARTFILE_SPEC): Use darwin bundle spec.
|
|
|
|
|
* config/rs6000/darwin.h (DARWIN_BUNDLE1_SPEC): New.
|
|
|
|
|
(DARWIN_DYLIB1_SPEC): Delete duplicate.
|
|
|
|
|
|
2019-12-20 17:57:21 +01:00
|
|
|
|
2019-12-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-12-20 18:35:18 +01:00
|
|
|
|
PR fortran/92756
|
|
|
|
|
* omp-low.c (check_omp_nesting_restrictions): If lang_GNU_Fortran,
|
|
|
|
|
diagnose teams not closely nested inside of target.
|
|
|
|
|
|
2019-12-20 17:57:21 +01:00
|
|
|
|
Backported from mainline
|
2019-12-20 18:44:16 +01:00
|
|
|
|
2019-12-14 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-12-20 18:44:50 +01:00
|
|
|
|
PR ipa/92357
|
|
|
|
|
* ipa-fnsummary.c (ipa_fn_summary_write): Use
|
|
|
|
|
lto_symtab_encoder_iterator with lsei_start_function_in_partition and
|
|
|
|
|
lsei_next_function_in_partition instead of walking all cgraph nodes
|
|
|
|
|
in encoder.
|
|
|
|
|
|
2019-12-20 18:44:16 +01:00
|
|
|
|
PR tree-optimization/92930
|
|
|
|
|
* ipa-pure-const.c (special_builtin_state): Don't handle
|
|
|
|
|
BUILT_IN_APPLY.
|
|
|
|
|
|
2019-12-20 18:43:23 +01:00
|
|
|
|
2019-12-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/92904
|
|
|
|
|
* config/i386/i386.c (ix86_gimplify_va_arg): If need_intregs and
|
|
|
|
|
not need_temp, decrease alignment of the read because the GPR save
|
|
|
|
|
area only guarantees 8-byte alignment.
|
|
|
|
|
|
2019-12-20 18:41:17 +01:00
|
|
|
|
2019-12-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/92723
|
|
|
|
|
* tree-vect-patterns.c (vect_recog_rotate_pattern): If dt is not
|
|
|
|
|
vect_internal_def, use oprnd1 as is, without trying to cast it.
|
|
|
|
|
Formatting fix.
|
|
|
|
|
|
2019-12-20 18:23:34 +01:00
|
|
|
|
2019-11-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR debug/92664
|
|
|
|
|
* dwarf2out.c (lookup_filename): Use "<stdin>" instead of "".
|
|
|
|
|
|
2019-12-20 17:58:07 +01:00
|
|
|
|
2019-11-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/92644
|
|
|
|
|
* tree-ssa-phiopt.c (minmax_replacement): Add INTEGRAL_TYPE_P check
|
|
|
|
|
next to INTEGER_CST checks.
|
|
|
|
|
|
2019-12-20 17:57:21 +01:00
|
|
|
|
2019-11-23 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/92615
|
|
|
|
|
* config/i386/i386.c (ix86_md_asm_adjust): If dest_mode is
|
|
|
|
|
GET_MODE (dest), is not QImode, using ZERO_EXTEND and dest is not
|
|
|
|
|
register_operand, force x into register before storing it into dest.
|
|
|
|
|
Formatting fix.
|
|
|
|
|
|
2019-12-20 16:05:12 +01:00
|
|
|
|
2019-12-20 Roman Zhuykov <zhroma@ispras.ru>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-12-13 Roman Zhuykov <zhroma@ispras.ru>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/92591
|
|
|
|
|
* modulo-sched.c (ps_add_node_check_conflicts): Improve checking
|
|
|
|
|
for history > 0 case.
|
|
|
|
|
* params.def (sms-dfa-history): Limit to 16.
|
|
|
|
|
|
2019-12-19 09:59:28 +01:00
|
|
|
|
2019-12-19 Georg-Johann Lay <avr@gjlay.de>
|
|
|
|
|
|
|
|
|
|
Backport support for some AVR devices from avrxmega3 family
|
|
|
|
|
from SVN trunk r279309, r278387, r278389, r278478.
|
|
|
|
|
|
|
|
|
|
PR target/92545
|
|
|
|
|
* config/avr/avr-arch.h (avr_mcu_t) <flash_pm_offset>: New field.
|
|
|
|
|
* config/avr/avr-devices.c (avr_mcu_types): Adjust initializers.
|
|
|
|
|
* config/avr/avr-mcus.def (AVR_MCU): Add respective field.
|
|
|
|
|
* config/avr/gen-avr-mmcu-specs.c (print_mcu)
|
|
|
|
|
<*cpp, *cpp_mcu, *cpp_avrlibc, *link_pm_base_address>: Emit code
|
|
|
|
|
for spec definitions.
|
|
|
|
|
* config/avr/gen-avr-mmcu-texi.c: Rewrite.
|
|
|
|
|
* doc/avr-mmcu.texi: Regenerate.
|
|
|
|
|
|
2019-12-17 09:37:26 +01:00
|
|
|
|
2019-12-17 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-12-16 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR target/92950
|
|
|
|
|
* config/s390/vector.md ("mov<mode>" for V_8): Replace lh, lhy,
|
|
|
|
|
and lhrl with llc.
|
|
|
|
|
|
2019-12-12 10:31:56 +01:00
|
|
|
|
2019-12-12 Vineet Gupta <vgupta@synopsys.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
* config/arc/arc-modes.def (CC_FPUE): New Mode CC_FPUE which
|
|
|
|
|
helps codegen generate exceptions even for quiet NaN.
|
|
|
|
|
* config/arc/arc.c (arc_init_reg_tables): Handle New CC_FPUE mode.
|
|
|
|
|
(get_arc_condition_code): Likewise.
|
|
|
|
|
(arc_select_cc_mode): LT, LE, GT, GE to use the New CC_FPUE mode.
|
|
|
|
|
* config/arc/arc.h (REVERSE_CONDITION): Handle New CC_FPUE mode.
|
|
|
|
|
* config/arc/predicates.md (proper_comparison_operator): Likewise.
|
|
|
|
|
* config/arc/fpu.md (cmpsf_fpu_trap): New Pattern for CC_FPUE.
|
|
|
|
|
(cmpdf_fpu_trap): Likewise.
|
|
|
|
|
|
|
|
|
|
2019-12-12 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
* config/arc/arc.md (iterator SDF): Check TARGET_FP_DP_BASE.
|
|
|
|
|
(cstoredi4): Use TARGET_HARD_FLOAT.
|
|
|
|
|
|
2019-12-10 13:54:21 +01:00
|
|
|
|
2019-12-10 Kewen Lin <linkw@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-11-27 Kewen Lin <linkw@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91790
|
|
|
|
|
* gcc/tree-vect-stmts.c (vectorizable_load): Use the adjusted DR for
|
|
|
|
|
vect_setup_realignment when first_stmt_info is different from
|
|
|
|
|
first_stmt_info_for_drptr.
|
|
|
|
|
|
2019-12-09 17:43:52 +01:00
|
|
|
|
2019-12-09 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* tree.c (build_array_type_1): Add SET_CANONICAL parameter and compute
|
|
|
|
|
TYPE_CANONICAL from the element type only if it is true. Remove a few
|
|
|
|
|
obsolete lines and adjust recursive call.
|
|
|
|
|
(fld_process_array_type): Adjust call to build_array_type_1.
|
|
|
|
|
(build_array_type): Likewise.
|
|
|
|
|
(build_nonshared_array_type): Likewise.
|
|
|
|
|
|
2019-12-03 03:44:41 +01:00
|
|
|
|
2019-12-02 Sandra Loosemore <sandra@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
Fix bugs relating to flexibly-sized objects in nios2 backend.
|
|
|
|
|
|
|
|
|
|
PR target/92499
|
|
|
|
|
* config/nios2/nios2.c (nios2_in_small_data_p): Do not consider
|
|
|
|
|
objects of flexible types to be small if they have internal linkage
|
|
|
|
|
or are declared extern.
|
|
|
|
|
* config/nios2/nios2.h (ASM_OUTPUT_ALIGNED_LOCAL): Replace with...
|
|
|
|
|
(ASM_OUTPUT_ALIGNED_DECL_LOCAL): ...this. Use targetm.in_small_data_p
|
|
|
|
|
instead of the size of the object initializer.
|
|
|
|
|
* tree.c (flexible_array_type_p): Move from C front end, and
|
|
|
|
|
generalize to handle fields in non-C structures.
|
|
|
|
|
* tree.h (flexible_array_type_p): Declare.
|
|
|
|
|
|
2019-12-02 07:23:56 +01:00
|
|
|
|
2019-12-02 Li Jia He <helijia@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
Partial backport from mainline
|
|
|
|
|
PR target/92098
|
|
|
|
|
2019-11-08 Kewen Lin <linkw@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR target/92132
|
|
|
|
|
* config/rs6000/predicates.md
|
|
|
|
|
(signed_or_equality_comparison_operator): New predicate.
|
|
|
|
|
(unsigned_or_equality_comparison_operator): Likewise.
|
|
|
|
|
* config/rs6000/rs6000.md (one_cmpl<mode>2): Remove expand.
|
|
|
|
|
(one_cmpl<mode>3_internal): Rename to one_cmpl<mode>2.
|
|
|
|
|
* config/rs6000/vector.md
|
|
|
|
|
(vcond_mask_<mode><mode> for VEC_I and VEC_I): New expand.
|
|
|
|
|
(vec_cmp<mode><mode> for VEC_I and VEC_I): Likewise.
|
|
|
|
|
(vec_cmpu<mode><mode> for VEC_I and VEC_I): Likewise.
|
|
|
|
|
|
2019-11-27 13:09:36 +01:00
|
|
|
|
2019-11-27 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-25 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/92222
|
|
|
|
|
* tree-vect-slp.c (_slp_oprnd_info::first_pattern): Remove.
|
|
|
|
|
(_slp_oprnd_info::second_pattern): Likewise.
|
|
|
|
|
(_slp_oprnd_info::any_pattern): New.
|
|
|
|
|
(vect_create_oprnd_info): Adjust.
|
|
|
|
|
(vect_get_and_check_slp_defs): Compute whether any stmt is
|
|
|
|
|
in a pattern.
|
|
|
|
|
(vect_build_slp_tree_2): Avoid building up a node from scalars
|
|
|
|
|
if any of the operand defs, not just the first, is in a pattern.
|
|
|
|
|
|
2019-11-21 14:53:57 +01:00
|
|
|
|
2019-11-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91355
|
|
|
|
|
* tree-ssa-sink.c (select_best_block): Use >= rather than >
|
|
|
|
|
for early_bb scaled count with best_bb count comparison.
|
|
|
|
|
|
2019-11-21 10:18:06 +01:00
|
|
|
|
2019-11-21 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Revert
|
|
|
|
|
2019-09-17 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91790
|
|
|
|
|
* tree-vect-stmts.c (vectorizable_load): For BB vectorization
|
|
|
|
|
use the correct DR for setting up realignment.
|
|
|
|
|
|
2019-11-20 21:42:41 +01:00
|
|
|
|
2019-11-20 Peter Bergner <bergner@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-11-07 Peter Bergner <bergner@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR other/92090
|
|
|
|
|
* config/rs6000/predicates.md (input_operand): Allow MODE_PARTIAL_INT
|
|
|
|
|
modes for integer constants.
|
|
|
|
|
|
2019-11-20 17:51:10 +01:00
|
|
|
|
2019-11-20 Michael Matz <matz@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
PR middle-end/90796
|
|
|
|
|
* gimple-loop-jam.c (any_access_function_variant_p): New function.
|
|
|
|
|
(adjust_unroll_factor): Use it to constrain safety, new parameter.
|
|
|
|
|
(tree_loop_unroll_and_jam): Adjust call and profitable unroll factor.
|
|
|
|
|
|
2019-11-20 17:43:14 +01:00
|
|
|
|
2019-11-20 Joseph Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi (-Wc11-c2x-compat): Document.
|
|
|
|
|
|
2019-11-20 10:53:15 +01:00
|
|
|
|
2019-11-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-11-20 10:55:01 +01:00
|
|
|
|
PR middle-end/90840
|
|
|
|
|
* expmed.c (store_bit_field_1): Handle the case where op0 is not a MEM
|
|
|
|
|
and has a mode that doesn't have corresponding integral type.
|
|
|
|
|
|
2019-11-20 10:54:02 +01:00
|
|
|
|
PR target/90867
|
|
|
|
|
* config/i386/i386.c (ix86_valid_target_attribute_tree): Don't
|
|
|
|
|
clear opts->x_ix86_isa_flags{,2} here...
|
|
|
|
|
(ix86_valid_target_attribute_inner_p): ... but here when seeing
|
|
|
|
|
arch=. Also clear opts->x_ix86_isa_flags{,2}_explicit.
|
|
|
|
|
|
2019-11-20 10:53:15 +01:00
|
|
|
|
PR c/90898
|
|
|
|
|
* tree-ssa-ccp.c (insert_clobber_before_stack_restore): Remove
|
|
|
|
|
assertion.
|
|
|
|
|
(insert_clobbers_for_var): Fix a typo in function comment.
|
|
|
|
|
|
re PR middle-end/91450 (__builtin_mul_overflow(A,B,R) wrong code if product < 0, *R is unsigned, and !(A&B))
PR middle-end/91450
* internal-fn.c (expand_mul_overflow): For s1 * s2 -> ur, if one
operand is negative and one non-negative, compare the non-negative
one against 0 rather than comparing s1 & s2 against 0. Otherwise,
don't compare (s1 & s2) == 0, but compare separately both s1 == 0
and s2 == 0, unless one of them is known to be negative. Remove
tem2 variable, use tem where tem2 has been used before.
* gcc.c-torture/execute/pr91450-1.c: New test.
* gcc.c-torture/execute/pr91450-2.c: New test.
From-SVN: r278438
2019-11-19 10:26:23 +01:00
|
|
|
|
2019-11-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/91450
|
|
|
|
|
* internal-fn.c (expand_mul_overflow): For s1 * s2 -> ur, if one
|
|
|
|
|
operand is negative and one non-negative, compare the non-negative
|
|
|
|
|
one against 0 rather than comparing s1 & s2 against 0. Otherwise,
|
|
|
|
|
don't compare (s1 & s2) == 0, but compare separately both s1 == 0
|
|
|
|
|
and s2 == 0, unless one of them is known to be negative. Remove
|
|
|
|
|
tem2 variable, use tem where tem2 has been used before.
|
|
|
|
|
|
2019-11-19 10:12:36 +01:00
|
|
|
|
2019-11-19 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi (-gno-internal-reset-location-views): Fix typo.
|
|
|
|
|
|
2019-11-18 20:29:03 +01:00
|
|
|
|
2019-11-18 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
2019-11-12 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000.md (rs6000_set_fpscr_drn): Use ULL on big
|
|
|
|
|
hexadecimal literal.
|
|
|
|
|
|
2019-11-18 16:29:40 +01:00
|
|
|
|
2019-11-15 Tamar Christina <tamar.christina@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-09-24 Stamatis Markianos-Wright <stam.markianos-wright@arm.com>
|
|
|
|
|
|
|
|
|
|
* config/aarch64/aarch64-option-extensions.def (fp16fml):
|
|
|
|
|
Update hwcap string for fp16fml.
|
|
|
|
|
|
2019-11-15 13:55:05 +01:00
|
|
|
|
2019-11-15 Ilya Leoshkevich <iii@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
PR rtl-optimization/92430
|
|
|
|
|
* cfgcleanup.c (pass_jump_after_combine::gate): New function.
|
|
|
|
|
(pass_jump_after_combine::execute): Free
|
|
|
|
|
dominance info at the beginning.
|
|
|
|
|
|
2019-11-14 10:58:19 +01:00
|
|
|
|
2019-11-13 Claudiu Zissulescu <claziss@gmail.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
* config/arc/arc.md (movsi_ne): Reorder instruction variants and
|
|
|
|
|
use new register constraint letters.
|
|
|
|
|
* config/arc/arc.c (arc_legitimize_pic_address): Consider UNSPECs
|
|
|
|
|
as well, if interesting recover the symbol and re-legitimize the
|
|
|
|
|
pic address.
|
|
|
|
|
|
2019-11-14 10:45:37 +01:00
|
|
|
|
2019-11-14 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-11-14 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR target/92389
|
|
|
|
|
* config/i386/i386.h: Add PTA_AVX512VPOPCNTDQ to
|
|
|
|
|
PTA_ICELAKE_CLIENT which is later interited by
|
|
|
|
|
PTA_ICELAKE_SERVER and PTA_TIGERLAKE.
|
|
|
|
|
|
2019-11-13 20:20:15 +01:00
|
|
|
|
2019-11-13 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
* config/mips/mips.md (rotr<mode>3): Sanitize the constant argument
|
|
|
|
|
instead of asserting its value.
|
|
|
|
|
|
2019-11-11 17:07:54 +01:00
|
|
|
|
2019-11-11 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-25 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90930
|
|
|
|
|
* tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression
|
|
|
|
|
into parallel form in the last pass instance.
|
|
|
|
|
|
2019-11-11 09:39:10 +01:00
|
|
|
|
2019-11-11 H.J. Lu <hjl.tools@gmail.com>
|
|
|
|
|
|
|
|
|
|
Backport from trunk:
|
|
|
|
|
PR target/87833
|
|
|
|
|
* config/i386/intelmic-mkoffload.c (prepare_target_image): Put
|
|
|
|
|
-fPIC and -shared the last to create offload image.
|
|
|
|
|
|
2019-11-11 09:06:25 +01:00
|
|
|
|
2019-11-11 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
2019-11-11 09:19:23 +01:00
|
|
|
|
Backport from trunk:
|
|
|
|
|
* gimplify.c (gimplify_scan_omp_clauses): Assert 'offset2' instead
|
|
|
|
|
of 'offset'.
|
|
|
|
|
|
2019-11-11 09:06:25 +01:00
|
|
|
|
Backport from trunk:
|
|
|
|
|
* Makefile.in (LANG_CONFIGUREFRAGS): Define.
|
|
|
|
|
(config.status): Use/depend on it.
|
|
|
|
|
* configure.ac (all_lang_configurefrags): Track, 'AC_SUBST'.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2019-11-09 15:19:36 +01:00
|
|
|
|
2019-11-09 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-11-07 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/pa/pa.md (memory_barrier): Revise to use ldcw barriers.
|
|
|
|
|
Enhance comment.
|
|
|
|
|
(memory_barrier_coherent, memory_barrier_64, memory_barrier_32): New
|
|
|
|
|
insn patterns using ldcw instruction.
|
|
|
|
|
(memory_barrier): Remove insn pattern using sync instruction.
|
|
|
|
|
* config/pa/pa.opt (coherent-ldcw): New option.
|
|
|
|
|
(ordered): New option.
|
|
|
|
|
|
2019-11-08 19:54:39 +01:00
|
|
|
|
2019-11-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-11-08 20:02:24 +01:00
|
|
|
|
PR c++/92384
|
|
|
|
|
* function.c (assign_parm_setup_block, assign_parm_setup_stack): Don't
|
|
|
|
|
copy TYPE_EMPTY_P arguments from data->entry_parm to data->stack_parm
|
|
|
|
|
slot.
|
|
|
|
|
(assign_parms): For TREE_ADDRESSABLE parms with TYPE_EMPTY_P type
|
|
|
|
|
force creation of a unique data.stack_parm slot.
|
|
|
|
|
|
2019-11-08 19:54:39 +01:00
|
|
|
|
Backported from mainline
|
2019-11-08 19:56:42 +01:00
|
|
|
|
2019-10-31 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-11-08 19:58:14 +01:00
|
|
|
|
PR middle-end/92231
|
|
|
|
|
* tree.h (fndecl_built_in_p): Use fndecl_built_in_p instead of
|
|
|
|
|
DECL_BUILT_IN in comment. Remove redundant ()s around return
|
|
|
|
|
argument.
|
|
|
|
|
* tree.c (free_lang_data_in_decl): Check if var is FUNCTION_DECL
|
|
|
|
|
before calling fndecl_built_in_p.
|
|
|
|
|
* gimple-fold.c (gimple_fold_stmt_to_constant_1): Check if
|
|
|
|
|
TREE_OPERAND (fn, 0) is a FUNCTION_DECL before calling
|
|
|
|
|
fndecl_built_in_p on it.
|
|
|
|
|
|
2019-11-08 19:56:42 +01:00
|
|
|
|
PR c++/90947
|
|
|
|
|
* tree.h (type_initializer_zero_p): Remove.
|
|
|
|
|
* tree.c (type_initializer_zero_p): Remove.
|
|
|
|
|
|
2019-11-08 19:54:39 +01:00
|
|
|
|
2019-10-29 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* doc/install.texi (--enable-offload-targets): Fix up a typo in the
|
|
|
|
|
example, use actual names of supported offload targets.
|
|
|
|
|
|
2019-11-08 13:33:48 +01:00
|
|
|
|
2019-11-08 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
PR target/92095
|
|
|
|
|
* config/sparc/sparc-protos.h (output_load_pcrel_sym): Declare.
|
|
|
|
|
* config/sparc/sparc.c (sparc_cannot_force_const_mem): Revert latest
|
|
|
|
|
change.
|
|
|
|
|
(got_helper_needed): New static variable.
|
|
|
|
|
(output_load_pcrel_sym): New function.
|
|
|
|
|
(get_pc_thunk_name): Remove after inlining...
|
|
|
|
|
(load_got_register): ...here. Rework the initialization of the GOT
|
|
|
|
|
register and of the GOT helper.
|
|
|
|
|
(save_local_or_in_reg_p): Test the REGNO of the GOT register.
|
|
|
|
|
(sparc_file_end): Test got_helper_needed to decide whether the GOT
|
|
|
|
|
helper must be emitted. Use output_asm_insn instead of fprintf.
|
|
|
|
|
(sparc_init_pic_reg): In PIC mode, always initialize the PIC register
|
|
|
|
|
if optimization is enabled.
|
|
|
|
|
* config/sparc/sparc.md (load_pcrel_sym<P:mode>): Emit the assembly
|
|
|
|
|
by calling output_load_pcrel_sym.
|
|
|
|
|
|
2019-11-06 11:10:04 +01:00
|
|
|
|
2019-11-06 Ilya Leoshkevich <iii@linux.ibm.com>
|
|
|
|
|
|
2019-11-08 13:33:48 +01:00
|
|
|
|
Backport from mainline
|
2019-11-06 11:10:04 +01:00
|
|
|
|
* config/s390/s390.c (s390_canonicalize_comparison): Use XEXP
|
|
|
|
|
(*op0, 1) instead of XEXP (*op1, 0).
|
|
|
|
|
|
2019-11-05 18:34:23 +01:00
|
|
|
|
2019-11-05 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
2019-10-24 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/altivec.md (altivec_vavgu<VI_char>): Rename to...
|
|
|
|
|
(uavg<mode>3_ceil): ... This.
|
|
|
|
|
(altivec_vavgs<VI_char>): Rename to...
|
|
|
|
|
(avg<mode>3_ceil): ... This.
|
|
|
|
|
* config/rs6000/rs6000-builtin.def (VAVGUB, VAVGSB, VAVGUH, VAVGSH,
|
|
|
|
|
VAVGUW, VAVGSW): Adjust.
|
|
|
|
|
|
2019-11-05 18:17:03 +01:00
|
|
|
|
2019-11-05 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
2019-10-26 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
PR target/91289
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't add an
|
|
|
|
|
immediate to r0; use r11 instead. Save and restore r11 to r0 around
|
|
|
|
|
this.
|
|
|
|
|
|
2019-11-05 16:24:43 +01:00
|
|
|
|
2019-11-05 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-11-05 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/s390.c (s390_vector_alignment): Check if the value
|
|
|
|
|
fits into uhwi before using it.
|
|
|
|
|
|
2019-11-02 00:35:06 +01:00
|
|
|
|
2019-11-01 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-03 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/pa/pa.c (pa_output_call): Remove 64-bit sibcall sequence.
|
|
|
|
|
(pa_attr_length_call): Adjust length for 64-bit plabel sequence.
|
|
|
|
|
|
2019-11-02 00:24:54 +01:00
|
|
|
|
2019-11-01 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-03 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/pa/pa.h (MAX_PCREL17F_OFFSET): Adjust.
|
|
|
|
|
|
2019-10-30 21:48:44 +01:00
|
|
|
|
2019-10-30 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-13 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin.c (machopic_indirection_name): Rework the
|
|
|
|
|
function to emit linker-visible symbols only for indirections
|
|
|
|
|
in the data section. Clean up the code and update comments.
|
|
|
|
|
|
2019-10-30 21:42:56 +01:00
|
|
|
|
2019-10-30 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-09 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin.c (darwin_override_options): Make the check for
|
|
|
|
|
Objective-C ABI version more specific for 64bit code.
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-06 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin.c (darwin_override_options): Adjust objective-c
|
|
|
|
|
ABI version error messages to avoid punctuation and contracted
|
|
|
|
|
negations.
|
|
|
|
|
|
2019-10-30 21:38:47 +01:00
|
|
|
|
2019-10-30 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
|
|
|
|
|
(STARTFILE_SPEC): Split crt3 into a separate spec.
|
|
|
|
|
(DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
|
|
|
|
|
(DARWIN_CRT2_SPEC): New.
|
|
|
|
|
(DARWIN_CRT3_SPEC): New.
|
|
|
|
|
(MIN_LD64_OMIT_STUBS): Revise to 62.1.
|
|
|
|
|
* config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
|
|
|
|
|
(DARWIN_CRT3_SPEC): New.
|
|
|
|
|
|
2019-10-30 21:12:17 +01:00
|
|
|
|
2019-10-30 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
|
|
|
|
|
spec.
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-25 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/darwin.h (ENDFILE_SPEC): New.
|
|
|
|
|
|
2019-10-30 21:05:32 +01:00
|
|
|
|
2019-10-30 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin.c (darwin_emit_unwind_label): New.
|
|
|
|
|
(darwin_override_options): Set darwin_emit_unwind_label as needed.
|
|
|
|
|
|
2019-10-30 20:56:41 +01:00
|
|
|
|
2019-10-30 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-08-13 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin.c (machopic_indirect_call_target): Rename symbol stub
|
|
|
|
|
flag.
|
|
|
|
|
(darwin_override_options): Likewise.
|
|
|
|
|
* config/darwin.h: Likewise.
|
|
|
|
|
* config/darwin.opt: Likewise.
|
|
|
|
|
* config/i386/i386.c (output_pic_addr_const): Likewise.
|
|
|
|
|
* config/rs6000/darwin.h: Likewise.
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise.
|
|
|
|
|
* config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ...
|
|
|
|
|
... this TARGET_MACHO_SYMBOL_STUBS.
|
|
|
|
|
(FUNCTION_PROFILER):Likewise.
|
|
|
|
|
* config/i386/i386.h: Likewise.
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin.c (machopic_indirect_call_target): Use renamed
|
|
|
|
|
darwin_picsymbol_stubs to decide on output.
|
|
|
|
|
(darwin_override_options): Handle darwin_picsymbol_stubs.
|
|
|
|
|
* config/darwin.h (MIN_LD64_OMIT_STUBS): New.
|
|
|
|
|
(LD64_VERSION): Revise default.
|
|
|
|
|
* config/darwin.opt: (mpic-symbol-stubs): New option.
|
|
|
|
|
(darwin_picsymbol_stubs): New variable.
|
|
|
|
|
* config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
|
|
|
|
|
rename to TARGET_MACHO_PICSYM_STUBS.
|
|
|
|
|
* config/i386/i386.c (output_pic_addr_const): Likewise.
|
|
|
|
|
* config/i386/i386.h Likewise.
|
|
|
|
|
* config/rs6000/darwin.h: Likewise.
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
|
|
|
|
|
darwin_picsymbol_stubs.
|
|
|
|
|
|
2019-10-30 16:12:05 +01:00
|
|
|
|
2019-10-30 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-09 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
|
|
|
|
|
|
|
|
|
|
* cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal
|
|
|
|
|
for both call instructions.
|
|
|
|
|
|
2019-10-30 11:50:58 +01:00
|
|
|
|
2019-10-30 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
Backport from trunk:
|
|
|
|
|
|
|
|
|
|
2019-05-06 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
|
|
|
|
|
|
2019-10-28 15:16:50 +01:00
|
|
|
|
2019-10-28 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR target/92225
|
|
|
|
|
* config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE4_2
|
|
|
|
|
condition for V2DImode.
|
|
|
|
|
|
Move jump threading before reload
r266734 has introduced a new instance of jump threading pass in order to
take advantage of opportunities that combine opens up. It was perceived
back then that it was beneficial to delay it after reload, since that
might produce even more such opportunities.
Unfortunately jump threading interferes with hot/cold partitioning. In
the code from PR92007, it converts the following
+-------------------------- 2/HOT ------------------------+
| |
v v
3/HOT --> 5/HOT --> 8/HOT --> 11/COLD --> 6/HOT --EH--> 16/HOT
| ^
| |
+-------------------------------+
into the following:
+---------------------- 2/HOT ------------------+
| |
v v
3/HOT --> 8/HOT --> 11/COLD --> 6/COLD --EH--> 16/HOT
This makes hot bb 6 dominated by cold bb 11, and because of this
fixup_partitions makes bb 6 cold as well, which in turn makes EH edge
6->16 a crossing one. Not only can't we have crossing EH edges, we are
also not allowed to introduce new crossing edges after reload in
general, since it might require extra registers on some targets.
Therefore, move the jump threading pass between combine and hot/cold
partitioning. Building SPEC 2006 and SPEC 2017 with the old and the new
code indicates that:
* When doing jump threading right after reload, 3889 edges are threaded.
* When doing jump threading right after combine, 3918 edges are
threaded.
This means this change will not introduce performance regressions.
gcc/ChangeLog:
2019-10-28 Ilya Leoshkevich <iii@linux.ibm.com>
Backport from mainline
PR rtl-optimization/92007
* cfgcleanup.c (thread_jump): Add an assertion that we don't
call it after reload if hot/cold partitioning has been done.
(class pass_postreload_jump): Rename to
pass_jump_after_combine.
(make_pass_postreload_jump): Rename to
make_pass_jump_after_combine.
* passes.def(pass_postreload_jump): Move before reload, rename
to pass_jump_after_combine.
* tree-pass.h (make_pass_postreload_jump): Rename to
make_pass_jump_after_combine.
gcc/testsuite/ChangeLog:
2019-10-28 Ilya Leoshkevich <iii@linux.ibm.com>
Backport from mainline
PR rtl-optimization/92007
* g++.dg/opt/pr92007.C: New test (from Arseny Solokha).
From-SVN: r277515
2019-10-28 14:09:54 +01:00
|
|
|
|
2019-10-28 Ilya Leoshkevich <iii@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
PR rtl-optimization/92007
|
|
|
|
|
* cfgcleanup.c (thread_jump): Add an assertion that we don't
|
|
|
|
|
call it after reload if hot/cold partitioning has been done.
|
|
|
|
|
(class pass_postreload_jump): Rename to
|
|
|
|
|
pass_jump_after_combine.
|
|
|
|
|
(make_pass_postreload_jump): Rename to
|
|
|
|
|
make_pass_jump_after_combine.
|
|
|
|
|
* passes.def(pass_postreload_jump): Move before reload, rename
|
|
|
|
|
to pass_jump_after_combine.
|
|
|
|
|
* tree-pass.h (make_pass_postreload_jump): Rename to
|
|
|
|
|
make_pass_jump_after_combine.
|
|
|
|
|
|
2019-10-28 10:46:15 +01:00
|
|
|
|
2019-10-28 Peter Bergner <bergner@linux.ibm.com>
|
|
|
|
|
Jiufu Guo <guojiufu@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR target/70010
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_can_inline_p): Prohibit inlining if
|
|
|
|
|
the callee explicitly disables some isa_flags the caller is using.
|
|
|
|
|
|
2019-10-27 22:25:57 +01:00
|
|
|
|
2019-10-27 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-17 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
PR target/65342
|
|
|
|
|
* config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete.
|
|
|
|
|
(movdi_low_st): Delete.
|
|
|
|
|
* config/rs6000/rs6000.c
|
|
|
|
|
(darwin_rs6000_legitimate_lo_sum_const_p): New.
|
|
|
|
|
(mem_operand_gpr): Validate Mach-O LO_SUM cases separately.
|
|
|
|
|
* config/rs6000/rs6000.md (movsi_low): Delete.
|
|
|
|
|
|
2019-10-27 22:21:49 +01:00
|
|
|
|
2019-10-27 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-12 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
PR target/67183
|
|
|
|
|
* config/darwin.c (machopic_indirection): New field to flag
|
|
|
|
|
non-lazy-symbol-pointers in the data section.
|
|
|
|
|
(machopic_indirection_name): Compute if an indirection should
|
|
|
|
|
appear in the data section.
|
|
|
|
|
(machopic_output_data_section_indirection): New callback split
|
|
|
|
|
from machopic_output_indirection.
|
|
|
|
|
(machopic_output_stub_indirection): Likewise.
|
|
|
|
|
(machopic_output_indirection): Retain the code for non-lazy
|
|
|
|
|
symbol pointers in their regular section.
|
|
|
|
|
(machopic_finish): Use the new callbacks to order the indirection
|
|
|
|
|
output.
|
|
|
|
|
|
2019-10-27 22:17:33 +01:00
|
|
|
|
2019-10-27 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-12 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin-protos.h (machopic_finish): Delete.
|
|
|
|
|
* config/darwin.c (machopic_finish): Make static.
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-09 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin.c (machopic_indirect_data_reference): Set flag to
|
|
|
|
|
indicate that the new symbol is an indirection.
|
|
|
|
|
(machopic_indirect_call_target): Likewise.
|
|
|
|
|
* config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New.
|
|
|
|
|
(MACHO_SYMBOL_INDIRECTION_P): New.
|
|
|
|
|
(MACHO_SYMBOL_FLAG_STATIC): Adjust bit number.
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-08 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin.c (machopic_indirect_data_reference): Check for
|
|
|
|
|
required indirections before making direct access to defined
|
|
|
|
|
values.
|
|
|
|
|
(machopic_output_indirection): Place the indirected pointes for
|
|
|
|
|
required indirections into the non-lazy symbol pointers section.
|
|
|
|
|
(darwin_encode_section_info):
|
|
|
|
|
* config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New.
|
|
|
|
|
(MACHO_SYMBOL_MUST_INDIRECT_P): New.
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-07 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin.c (machopic_output_indirection): Don't put
|
|
|
|
|
hidden symbol indirections into the .data section, use the
|
|
|
|
|
non-lazy symbol pointers section as normal.
|
|
|
|
|
(darwin_encode_section_info): Record if a symbol is hidden.
|
|
|
|
|
* config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New.
|
|
|
|
|
(MACHO_SYMBOL_HIDDEN_VIS_P): New.
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-07 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin.c (machopic_symbol_defined_p): Use symbol flag
|
|
|
|
|
predicates instead of accessing bits directly.
|
|
|
|
|
(machopic_indirect_call_target): Likewise.
|
|
|
|
|
(machopic_output_indirection): Likewise.
|
|
|
|
|
(darwin_encode_section_info): Improve description. Use renamed
|
|
|
|
|
symbol flags. Use predicate macros for variables and functions.
|
|
|
|
|
* config/darwin.h:
|
|
|
|
|
Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE.
|
|
|
|
|
Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED.
|
|
|
|
|
Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC.
|
|
|
|
|
(MACHO_SYMBOL_VARIABLE_P): New.
|
|
|
|
|
(MACHO_SYMBOL_DEFINED_P):New.
|
|
|
|
|
(MACHO_SYMBOL_STATIC_P): New.
|
|
|
|
|
* config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete.
|
|
|
|
|
(SYMBOL_FLAG_SUBT_DEP): New.
|
|
|
|
|
* config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New.
|
|
|
|
|
|
2019-10-26 18:57:16 +02:00
|
|
|
|
2019-10-25 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-11 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
* gimple-streamer-out.c (output_gimple_stmt): Add explicit function
|
|
|
|
|
parameter.
|
|
|
|
|
* lto-streamer-out.c: Include tree-dfa.h.
|
|
|
|
|
(output_cfg): Do not use cfun.
|
|
|
|
|
(lto_prepare_function_for_streaming): New.
|
|
|
|
|
(output_function): Do not push cfun; do not initialize loop optimizer.
|
|
|
|
|
* lto-streamer.h (lto_prepare_function_for_streaming): Declare.
|
|
|
|
|
* passes.c (ipa_write_summaries): Use it.
|
|
|
|
|
(ipa_write_optimization_summaries): Do not modify bodies.
|
|
|
|
|
* tree-dfa.c (renumber_gimple_stmt_uids): Add function parameter.
|
|
|
|
|
* tree.dfa.h (renumber_gimple_stmt_uids): Update prototype.
|
|
|
|
|
* tree-ssa-dse.c (pass_dse::execute): Update use of
|
|
|
|
|
renumber_gimple_stmt_uids.
|
|
|
|
|
* tree-ssa-math-opts.c (pass_optimize_widening_mul::execute): Likewise.
|
|
|
|
|
|
|
|
|
|
2019-10-12 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
* lto-streamer-out.c (collect_block_tree_leafs): Renumber statements
|
|
|
|
|
so non-virutal are before virutals.
|
|
|
|
|
(output_function): Avoid body modifications.
|
|
|
|
|
|
2019-10-25 16:34:44 +02:00
|
|
|
|
2019-10-25 Richard Earnshaw <rearnsha@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com>
|
|
|
|
|
Richard Earnshaw <rearnsha@arm.com>
|
|
|
|
|
PR target/88167
|
|
|
|
|
* config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
|
|
|
|
|
function.
|
|
|
|
|
(thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
|
|
|
|
|
(thumb1_compute_save_core_reg_mask): Don't force a spare work
|
|
|
|
|
register if both the epilogue and prologue can use call-clobbered
|
|
|
|
|
regs.
|
|
|
|
|
(thumb1_unexpanded_epilogue): Use
|
|
|
|
|
thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for
|
|
|
|
|
picking temporaries for restoring high regs to match that of the
|
|
|
|
|
prologue where possible.
|
|
|
|
|
(thumb1_expand_prologue): Add any usable call-clobbered low registers to
|
|
|
|
|
the list of work registers. Detect if the return address is still live
|
|
|
|
|
at the end of the prologue and avoid using it for a work register if so.
|
|
|
|
|
If the return address is not live, add LR to the list of pushable regs
|
|
|
|
|
after the first pass.
|
|
|
|
|
|
2019-10-25 14:02:39 +02:00
|
|
|
|
2019-10-25 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-24 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
* symbols-summary.h (fast_function_summary<T *, V>::release,
|
|
|
|
|
fast_call_summary<T *, V>::release): Free m_vector.
|
|
|
|
|
|
2019-10-25 13:17:38 +02:00
|
|
|
|
2019-10-25 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
|
|
|
|
|
2019-10-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
PR middle-end/92153
|
|
|
|
|
* ggc-page.c (release_pages): Read g->alloc_size before free rather
|
|
|
|
|
than after it.
|
|
|
|
|
|
|
|
|
|
2019-10-11 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
* ggc-page.c (release_pages): Output statistics when !quiet_flag.
|
|
|
|
|
(ggc_collect): Dump later to not interfere with release_page dump.
|
|
|
|
|
(ggc_trim): New function.
|
|
|
|
|
* ggc-none.c (ggc_trim): New.
|
|
|
|
|
* ggc.h (ggc_trim): Declare.
|
|
|
|
|
|
2019-10-24 18:55:18 +02:00
|
|
|
|
2019-10-24 Mihail Ionescu <mihail.ionescu@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
|
|
|
|
|
|
|
|
|
|
* config/arm/t-multilib: Add new multilib variants and new
|
|
|
|
|
mappings.
|
|
|
|
|
|
2019-10-24 16:53:28 +02:00
|
|
|
|
2019-10-24 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
2019-10-27 22:17:33 +01:00
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-23 Iain Sandoe <iain@sandoe.co.uk>
|
2019-10-24 16:53:28 +02:00
|
|
|
|
* config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard
|
|
|
|
|
against out of range max skip or log values.
|
|
|
|
|
|
2019-10-23 23:34:42 +02:00
|
|
|
|
2019-10-23 Peter Bergner <bergner@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-08 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and
|
|
|
|
|
LINK_OS_EXTRA_SPEC64 to MD_STARTFILE_PREFIX and
|
|
|
|
|
MD_STARTFILE_PREFIX_1 when using --with-advance-toolchain.
|
|
|
|
|
|
2019-10-23 14:12:57 +02:00
|
|
|
|
2019-10-23 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-09-26 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91885
|
|
|
|
|
* tree-vectorizer.c (try_vectorize_loop_1):
|
|
|
|
|
Add TODO_update_ssa_only_virtuals similarly to what slp
|
|
|
|
|
pass does.
|
|
|
|
|
|
2019-10-23 13:37:28 +02:00
|
|
|
|
2019-10-23 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/92131
|
|
|
|
|
* tree-vrp.c (extract_range_from_plus_minus_expr): If the resulting
|
|
|
|
|
range would be symbolic, drop to varying for any explicit overflow
|
|
|
|
|
in the constant part or if neither range is a singleton.
|
|
|
|
|
|
2019-10-23 12:32:06 +02:00
|
|
|
|
2019-10-23 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-17 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR debug/91887
|
|
|
|
|
* dwarf2out.c (gen_formal_parameter_die): Also try to match
|
|
|
|
|
context_die against a DW_TAG_GNU_formal_parameter_pack parent.
|
|
|
|
|
|
2019-10-21 13:36:36 +02:00
|
|
|
|
2019-10-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
Backported from mainline
|
2019-10-21 13:49:18 +02:00
|
|
|
|
2019-10-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/92056
|
|
|
|
|
* tree-object-size.c (cond_expr_object_size): Return early if then_
|
|
|
|
|
processing resulted in unknown size.
|
|
|
|
|
|
2019-10-21 13:48:00 +02:00
|
|
|
|
2019-10-05 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91734
|
|
|
|
|
* generic-match-head.c: Include fold-const-call.h.
|
|
|
|
|
* match.pd (sqrt(x) cmp c): Check the boundary value and
|
|
|
|
|
in case inexact computation of c*c affects comparison of the boundary,
|
|
|
|
|
turn LT_EXPR into LE_EXPR, GE_EXPR into GT_EXPR, LE_EXPR into LT_EXPR
|
|
|
|
|
or GT_EXPR into GE_EXPR. Punt for sqrt comparisons against NaN and
|
|
|
|
|
for -frounding-math. For c2, try the next smaller or larger floating
|
|
|
|
|
point constant depending on comparison code and if it has the same
|
|
|
|
|
sqrt as c2, use it instead of c2.
|
|
|
|
|
|
2019-10-21 13:45:27 +02:00
|
|
|
|
2019-09-29 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/90543
|
|
|
|
|
* optc-save-gen.awk: Fix up printing string option differences.
|
|
|
|
|
|
2019-10-21 13:43:16 +02:00
|
|
|
|
2019-09-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/91920
|
|
|
|
|
* gimplify.c (omp_default_clause): Predetermine DECL_IN_CONSTANT_POOL
|
|
|
|
|
variables as shared.
|
|
|
|
|
|
2019-10-21 13:41:40 +02:00
|
|
|
|
2019-09-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91723
|
|
|
|
|
* tree-vect-stmts.c (vectorizable_call): Use types_compatible_p check
|
|
|
|
|
instead of pointer equality when checking if argument vectypes are
|
|
|
|
|
the same.
|
|
|
|
|
|
2019-10-21 13:40:48 +02:00
|
|
|
|
2019-09-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91665
|
|
|
|
|
* tree-vect-loop.c (vectorizable_reduction): Punt if base has type
|
|
|
|
|
incompatible with the type of PHI result.
|
|
|
|
|
|
2019-10-21 13:39:53 +02:00
|
|
|
|
2019-09-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P
|
|
|
|
|
before testing TYPE_TRANSPARENT_AGGR.
|
|
|
|
|
* calls.c (initialize_argument_information, load_register_parameters):
|
|
|
|
|
Likewise.
|
|
|
|
|
|
|
|
|
|
2019-09-05 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/91001
|
|
|
|
|
PR middle-end/91105
|
|
|
|
|
PR middle-end/91106
|
|
|
|
|
* calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR
|
|
|
|
|
types, use type of their first field instead of type of
|
|
|
|
|
args[i].tree_value.
|
|
|
|
|
|
2019-10-21 13:36:36 +02:00
|
|
|
|
2019-09-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR go/91617
|
|
|
|
|
* fold-const.c (range_check_type): For enumeral and boolean
|
|
|
|
|
type, pass 1 to type_for_size langhook instead of
|
|
|
|
|
TYPE_UNSIGNED (etype). Return unsigned_type_for result whenever
|
|
|
|
|
etype isn't TYPE_UNSIGNED INTEGER_TYPE.
|
|
|
|
|
(build_range_check): Don't call unsigned_type_for for pointer types.
|
|
|
|
|
* match.pd (X / C1 op C2): Don't call unsigned_type_for on
|
|
|
|
|
range_check_type result.
|
|
|
|
|
|
2019-10-21 13:37:41 +02:00
|
|
|
|
2019-09-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-10-21 13:38:37 +02:00
|
|
|
|
PR middle-end/91623
|
|
|
|
|
* optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only
|
|
|
|
|
EQ_EXPR/NE_EXPR is supported, verify that op0 only contains
|
|
|
|
|
zeros or negative elements and use NE_EXPR instead of LT_EXPR against
|
|
|
|
|
zero vector.
|
|
|
|
|
|
2019-10-21 13:37:41 +02:00
|
|
|
|
PR lto/91572
|
|
|
|
|
* tree.c (find_decls_types_in_node): Also walk TREE_PURPOSE of
|
|
|
|
|
GIMPLE_ASM TREE_LIST operands.
|
|
|
|
|
|
2019-10-21 13:36:36 +02:00
|
|
|
|
2019-08-29 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91351
|
|
|
|
|
* tree-cfg.c (generate_range_test): Use range_check_type instead of
|
|
|
|
|
unsigned_type_for.
|
|
|
|
|
* tree-cfgcleanup.c (convert_single_case_switch): Punt if
|
|
|
|
|
range_check_type returns NULL.
|
|
|
|
|
* tree-switch-conversion.c (switch_conversion::build_one_array):
|
|
|
|
|
Use range_check_type instead of unsigned_type_for, don't perform
|
|
|
|
|
linear opt if it returns NULL.
|
|
|
|
|
(bit_test_cluster::find_bit_tests): Formatting fix.
|
|
|
|
|
(bit_test_cluster::emit): Use range_check_type instead of
|
|
|
|
|
unsigned_type_for.
|
|
|
|
|
(switch_decision_tree::try_switch_expansion): Punt if range_check_type
|
|
|
|
|
returns NULL.
|
|
|
|
|
|
2019-10-18 11:10:20 +02:00
|
|
|
|
2019-10-18 Georg-Johann Lay <avr@gjlay.de>
|
|
|
|
|
|
|
|
|
|
Backport from 2019-10-18 trunk r277143.
|
|
|
|
|
|
|
|
|
|
PR target/86040
|
|
|
|
|
* config/avr/avr.c (avr_out_lpm): Do not shortcut-return.
|
|
|
|
|
|
2019-10-18 10:42:41 +02:00
|
|
|
|
2019-10-18 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-05 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
PR target/59888
|
|
|
|
|
* config/darwin.c (darwin_rodata_section): Add relocation flag,
|
|
|
|
|
choose const_data section for constants with relocations.
|
|
|
|
|
(machopic_select_section): Pass relocation flag to
|
|
|
|
|
darwin_rodata_section ().
|
|
|
|
|
|
2019-10-18 09:54:12 +02:00
|
|
|
|
2019-10-18 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-09-21 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin.c (machopic_legitimize_pic_address): Check
|
|
|
|
|
for lra, rather than reload.
|
|
|
|
|
|
2019-10-18 00:44:24 +02:00
|
|
|
|
2019-10-17 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/pa/pa.c (pa_output_indirect_call): Fix typos in last change.
|
|
|
|
|
|
2019-10-17 18:45:46 +02:00
|
|
|
|
2019-10-17 Richard Earnshaw <rearnsha@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-05-03 Richard Earnshaw <rearnsha@arm.com>
|
|
|
|
|
|
|
|
|
|
PR target/89400
|
|
|
|
|
* config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
|
|
|
|
|
Restrict 'all' variant to 32-bit configurations.
|
|
|
|
|
(unaligned_loadhiu): Likewise.
|
|
|
|
|
(unaligned_storehi): Likewise.
|
|
|
|
|
(unaligned_storesi): Likewise.
|
|
|
|
|
(unaligned_loadhis): Disable when compiling for thumb1.
|
|
|
|
|
|
2019-10-16 21:22:17 +02:00
|
|
|
|
2019-10-16 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-03 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
PR target/87243
|
|
|
|
|
* config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New.
|
|
|
|
|
(darwin_driver_init): Use the sysroot provided by SDKROOT when that
|
|
|
|
|
is available and the user has not set one on the command line.
|
|
|
|
|
|
[Darwin, specs] Backport fixes for driver handling of PIE options.
pie, no-pie and rdynamic are driver options, we can process them in the
relevant place and drop them once dealt with. There's no need to generate
a new header to process the no_compact_unwind which is applied on the
basis of the target system.
Support for the -pie, -no_pie and -no_compact_unwind options should ideally
be checked at configure time, however the status quo is to assert that linkers
capable of targeting the relevant systems support these options (i.e. we trust
that the user doesn't attempt to configure inappropriately).
TODO: check the availability of the linker opts in configure rather than
trusting to the user.
This will fix the fail of pie-7.c, which is a result of failing to handle the
no-pie driver option.
2019-10-16 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline
2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
(RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
(DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
clauses.
(LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
DARWIN_NOPIE_SPEC.
Backport from mainline
2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
and DARWIN_NOPIE_SPEC.
(RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
(DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
(DARWIN_NOPIE_SPEC): Collate from darwin10.h.
(DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
(DARWIN_EXPORT_DYNAMIC): Delete.
* config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
and pie options processing to darwin.h.
* config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
From-SVN: r277078
2019-10-16 21:12:33 +02:00
|
|
|
|
2019-10-16 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
|
|
|
|
|
(RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
|
|
|
|
|
(DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
|
|
|
|
|
clauses.
|
|
|
|
|
(LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
|
|
|
|
|
DARWIN_NOPIE_SPEC.
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
|
|
|
|
|
and DARWIN_NOPIE_SPEC.
|
|
|
|
|
(RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
|
|
|
|
|
(DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
|
|
|
|
|
(DARWIN_NOPIE_SPEC): Collate from darwin10.h.
|
|
|
|
|
(DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
|
|
|
|
|
(DARWIN_EXPORT_DYNAMIC): Delete.
|
|
|
|
|
* config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
|
|
|
|
|
and pie options processing to darwin.h.
|
|
|
|
|
* config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
|
|
|
|
|
|
2019-10-16 11:25:34 +02:00
|
|
|
|
2019-10-16 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-04 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR lto/91968
|
|
|
|
|
* tree.c (find_decls_types_r): Do not remove LABEL_DECLs from
|
|
|
|
|
BLOCK_VARS.
|
|
|
|
|
|
|
|
|
|
2019-09-19 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91812
|
|
|
|
|
* tree-ssa-phiprop.c (propagate_with_phi): Do not replace
|
|
|
|
|
volatile loads.
|
|
|
|
|
|
|
|
|
|
2019-09-17 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR debug/91772
|
|
|
|
|
* dwarf2out.c (dwarf2out_late_global_decl): If early dwarf
|
|
|
|
|
was missing generate locations only once.
|
|
|
|
|
|
|
|
|
|
2019-09-17 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91790
|
|
|
|
|
* tree-vect-stmts.c (vectorizable_load): For BB vectorization
|
|
|
|
|
use the correct DR for setting up realignment.
|
|
|
|
|
|
backport: rs6000-builtin.def: (LVSL...
Backport from trunk
[gcc]
2019-09-26 Will Schmidt <will_schmidt@vnet.ibm.com>
* config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX,
LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI,
LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI,
LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI,
LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI,
LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF,
LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI,
LD_ELEMREV_V16QI): Use the PURE attribute.
[testsuite]
2019-09-26 Will Schmidt <will_schmidt@vnet.ibm.com>
* gcc.target/powerpc/pure-builtin-redundant-load.c: New.
From-SVN: r276966
2019-10-14 20:11:47 +02:00
|
|
|
|
2019-10-14 Will Schmidt <will_schmidt@vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
2019-09-26 Will Schmidt <will_schmidt@vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX,
|
|
|
|
|
LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI,
|
|
|
|
|
LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI,
|
|
|
|
|
LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI,
|
|
|
|
|
LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI,
|
|
|
|
|
LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF,
|
|
|
|
|
LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI,
|
|
|
|
|
LD_ELEMREV_V16QI): Use the PURE attribute.
|
|
|
|
|
|
2019-10-10 19:45:40 +02:00
|
|
|
|
2019-10-10 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR target/92022
|
|
|
|
|
* config/alpha/alpha.c (alpha_handle_trap_shadows): Skip DEBUG_INSN.
|
|
|
|
|
|
2019-10-10 17:24:05 +02:00
|
|
|
|
2019-10-10 Oleg Endo <olegendo@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-10 Oleg Endo <olegendo@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR target/88630
|
|
|
|
|
* config/sh/sh.h (TARGET_FPU_SH4_300): New macro.
|
|
|
|
|
* config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns
|
|
|
|
|
also for TARGET_FPU_SH4_300.
|
|
|
|
|
(sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of
|
|
|
|
|
TARGET_SH4_300.
|
|
|
|
|
* config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition.
|
|
|
|
|
(negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr.
|
|
|
|
|
(*negsf2_i): Split into ...
|
|
|
|
|
(negsf2_fpscr, negsf2_no_fpscr): ... these new patterns.
|
|
|
|
|
(abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc.
|
|
|
|
|
(**abssf2_i): Split into ...
|
|
|
|
|
(abssf2_fpscr, abssf2_no_fpscr): ... these new patterns.
|
|
|
|
|
(negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr.
|
|
|
|
|
(*negdf2_i): Split into ...
|
|
|
|
|
(negdf2_fpscr, negdf2_no_fpscr): ... these new patterns.
|
|
|
|
|
(absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc.
|
|
|
|
|
(**abssf2_i): Split into ...
|
|
|
|
|
(absdf2_fpscr, absdf2_no_fpscr): ... these new patterns.
|
|
|
|
|
|
2019-10-10 11:09:42 +02:00
|
|
|
|
2019-10-10 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-10 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* common/config/s390/s390-common.c (PF_ARCH13): Rename to...
|
|
|
|
|
(PF_Z15): ... this.
|
|
|
|
|
* config.gcc: Add z15 as option for --with-arch and --with-tune
|
|
|
|
|
configure switches.
|
|
|
|
|
* config/s390/s390-c.c (s390_resolve_overloaded_builtin): Add
|
|
|
|
|
error reporting for unsupported builtins.
|
|
|
|
|
* config/s390/s390-opts.h (enum processor_type): Rename
|
|
|
|
|
PROCESSOR_8561_ARCH13 to PROCESSOR_8561_Z15.
|
|
|
|
|
* config/s390/8561.md: Rename arch13 to z15 throughout the file.
|
|
|
|
|
* config/s390/driver-native.c (s390_host_detect_local_cpu):
|
|
|
|
|
Likewise.
|
|
|
|
|
* config/s390/s390-builtins.def: Likewise.
|
|
|
|
|
* config/s390/s390.c (processor_table): Add z15 as option and keep arch13 as alternative.
|
|
|
|
|
(s390_expand_builtin): Add missing check for unsupported builtins.
|
|
|
|
|
(s390_canonicalize_comparison): Rename TARGET_ARCH13 to TARGET_Z15.
|
|
|
|
|
(s390_rtx_costs): Likewise.
|
|
|
|
|
(s390_get_sched_attrmask): Rename arch13 to z15.
|
|
|
|
|
(s390_get_unit_mask): Likewise.
|
|
|
|
|
(s390_is_fpd): Likewise.
|
|
|
|
|
(s390_is_fxd): Likewise.
|
|
|
|
|
* config/s390/s390.h (enum processor_flags): Likewise.
|
|
|
|
|
* config/s390/s390.md: Likewise.
|
|
|
|
|
* config/s390/vector.md: Likewise.
|
|
|
|
|
* config/s390/vx-builtins.md: Likewise.
|
|
|
|
|
* config/s390/s390.opt: Add z15 to processor_type value.
|
|
|
|
|
|
2019-10-07 20:23:20 +02:00
|
|
|
|
2019-10-07 Bill Schmidt <wschmidt@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-01 Bill Schmidt <wschmidt@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR target/91275
|
|
|
|
|
* config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Don't swap
|
|
|
|
|
vpmsumd.
|
|
|
|
|
|
2019-10-05 11:02:25 +02:00
|
|
|
|
2019-10-05 Andrea Corallo <andrea.corallo@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-03 Andrea Corallo <andrea.corallo@arm.com>
|
|
|
|
|
* gcc/ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum
|
|
|
|
|
when finished.
|
|
|
|
|
* ipa-prop.c (ipcp_free_transformation_sum): New function.
|
|
|
|
|
* ipa-prop.h (ipcp_free_transformation_sum): Add declaration.
|
|
|
|
|
|
2019-10-04 13:10:01 +02:00
|
|
|
|
2019-10-04 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-10-03 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
|
|
|
|
|
|
|
|
|
|
PR target/91769
|
|
|
|
|
* config/mips/mips.c (mips_split_move): Use reg_overlap_mentioned_p
|
|
|
|
|
instead of REGNO equality check on addr.reg.
|
|
|
|
|
|
|
|
|
|
2019-10-04 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
|
2019-10-04 12:57:48 +02:00
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-07 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
* config/mips/mips.c (mips_split_move): Zero-initialize addr
|
|
|
|
|
and check whether addr.reg is nonnull before using it.
|
|
|
|
|
|
2019-10-02 15:22:37 +02:00
|
|
|
|
2019-10-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
|
|
|
|
|
2019-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
|
|
|
|
|
|
|
|
|
PR fortran/91716
|
|
|
|
|
* trans-array.c (gfc_conv_array_initializer): Always assign the
|
|
|
|
|
array type of the field to the string constant.
|
|
|
|
|
|
2019-10-01 16:58:10 +02:00
|
|
|
|
2019-10-01 Oleg Endo <olegendo@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
|
|
|
|
|
2019-10-01 Oleg Endo <olegendo@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR target/88562
|
|
|
|
|
* config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use
|
|
|
|
|
sh_check_add_incdec_notes to preserve REG_INC notes when replacing
|
|
|
|
|
a memory access insn.
|
|
|
|
|
|
|
|
|
|
|
2019-10-01 12:33:40 +02:00
|
|
|
|
2019-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
|
|
|
|
|
|
|
|
|
* config/aarch64/aarch64.md (mov<mode>): Don't call
|
|
|
|
|
aarch64_split_dimode_const_store on volatile MEM.
|
|
|
|
|
|
2019-10-01 12:28:40 +02:00
|
|
|
|
2019-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-09-26 Matt Turner <mattst88@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR driver/69471
|
|
|
|
|
* config/aarch64/aarch64.opt (march=): Add Negative(march=).
|
|
|
|
|
(mtune=): Add Negative(mtune=).
|
|
|
|
|
(mcpu=): Add Negative(mcpu=).
|
|
|
|
|
* config/arm/arm.opt: Likewise.
|
|
|
|
|
|
2019-09-28 10:55:03 +02:00
|
|
|
|
2019-09-28 Oleg Endo <olegendo@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-09-28 Oleg Endo <olegendo@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR target/86805
|
|
|
|
|
* config/sh/sh.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
|
|
|
|
|
|
2019-09-28 10:37:23 +02:00
|
|
|
|
2019-09-28 Oleg Endo <olegendo@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-09-28 Oleg Endo <olegendo@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR target/80672
|
|
|
|
|
* config/sh/sh.c (parse_validate_atomic_model_option): Use
|
|
|
|
|
std::string::compare instead of std::string::find.
|
|
|
|
|
|
2019-09-25 15:48:29 +02:00
|
|
|
|
2019-09-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-08-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
|
|
|
|
|
|
|
|
|
* config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32
|
|
|
|
|
intrinsics if __ARM_FP.
|
|
|
|
|
Use __ARM_FEATURE_CRC32 ifdef guard.
|
|
|
|
|
|
2019-09-23 09:47:14 +02:00
|
|
|
|
2019-09-23 Max Filippov <jcmvbkbc@gmail.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-18 Max Filippov <jcmvbkbc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
|
|
|
|
|
pointer adjustment for the case of no callee-saved registers and
|
|
|
|
|
stack frame bigger than 128 bytes.
|
|
|
|
|
|
2019-09-22 21:36:09 +02:00
|
|
|
|
2019-09-22 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin.opt (prebind, noprebind, seglinkedit,
|
|
|
|
|
noseglinkedit): Add RejectNegative.
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-14 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin.opt: Add RejectNegative where needed, reorder
|
|
|
|
|
and add minimal functional descriptions.
|
|
|
|
|
|
2019-09-20 23:53:40 +02:00
|
|
|
|
2019-09-20 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/pa/pa.c (pa_trampoline_init): Remove spurious extended
|
|
|
|
|
character.
|
|
|
|
|
|
2019-09-20 14:18:26 +02:00
|
|
|
|
2019-09-20 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/88751
|
|
|
|
|
* ira.c (ira): Use the number of the actually referenced registers
|
|
|
|
|
when calculating the threshold.
|
|
|
|
|
|
2019-09-20 12:41:51 +02:00
|
|
|
|
2019-09-20 Kito Cheng <kito.cheng@sifive.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-09-18 Jim Wilson <jimw@sifive.com>
|
|
|
|
|
|
|
|
|
|
PR target/91683
|
|
|
|
|
* config/riscv/riscv-protos.h (riscv_split_symbol): New bool parameter.
|
|
|
|
|
(riscv_move_integer): Likewise.
|
|
|
|
|
* config/riscv/riscv.c (riscv_split_integer): Pass FALSE for new
|
|
|
|
|
riscv_move_integer arg.
|
|
|
|
|
(riscv_legitimize_move): Likewise.
|
|
|
|
|
(riscv_force_temporary): New parameter in_splitter. Don't call
|
|
|
|
|
force_reg if true.
|
|
|
|
|
(riscv_unspec_offset_high): Pass FALSE for new riscv_force_temporary
|
|
|
|
|
arg.
|
|
|
|
|
(riscv_add_offset): Likewise.
|
|
|
|
|
(riscv_split_symbol): New parameter in_splitter. Pass to
|
|
|
|
|
riscv_force_temporary.
|
|
|
|
|
(riscv_legitimize_address): Pass FALSE for new riscv_split_symbol
|
|
|
|
|
arg.
|
|
|
|
|
(riscv_move_integer): New parameter in_splitter. New local
|
|
|
|
|
can_create_psuedo. Don't call riscv_split_integer or force_reg when
|
|
|
|
|
in_splitter TRUE.
|
|
|
|
|
(riscv_legitimize_const_move): Pass FALSE for new riscv_move_integer,
|
|
|
|
|
riscv_split_symbol, and riscv_force_temporary args.
|
|
|
|
|
* config/riscv/riscv.md (low<mode>+1): Pass TRUE for new
|
|
|
|
|
riscv_move_integer arg.
|
|
|
|
|
(low<mode>+2): Pass TRUE for new riscv_split_symbol arg.
|
|
|
|
|
|
2019-09-20 11:45:26 +02:00
|
|
|
|
2019-09-20 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
PR target/91269
|
|
|
|
|
* config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
|
|
|
|
|
|
2019-09-19 08:38:23 +02:00
|
|
|
|
2019-09-19 Kito Cheng <kito.cheng@sifive.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-09-05 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
Jim Wilson <jimw@sifive.com>
|
|
|
|
|
|
|
|
|
|
PR target/91635
|
|
|
|
|
* config/riscv/riscv.md (zero_extendsidi2, zero_extendhi<GPR:mode>2,
|
|
|
|
|
extend<SHORT:mode><SUPERQI:mode>2): Don't split if
|
|
|
|
|
paradoxical_subreg_p (operands[0]).
|
|
|
|
|
(*lshrsi3_zero_extend_3+1, *lshrsi3_zero_extend_3+2): Add clobber and
|
|
|
|
|
use as intermediate value.
|
|
|
|
|
|
2019-09-11 12:42:31 +02:00
|
|
|
|
2019-09-11 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/89795
|
|
|
|
|
* rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from
|
|
|
|
|
inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set.
|
|
|
|
|
|
2019-09-09 12:51:04 +02:00
|
|
|
|
2019-09-09 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-09-09 12:52:00 +02:00
|
|
|
|
PR target/87853
|
|
|
|
|
* config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi
|
|
|
|
|
instead of __v16qs.
|
|
|
|
|
|
2019-09-09 12:51:04 +02:00
|
|
|
|
PR target/91704
|
|
|
|
|
* config/i386/avxintrin.h (__v32qs): New typedef.
|
|
|
|
|
* config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs
|
|
|
|
|
instead of __v32qi.
|
|
|
|
|
|
2019-09-04 14:42:22 +02:00
|
|
|
|
2019-09-04 Wilco Dijkstra <wdijkstr@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-08-13 Wilco Dijkstra <wdijkstr@arm.com>
|
|
|
|
|
|
|
|
|
|
PR target/81800
|
|
|
|
|
* gcc/config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF
|
|
|
|
|
operand is larger than a long int.
|
|
|
|
|
|
2019-09-03 18:55:31 +02:00
|
|
|
|
2019-09-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91597
|
|
|
|
|
* tree-vrp.c (extract_range_from_binary_expr): Remove unsafe
|
|
|
|
|
BIT_AND_EXPR optimization for pointers, even if both operand
|
|
|
|
|
ranges don't include NULL, the result can be NULL.
|
|
|
|
|
|
2019-09-02 10:58:17 +02:00
|
|
|
|
2019-09-02 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-09-02 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR gcov-profile/91601
|
|
|
|
|
* gcov.c (path_contains_zero_cycle_arc): Rename to ...
|
|
|
|
|
(path_contains_zero_or_negative_cycle_arc): ... this and handle
|
|
|
|
|
also negative edges.
|
|
|
|
|
(circuit): Handle also negative edges as they can happen
|
|
|
|
|
in some situations.
|
|
|
|
|
|
2019-09-01 14:57:56 +02:00
|
|
|
|
2019-09-01 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
PR target/91472
|
|
|
|
|
* config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true
|
|
|
|
|
during LRA/reload in PIC mode if the PIC register hasn't been used yet.
|
|
|
|
|
(sparc_pic_register_p): Test reload_in_progress for consistency's sake.
|
|
|
|
|
|
2019-08-31 21:12:10 +02:00
|
|
|
|
2019-08-31 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-08-23 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
PR pch/61250
|
|
|
|
|
* ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure
|
|
|
|
|
and issue any diagnostics needed before collecting the pre-PCH
|
|
|
|
|
state.
|
|
|
|
|
|
2019-08-30 15:51:26 +02:00
|
|
|
|
2019-08-30 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
2019-08-22 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
PR target/91481
|
|
|
|
|
* config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
|
|
|
|
|
and UNSPEC_DARN_RAW.
|
|
|
|
|
(unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and
|
|
|
|
|
UNSPECV_DARN_RAW.
|
|
|
|
|
(darn_32): Use an unspec_volatile, and UNSPECV_DARN_32.
|
|
|
|
|
(darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW.
|
|
|
|
|
(darn): Use an unspec_volatile, and UNSPECV_DARN.
|
|
|
|
|
|
backport: altivec.md (unspec): Delete UNSPEC_DARN...
Backport from trunk
2019-08-22 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to...
* config/rs6000/rs6000.md (unspec): ... here.
* config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb,
*cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
cmpeqb, *cmpeqb_internal): Delete, move to...
* config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb,
*cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
cmpeqb, *cmpeqb_internal): ... here.
From-SVN: r275170
2019-08-30 15:48:48 +02:00
|
|
|
|
2019-08-30 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
2019-08-22 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
|
|
|
|
|
UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to...
|
|
|
|
|
* config/rs6000/rs6000.md (unspec): ... here.
|
|
|
|
|
* config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb,
|
|
|
|
|
*cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
|
|
|
|
|
cmpeqb, *cmpeqb_internal): Delete, move to...
|
|
|
|
|
* config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb,
|
|
|
|
|
*cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
|
|
|
|
|
cmpeqb, *cmpeqb_internal): ... here.
|
|
|
|
|
|
2019-08-30 15:14:59 +02:00
|
|
|
|
2019-08-30 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-04-29 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90278
|
|
|
|
|
* tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
|
|
|
|
|
EH on comparison simplification.
|
|
|
|
|
|
2019-08-29 10:12:57 +02:00
|
|
|
|
2019-08-29 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91568
|
|
|
|
|
* tree-vectorizer.h (_slp_tree::max_nunits): Add.
|
|
|
|
|
(vect_update_max_nunits): Add overload for poly_uint64.
|
|
|
|
|
* tree-vect-slp.c (vect_create_new_slp_node): Initialize it.
|
|
|
|
|
(vect_build_slp_tree): Record max_nunits into the subtree
|
|
|
|
|
and merge it upwards.
|
|
|
|
|
(vect_print_slp_tree): Print max_nunits.
|
|
|
|
|
|
2019-08-28 14:12:20 +02:00
|
|
|
|
2019-08-28 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-05-27 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90637
|
|
|
|
|
* tree-ssa-sink.c (statement_sink_location): Honor the
|
|
|
|
|
computed sink location for single-uses.
|
|
|
|
|
|
2019-08-26 10:53:27 +02:00
|
|
|
|
2019-08-26 Xiong Hu Luo <luoxhu@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
Backport r274411 from trunk to gcc-9-branch.
|
|
|
|
|
2019-08-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR lto/91287
|
|
|
|
|
* builtins.c (builtin_with_linkage_p): New function.
|
|
|
|
|
* builtins.h (builtin_with_linkage_p): New function.
|
|
|
|
|
* symtab.c (write_symbol): Remove redundant assert.
|
|
|
|
|
* lto-streamer-out.c (symtab_node::output_to_lto_symbol_table_p):
|
|
|
|
|
Remove FIXME and use builtin_with_linkage_p.
|
|
|
|
|
|
2019-08-25 20:21:04 +02:00
|
|
|
|
2019-08-25 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR target/91533
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
|
|
|
|
|
* config/i386/i386-builtin.def (__builtin_ia32_pabsb):
|
|
|
|
|
Use CODE_FOR_ssse3_absv8qi2.
|
|
|
|
|
(__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
|
|
|
|
|
(__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.
|
|
|
|
|
|
2019-08-23 21:09:07 +02:00
|
|
|
|
2019-08-23 Mihailo Stojanovic <mistojanovic@wavecomp.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-08-23 Mihailo Stojanovic <mistojanovic@wavecomp.com>
|
|
|
|
|
|
|
|
|
|
* config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI
|
|
|
|
|
machine mode for unspec_volatile operand.
|
|
|
|
|
|
2019-08-23 13:42:19 +02:00
|
|
|
|
2019-08-23 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR ipa/91508
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-08-15 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR ipa/91438
|
|
|
|
|
* cgraph.c (cgraph_node::remove): When setting
|
|
|
|
|
n->origin = NULL for all nested functions, reset
|
|
|
|
|
also next_nested.
|
|
|
|
|
|
2019-08-23 13:41:32 +02:00
|
|
|
|
2019-08-23 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-08-15 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* cgraph.c (cgraph_node::verify_node): Verify origin, nested
|
|
|
|
|
and next_nested.
|
|
|
|
|
|
2019-08-23 13:41:16 +02:00
|
|
|
|
2019-08-23 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-08-15 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR ipa/91404
|
|
|
|
|
* passes.c (order): Remove.
|
|
|
|
|
(uid_hash_t): Likewise).
|
|
|
|
|
(remove_cgraph_node_from_order): Remove from set
|
|
|
|
|
of pointers (cgraph_node *).
|
|
|
|
|
(insert_cgraph_node_to_order): New.
|
|
|
|
|
(duplicate_cgraph_node_to_order): New.
|
|
|
|
|
(do_per_function_toporder): Register all 3 cgraph hooks.
|
|
|
|
|
Skip removed_nodes now as we know about all of them.
|
|
|
|
|
|
2019-08-21 20:45:45 +02:00
|
|
|
|
2019-08-21 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-08-18 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts
|
|
|
|
|
for cpu and machine. Factor 64/32b builtins.
|
|
|
|
|
|
2019-08-20 11:13:29 +02:00
|
|
|
|
2019-08-20 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/91347
|
|
|
|
|
* dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls
|
|
|
|
|
before reload if HARD_FRAME_POINTER_IS_ARG_POINTER.
|
|
|
|
|
|
2019-08-19 18:11:30 +02:00
|
|
|
|
2019-08-19 Richard Earnshaw <rearnsha@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-09-09 Richard Earnshaw <rearnsha@arm.com>
|
|
|
|
|
|
|
|
|
|
PR target/91386
|
|
|
|
|
* config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Use copy_rtx
|
|
|
|
|
to preserve the contents of the original insns.
|
|
|
|
|
|
2019-08-16 18:31:13 +02:00
|
|
|
|
2019-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
2019-08-16 18:37:04 +02:00
|
|
|
|
2019-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91109
|
|
|
|
|
* lra-int.h (lra_need_for_scratch_reg_p): Declare.
|
|
|
|
|
* lra.c (lra): Use lra_need_for_scratch_reg_p.
|
|
|
|
|
* lra-spills.c (lra_need_for_scratch_reg_p): New function.
|
|
|
|
|
|
2019-08-16 18:31:13 +02:00
|
|
|
|
2019-08-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91109
|
|
|
|
|
* lra-remat.c (update_scratch_ops): Remove assignment of the
|
|
|
|
|
hard register.
|
|
|
|
|
|
2019-08-15 22:41:47 +02:00
|
|
|
|
2019-08-15 Steve Ellcey <sellcey@marvell.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-08-02 Steve Ellcey <sellcey@marvell.com>
|
|
|
|
|
|
|
|
|
|
* omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to
|
|
|
|
|
build_distinct_type_copy.
|
|
|
|
|
(simd_clone_adjust_argument_types): Ditto.
|
|
|
|
|
(simd_clone_adjust): Call build_distinct_type_copy here.
|
|
|
|
|
(expand_simd_clones): Ditto.
|
|
|
|
|
|
2019-08-15 14:02:47 +02:00
|
|
|
|
2019-08-15 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91445
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-05 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91091
|
|
|
|
|
* tree-ssa-alias.h (get_continuation_for_phi): Add tbaa_p parameter.
|
|
|
|
|
(walk_non_aliased_vuses): Likewise.
|
|
|
|
|
* tree-ssa-alias.c (maybe_skip_until): Pass down tbaa_p.
|
|
|
|
|
(get_continuation_for_phi): New tbaa_p parameter and pass
|
|
|
|
|
it down.
|
|
|
|
|
(walk_non_aliased_vuses): Likewise.
|
|
|
|
|
* tree-ssa-pre.c (translate_vuse_through_block): Likewise.
|
|
|
|
|
* tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
|
|
|
|
|
Likewise.
|
|
|
|
|
* tree-ssa-sccvn.c (struct vn_walk_cb_data): Add tbaa_p flag.
|
|
|
|
|
(vn_reference_lookup_3): Handle and pass down tbaa_p flag.
|
|
|
|
|
(vn_reference_lookup_pieces): Adjust.
|
|
|
|
|
(vn_reference_lookup): Remove alias-set altering, instead pass
|
|
|
|
|
down false as tbaa_p.
|
|
|
|
|
|
|
|
|
|
2019-07-04 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr
|
|
|
|
|
argument.
|
|
|
|
|
* tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move
|
|
|
|
|
globals into...
|
|
|
|
|
(struct vn_walk_cb_data): New callback data struct.
|
|
|
|
|
(vn_reference_lookup_2): Adjust.
|
|
|
|
|
(vn_reference_lookup_3): Likewise.
|
|
|
|
|
(vn_reference_lookup_pieces): Likewise.
|
|
|
|
|
(vn_reference_lookup): Likewise, get last_vuse_ptr argument.
|
|
|
|
|
(visit_reference_op_load): Adjust.
|
|
|
|
|
|
2019-08-14 22:36:46 +02:00
|
|
|
|
2019-08-14 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
|
|
|
|
|
2019-08-01 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/90947
|
|
|
|
|
* tree.c (type_initializer_zero_p): Define.
|
|
|
|
|
* tree.h (type_initializer_zero_p): New function.
|
|
|
|
|
|
|
|
|
|
2019-08-05 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
* doc/extend.texi (Common Variable Attributes): Document alias
|
|
|
|
|
attribute.
|
|
|
|
|
|
2019-08-12 14:59:08 +02:00
|
|
|
|
2019-08-12 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-08-12 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR lto/91375
|
|
|
|
|
* tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on
|
|
|
|
|
flag_devirtualize.
|
|
|
|
|
|
|
|
|
|
2019-08-12 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR driver/91130
|
|
|
|
|
* lto-wrapper.c (get_options_from_collect_gcc_options): Remove
|
|
|
|
|
lang_mask option, always use CL_DRIVER.
|
|
|
|
|
(find_and_merge_options): Adjust.
|
|
|
|
|
(run_gcc): Likewise.
|
|
|
|
|
|
|
|
|
|
2019-08-07 Richard Earnshaw <rearnsha@arm.com>
|
|
|
|
|
|
|
|
|
|
PR driver/91130
|
|
|
|
|
* lto-wrapper.c (find_and_merge_options): Use CL_DRIVER when
|
|
|
|
|
processing COLLECT_GCC_OPTIONS.
|
|
|
|
|
(run_gcc): Likewise.
|
|
|
|
|
|
2019-08-12 10:40:24 +02:00
|
|
|
|
2019-08-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* BASE-VER: Set to 9.2.1.
|
|
|
|
|
|
2019-08-12 09:38:49 +02:00
|
|
|
|
2019-08-12 Release Manager
|
|
|
|
|
|
|
|
|
|
* GCC 9.2.0 released.
|
|
|
|
|
|
2019-08-05 09:54:31 +02:00
|
|
|
|
2019-08-05 Kito Cheng <kito.cheng@sifive.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-08-05 Kito Cheng <kito.cheng@sifive.com>
|
|
|
|
|
|
|
|
|
|
* config/riscv/riscv.c (riscv_promote_function_mode): New.
|
|
|
|
|
(TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode.
|
|
|
|
|
|
2019-08-05 03:53:31 +02:00
|
|
|
|
2019-08-05 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR target/91349
|
|
|
|
|
* config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC),
|
|
|
|
|
(LINK_GCC_C_SEQUENCE_SPEC): Undef.
|
|
|
|
|
|
2019-08-04 21:23:59 +02:00
|
|
|
|
2019-08-04 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
Backport from trunk
|
|
|
|
|
2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
|
|
|
|
|
correct numbers for TFHAR, TFIAR, TEXASR.
|
|
|
|
|
|
Darwin, backport fix for PR87030
273746 , 273749, 273768 [Darwin] Fix PR87030 and tidy config fragments.
This is about 32/64b host and multilib support across the range of Darwin
systems.
Prior to Darwin8 (OS X 10.4), the toolchains support only PowerPC and only 32b.
On Darwin8 it is possible to target a 64b multilib, but with support limited
to a few of the main libraries on the system (not a recommended configuration).
From Darwin9 to Darwin17 (OSX 10.5 to 10.13) it is possible to have either
32 or 64b hosted toolchains, with support for a 64 or 32b multilib respectively.
On Darwin9 the kernel is 32b, but with support for 64b executables, so it's
conventional to build a 32b host toolchain supporting a 64b multilib. However
this is not enforced (merely a convention).
There is also some platform hardware supporting Darwin10/11 which is only 32b
and for which the same situation applies. However, from Darwin10 to Darwin17,
the majority of platform hardware supports a 64b kernel and it's conventional
to build a 64b host toolchain with support for a 32b multilib.
On/from Darwin18 (OS X 10.14), the development headers (in the SDK) no longer
expose the interfaces for the 32b multilib support (although sufficient runtime
support remains installed that the testsuite can be run for a 32b multilib).
The PR is raised against this latter situation since the absence of exposed
interfaces causes a 'default' bootstrap fail regardless of the availability of
the runtimes. Given the number of permutations, I felt it warranted a general
solution, especially since the current scheme of target headers and t-make
fragments has become somewhat messy.
The changes here enforce the single 32b PowerPC multilib for Darwin < 8 and the
single X86 64b multilib for Darwin >= 18. This means that there is no longer
any need to configure Darwin18+ '--disable-multilib', but also that if you want
to use the ability to continue to test the compiler's 32b multilib there, you
need to make a configuration targeting an earlier OS version (and using the
SDK from that).
2019-08-03 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline
2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
PR bootstrap/87030
* config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.
PR bootstrap/87030
* config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
* config/i386/darwin32-biarch.h .. to here.
* config/i386/darwin64-biarch.h: Adjust comments.
* config/rs6000/darwin32-biarch.h: Likewise.
* config/rs6000/darwin64-biarch.h: Likewise.
* config.gcc: Missed commit from r273746
(*-*-darwin*): Don't include CPU t-darwin here.
(i[34567]86-*-darwin*): Adjust to use biarch files. Produce
an error message if i686-darwin configuration is attempted for
Darwin >= 18.
Backport from mainline
2019-07-23 Iain Sandoe <iain@sandoe.co.uk>
PR bootstrap/87030
* config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
(i[34567]86-*-darwin*): Adjust to use biarch files. Produce
an error message if i686-darwin configuration is attempted for
Darwin >= 18.
(x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
(powerpc-*-darwin*): Use biarch files where needed.
(powerpc64-*-darwin*): Likewise.
* config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
(DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
arch case.
* config/i386/darwin32-biarch.h: New.
* config/i386/darwin64.h: Rename.
* gcc/config/i386/darwin64-biarch.h: To this.
* config/i386/t-darwin: Rename.
* gcc/config/i386/t-darwin32-biarch: To this.
* config/i386/t-darwin64: Rename.
* gcc/config/i386/t-darwin64-biarch: To this.
* config/rs6000/darwin32-biarch.h: New.
* config/rs6000/darwin64.h: Rename.
* config/rs6000/darwin64-biarch.h: To this.
(DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
arch case.
* config/rs6000/t-darwin8: Rename.
* config/rs6000/t-darwin32-biarch: To this.
* config/rs6000/t-darwin64 Rename.
* config/rs6000/t-darwin64-biarch: To this.
From-SVN: r274049
2019-08-03 22:16:22 +02:00
|
|
|
|
2019-08-03 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/87030
|
|
|
|
|
* config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.
|
|
|
|
|
|
|
|
|
|
PR bootstrap/87030
|
|
|
|
|
* config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
|
|
|
|
|
* config/i386/darwin32-biarch.h .. to here.
|
|
|
|
|
* config/i386/darwin64-biarch.h: Adjust comments.
|
|
|
|
|
* config/rs6000/darwin32-biarch.h: Likewise.
|
|
|
|
|
* config/rs6000/darwin64-biarch.h: Likewise.
|
|
|
|
|
* config.gcc: Missed commit from r273746
|
|
|
|
|
(*-*-darwin*): Don't include CPU t-darwin here.
|
|
|
|
|
(i[34567]86-*-darwin*): Adjust to use biarch files. Produce
|
|
|
|
|
an error message if i686-darwin configuration is attempted for
|
|
|
|
|
Darwin >= 18.
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-23 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/87030
|
|
|
|
|
* config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
|
|
|
|
|
(i[34567]86-*-darwin*): Adjust to use biarch files. Produce
|
|
|
|
|
an error message if i686-darwin configuration is attempted for
|
|
|
|
|
Darwin >= 18.
|
|
|
|
|
(x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
|
|
|
|
|
(powerpc-*-darwin*): Use biarch files where needed.
|
|
|
|
|
(powerpc64-*-darwin*): Likewise.
|
|
|
|
|
* config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
|
|
|
|
|
(DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
|
|
|
|
|
arch case.
|
|
|
|
|
* config/i386/darwin32-biarch.h: New.
|
|
|
|
|
* config/i386/darwin64.h: Rename.
|
|
|
|
|
* gcc/config/i386/darwin64-biarch.h: To this.
|
|
|
|
|
* config/i386/t-darwin: Rename.
|
|
|
|
|
* gcc/config/i386/t-darwin32-biarch: To this.
|
|
|
|
|
* config/i386/t-darwin64: Rename.
|
|
|
|
|
* gcc/config/i386/t-darwin64-biarch: To this.
|
|
|
|
|
* config/rs6000/darwin32-biarch.h: New.
|
|
|
|
|
* config/rs6000/darwin64.h: Rename.
|
|
|
|
|
* config/rs6000/darwin64-biarch.h: To this.
|
|
|
|
|
(DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
|
|
|
|
|
arch case.
|
|
|
|
|
* config/rs6000/t-darwin8: Rename.
|
|
|
|
|
* config/rs6000/t-darwin32-biarch: To this.
|
|
|
|
|
* config/rs6000/t-darwin64 Rename.
|
|
|
|
|
* config/rs6000/t-darwin64-biarch: To this.
|
|
|
|
|
|
2019-08-03 21:58:33 +02:00
|
|
|
|
2019-08-03 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
2019-08-03 22:05:21 +02:00
|
|
|
|
* config/darwin.c (darwin_override_options): Make a final check on PIC
|
|
|
|
|
options.
|
|
|
|
|
|
|
|
|
|
2019-08-03 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
|
2019-08-03 21:58:33 +02:00
|
|
|
|
* config/darwin.c (darwin_override_options): Don't jam symbol stubs
|
|
|
|
|
on for kernel code.
|
|
|
|
|
|
2019-08-03 21:53:51 +02:00
|
|
|
|
2019-08-03 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
|
|
|
|
|
override on extra_headers.
|
|
|
|
|
|
2019-08-03 21:49:43 +02:00
|
|
|
|
2019-08-03 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
|
|
|
|
|
user-specified float mode choice for kernel mode code.
|
|
|
|
|
|
2019-08-03 21:44:13 +02:00
|
|
|
|
2019-08-03 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
|
|
|
|
|
use longcall for 64b code.
|
|
|
|
|
|
2019-08-03 21:32:18 +02:00
|
|
|
|
2019-08-03 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/darwin.h: Handle GCC target pragma.
|
|
|
|
|
|
2019-08-03 21:25:05 +02:00
|
|
|
|
2019-08-03 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
|
|
|
|
|
|
2019-08-02 18:57:19 +02:00
|
|
|
|
2019-08-02 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-09 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90989
|
|
|
|
|
* tree-ssa-strlen.c (handle_char_store): Constrain a single character
|
|
|
|
|
optimization to just single character stores.
|
|
|
|
|
|
darwin, backport driver fixes.
272260,r272479 - Darwin, Driver - Improve processing of macosx-version-min=
For PR target/63810 some improvements were made in the parsing of
the version string at the point it's used to define the built-in
__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__. This is fine, but the
specs processing also uses the version, and specs version-compare
doesn't like leading zeros on components. This means that while we
succeed in processing -mmacosx-version-min=010.00002.000099 on compile
lines, it fails for any other line that uses the value as part of a spec
(in particular, link lines fail).
To fix this, we need to apply a bit of clean-up to the version that's
presented to the driver, and push that back into the command line opts.
The value can come from four places:
1. User-entered on the command line
2. User-entered as MACOSX_DEPLOYMENT_TARGET= environment var.
3. Absent those two
3a For self-hosting systems, look-up from the kernel
3b For cross-compilers, as a default supplied at configure time.
We apply the clean-up to all 4 (although it shouldn't really be needed
for the cases under 3).
We also supply a test-case that adapts to the target-version of the
system, so that the link requirements are met by the SDK in use (if you
try to link i686-darwin9 on an x86-64-darwin18 SDK, it will fail).
gcc/
2019-08-02 Iain Sandoe <iain@sandoe.co.uk>
Backport from mainline
2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
in computing the number of options to be moved.
Backport from mainline
2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin-driver.c (validate_macosx_version_min): New.
(darwin_default_min_version): Cleanup and validate supplied version.
(darwin_driver_init): Likewise and push cleaned version into opts.
gcc/testsuite/
2019-08-02 Iain Sandoe <iain@sandoe.co.uk>
2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
* gcc.dg/darwin-minversion-link.c: New test.
From-SVN: r274017
2019-08-02 16:54:57 +02:00
|
|
|
|
2019-08-02 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
|
|
|
|
|
in computing the number of options to be moved.
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin-driver.c (validate_macosx_version_min): New.
|
|
|
|
|
(darwin_default_min_version): Cleanup and validate supplied version.
|
|
|
|
|
(darwin_driver_init): Likewise and push cleaned version into opts.
|
|
|
|
|
|
2019-08-02 16:44:23 +02:00
|
|
|
|
2019-08-02 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-05-31 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
|
|
|
|
|
|
2019-08-02 16:34:02 +02:00
|
|
|
|
2019-08-02 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin-c.c (darwin_register_objc_includes): Do not
|
|
|
|
|
prepend the sysroot when building gnu-runtime header search
|
|
|
|
|
paths.
|
|
|
|
|
|
2019-08-02 16:25:04 +02:00
|
|
|
|
2019-08-02 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/darwin.c (darwin_file_end): Use switch_to_section ()
|
|
|
|
|
instead of direct output of the asm.
|
|
|
|
|
|
2019-08-02 14:07:33 +02:00
|
|
|
|
2019-08-02 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-31 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91280
|
|
|
|
|
* tree-ssa-structalias.c (get_constraint_for_component_ref):
|
|
|
|
|
Decompose MEM_REF manually for offset handling.
|
|
|
|
|
|
|
|
|
|
2019-07-31 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91293
|
|
|
|
|
* tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands
|
|
|
|
|
of reduction stmts.
|
|
|
|
|
|
2019-08-02 10:40:34 +02:00
|
|
|
|
2019-08-02 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-31 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91178
|
|
|
|
|
* tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
|
|
|
|
|
Use tail-recursion.
|
|
|
|
|
|
|
|
|
|
2019-07-17 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91178
|
|
|
|
|
* tree-ssa.c (release_defs_bitset): Iterate from higher to
|
|
|
|
|
lower SSA names to avoid quadratic behavior in the common case.
|
|
|
|
|
* tree-data-ref.c (split_constant_offset): Add limit argument
|
|
|
|
|
and pass it down. Initialize it from PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
|
|
|
|
|
(split_constant_offset_1): Add limit argument and use it to
|
|
|
|
|
limit SSA def walking. Optimize the common plus/minus case.
|
|
|
|
|
|
|
|
|
|
2019-07-12 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi (ssa-name-def-chain-limit): Document new --param.
|
|
|
|
|
* params.def (PARAM_SSA_NAME_DEF_CHAIN_LIMIT): Add new --param.
|
|
|
|
|
* tree-vrp.c (vrp_prop::check_mem_ref): Use
|
|
|
|
|
PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
|
|
|
|
|
|
2019-08-01 08:28:19 +02:00
|
|
|
|
2019-08-01 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
Backported from mainline
|
2019-08-01 08:31:20 +02:00
|
|
|
|
2019-07-31 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/91301
|
|
|
|
|
* gimplify.c (gimplify_omp_for): If for class iterator on
|
|
|
|
|
distribute parallel for there is no data sharing clause
|
|
|
|
|
on inner_for_stmt, look for private clause on combined
|
|
|
|
|
parallel too and if found, move it to inner_for_stmt.
|
|
|
|
|
|
2019-08-01 08:29:22 +02:00
|
|
|
|
2019-07-30 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-08-01 08:30:26 +02:00
|
|
|
|
PR middle-end/91216
|
|
|
|
|
* omp-low.c (global_nonaddressable_vars): New variable.
|
|
|
|
|
(use_pointer_for_field): For global decls, if they are non-addressable,
|
|
|
|
|
remember it in the global_nonaddressable_vars bitmap, if they are
|
|
|
|
|
addressable and in the global_nonaddressable_vars bitmap, ignore their
|
|
|
|
|
TREE_ADDRESSABLE bit.
|
|
|
|
|
(omp_copy_decl_2): Clear TREE_ADDRESSABLE also on private copies of
|
|
|
|
|
vars in global_nonaddressable_vars bitmap.
|
|
|
|
|
(execute_lower_omp): Free global_nonaddressable_vars bitmap.
|
|
|
|
|
|
2019-08-01 08:29:22 +02:00
|
|
|
|
PR target/91150
|
|
|
|
|
* config/i386/i386.c (expand_vec_perm_blend): Change mask type
|
|
|
|
|
from unsigned to unsigned HOST_WIDE_INT. For E_V64QImode cast
|
|
|
|
|
comparison to unsigned HOST_WIDE_INT before shifting it left.
|
|
|
|
|
|
2019-08-01 08:28:19 +02:00
|
|
|
|
2019-07-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91157
|
|
|
|
|
* tree-vect-generic.c (expand_vector_comparison): Handle lhs being
|
|
|
|
|
a vector boolean with scalar mode.
|
|
|
|
|
(expand_vector_condition): Handle first operand being a vector boolean
|
|
|
|
|
with scalar mode.
|
|
|
|
|
(expand_vector_operations_1): For comparisons, don't bail out early
|
|
|
|
|
if the return type is vector boolean with scalar mode, but comparison
|
|
|
|
|
operand type is not.
|
|
|
|
|
|
2019-08-01 07:57:12 +02:00
|
|
|
|
2019-08-01 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR target/91135
|
|
|
|
|
* config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't
|
|
|
|
|
define.
|
|
|
|
|
* config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Invoke
|
|
|
|
|
GNU_USER_TARGET_OS_CPP_BUILTINS for aixdesc abi.
|
|
|
|
|
(GNU_USER_TARGET_D_OS_VERSIONS): Don't define.
|
|
|
|
|
|
2019-07-31 21:56:16 +02:00
|
|
|
|
2019-07-31 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-24 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG)
|
|
|
|
|
(FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN)
|
|
|
|
|
(DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17.
|
|
|
|
|
|
2019-07-31 17:40:36 +02:00
|
|
|
|
2019-07-31 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-19 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91200
|
|
|
|
|
* tree-ssa-phiopt.c (cond_store_replacement): Check we have
|
|
|
|
|
no PHI nodes in middle-bb.
|
|
|
|
|
|
|
|
|
|
2019-07-15 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR middle-end/91162
|
|
|
|
|
* tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
|
|
|
|
|
node make sure to replace all uses with something valid.
|
|
|
|
|
|
|
|
|
|
2019-07-12 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91145
|
|
|
|
|
* tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction
|
|
|
|
|
chain check.
|
|
|
|
|
|
|
|
|
|
2019-07-11 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR middle-end/91131
|
|
|
|
|
* gimplify.c (gimplify_compound_literal_expr): Force a temporary
|
|
|
|
|
when the object is volatile and we have not cleared it even though
|
|
|
|
|
there are no nonzero elements.
|
|
|
|
|
|
|
|
|
|
2019-07-10 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91126
|
|
|
|
|
* tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
|
|
|
|
|
native encoding offset for BYTES_BIG_ENDIAN.
|
|
|
|
|
(vn_reference_lookup_3): Likewise.
|
|
|
|
|
|
2019-07-30 11:28:13 +02:00
|
|
|
|
2019-07-30 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-23 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
|
|
|
|
|
* i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2.
|
|
|
|
|
* config/i386/znver1.md: Enable patterns for znver2 and add store
|
|
|
|
|
variants which use extra AGU unit.
|
|
|
|
|
|
2019-07-30 10:10:22 +02:00
|
|
|
|
2019-07-30 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-23 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
|
|
|
|
|
* config/i386/i386.c (ix86_option_override_internal): Default
|
|
|
|
|
PARAM_AVOID_FMA_MAX_BITS to 256 for znver2.
|
|
|
|
|
* config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Set
|
|
|
|
|
for ZNVER2.
|
|
|
|
|
|
2019-07-30 10:03:43 +02:00
|
|
|
|
2019-07-30 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-23 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
|
|
|
|
|
* config/i386/x86-tune-costs.h (znver2_memcpy): Update.
|
|
|
|
|
(znver2_costs): Update 256 bit SSE costs and multiplication.
|
|
|
|
|
|
2019-07-24 03:32:59 +02:00
|
|
|
|
2019-07-24 Bin Cheng <bin.cheng@linux.alibaba.com>
|
2019-07-24 03:28:33 +02:00
|
|
|
|
|
|
|
|
|
Backport from mainline
|
2019-07-24 03:32:59 +02:00
|
|
|
|
2019-07-18 Bin Cheng <bin.cheng@linux.alibaba.com>
|
2019-07-24 03:28:33 +02:00
|
|
|
|
|
|
|
|
|
PR tree-optimization/91137
|
|
|
|
|
* tree-ssa-loop-ivopts.c (struct ivopts_data): New field.
|
|
|
|
|
(tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize):
|
|
|
|
|
Init, use and fini the above new field.
|
|
|
|
|
(determine_base_object_1): New function.
|
|
|
|
|
(determine_base_object): Reimplement using walk_tree.
|
|
|
|
|
|
2019-07-23 17:56:22 +02:00
|
|
|
|
2019-07-23 Matthew Beliveau <mbelivea@redhat.com>
|
|
|
|
|
|
|
|
|
|
Backported from mainline
|
|
|
|
|
2019-07-16 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/91173
|
|
|
|
|
* tree-ssa-address.c (addr_for_mem_ref): If the base is an
|
|
|
|
|
SSA_NAME with a constant value, fold its value into the offset
|
|
|
|
|
and clear the base before calling gen_addr_rtx.
|
|
|
|
|
* g++.dg/pr91173.C: New test.
|
|
|
|
|
|
2019-07-23 13:17:37 +02:00
|
|
|
|
2019-07-23 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR debug/91231
|
|
|
|
|
* lto-streamer-in.c (input_function): Drop inline-entry markers
|
|
|
|
|
that ended up with an unknown location block.
|
|
|
|
|
|
2019-07-22 18:32:37 +02:00
|
|
|
|
2019-07-22 Paul A. Clarke <pc@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
* config/rs6000/smmintrin.h (_mm_blend_epi16): New.
|
|
|
|
|
(_mm_blendv_epi8): New.
|
|
|
|
|
|
2019-07-22 11:37:18 +02:00
|
|
|
|
2019-07-22 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-22 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR driver/91172
|
|
|
|
|
* opts-common.c (decode_cmdline_option): Decode
|
|
|
|
|
argument of -Werror and check it for a wrong language.
|
|
|
|
|
* opts-global.c (complain_wrong_lang): Remove such case.
|
|
|
|
|
|
2019-07-22 09:21:24 +02:00
|
|
|
|
2019-07-22 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline.
|
|
|
|
|
* config/arc/arc.c (prepare_move_operands): Always use an
|
|
|
|
|
intermediate register when storing a TLS symbols.
|
|
|
|
|
|
2019-07-20 20:49:59 +02:00
|
|
|
|
2019-07-20 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-10 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
* fold-const.c (fold_relational_const): Fix folding of
|
|
|
|
|
vector-to-scalar NE_EXPRs.
|
|
|
|
|
(test_vector_folding): Add more tests.
|
|
|
|
|
|
2019-07-19 10:52:41 +02:00
|
|
|
|
2019-07-19 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/82081 - tail call optimization breaks noexcept
|
|
|
|
|
* tree-tailcall.c (find_tail_calls): Don't turn a call from a
|
|
|
|
|
nothrow function to a might-throw function into a tail call.
|
|
|
|
|
|
2019-07-18 09:00:32 +02:00
|
|
|
|
2019-07-18 Kito Cheng <kito.cheng@sifive.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-08 Andrew Waterman <andrew@sifive.com>
|
|
|
|
|
Jim Wilson <jimw@sifive.com>
|
|
|
|
|
|
|
|
|
|
* config/riscv/riscv.md (lshrsi3_zero_extend_3+1): Use operands[1]
|
|
|
|
|
bitsize instead of BITS_PER_WORD.
|
|
|
|
|
gcc/testsuite/
|
|
|
|
|
|
2019-07-18 02:10:27 +02:00
|
|
|
|
2019-07-17 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/pa/pa.c (pa_som_asm_init_sections): Don't force all constant
|
|
|
|
|
data into data section when generating PIC code.
|
|
|
|
|
(pa_select_section): Use pa_reloc_rw_mask() to qualify relocs.
|
|
|
|
|
(pa_reloc_rw_mask): Return 3 when generating PIC code and when
|
|
|
|
|
generating code for SOM targets earlier than HP-UX 11. Otherwise,
|
|
|
|
|
return 2 for SOM and 0 for other targets.
|
|
|
|
|
|
2019-07-17 09:32:30 +02:00
|
|
|
|
2019-07-17 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-01 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/vector.md: Fix shift count operand printing.
|
|
|
|
|
|
2019-07-16 18:17:39 +02:00
|
|
|
|
2019-07-16 Wilco Dijkstra <wdijkstr@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-05-30 Wilco Dijkstra <wdijkstr@arm.com>
|
|
|
|
|
|
|
|
|
|
PR driver/90684
|
|
|
|
|
* gcc/opts.c (parse_and_check_align_values): Allow 4 alignment values.
|
|
|
|
|
|
2019-07-14 10:27:12 +02:00
|
|
|
|
2019-07-14 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
Backported from mainline
|
|
|
|
|
2019-07-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-07-14 10:28:06 +02:00
|
|
|
|
PR middle-end/78884
|
|
|
|
|
* gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member.
|
|
|
|
|
(gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd
|
|
|
|
|
loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE.
|
|
|
|
|
(gimplify_adjust_omp_clauses): Add safelen (1) clause if
|
|
|
|
|
ctx->add_safelen1 is set.
|
|
|
|
|
|
2019-07-14 10:27:12 +02:00
|
|
|
|
PR rtl-optimization/90756
|
|
|
|
|
* explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
|
|
|
|
|
for VECTOR_TYPE_P.
|
|
|
|
|
|
2019-07-12 16:42:14 +02:00
|
|
|
|
2019-07-12 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91063
|
|
|
|
|
* tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove
|
|
|
|
|
stmt from stmts sequence before calling vect_init_vector_1.
|
|
|
|
|
Formatting fix.
|
|
|
|
|
|
|
|
|
|
2019-07-04 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR ipa/91062
|
|
|
|
|
* tree-pass.h (execute_all_ipa_transforms): Add a flag
|
|
|
|
|
parameter whether to disable GC collection.
|
|
|
|
|
* passes.c (execute_one_ipa_transform_pass): Likewise, and
|
|
|
|
|
honor it.
|
|
|
|
|
(execute_all_ipa_transforms): Likewise and pass it down.
|
|
|
|
|
* cgraph.c (cgraph_node::get_body): Do not invoke garbage
|
|
|
|
|
collection from applying IPA transforms.
|
|
|
|
|
* cgraphunit.c (cgraph_node::expand): Allow garbage collection
|
|
|
|
|
from applying IPA transforms.
|
|
|
|
|
|
|
|
|
|
2019-06-26 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR ipa/90982
|
|
|
|
|
* tree-inline.c (remap_ssa_name): Copy SSA range info.
|
|
|
|
|
|
|
|
|
|
2019-06-24 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90972
|
|
|
|
|
* tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P
|
|
|
|
|
in common code, dealing with STRING_CST properly.
|
|
|
|
|
|
|
|
|
|
2019-06-21 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR debug/90914
|
|
|
|
|
* dwarf2out.c (prune_unused_types_walk): Always consider
|
|
|
|
|
function-local extern declarations as used.
|
|
|
|
|
|
|
|
|
|
2019-06-18 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR debug/90900
|
|
|
|
|
* cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
|
|
|
|
|
as if optimized away.
|
|
|
|
|
|
|
|
|
|
2019-05-07 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR lto/90369
|
|
|
|
|
* lto-wrapper.c (debug_objcopy): Use the original filename
|
|
|
|
|
including archive offset for the filename used for -save-temps.
|
|
|
|
|
|
2019-07-12 12:16:11 +02:00
|
|
|
|
2019-07-12 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/91136
|
|
|
|
|
* df-core.c (ACCESSING REFS): Fix typos in comment.
|
|
|
|
|
* resource.c (mark_target_live_reg): Add artificial defs that occur at
|
|
|
|
|
the beginning of the block to the initial set of live registers.
|
|
|
|
|
|
2019-07-11 22:49:13 +02:00
|
|
|
|
2019-07-11 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
2019-08-25 20:21:04 +02:00
|
|
|
|
Backport from mainline
|
2019-07-11 22:49:13 +02:00
|
|
|
|
2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/sse.md (*andnot<mode>3_bcst): Fix VI/VI48_AVX512VL typo.
|
|
|
|
|
|
2019-07-11 20:42:20 +02:00
|
|
|
|
2019-07-11 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Handle
|
|
|
|
|
Modula-2.
|
|
|
|
|
|
2019-07-08 13:48:48 +02:00
|
|
|
|
2019-07-08 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/91108
|
|
|
|
|
* tree-ssa-sccvn.c: Include builtins.h.
|
|
|
|
|
(vn_reference_lookup_3): Use only alignment constraints to
|
|
|
|
|
verify same-valued store disambiguation.
|
|
|
|
|
|
2019-07-05 17:06:11 +02:00
|
|
|
|
2019-07-05 Szabolcs Nagy <szabolcs.nagy@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
|
|
|
|
|
|
|
|
|
|
* config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare.
|
|
|
|
|
(aarch64_asm_output_external): Declare.
|
|
|
|
|
* config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New.
|
|
|
|
|
(aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs.
|
|
|
|
|
(aarch64_asm_output_alias): New.
|
|
|
|
|
(aarch64_asm_output_external): New.
|
|
|
|
|
* config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
|
|
|
|
|
(ASM_OUTPUT_EXTERNAL): Define.
|
|
|
|
|
|
|
|
|
|
2019-06-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
|
|
|
|
|
|
|
|
|
|
* config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
|
|
|
|
|
const.
|
|
|
|
|
* config/aarch64/aarch64.c (aarch64_asm_output_external): Call
|
|
|
|
|
default_elf_asm_output_external.
|
|
|
|
|
|
2019-07-04 11:03:56 +02:00
|
|
|
|
2019-07-04 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-03 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90892
|
|
|
|
|
* builtins.c (inline_expand_builtin_string_cmp): Handle '\0'
|
|
|
|
|
in string constants.
|
|
|
|
|
|
2019-07-04 11:03:40 +02:00
|
|
|
|
2019-07-04 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-07-03 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR middle-end/90899
|
|
|
|
|
* multiple_target.c (create_dispatcher_calls): Add to comdat
|
|
|
|
|
group only if set for ifunc.
|
|
|
|
|
|
2019-07-03 14:01:30 +02:00
|
|
|
|
2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2out.c (add_scalar_info): Add back refererence to existing DIE
|
|
|
|
|
if it has the DW_AT_data_member_location attribute.
|
|
|
|
|
|
2019-07-02 15:57:56 +02:00
|
|
|
|
2019-07-02 Andrew Stubbs <ams@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline:
|
|
|
|
|
2019-07-02 Andrew Stubbs <ams@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn
|
|
|
|
|
with inlined save and restore.
|
|
|
|
|
|
2019-07-01 18:27:06 +02:00
|
|
|
|
2019-07-01 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/64242
|
|
|
|
|
* config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last.
|
|
|
|
|
Add frame clobber and schedule blockage.
|
|
|
|
|
|
2019-06-29 00:10:04 +02:00
|
|
|
|
2019-06-29 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
Backported from mainline
|
2019-06-29 00:57:16 +02:00
|
|
|
|
2019-06-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/91024
|
|
|
|
|
* gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT
|
|
|
|
|
statements.
|
|
|
|
|
|
2019-06-29 00:56:27 +02:00
|
|
|
|
2019-06-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/90991
|
|
|
|
|
* config/i386/sse.md
|
|
|
|
|
(*<extract_type>_vinsert<shuffletype><extract_suf>_0): Use vmovupd,
|
|
|
|
|
vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned
|
|
|
|
|
insns if operands[2] is misaligned_operand.
|
|
|
|
|
|
2019-06-29 00:10:04 +02:00
|
|
|
|
2019-06-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/90760
|
|
|
|
|
* symtab.c (symtab_node::set_section): Allow being called on aliases
|
|
|
|
|
as long as they aren't analyzed yet.
|
|
|
|
|
|
2019-06-28 22:21:05 +02:00
|
|
|
|
2019-06-28 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-21 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90949
|
|
|
|
|
* tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
|
|
|
|
|
* tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.
|
|
|
|
|
|
2019-06-28 18:37:14 +02:00
|
|
|
|
2019-06-28 Andrew Stubbs <ams@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline:
|
|
|
|
|
2019-05-22 Andrew Stubbs <ams@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
|
|
|
|
|
|
2019-06-26 14:04:08 +02:00
|
|
|
|
2019-06-26 Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-25 Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR ipa/90939
|
|
|
|
|
* ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
|
|
|
|
|
|
2019-06-26 11:15:46 +02:00
|
|
|
|
2019-06-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
|
|
|
|
|
alternative Solaris 11.4 format.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2019-06-25 13:02:21 +02:00
|
|
|
|
2019-06-25 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-25 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* config/arc/arc.c (arc_symbol_binds_local_p): New function.
|
|
|
|
|
(arc_legitimize_pic_address): Simplify and cleanup the function.
|
|
|
|
|
(SYMBOLIC_CONST): Remove.
|
|
|
|
|
(prepare_pic_move): Likewise.
|
|
|
|
|
(prepare_move_operands): Handle complex mov cases here.
|
|
|
|
|
(arc_legitimize_address_0): Remove call to
|
|
|
|
|
arc_legitimize_pic_address.
|
|
|
|
|
(arc_legitimize_address): Remove call to
|
|
|
|
|
arc_legitimize_tls_address.
|
|
|
|
|
* config/arc/arc.md (movqi_insn): Allow Cm3 match.
|
|
|
|
|
(movhi_insn): Likewise.
|
|
|
|
|
|
2019-06-25 11:47:15 +02:00
|
|
|
|
2019-06-25 Andrew Stubbs <ams@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-05-24 Andrew Stubbs <ams@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/gcn/gcn-run.c (main): Set a non-zero return value if the
|
|
|
|
|
kernel does not exit cleanly.
|
|
|
|
|
* config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.
|
|
|
|
|
|
2019-06-25 11:47:09 +02:00
|
|
|
|
2019-06-25 Andrew Stubbs <ams@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-05-24 Andrew Stubbs <ams@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
|
|
|
|
|
for lo-part.
|
|
|
|
|
|
2019-06-25 09:30:44 +02:00
|
|
|
|
2019-06-21 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90930
|
|
|
|
|
* tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
|
|
|
|
|
flag on new stmts to avoid re-processing them.
|
|
|
|
|
|
2019-06-24 19:19:36 +02:00
|
|
|
|
2019-06-24 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90930
|
|
|
|
|
PR tree-optimization/90316
|
|
|
|
|
* tree-ssa-alias.c (walk_non_aliased_vuses): Add missing
|
|
|
|
|
decrement of limit.
|
|
|
|
|
|
2019-06-17 19:27:30 +02:00
|
|
|
|
2019-06-16 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-06-16 Prachi Godbole <prachi.godbole@imgtec.com>
|
|
|
|
|
Robert Suchanek <robert.suchanek@mips.com>
|
|
|
|
|
* config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
|
|
|
|
|
and 3rd operands of the fmadd/fmsub/maddv builtin.
|
|
|
|
|
|
2019-06-16 23:44:08 +02:00
|
|
|
|
2019-06-16 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR middle-end/64242
|
|
|
|
|
* config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add
|
|
|
|
|
frame clobbers and schedule block.
|
|
|
|
|
(builtin_longjmp): Likewise.
|
|
|
|
|
|
2019-06-11 18:43:09 +02:00
|
|
|
|
2019-06-11 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/90811
|
|
|
|
|
* config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
|
|
|
|
|
instead of and.u%d.
|
|
|
|
|
|
2019-06-08 01:20:44 +02:00
|
|
|
|
2019-06-07 John David Anglin <danglin@gcc.gnu.orig>
|
|
|
|
|
|
|
|
|
|
PR target/90751
|
|
|
|
|
* config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
|
|
|
|
|
Call pa_output_function_label.
|
|
|
|
|
(TARGET_ASM_FUNCTION_PROLOGUE): define.
|
|
|
|
|
* config/pa/pa-protos.h (pa_output_function_label): Declare.
|
|
|
|
|
* config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
|
|
|
|
|
to declaration.
|
|
|
|
|
(pa_linux_output_function_prologue): Declare.
|
|
|
|
|
(TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
|
|
|
|
|
(pa_output_function_label): New.
|
|
|
|
|
(pa_output_function_prologue): Revise to use pa_output_function_label.
|
|
|
|
|
(pa_linux_output_function_prologue): New.
|
|
|
|
|
* config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
|
|
|
|
|
|
2019-06-06 13:06:45 +02:00
|
|
|
|
2019-06-06 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-05-22 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90450
|
|
|
|
|
* tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
|
|
|
|
|
(mem_ref_hasher::equal): Check it.
|
|
|
|
|
(mem_ref_alloc): Initialize it.
|
|
|
|
|
(gather_mem_refs_stmt): Set it.
|
|
|
|
|
|
|
|
|
|
2019-05-13 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90402
|
|
|
|
|
* tree-if-conv.c (tree_if_conversion): Value number only
|
|
|
|
|
the loop body by making the latch an exit of the region
|
|
|
|
|
as well.
|
|
|
|
|
* tree-ssa-sccvn.c (process_bb): Add flag whether to skip
|
|
|
|
|
processing PHIs.
|
|
|
|
|
(do_rpo_vn): Deal with multiple edges into the entry block
|
|
|
|
|
that are not backedges inside the region by skipping PHIs
|
|
|
|
|
of the entry block.
|
|
|
|
|
|
|
|
|
|
2019-05-06 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90328
|
|
|
|
|
* tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
|
|
|
|
|
* tree-data-ref.c (dr_may_alias_p): Check whether the clique
|
|
|
|
|
is valid in the loop nest before using it.
|
|
|
|
|
(initialize_data_dependence_relation): Adjust.
|
|
|
|
|
* graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
|
|
|
|
|
loop as loop-nest to dr_may_alias_p.
|
|
|
|
|
|
2019-06-05 16:21:37 +02:00
|
|
|
|
2019-06-05 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
|
|
|
|
|
multiplication by a power-of-two value.
|
|
|
|
|
(fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
|
|
|
|
|
and turn the modulo operation into a masking operation.
|
|
|
|
|
|
2019-06-05 14:22:22 +02:00
|
|
|
|
2019-06-05 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR debug/90733
|
|
|
|
|
* var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
|
|
|
|
|
with VOIDmode inner operands.
|
|
|
|
|
|
2019-06-05 10:27:37 +02:00
|
|
|
|
2019-06-05 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline.
|
|
|
|
|
2019-05-23 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
* doc/sourcebuild.texi: Document mfentry target support.
|
|
|
|
|
|
2019-05-30 11:34:26 +02:00
|
|
|
|
2019-05-30 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
|
|
|
|
|
to length.
|
|
|
|
|
|
2019-05-30 10:06:38 +02:00
|
|
|
|
2019-05-30 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline.
|
|
|
|
|
2019-05-23 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/i386/darwin.h: Reject -mfentry*.
|
|
|
|
|
|
2019-05-30 09:56:10 +02:00
|
|
|
|
2019-05-30 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline.
|
|
|
|
|
2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
PR target/82920
|
|
|
|
|
* config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
|
|
|
|
|
Darwin.
|
|
|
|
|
|
2019-05-30 09:51:32 +02:00
|
|
|
|
2019-05-30 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
Backport from mainline.
|
|
|
|
|
2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
PR target/82920
|
|
|
|
|
* config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
|
|
|
|
|
(ix86_output_indirect_branch_via_reg): Use output mechanism
|
|
|
|
|
accounting for __USER_LABEL_PREFIX__.
|
|
|
|
|
(ix86_output_indirect_branch_via_push): Likewise.
|
|
|
|
|
(ix86_output_function_return): Likewise.
|
|
|
|
|
(ix86_output_indirect_function_return): Likewise.
|
|
|
|
|
|
2019-05-29 17:55:12 +02:00
|
|
|
|
2019-05-29 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/90329
|
|
|
|
|
* lto-streamer.h (LTO_minor_version): Bump to 1.
|
|
|
|
|
|
|
|
|
|
Backported from mainline
|
|
|
|
|
2019-05-16 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR fortran/90329
|
|
|
|
|
* tree-core.h (struct tree_decl_common): Document
|
|
|
|
|
decl_nonshareable_flag for PARM_DECLs.
|
|
|
|
|
* tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
|
|
|
|
|
* calls.c (expand_call): Don't try tail call if caller
|
|
|
|
|
has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
|
|
|
|
|
passed on the stack and callee needs to pass any arguments on the
|
|
|
|
|
stack.
|
|
|
|
|
* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
|
|
|
|
|
else if instead of series of mutually exclusive ifs. Handle
|
|
|
|
|
DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
|
|
|
|
|
* tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
|
|
|
|
|
|
2019-05-29 11:35:34 +02:00
|
|
|
|
2019-05-29 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/90543
|
|
|
|
|
* optc-save-gen.awk: In cl_optimization_print, use correct condition
|
|
|
|
|
for var_opt_string printing. In cl_optimization_print_diff, print
|
|
|
|
|
(null) instead of invoking undefined behavior if one of the
|
|
|
|
|
var_opt_string pointers is NULL and use && instead of first || in the
|
|
|
|
|
guarding condition. For var_target_other options, handle const char *
|
|
|
|
|
target variables similarly to const char * optimize node variables.
|
|
|
|
|
|
2019-05-29 01:28:02 +02:00
|
|
|
|
2019-05-28 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
|
|
|
|
|
|
2019-05-27 18:12:41 +02:00
|
|
|
|
2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
|
|
|
|
|
and DW_OP_GNU_const_index opcodes.
|
|
|
|
|
|
2019-05-25 01:15:49 +02:00
|
|
|
|
2019-05-24 John David Anglin <danglin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR target/90530
|
|
|
|
|
* config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
|
|
|
|
|
DImode to SImode in floating-point registers on 64-bit target.
|
|
|
|
|
* config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
|
|
|
|
|
register_operand in xmpyu patterns.
|
|
|
|
|
|
2019-05-24 09:43:48 +02:00
|
|
|
|
2019-05-24 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-05-23 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR sanitizer/90570
|
|
|
|
|
* gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
|
|
|
|
|
expression similarly to gimplify_decl_expr.
|
|
|
|
|
|
2019-05-22 20:49:22 +02:00
|
|
|
|
2019-05-22 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
Backported from mainline
|
|
|
|
|
2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/i386/cpuid.h (__cpuid): For 32bit targets, zero
|
|
|
|
|
%ebx and %ecx bafore calling cpuid with leaf 1 or
|
|
|
|
|
non-constant leaf argument.
|
|
|
|
|
|
|
|
|
|
2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR target/90547
|
|
|
|
|
* config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
|
|
|
|
|
Avoid calling gen_lowpart with CONST operand.
|
|
|
|
|
|
2019-05-21 06:41:23 +02:00
|
|
|
|
2019-05-21 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
Backported from mainline
|
|
|
|
|
2019-05-16 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
* config/arm/t-rtems: Replace ARMv7-M multilibs with Cortex-M
|
|
|
|
|
multilibs.
|
|
|
|
|
|
2019-05-20 21:08:18 +02:00
|
|
|
|
2019-05-20 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
Backported from mainline
|
|
|
|
|
2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
|
|
|
|
|
|
|
|
|
|
* config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
|
|
|
|
|
TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
|
|
|
|
|
and fpxx modes.
|
|
|
|
|
|
2019-05-17 21:48:25 +02:00
|
|
|
|
2019-05-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
Backported from mainline
|
2019-05-17 21:53:48 +02:00
|
|
|
|
2019-05-16 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-05-17 21:54:15 +02:00
|
|
|
|
PR c++/90484
|
|
|
|
|
* tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
|
|
|
|
|
sz0 is equal to sz1, instead return false in that case.
|
|
|
|
|
|
2019-05-17 21:53:48 +02:00
|
|
|
|
* omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
|
|
|
|
|
has non-constant expression, force sctx.lane and use two
|
|
|
|
|
argument IFN_GOMP_SIMD_LANE instead of single argument.
|
|
|
|
|
* tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
|
|
|
|
|
two argument IFN_GOMP_SIMD_LANE without lhs.
|
|
|
|
|
* tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
|
|
|
|
|
member.
|
|
|
|
|
(LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
|
|
|
|
|
Define.
|
|
|
|
|
(LOOP_REQUIRES_VERSIONING): Or in
|
|
|
|
|
LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
|
|
|
|
|
* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
|
|
|
|
|
simd_if_cond.
|
|
|
|
|
(vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
|
|
|
|
|
* tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
|
|
|
|
|
from simd if clause if needed.
|
|
|
|
|
|
2019-05-17 21:52:55 +02:00
|
|
|
|
2019-05-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
|
|
|
|
|
max_vf to 1.
|
|
|
|
|
* omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
|
|
|
|
|
safelen_int and set loop->dont_vectorize.
|
|
|
|
|
|
2019-05-17 21:50:52 +02:00
|
|
|
|
2019-05-10 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-05-17 21:51:32 +02:00
|
|
|
|
PR tree-optimization/90385
|
|
|
|
|
* tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
|
|
|
|
|
arguments of the exit phis.
|
|
|
|
|
|
2019-05-17 21:50:52 +02:00
|
|
|
|
PR c++/90383
|
|
|
|
|
* tree-inline.h (struct copy_body_data): Add do_not_fold member.
|
|
|
|
|
* tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
|
|
|
|
|
id->do_not_fold.
|
|
|
|
|
(copy_tree_body_r): Likewise.
|
|
|
|
|
(copy_fn): Set id.do_not_fold to true.
|
|
|
|
|
|
2019-05-17 21:48:25 +02:00
|
|
|
|
2019-05-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90303
|
|
|
|
|
* ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
|
|
|
|
|
TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
|
|
|
|
|
|
2019-05-17 10:10:58 +02:00
|
|
|
|
2019-05-17 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-05-07 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90316
|
|
|
|
|
* tree-ssa-alias.h (get_continuation_for_phi): Take walking
|
|
|
|
|
limit by reference.
|
|
|
|
|
(walk_non_aliased_vuses): Take walking limit argument.
|
|
|
|
|
* tree-ssa-alias.c (maybe_skip_until): Take limit and abort
|
|
|
|
|
walking if it is reached instead of just counting.
|
|
|
|
|
(get_continuation_for_phi): Likewise.
|
|
|
|
|
(walk_non_aliased_vuses): Likewise, instead of leaving counter
|
|
|
|
|
limiting to the callback.
|
|
|
|
|
* tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
|
|
|
|
|
(vn_reference_lookup_3): Likewise.
|
|
|
|
|
(vn_reference_lookup_pieces): Likewise.
|
|
|
|
|
(vn_reference_lookup): Likewise.
|
|
|
|
|
* tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
|
|
|
|
|
* tree-ssa-scopedtables.c (vuse_eq): Adjust.
|
|
|
|
|
(avail_exprs_stack::lookup_avail_expr): Likewise.
|
|
|
|
|
|
|
|
|
|
2019-05-06 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90316
|
|
|
|
|
* tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
|
|
|
|
|
compute target on demand.
|
|
|
|
|
(get_continuation_for_phi): Remove code walking stmts to
|
|
|
|
|
get to a target virtual operand which could end up being
|
|
|
|
|
quadratic.
|
|
|
|
|
|
2019-05-15 07:20:02 +02:00
|
|
|
|
2019-05-15 Li Jia He <helijia@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline.
|
|
|
|
|
2019-05-07 Li Jia He <helijia@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
|
|
|
|
|
detection.
|
|
|
|
|
|
2019-05-14 10:47:40 +02:00
|
|
|
|
2019-05-14 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-05-13 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90416
|
|
|
|
|
* tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
|
|
|
|
|
string instead of passing the second part as va_arg argument.
|
|
|
|
|
|
2019-05-14 10:46:35 +02:00
|
|
|
|
2019-05-14 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-05-13 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR gcov-profile/90380
|
|
|
|
|
* gcov.c (handle_cycle): Do not support zero cycle count,
|
|
|
|
|
it should not be possible.
|
|
|
|
|
(path_contains_zero_cycle_arc): New function.
|
|
|
|
|
(circuit): Ignore zero cycle arc counts.
|
|
|
|
|
|
2019-05-14 10:46:27 +02:00
|
|
|
|
2019-05-14 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-05-13 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR gcov-profile/90380
|
|
|
|
|
* gcov.c (enum loop_type): Remove the enum and
|
|
|
|
|
the operator.
|
|
|
|
|
(handle_cycle): Assert that we should not reach
|
|
|
|
|
a negative count.
|
|
|
|
|
(circuit): Use loop_found instead of a tri-state loop_type.
|
|
|
|
|
(get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
|
|
|
|
|
happen.
|
|
|
|
|
|
2019-05-14 05:25:38 +02:00
|
|
|
|
2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline.
|
|
|
|
|
2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR target/90357
|
|
|
|
|
* config/mips/mips.c (mips_split_move): Skip forward SRC into
|
|
|
|
|
next insn when the SRC reg is dead.
|
|
|
|
|
|
2019-05-11 22:43:00 +02:00
|
|
|
|
2019-05-11 Andreas Tobler <andreast@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from mainline.
|
|
|
|
|
2019-04-25 Andreas Tobler <andreast@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* config/i386/freebsd64.h: Add bits for 32-bit multilib support.
|
|
|
|
|
* config/i386/t-freebsd64: New file.
|
|
|
|
|
* config.gcc: Add the t-freebsd64 for multilib support.
|
|
|
|
|
|
2019-05-10 16:00:17 +02:00
|
|
|
|
2019-05-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from mainline.
|
|
|
|
|
2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR target/89765
|
|
|
|
|
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
|
|
|
|
|
In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
|
|
|
|
|
to compute vector element selector for both constant and variable
|
|
|
|
|
operands.
|
|
|
|
|
|
2019-05-10 14:01:47 +02:00
|
|
|
|
2019-05-10 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
|
|
|
|
|
(do_rpo_vn): Initialize next_value_id.
|
|
|
|
|
|
2019-05-09 11:52:53 +02:00
|
|
|
|
2019-05-09 Thomas Schwinge <thomas@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* cif-code.def (CHKP): Remove.
|
|
|
|
|
|
2019-05-07 18:22:21 +02:00
|
|
|
|
2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
Backport from mainline.
|
|
|
|
|
2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR target/89424
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
|
|
|
|
|
handling of V1TImode.
|
|
|
|
|
|
2019-05-06 16:01:45 +02:00
|
|
|
|
2019-05-06 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-05-06 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR sanitizer/90312
|
|
|
|
|
* config/i386/i386-options.c (ix86_option_override_internal): Error only
|
|
|
|
|
when -mabi is selected to a non-default version.
|
|
|
|
|
|
2019-05-04 17:39:52 +02:00
|
|
|
|
2019-05-04 Michael Meissner <meissner@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* ChangeLog.ibm: Delete unintentional commit on the wrong branch.
|
|
|
|
|
* REVISION: Likewise.
|
|
|
|
|
|
2019-05-03 13:22:33 +02:00
|
|
|
|
2019-05-03 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90316
|
|
|
|
|
* tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
|
|
|
|
|
before running VN.
|
|
|
|
|
|
2019-05-03 10:47:02 +02:00
|
|
|
|
2019-05-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* BASE-VER: Set to 9.1.1.
|
|
|
|
|
|
2019-05-03 09:59:54 +02:00
|
|
|
|
2019-05-03 Release Manager
|
|
|
|
|
|
|
|
|
|
* GCC 9.1.0 released.
|
|
|
|
|
|
2019-04-30 14:02:30 +02:00
|
|
|
|
2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
|
|
|
|
|
|
|
|
|
Backport from mainline.
|
|
|
|
|
2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
|
|
|
|
PR target/86538
|
|
|
|
|
* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
|
2019-05-03 10:47:02 +02:00
|
|
|
|
Define __ARM_FEATURE_ATOMICS.
|
2019-04-30 14:02:30 +02:00
|
|
|
|
|
2019-04-30 10:51:23 +02:00
|
|
|
|
2019-04-30 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-04-30 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR translation/90274
|
|
|
|
|
* opts.c (print_filtered_help): Wrap string in _(...).
|
|
|
|
|
|
2019-04-30 10:35:28 +02:00
|
|
|
|
2019-04-30 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
Backport from mainline
|
|
|
|
|
2019-04-27 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR middle-end/90258
|
|
|
|
|
* opt-suggestions.c (option_proposer::build_option_suggestions):
|
|
|
|
|
When get_valid_option_values returns empty values, add the
|
|
|
|
|
misspelling candidate.
|
|
|
|
|
|
2019-04-30 09:40:06 +02:00
|
|
|
|
2019-04-30 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90273
|
|
|
|
|
* tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
|
|
|
|
|
useless debug stmts.
|
|
|
|
|
|
2019-04-28 10:02:10 +02:00
|
|
|
|
2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org>
|
|
|
|
|
|
|
|
|
|
* config/netbsd-d.c: Include memmodel.h. Remove unused tree.h,
|
|
|
|
|
varasm.h, and netbsd-protos.h.
|
|
|
|
|
|
2019-04-26 15:49:53 +02:00
|
|
|
|
2019-04-26 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
PR other/90257
|
|
|
|
|
Revert the revert:
|
|
|
|
|
2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR target/90178
|
|
|
|
|
Revert:
|
|
|
|
|
2018-11-21 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
Revert the revert:
|
|
|
|
|
2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
|
|
|
|
|
|
|
|
|
|
Revert:
|
|
|
|
|
2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
|
|
|
|
|
|
|
|
|
|
* lra-spills.c (lra_final_code_change): Remove useless move insns.
|
|
|
|
|
|
2019-04-25 20:08:14 +02:00
|
|
|
|
2019-04-25 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90240
|
|
|
|
|
Revert:
|
|
|
|
|
2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90078
|
|
|
|
|
* tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
|
|
|
|
|
checks for infinite_cost overflow.
|
|
|
|
|
|
2019-04-25 20:04:17 +02:00
|
|
|
|
2019-04-25 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* DEV-PHASE: Set to prerelease.
|
|
|
|
|
|
2019-04-25 19:58:56 +02:00
|
|
|
|
2019-04-25 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR middle-end/89765
|
|
|
|
|
* gimplify.c (gimplify_expr): Avoid turning a lvalue
|
|
|
|
|
VIEW_CONVERT_EXPR into one operating on an rvalue.
|
|
|
|
|
|
x86: Update message for target_clones and unsupported ISAs
Before AVX512F, processors with the newer ISAs also support the older
ISAs, i.e., AVX2 processors also support AVX and SSE4, SSE4 processors
also support SSSE3, ... After AVX512F, an AVX512XX processor may not
support AVX512YY. It means AVX512XX features, except for AVX512F, can't
be used to decide priority in target_clones.
This patch updates error message for ISAs with P_ZERO priority. It also
merges _feature_list into _isa_names_table and marks ISAs, which have
unknown priority, with P_ZERO so that we only need to update one place
to add a new ISA feature.
gcc/
2019-04-25 H.J. Lu <hongjiu.lu@intel.com>
PR target/89929
* config/i386/i386.c (feature_priority): Moved to file scope.
(processor_features): Likewise.
(processor_model): Likewise.
(_arch_names_table): Likewise.
(arch_names_table): Likewise.
(_feature_list): Removed.
(feature_list): Likewise.
(_isa_names_table): Moved to file scope. Add priority.
(isa_names_table): Likewise.
(get_builtin_code_for_version): Replace feature_list with
isa_names_table. Update error message for P_ZERO priority.
gcc/testsuite/
2019-04-25 Martin Liska <mliska@suse.cz>
H.J. Lu <hongjiu.lu@intel.com>
PR target/89929
* g++.target/i386/mv28.C: New test.
* gcc.target/i386/mvc14.c: Likewise.
* g++.target/i386/pr57362.C: Updated.
From-SVN: r270578
2019-04-25 19:00:28 +02:00
|
|
|
|
2019-04-25 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR target/89929
|
|
|
|
|
* config/i386/i386.c (feature_priority): Moved to file scope.
|
|
|
|
|
(processor_features): Likewise.
|
|
|
|
|
(processor_model): Likewise.
|
|
|
|
|
(_arch_names_table): Likewise.
|
|
|
|
|
(arch_names_table): Likewise.
|
|
|
|
|
(_feature_list): Removed.
|
|
|
|
|
(feature_list): Likewise.
|
|
|
|
|
(_isa_names_table): Moved to file scope. Add priority.
|
|
|
|
|
(isa_names_table): Likewise.
|
|
|
|
|
(get_builtin_code_for_version): Replace feature_list with
|
|
|
|
|
isa_names_table. Update error message for P_ZERO priority.
|
|
|
|
|
|
2019-04-25 16:55:42 +02:00
|
|
|
|
2019-04-25 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* tree-pass.h (make_pass_phi_only_cprop): Remove.
|
|
|
|
|
* timevar.def (TV_TREE_PHI_CPROP): Likewise.
|
|
|
|
|
|
2019-04-25 16:32:16 +02:00
|
|
|
|
2019-04-24 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90037
|
|
|
|
|
* Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
|
|
|
|
|
* passes.def: Replace all instance of phi-only cprop with the
|
|
|
|
|
lattice propagator. Move propagation pass from after erroneous
|
|
|
|
|
path isolation to before erroneous path isolation.
|
|
|
|
|
* tree-ssa-phionlycprop.c: Remove.
|
|
|
|
|
|
2019-04-25 13:17:49 +02:00
|
|
|
|
2019-04-24 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR middle-end/90213
|
|
|
|
|
* gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
|
|
|
|
|
by size and BITS_PER_UNIT on poly-wide-ints.
|
|
|
|
|
|
2019-04-25 13:15:35 +02:00
|
|
|
|
2019-04-25 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR middle-end/90194
|
|
|
|
|
* match.pd: Add pattern to simplify view-conversion of an
|
|
|
|
|
empty constructor.
|
|
|
|
|
|
2019-04-24 20:03:47 +02:00
|
|
|
|
2019-04-24 Clement Chigot <clement.chigot@atos.net>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
|
|
|
|
|
OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
|
|
|
|
|
for Go on 32 bit AIX.
|
|
|
|
|
* config/rs6000/aix72.h: Likewise.
|
|
|
|
|
|
2019-04-24 17:49:36 +02:00
|
|
|
|
2019-04-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/90193
|
|
|
|
|
* rtl.c (classify_insn): Return JUMP_INSN for asm goto.
|
|
|
|
|
* emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
|
|
|
|
|
|
2019-04-24 15:40:38 +02:00
|
|
|
|
2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR target/89952
|
|
|
|
|
* config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
|
|
|
|
|
from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also
|
|
|
|
|
for restored hard frame pointer.
|
|
|
|
|
(s390_sched_dependencies_evaluation): Implement new target hook.
|
|
|
|
|
(TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
|
|
|
|
|
|
2019-04-24 12:15:47 +02:00
|
|
|
|
2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com>
|
|
|
|
|
|
|
|
|
|
* config/arc/arc-options.def: Fix typos and spelling mistakes.
|
|
|
|
|
* config/arc/arc.c (arc_init): Cleanup warning message.
|
|
|
|
|
(arc_override_options): Likewise.
|
|
|
|
|
|
2019-04-24 10:13:29 +02:00
|
|
|
|
2019-04-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-04-24 11:27:14 +02:00
|
|
|
|
PR target/90187
|
|
|
|
|
* config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
|
|
|
|
|
a register if both if_true and if_false are MEMs.
|
|
|
|
|
|
2019-04-24 10:14:50 +02:00
|
|
|
|
PR tree-optimization/90208
|
|
|
|
|
* tree-cfg.c (remove_bb): Move forced labels from removed bbs
|
|
|
|
|
after labels of new_bb, not before them.
|
|
|
|
|
|
2019-04-24 10:13:29 +02:00
|
|
|
|
PR tree-optimization/90211
|
|
|
|
|
* tree-parloops.c (try_create_reduction_list): Ignore phi arguments
|
|
|
|
|
which are not SSA_NAMEs.
|
|
|
|
|
|
2019-04-23 17:51:25 +02:00
|
|
|
|
2018-04-23 Sudakshina Das <sudi.das@arm.com>
|
|
|
|
|
|
|
|
|
|
* config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
|
|
|
|
|
AArch64.
|
|
|
|
|
(aarch64_file_end_indicate_exec_stack): Add gnu note section.
|
|
|
|
|
|
2019-04-23 15:14:57 +02:00
|
|
|
|
2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/87979
|
|
|
|
|
* modulo-sched.c (sms_schedule): Start ii value "mii" should
|
|
|
|
|
not equal zero.
|
|
|
|
|
|
2019-04-23 14:53:43 +02:00
|
|
|
|
2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/84032
|
|
|
|
|
* modulo-sched.c (ps_insn_find_column): Change condition so that
|
|
|
|
|
branch will always be the last insn in a row inside partial
|
|
|
|
|
schedule.
|
|
|
|
|
|
2019-04-23 12:10:10 +02:00
|
|
|
|
2019-04-23 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR debug/90131
|
|
|
|
|
* tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
|
|
|
|
|
dest_single_pred_p argument.
|
|
|
|
|
(remove_forwarder_block): Adjust.
|
|
|
|
|
(remove_forwarder_block_with_phi): Likewise.
|
|
|
|
|
|
2019-04-23 12:03:41 +02:00
|
|
|
|
2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
|
|
|
|
Bernd Edlinger <bernd.edlinger@hotmail.de>
|
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/89093
|
|
|
|
|
* config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
|
|
|
|
|
if used with general-regs-only.
|
|
|
|
|
(arm_conditional_register_usage): Don't add non-general regs if
|
|
|
|
|
general-regs-only.
|
|
|
|
|
(arm_valid_target_attribute_rec): Handle general-regs-only.
|
|
|
|
|
* config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
|
|
|
|
|
general-regs-only.
|
|
|
|
|
(TARGET_HARD_FLOAT_SUB): Define.
|
|
|
|
|
(TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
|
|
|
|
|
(TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
|
|
|
|
|
(TARGET_REALLY_IWMMXT2): Likewise.
|
|
|
|
|
* config/arm/arm.opt: Add -mgeneral-regs-only.
|
|
|
|
|
* doc/extend.texi: Document ARM general-regs-only target.
|
|
|
|
|
* doc/invoke.texi: Document ARM -mgeneral-regs-only.
|
|
|
|
|
|
2019-04-23 05:54:59 +02:00
|
|
|
|
2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
|
|
|
|
|
|
2019-04-23 06:07:46 +02:00
|
|
|
|
PR tree-optimization/90078
|
|
|
|
|
* tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
|
|
|
|
|
checks for infinite_cost overflow.
|
|
|
|
|
|
|
|
|
|
2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90021
|
2019-04-23 05:54:59 +02:00
|
|
|
|
* tree-chrec.c (evolution_function_is_univariate_p): New parameter
|
|
|
|
|
and check univariate against it.
|
|
|
|
|
* tree-chrec.h (evolution_function_is_univariate_p): New parameter.
|
|
|
|
|
* tree-data-ref.c (add_other_self_distances): Pass new argument.
|
|
|
|
|
|
2019-04-21 20:23:00 +02:00
|
|
|
|
2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR target/90178
|
|
|
|
|
Revert:
|
|
|
|
|
2018-11-21 Uros Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
Revert the revert:
|
|
|
|
|
2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
|
|
|
|
|
|
|
|
|
|
Revert:
|
|
|
|
|
2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
|
|
|
|
|
|
|
|
|
|
* lra-spills.c (lra_final_code_change): Remove useless move insns.
|
|
|
|
|
|
2019-04-21 10:25:44 +02:00
|
|
|
|
2019-04-21 Iain Sandoe <iain@sandoe.co.uk>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000.md (group_end_nop): Emit insn register
|
|
|
|
|
names using operand format, rather than hard-wired.
|
|
|
|
|
(speculation_barrier): Likewise.
|
|
|
|
|
|
2019-04-19 18:58:01 +02:00
|
|
|
|
2019-04-19 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/88055
|
|
|
|
|
* tree-call-cdce.c (comparison_code_if_no_nans): New function.
|
|
|
|
|
(gen_one_condition): Use it if !HONOR_NANS.
|
|
|
|
|
|
2019-04-19 13:58:11 +02:00
|
|
|
|
2019-04-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/90139
|
|
|
|
|
* tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
|
|
|
|
|
assign_temp instead of gen_reg_rtx.
|
|
|
|
|
|
2019-04-19 11:08:49 +02:00
|
|
|
|
2019-04-19 Christophe Lyon <christophe.lyon@linaro.org>
|
|
|
|
|
|
|
|
|
|
PR translation/90118
|
|
|
|
|
* config/aarch64/aarch64.c (aarch64_override_options_internal):
|
|
|
|
|
Add missing space before %<.
|
|
|
|
|
|
2019-04-19 00:14:17 +02:00
|
|
|
|
2019-04-18 Peter Bergner <bergner@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/87871
|
|
|
|
|
* ira-lives.c (make_object_dead): Don't add conflicts to
|
|
|
|
|
TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
|
|
|
|
|
|
2019-04-18 22:26:07 +02:00
|
|
|
|
2019-04-18 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/89797
|
|
|
|
|
* tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
|
|
|
|
|
* config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
|
|
|
|
|
assuming type size fits in SHWI.
|
|
|
|
|
|
2019-04-18 19:03:00 +02:00
|
|
|
|
2019-04-18 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
|
|
|
|
|
PR ipa/85051
|
|
|
|
|
* ipa-inline.c (flatten_function): New parameter UPDATE.
|
|
|
|
|
(ipa_inline, early_inliner): Use it.
|
|
|
|
|
|
2019-04-18 14:30:36 +02:00
|
|
|
|
2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
* fold-const.c (int_const_binop): Return early on failure.
|
|
|
|
|
|
2019-04-18 14:29:56 +02:00
|
|
|
|
2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/85164
|
|
|
|
|
* combine.c (force_int_to_mode): Cast the argument rather than
|
|
|
|
|
the result of known_alignment.
|
|
|
|
|
* rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
|
|
|
|
|
|
2019-04-18 14:02:40 +02:00
|
|
|
|
2019-04-18 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR debug/90131
|
|
|
|
|
* tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
|
|
|
|
|
out from ...
|
|
|
|
|
(remove_forwarder_block): ... here.
|
|
|
|
|
(remove_forwarder_block_with_phi): Also move debug stmts here.
|
|
|
|
|
|
2019-04-18 12:28:21 +02:00
|
|
|
|
2019-04-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR translation/79183
|
|
|
|
|
* gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
|
|
|
|
|
inform where appropriate.
|
|
|
|
|
|
2019-04-18 09:40:35 +02:00
|
|
|
|
2019-04-18 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* tree.c (get_qualified_type): Put found type variants at the
|
|
|
|
|
head of the variant list.
|
|
|
|
|
|
2019-04-17 23:11:00 +02:00
|
|
|
|
2018-04-17 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
|
|
|
|
|
|
2019-04-17 21:23:45 +02:00
|
|
|
|
2019-04-17 Hongtao Liu <hongtao.liu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR target/90125
|
|
|
|
|
* config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
|
|
|
|
|
_mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
|
|
|
|
|
_mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
|
|
|
|
|
_mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
|
|
|
|
|
_mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
|
|
|
|
|
|
2019-04-17 21:22:15 +02:00
|
|
|
|
2019-04-17 Peter Bergner <bergner@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* ira-conflicts.c (print_allocno_conflicts): Always print something,
|
|
|
|
|
even for allocno's with no conflicts.
|
|
|
|
|
(print_conflicts): Print an extra newline.
|
|
|
|
|
|
2019-04-17 20:49:50 +02:00
|
|
|
|
2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
* auto-inc-dec.c (attempt_change): Set the alignment of the
|
|
|
|
|
temporary memory to that of the original.
|
|
|
|
|
|
|
|
|
|
2019-04-17 Joao Moreira <jmoreira@suse.de>
|
2019-04-17 20:24:23 +02:00
|
|
|
|
|
|
|
|
|
* targhooks.c (default_print_patchable_function_entry): Emit
|
|
|
|
|
__patchable_function_entries section with writable flags to allow
|
|
|
|
|
relocation resolution.
|
|
|
|
|
|
2019-04-17 20:11:06 +02:00
|
|
|
|
2019-04-17 Jonny Grant <jg@jguk.org>
|
|
|
|
|
|
2019-04-17 20:49:50 +02:00
|
|
|
|
* collect2.c (main): Change gcc.gnu.org URL to HTTPS.
|
2019-04-17 20:11:06 +02:00
|
|
|
|
|
2019-04-17 15:28:39 +02:00
|
|
|
|
2019-04-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/90095
|
|
|
|
|
* internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
|
|
|
|
|
on lowpart SUBREGs.
|
|
|
|
|
|
2019-04-17 13:09:59 +02:00
|
|
|
|
2019-04-17 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* config/arc/arc.c (arc_init): Format diagnostic string.
|
|
|
|
|
(arc_override_options): Likewise.
|
|
|
|
|
(check_if_valid_regno_const): Likewise.
|
|
|
|
|
(arc_reorg): Likewise.
|
|
|
|
|
|
rs6000: Improve the load/store-with-update patterns (PR17108)
Many of these patterns only worked in 32-bit mode, and some only worked
in 64-bit mode. This patch makes these use Pmode, fixing the PR. On
the other hand, the stack updates have to use the same mode for the
stack pointer as for the value stored, so let's simplify that a bit.
Many of these patterns pass the wrong mode to
avoiding_indexed_address_p (it should be the mode of the datum
accessed, not the mode of the pointer).
Finally, I merge some patterns into one (using iterators).
PR target/17108
* config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
name.
(rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern
name.
* config/rs6000/rs6000.md (bits): Add entries for SF and DF.
(*movdi_update1): Use Pmode.
(movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
(movdi_<mode>_update_stack): Rename to ...
(movdi_update_stack): ... this. Fix comment. Change condition. Don't
use Pmode.
(*movsi_update1): Use Pmode.
(*movsi_update2): Use Pmode.
(movsi_update): Rename to ...
(movsi_<mode>_update): ... this. Use Pmode.
(movsi_update_stack): Fix condition.
(*movhi_update1): Use Pmode. Fix argument to
avoiding_indexed_address_p.
(*movhi_update2): Ditto.
(*movhi_update3): Ditto.
(*movhi_update4): Ditto.
(*movqi_update1): Ditto.
(*movqi_update2): Ditto.
(*movqi_update3): Ditto.
(*movsf_update1, *movdf_update1): Merge, rename to...
(*mov<mode>_update1): This. Use Pmode. Fix argument to
avoiding_indexed_address_p. Add "size" attribute.
(*movsf_update2, *movdf_update2): Merge, rename to...
(*mov<mode>_update2): This. Ditto.
(*movsf_update3): Use Pmode. Fix argument to
avoiding_indexed_address_p.
(*movsf_update4): Ditto.
(allocate_stack): Simplify condition. Adjust pattern names.
From-SVN: r270407
2019-04-17 11:45:57 +02:00
|
|
|
|
2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
PR target/17108
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
|
|
|
|
|
name.
|
|
|
|
|
(rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern
|
|
|
|
|
name.
|
|
|
|
|
* config/rs6000/rs6000.md (bits): Add entries for SF and DF.
|
|
|
|
|
(*movdi_update1): Use Pmode.
|
|
|
|
|
(movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
|
|
|
|
|
(movdi_<mode>_update_stack): Rename to ...
|
|
|
|
|
(movdi_update_stack): ... this. Fix comment. Change condition. Don't
|
|
|
|
|
use Pmode.
|
|
|
|
|
(*movsi_update1): Use Pmode.
|
|
|
|
|
(*movsi_update2): Use Pmode.
|
|
|
|
|
(movsi_update): Rename to ...
|
|
|
|
|
(movsi_<mode>_update): ... this. Use Pmode.
|
|
|
|
|
(movsi_update_stack): Fix condition.
|
|
|
|
|
(*movhi_update1): Use Pmode. Fix argument to
|
|
|
|
|
avoiding_indexed_address_p.
|
|
|
|
|
(*movhi_update2): Ditto.
|
|
|
|
|
(*movhi_update3): Ditto.
|
|
|
|
|
(*movhi_update4): Ditto.
|
|
|
|
|
(*movqi_update1): Ditto.
|
|
|
|
|
(*movqi_update2): Ditto.
|
|
|
|
|
(*movqi_update3): Ditto.
|
|
|
|
|
(*movsf_update1, *movdf_update1): Merge, rename to...
|
|
|
|
|
(*mov<mode>_update1): This. Use Pmode. Fix argument to
|
|
|
|
|
avoiding_indexed_address_p. Add "size" attribute.
|
|
|
|
|
(*movsf_update2, *movdf_update2): Merge, rename to...
|
|
|
|
|
(*mov<mode>_update2): This. Ditto.
|
|
|
|
|
(*movsf_update3): Use Pmode. Fix argument to
|
|
|
|
|
avoiding_indexed_address_p.
|
|
|
|
|
(*movsf_update4): Ditto.
|
|
|
|
|
(allocate_stack): Simplify condition. Adjust pattern names.
|
|
|
|
|
|
2019-04-17 10:30:44 +02:00
|
|
|
|
2019-04-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/89093
|
|
|
|
|
* config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
|
|
|
|
|
whitespace at the start of target attribute string.
|
|
|
|
|
|
2019-04-16 17:58:02 +02:00
|
|
|
|
2019-04-16 Pat Haugen <pthaugen@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR target/84369
|
|
|
|
|
* config/rs6000/power9.md: Add store forwarding bypass.
|
|
|
|
|
|
2019-04-16 14:44:57 +02:00
|
|
|
|
2019-04-16 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR debug/89528
|
|
|
|
|
* valtrack.c (dead_debug_insert_temp): Reset debug references
|
|
|
|
|
to the return value of a call being removed.
|
|
|
|
|
|
2019-04-16 12:21:15 +02:00
|
|
|
|
2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* config/arc/arc-protos.h (arc_register_move_cost): Remove.
|
|
|
|
|
* config/arc/arc.c (arc_register_move_cost): Re-purpose it to
|
|
|
|
|
implement target hook.
|
|
|
|
|
(arc_memory_move_cost): New function.
|
|
|
|
|
(TARGET_REGISTER_MOVE_COST): Define.
|
|
|
|
|
(TARGET_MEMORY_MOVE_COST): Likewise.
|
|
|
|
|
* config/arc/arc.h (REGISTER_MOVE_COST): Remove.
|
|
|
|
|
(MEMORY_MOVE_COST): Likewise.
|
|
|
|
|
|
2019-04-16 12:21:03 +02:00
|
|
|
|
2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* config/arc/arc.md (sibcall_insn): Use Rcd constraint.
|
|
|
|
|
(sibcall_value_insn): Likewise.
|
|
|
|
|
* config/arc/constraints.md (Rs5): Remove.
|
|
|
|
|
|
2019-04-16 12:20:52 +02:00
|
|
|
|
2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
|
|
|
|
|
for last two fake registers.
|
|
|
|
|
(arc_conditional_register_usage): Make sure fake frame and arg
|
|
|
|
|
pointer regs are in general regs class.
|
|
|
|
|
(FRAME_POINTER_MASK): Remove.
|
|
|
|
|
(RETURN_ADDR_MASK): Remove.
|
|
|
|
|
(arc_must_save_register): Use hard frame regnum.
|
|
|
|
|
(frame_restore_reg): Use hard_frame_pointer_rtx.
|
|
|
|
|
(arc_save_callee_saves): Likewise.
|
|
|
|
|
(arc_restore_callee_saves): Likewise.
|
|
|
|
|
(arc_save_callee_enter): Likewise.
|
|
|
|
|
(arc_restore_callee_leave): Likewise.
|
|
|
|
|
(arc_save_callee_milli): Likewise.
|
|
|
|
|
(arc_eh_return_address_location): Likewise.
|
|
|
|
|
(arc_check_multi): Use hard frame regnum.
|
|
|
|
|
(arc_can_eliminate): Likewise.
|
|
|
|
|
* config/arc/arc.h (FIXED_REGISTERS): Make FP register available
|
|
|
|
|
for register allocator.
|
|
|
|
|
(REG_CLASS_CONTENTS): Update GENERAL_REGS.
|
|
|
|
|
(REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
|
|
|
|
|
(FRAME_POINTER_REGNUM): Change it to a fake register.
|
|
|
|
|
(HARD_FRAME_POINTER_REGNUM): Defined.
|
|
|
|
|
(ARG_POINTER_REGNUM): Change it to a new fake register.
|
|
|
|
|
(ELIMINABLE_REGS): Update.
|
|
|
|
|
(REGISTER_NAMES): Update names.
|
|
|
|
|
* config/arc/arc.md (LP_START): Remove.
|
|
|
|
|
(LP_END): Likewise.
|
|
|
|
|
(shift_si3_loop): Update pattern.
|
|
|
|
|
|
2019-04-16 12:20:40 +02:00
|
|
|
|
2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
|
|
|
|
|
to avoid delay slot scheduling.
|
|
|
|
|
(arc_must_save_register): Don't save SP.
|
|
|
|
|
* config/arc/arc.md (stack_tie): Remove.
|
|
|
|
|
(UNSPEC_ARC_STKTIE): Likewise.
|
|
|
|
|
|
2019-04-16 11:27:31 +02:00
|
|
|
|
2019-04-16 Kito Cheng <kito.cheng@gmail.com>
|
|
|
|
|
Shiva Chen <shiva0217@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
|
|
|
|
|
code gen with large shift amount.
|
|
|
|
|
|
2019-04-16 11:22:26 +02:00
|
|
|
|
2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
|
|
|
|
|
subreg.
|
|
|
|
|
|
2019-04-16 10:24:47 +02:00
|
|
|
|
2019-04-16 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-04-16 10:40:58 +02:00
|
|
|
|
PR target/90096
|
|
|
|
|
* config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
|
|
|
|
|
print -m64/-mx32/-m32 if it is true.
|
|
|
|
|
(ix86_debug_options, ix86_function_specific_print): Pass true as
|
|
|
|
|
ADD_ABI_P to ix86_target_string.
|
|
|
|
|
(ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
|
|
|
|
|
ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
|
|
|
|
|
or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
|
|
|
|
|
|
2019-04-16 10:26:26 +02:00
|
|
|
|
PR rtl-optimization/90082
|
|
|
|
|
* dce.c (can_delete_call): New function.
|
|
|
|
|
(deletable_insn_p, mark_insn): Use it.
|
|
|
|
|
|
2019-04-16 10:24:47 +02:00
|
|
|
|
PR tree-optimization/90090
|
|
|
|
|
* tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
|
|
|
|
|
throw internally.
|
|
|
|
|
(is_division_by_square): Likewise. Formatting fix.
|
|
|
|
|
|
2019-04-16 09:55:41 +02:00
|
|
|
|
2019-04-16 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/56049
|
|
|
|
|
* tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
|
|
|
|
|
equality check if alias-set zero will prevail.
|
|
|
|
|
|
2019-04-15 23:19:21 +02:00
|
|
|
|
2019-04-15 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
* config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
|
|
|
|
|
size and alignment as unsigned.
|
|
|
|
|
|
2019-04-15 14:26:11 +02:00
|
|
|
|
2019-04-15 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR debug/90074
|
|
|
|
|
* tree-loop-distribution.c (destroy_loop): Preserve correct
|
|
|
|
|
debug info.
|
|
|
|
|
|
2019-04-15 13:59:02 +02:00
|
|
|
|
2019-04-15 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90071
|
|
|
|
|
* tree-ssa-reassoc.c (init_range_entry): Do not pick up
|
|
|
|
|
abnormal operands from def stmts.
|
|
|
|
|
|
2019-04-18 15:38:55 +02:00
|
|
|
|
2019-04-15 Segher Boessenkool <segher@kernel.crashing.org>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/89794
|
|
|
|
|
* combine.c (count_auto_inc): New function.
|
|
|
|
|
(try_combine): Count how many auto_inc expressions there were in the
|
|
|
|
|
original instructions. Ensure we have the same number in the new
|
|
|
|
|
instructions. Remove the code that tried to ensure auto_inc side
|
|
|
|
|
effects on i1 and i0 are not lost.
|
|
|
|
|
|
2019-04-15 12:09:08 +02:00
|
|
|
|
2019-04-15 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR ipa/88936
|
|
|
|
|
* tree.h (auto_var_p): Declare.
|
|
|
|
|
* tree.c (auto_var_p): New function, split out from ...
|
|
|
|
|
(auto_var_in_fn_p): ... here.
|
|
|
|
|
* tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
|
|
|
|
|
member.
|
|
|
|
|
(new_var_info): Initialize it.
|
|
|
|
|
(set_uids_in_ptset): Also set the shadow variable uid if required.
|
|
|
|
|
(ipa_pta_execute): Postprocess points-to solutions assigning
|
|
|
|
|
shadow variable uids for locals that may reach their containing
|
|
|
|
|
function recursively.
|
|
|
|
|
* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
|
|
|
|
|
assert but instead check whether the points-to solution is
|
|
|
|
|
a singleton.
|
|
|
|
|
|
2019-04-15 10:30:36 +02:00
|
|
|
|
2019-04-15 Martin Jambor <mjambor@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR ipa/pr89693
|
|
|
|
|
* cgraph.c (clone_of_p): Loop over clone chain for each step in
|
|
|
|
|
the thunk chain.
|
|
|
|
|
|
2019-04-15 10:05:03 +02:00
|
|
|
|
2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
|
|
|
|
|
|
2019-04-15 09:59:01 +02:00
|
|
|
|
2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
|
|
|
|
|
Kito Cheng <kito.cheng@gmail.com>
|
|
|
|
|
Shiva Chen <shiva0217@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/nds32/nds32-md-auxiliary.c
|
|
|
|
|
(nds32_legitimize_pic_address): Use new PIC pattern.
|
|
|
|
|
(nds32_legitimize_tls_address): Use new TLS pattern.
|
|
|
|
|
(nds32_output_symrel): New.
|
|
|
|
|
* config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
|
|
|
|
|
(nds32_alloc_relax_group_id): Ditto.
|
|
|
|
|
* config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
|
|
|
|
|
(nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
|
|
|
|
|
relax_group_id.
|
|
|
|
|
(nds32_group_tls_insn): Ditto.
|
|
|
|
|
(nds32_group_float_insns): Ditto.
|
|
|
|
|
* config/nds32/nds32.md (tls_le): New.
|
|
|
|
|
(sym_got): Ditto.
|
|
|
|
|
|
2019-04-15 09:39:20 +02:00
|
|
|
|
2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com>
|
|
|
|
|
|
|
|
|
|
* configure: Add nds32 target for dwarf2 debug_line checking.
|
|
|
|
|
* configure.ac: Regenerated.
|
|
|
|
|
|
2019-04-14 22:56:45 +02:00
|
|
|
|
2019-04-14 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
|
|
|
|
|
PR lto/89358
|
|
|
|
|
* ipa-devirt.c (skip_in_fields_list_p): New.
|
|
|
|
|
(odr_types_equivalent_p): Use it.
|
|
|
|
|
|
2019-04-13 17:20:46 +02:00
|
|
|
|
2019-04-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/89093
|
|
|
|
|
* config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
|
|
|
|
|
instead of strncmp when checking for thumb and arm. Formatting fixes.
|
|
|
|
|
|
2019-04-12 22:13:34 +02:00
|
|
|
|
2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
|
|
|
|
|
|
|
|
|
|
* doc/install.texi: Document --with-target-system-zlib.
|
|
|
|
|
|
2019-04-12 21:01:17 +02:00
|
|
|
|
2019-04-12 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/88383
|
|
|
|
|
PR c/89288
|
|
|
|
|
PR c/89798
|
|
|
|
|
PR c/89797
|
|
|
|
|
* targhooks.c (default_vector_alignment): Avoid assuming
|
|
|
|
|
argument fits in SHWI.
|
|
|
|
|
* tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
|
|
|
|
|
a shift expression.
|
|
|
|
|
* doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
|
|
|
|
|
|
2019-04-12 18:16:35 +02:00
|
|
|
|
2019-04-12 Jakub Jelinek <jakub@redhat.com>
|
2019-04-12 21:01:17 +02:00
|
|
|
|
|
2019-04-12 18:20:21 +02:00
|
|
|
|
PR rtl-optimization/89965
|
|
|
|
|
* dce.c: Include rtl-iter.h.
|
|
|
|
|
(struct check_argument_load_data): New type.
|
|
|
|
|
(check_argument_load): New function.
|
|
|
|
|
(find_call_stack_args): Check for loads from stack slots still tracked
|
|
|
|
|
in sp_bytes and punt if any is found.
|
2019-04-12 18:16:35 +02:00
|
|
|
|
|
|
|
|
|
* config/mips/loongson-mmiintrin.h: Fix up #error message.
|
|
|
|
|
|
2019-04-12 16:35:48 +02:00
|
|
|
|
2019-04-12 Jan Hubicka <hubicka@ucw.cz>
|
|
|
|
|
|
|
|
|
|
* params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
|
|
|
|
|
* doc/invoke.texi (max-lto-streaming-paralellism): New --param.
|
|
|
|
|
|
2019-04-12 14:54:00 +02:00
|
|
|
|
2019-04-12 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR middle-end/89970
|
|
|
|
|
* multiple_target.c (create_dispatcher_calls): Wrap ifunc
|
|
|
|
|
in error message.
|
|
|
|
|
(separate_attrs): Handle multiple 'default's.
|
|
|
|
|
(expand_target_clones): Rework error handling code.
|
|
|
|
|
|
2019-04-12 14:51:58 +02:00
|
|
|
|
2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR target/87532
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
|
|
|
|
|
mode of vector rather than mode of destination for move instruction.
|
|
|
|
|
* config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
|
|
|
|
|
Use QI inner mode with V16QI vector mode.
|
|
|
|
|
|
2019-04-12 10:10:51 +02:00
|
|
|
|
2019-04-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/52726
|
|
|
|
|
* config/tilepro/tilepro.c (tilepro_print_operand): Use just
|
|
|
|
|
"invalid %%t operand" in output_operand_lossage message.
|
|
|
|
|
|
2019-04-12 09:41:51 +02:00
|
|
|
|
2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/predicates.md (permute_pattern_operand): New
|
|
|
|
|
predicate.
|
|
|
|
|
* config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
|
|
|
|
|
operand for the permute pattern.
|
|
|
|
|
("*vec_perm<mode>"): New insn definition.
|
|
|
|
|
("bswap<mode>"): Generate the permute pattern operand in the
|
|
|
|
|
expander and perform the operand reloads for pre arch13 level
|
|
|
|
|
already.
|
|
|
|
|
("*bswap<mode>_emu"): Rename to ...
|
|
|
|
|
("*bswap<mode>"): ... this. And make the splitter vxe2 only.
|
|
|
|
|
* config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
|
|
|
|
|
Add the USE operand for the permute pattern.
|
|
|
|
|
("*vec_set_bswap_vec<mode>"): Likewise.
|
|
|
|
|
|
2019-04-12 09:27:25 +02:00
|
|
|
|
2019-04-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-04-12 09:28:35 +02:00
|
|
|
|
PR c/89946
|
|
|
|
|
* varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
|
|
|
|
|
and gcc_unreachable if it fails, just call tree_to_uhwi which
|
|
|
|
|
verifies that too. Test TREE_CHAIN instead of list_length > 1.
|
|
|
|
|
Start warning message with a lower-case letter. Formatting fixes.
|
|
|
|
|
|
2019-04-12 09:27:25 +02:00
|
|
|
|
PR rtl-optimization/90026
|
|
|
|
|
* cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
|
|
|
|
|
successors, look for BARRIERs inside of the whole BB_FOOTER chain
|
|
|
|
|
rather than just at the start of it. If e->src BB_FOOTER is not NULL
|
|
|
|
|
in cfglayout mode, use emit_barrier_after_bb.
|
|
|
|
|
|
2019-04-11 20:02:41 +02:00
|
|
|
|
2018-04-11 Steve Ellcey <sellcey@marvell.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/87763
|
|
|
|
|
* config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
|
|
|
|
|
New Instruction.
|
|
|
|
|
|
2019-04-11 17:36:59 +02:00
|
|
|
|
2019-04-11 Tom de Vries <tdevries@suse.de>
|
|
|
|
|
|
|
|
|
|
* doc/extend.texi (@node Statement Exprs): Note variable shadowing at
|
|
|
|
|
max macro using statement expression.
|
|
|
|
|
|
2019-04-11 16:14:35 +02:00
|
|
|
|
2019-04-11 David Edelsohn <dje.gcc@gmail.com>
|
|
|
|
|
|
|
|
|
|
* xcoffout.h (xcoff_private_rodata_section_name): Declare.
|
|
|
|
|
* xcoffout.c (xcoff_private_rodata_section_name): Define.
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
|
|
|
|
|
read_only_private_data_section using xcoff_private_rodata_section_name.
|
|
|
|
|
(rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
|
|
|
|
|
|
2019-04-11 12:56:08 +02:00
|
|
|
|
2019-04-11 Christophe Lyon <christophe.lyon@linaro.org>
|
|
|
|
|
|
|
|
|
|
PR target/90016
|
|
|
|
|
* config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
|
|
|
|
|
|
2019-04-11 11:02:47 +02:00
|
|
|
|
2019-04-11 Jakub Jelinek <jakub@redhat.com>
|
2019-04-11 12:56:08 +02:00
|
|
|
|
|
2019-04-11 11:02:47 +02:00
|
|
|
|
PR rtl-optimization/89965
|
|
|
|
|
* dce.c (sp_based_mem_offset): New function.
|
|
|
|
|
(find_call_stack_args): Use sp_based_mem_offset.
|
|
|
|
|
|
2019-04-11 10:52:22 +02:00
|
|
|
|
2019-04-11 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
|
|
|
|
|
|
2019-04-11 09:34:20 +02:00
|
|
|
|
2019-04-11 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90020
|
|
|
|
|
* tree-ssa-sccvn.c (vn_reference_may_trap): New function.
|
|
|
|
|
* tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
|
|
|
|
|
* tree-ssa-pre.c (compute_avail): Use it to not put
|
|
|
|
|
possibly trapping references after a call that might not
|
|
|
|
|
return into EXP_GEN.
|
|
|
|
|
* gcse.c (compute_hash_table_work): Do not elide
|
|
|
|
|
marking a block containing a call if the call might not
|
|
|
|
|
return.
|
|
|
|
|
|
2019-04-11 09:30:59 +02:00
|
|
|
|
2019-04-11 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90018
|
|
|
|
|
* tree-vect-data-refs.c (vect_preserves_scalar_order_p):
|
|
|
|
|
Test both SLP and interleaving variants.
|
|
|
|
|
|
2019-04-11 09:04:03 +02:00
|
|
|
|
2019-04-11 Robin Dapp <rdapp@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/8561.md: New file.
|
|
|
|
|
* config/s390/driver-native.c (s390_host_detect_local_cpu):
|
|
|
|
|
Add arch13 cpu model.
|
|
|
|
|
* config/s390/s390-opts.h (enum processor_type): Likewise.
|
|
|
|
|
* config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
|
|
|
|
|
(s390_get_unit_mask): Likewise.
|
|
|
|
|
(s390_is_fpd): Likewise.
|
|
|
|
|
(s390_is_fxd): Likewise.
|
|
|
|
|
* config/s390/s390.h (s390_tune_attr): Likewise.
|
|
|
|
|
* config/s390/s390.md: Include arch13 pipeline description.
|
|
|
|
|
* config/s390/s390.opt: Add arch13.
|
|
|
|
|
|
2019-04-10 22:28:19 +02:00
|
|
|
|
2018-04-10 Steve Ellcey <sellcey@marvell.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/87763
|
|
|
|
|
* config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
|
|
|
|
|
New prototype.
|
|
|
|
|
* config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
|
|
|
|
|
New function.
|
|
|
|
|
* config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
|
|
|
|
|
New instruction.
|
|
|
|
|
(*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
|
|
|
|
|
(*aarch64_bfi<GPI:mode>4_noand): Ditto.
|
|
|
|
|
(*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
|
|
|
|
|
(*aarch64_bfi<GPI:mode>4_noshift): Ditto.
|
|
|
|
|
|
2019-04-10 16:39:59 +02:00
|
|
|
|
2019-04-10 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
2019-04-10 16:55:01 +02:00
|
|
|
|
* doc/invoke.texi (Optimize Options): Change "Nevertheless" to
|
|
|
|
|
"Although" in -fipa-icf documentation.
|
|
|
|
|
|
2019-04-10 16:39:59 +02:00
|
|
|
|
* doc/invoke.texi (Debugging Options): Explicitly state the semantics
|
|
|
|
|
of using multiple -g options.
|
|
|
|
|
|
2019-04-10 13:44:08 +02:00
|
|
|
|
2019-04-10 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR gcov-profile/89959
|
|
|
|
|
* doc/gcov.texi: Make documentation of -x option
|
|
|
|
|
more precise.
|
|
|
|
|
|
2019-04-10 13:25:10 +02:00
|
|
|
|
2019-04-10 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
|
|
|
|
|
member.
|
|
|
|
|
(DR_GROUP_SAME_DR_STMT): Remove.
|
|
|
|
|
* tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
|
|
|
|
|
* tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
|
|
|
|
|
replace with assert.
|
|
|
|
|
(vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
|
|
|
|
|
(vect_record_grouped_load_vectors): Remove unreachable code.
|
|
|
|
|
|
2019-04-10 11:51:16 +02:00
|
|
|
|
2019-04-10 Richard Earnshaw <rearnsha@arm.com>
|
|
|
|
|
|
|
|
|
|
PR target/90016
|
|
|
|
|
* config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
|
|
|
|
|
obsolete reference to N.
|
|
|
|
|
|
2019-04-10 09:27:20 +02:00
|
|
|
|
2019-04-10 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-04-10 09:28:05 +02:00
|
|
|
|
PR middle-end/90025
|
|
|
|
|
* expr.c (store_expr): Set properly size on the MEM passed to
|
|
|
|
|
clear_storage.
|
|
|
|
|
|
2019-04-10 09:27:20 +02:00
|
|
|
|
PR c++/90010
|
|
|
|
|
* gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
|
|
|
|
|
with strlen in between hostsz-3 and hostsz-1 inclusive when no
|
|
|
|
|
translation is needed, and when translation is needed, only append
|
|
|
|
|
... if the string length is hostsz or more bytes long. Avoid using
|
|
|
|
|
strncpy or strcat.
|
|
|
|
|
|
Hi there,
The "*neon_mov<mode>" patterns for 128 bit sized quantities uses the "Dn"
constraint to match vmov.f32 and vmov.i<vec-width> patterns.
This constraint boils down to using the `neon_immediate_valid` function.
Once the constraint has matched, the output C statement asserts that function
passes.
The output C statement calls `neon_immediate_valid` with the mode taken from the
iterator, while the constraint takes the mode from the operand.
This can cause a discrepency when the operand is a CONST_INT, as the constraint
passes VOIDmode which `neon_immediate_valid` treats as DImode, while the C
statement passes the mode of the iterator which can be TImode.
When this happens, the `neon_immediate_valid` can fail in the second call (if
e.g. the CONST_INT is a valid immediate in DImode but not TImode) which would
trigger the assertion.
The testcase added with this patch triggers this when compiled with an arm cross
compiler using the command line below.
gcc -march=armv8-a -c neon-immediate-timode.c -O1 -mfloat-abi=hard -mfpu=neon-fp-armv8
This patch splits the original "Dn" constraint into three new constraints, "DN"
for TImode CONST_INT, "Dn" for DImode CONST_INT, and "Dm" for CONST_VECTOR.
Splitting things up this way requires using one extra alternative in the
"*neon_mov<mode>" patterns, but makes it clear from the constraint what mode is
being used.
We also remove the behaviour of treating VOIDmode as DImode in
`neon_valid_immediate` since the original "Dn" constraint was the only place
that functionality was used. VOIDmode is now never passed to that function.
An assertion has been added to the function to ensure this problem is caught
earlier on.
Bootstrapped on arm-none-linux-gnueabihf
Regtested on cross-compiler arm-none-eabi
gcc/ChangeLog:
2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
PR target/90024
* config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
* config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
into three.
* config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
differences directly.
(*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
gcc/testsuite/ChangeLog:
2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
PR target/90024
* gcc.dg/torture/neon-immediate-timode.c: New test.
From-SVN: r270226
2019-04-09 13:39:59 +02:00
|
|
|
|
2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
|
|
|
|
|
|
|
|
|
|
PR target/90024
|
|
|
|
|
* config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
|
|
|
|
|
* config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
|
|
|
|
|
into three.
|
|
|
|
|
* config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
|
|
|
|
|
differences directly.
|
|
|
|
|
(*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
|
|
|
|
|
|
2019-04-09 12:26:13 +02:00
|
|
|
|
2019-04-09 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-04-09 12:27:14 +02:00
|
|
|
|
PR translation/90011
|
|
|
|
|
* ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
|
|
|
|
|
from diagnostics.
|
|
|
|
|
* config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
|
|
|
|
|
diagnostics.
|
|
|
|
|
* config/riscv/freebsd.h (LINK_SPEC): Likewise.
|
|
|
|
|
* config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
|
|
|
|
|
* config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
|
|
|
|
|
trailing space from -gsplit-dwarf diagnostics.
|
|
|
|
|
|
2019-04-09 12:26:13 +02:00
|
|
|
|
PR tree-optimization/89998
|
|
|
|
|
* gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
|
|
|
|
|
instead of integer_type_node if possible, don't add ranges if return
|
|
|
|
|
type is not compatible with int.
|
|
|
|
|
* gimple-fold.c (gimple_fold_builtin_sprintf,
|
|
|
|
|
gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
|
|
|
|
|
integer_type_node.
|
|
|
|
|
|
2019-04-09 10:49:14 +02:00
|
|
|
|
2019-04-09 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* Makefile.in: Use GENERATOR_CFLAGS for all generators.
|
|
|
|
|
* doc/install.texi: Document the new config.
|
|
|
|
|
|
2019-04-09 09:50:51 +02:00
|
|
|
|
2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
|
|
|
|
|
use gimple_expr_type for load and store calls. Skip over the
|
|
|
|
|
condition argument in a conditional internal function.
|
|
|
|
|
Protect use of TREE_INT_CST_LOW.
|
|
|
|
|
|
2019-04-09 08:38:07 +02:00
|
|
|
|
2019-04-09 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/90015
|
|
|
|
|
* config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
|
|
|
|
|
(riscv_merge_decl_attributes): Fix typo in diagnostics. Remove
|
|
|
|
|
trailing period from it too.
|
|
|
|
|
|
2019-04-08 19:08:32 +02:00
|
|
|
|
2019-04-08 wu yuan <wuyuan5@huawei.com>
|
|
|
|
|
|
|
|
|
|
* config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
|
|
|
|
|
* config/aarch64/aarch64.md : Add "tsv110.md"
|
|
|
|
|
* config/aarch64/tsv110.md: New file.
|
|
|
|
|
|
2019-04-08 15:54:02 +02:00
|
|
|
|
2019-04-08 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/90006
|
|
|
|
|
* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
|
|
|
|
|
calls like lrint.
|
|
|
|
|
|
2019-04-08 14:59:24 +02:00
|
|
|
|
2019-04-08 Andrea Corallo <andrea.corallo@arm.com>
|
|
|
|
|
|
|
|
|
|
PR target/83033
|
|
|
|
|
* config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
|
|
|
|
|
construction.
|
|
|
|
|
(fma_root_node): Likewise.
|
|
|
|
|
(func_fma_steering): Likewise.
|
|
|
|
|
|
2019-04-08 14:35:22 +02:00
|
|
|
|
2019-04-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-04-08 14:36:58 +02:00
|
|
|
|
PR rtl-optimization/89865
|
|
|
|
|
* config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
|
|
|
|
|
|
2019-04-08 14:35:22 +02:00
|
|
|
|
PR rtl-optimization/89865
|
|
|
|
|
* config/i386/i386.md
|
|
|
|
|
(SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
|
|
|
|
|
numbers not to clash with the additional operands[4].
|
|
|
|
|
(peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
|
|
|
|
|
with extra register copy in the middle.
|
|
|
|
|
|
2019-04-08 14:16:15 +02:00
|
|
|
|
2019-04-08 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR gcov-profile/89961
|
|
|
|
|
* doc/gcov.texi: Document data_file.
|
|
|
|
|
* gcov.c (generate_results): Add data_info into JSON output.
|
|
|
|
|
|
2019-04-08 13:52:18 +02:00
|
|
|
|
2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/89725
|
|
|
|
|
* tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer
|
|
|
|
|
loop's chrec as invariant symbol.
|
|
|
|
|
* tree-chrec.h (chrec_contains_symbols): New parameter.
|
|
|
|
|
* tree-data-ref.c (analyze_miv_subscript): Pass new argument.
|
|
|
|
|
(build_classic_dist_vector_1, add_other_self_distances): Bypass access
|
|
|
|
|
function of loops not in DDR's loop_nest.
|
|
|
|
|
* tree-data-ref.h (index_in_loop_nest): Add unreachable check.
|
|
|
|
|
|
2019-04-08 08:37:00 +02:00
|
|
|
|
2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR target/89623
|
|
|
|
|
* config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
|
|
|
|
|
Mask.
|
|
|
|
|
|
2019-04-07 21:19:08 +02:00
|
|
|
|
2019-04-07 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR target/89945
|
|
|
|
|
* config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
|
|
|
|
|
Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
|
|
|
|
|
|
2019-04-05 17:01:01 +02:00
|
|
|
|
2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* sched-deps.c (sched_macro_fuse_insns): Check return value of
|
|
|
|
|
targetm.fixed_condition_code_regs.
|
|
|
|
|
|
2019-04-05 13:55:45 +02:00
|
|
|
|
2019-04-05 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR debug/89892
|
|
|
|
|
PR debug/89905
|
|
|
|
|
* tree-cfgcleanup.c (remove_forwarder_block): Always move
|
|
|
|
|
debug bind stmts but reset them if they are not valid at the
|
|
|
|
|
destination.
|
|
|
|
|
|
2019-04-05 10:37:44 +02:00
|
|
|
|
2019-04-05 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
2019-04-05 11:04:41 +02:00
|
|
|
|
PR translation/89936
|
2019-04-05 10:37:44 +02:00
|
|
|
|
* collect-utils.c (collect_execute): Use %< and %>, or %qs in
|
|
|
|
|
order to wrap keywords or arguments.
|
|
|
|
|
* collect2.c (main): Likewise.
|
|
|
|
|
(scan_prog_file): Likewise.
|
|
|
|
|
(scan_libraries): Likewise.
|
2019-04-07 21:30:22 +02:00
|
|
|
|
* common/config/riscv/riscv-common.c
|
|
|
|
|
(riscv_subset_list::parsing_subset_version): Likewise.
|
2019-04-05 10:37:44 +02:00
|
|
|
|
(riscv_subset_list::parse_std_ext): Likewise.
|
2019-04-07 21:30:22 +02:00
|
|
|
|
* config/aarch64/aarch64.c (aarch64_override_options_internal):
|
|
|
|
|
Likewise.
|
2019-04-05 10:37:44 +02:00
|
|
|
|
* config/arm/arm.c (arm_option_override): Likewise.
|
|
|
|
|
* config/cris/cris.c (cris_print_operand): Likewise.
|
|
|
|
|
* config/darwin-c.c (darwin_pragma_options): Likewise.
|
|
|
|
|
(darwin_pragma_unused): Likewise.
|
|
|
|
|
(darwin_pragma_ms_struct): Likewise.
|
|
|
|
|
* config/ft32/ft32.c (ft32_print_operand): Likewise.
|
|
|
|
|
* config/i386/i386.c (print_reg): Likewise.
|
|
|
|
|
(ix86_print_operand): Likewise.
|
|
|
|
|
* config/i386/xm-djgpp.h: Likewise.
|
|
|
|
|
* config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
|
|
|
|
|
* config/m32c/m32c.c (m32c_option_override): Likewise.
|
|
|
|
|
* config/msp430/msp430.c (msp430_option_override): Likewise.
|
|
|
|
|
* config/nds32/nds32.c (nds32_option_override): Likewise.
|
|
|
|
|
* config/nvptx/mkoffload.c (main): Likewise.
|
|
|
|
|
* config/rx/rx.c (rx_print_operand): Likewise.
|
|
|
|
|
(valid_psw_flag): Likewise.
|
|
|
|
|
* config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
|
|
|
|
|
(vms_pragma_nomember_alignment): Likewise.
|
|
|
|
|
(vms_pragma_extern_model): Likewise.
|
|
|
|
|
* lto-wrapper.c (compile_offload_image): Likewise.
|
|
|
|
|
* omp-offload.c (oacc_parse_default_dims): Likewise.
|
|
|
|
|
* symtab.c (symtab_node::verify_base): Likewise.
|
|
|
|
|
* tlink.c (recompile_files): Likewise.
|
|
|
|
|
(start_tweaking): Likewise.
|
|
|
|
|
* tree-profile.c (parse_profile_filter): Likewise.
|
|
|
|
|
|
2019-04-05 09:31:12 +02:00
|
|
|
|
2019-04-05 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/89956
|
|
|
|
|
* tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
|
|
|
|
|
multiple negates of the same value.
|
|
|
|
|
|
2019-04-05 00:38:10 +02:00
|
|
|
|
2019-04-04 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/89957
|
|
|
|
|
PR middle-end/89911
|
|
|
|
|
* builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
|
|
|
|
|
have the same precision since the function crashes otherwise.
|
|
|
|
|
* calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
|
|
|
|
|
has non-zero arguments.
|
|
|
|
|
|
2019-04-04 23:59:49 +02:00
|
|
|
|
2019-04-04 Martin Sebor <msebor@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/89934
|
|
|
|
|
* gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
|
|
|
|
|
out if the number of arguments is less than expected.
|
|
|
|
|
|
2019-04-04 22:52:16 +02:00
|
|
|
|
2019-04-04 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/89399
|
|
|
|
|
* ree.c (combine_set_extension): Use single_set rather than
|
|
|
|
|
digging into PATTERN for items on the candidate list.
|
|
|
|
|
(combine_reaching_defs): Likewise.
|
|
|
|
|
|
2019-04-04 09:35:34 +02:00
|
|
|
|
2019-04-04 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/46590
|
|
|
|
|
* loop-invariant.c (find_defs): Move df_remove_problem and
|
|
|
|
|
df_process_deferred_rescans to move_invariants.
|
|
|
|
|
Move df_live_add_problem and df_live_set_all_dirty calls
|
|
|
|
|
to move_invariants.
|
|
|
|
|
(move_invariants): Likewise.
|
|
|
|
|
(move_loop_invariants): Likewise, making the df_live calls
|
|
|
|
|
conditional on -O. Remove the problem again if we added it
|
|
|
|
|
locally.
|
|
|
|
|
|
2019-04-03 21:00:25 +02:00
|
|
|
|
2019-04-03 qing zhao <qing.zhao@oracle.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/89730
|
|
|
|
|
* ipa-inline.c (can_inline_edge_p): Delete the checking for
|
|
|
|
|
-flive-patching=inline-only-static.
|
2019-04-07 21:30:22 +02:00
|
|
|
|
(can_inline_edge_by_limits_p): Add the checking for
|
2019-04-03 21:00:25 +02:00
|
|
|
|
-flive-patching=inline-only-static and grant always_inline
|
2019-04-07 21:30:22 +02:00
|
|
|
|
even when -flive-patching=inline-only-static is specified.
|
2019-04-03 21:00:25 +02:00
|
|
|
|
|
2019-04-03 18:03:37 +02:00
|
|
|
|
2019-04-03 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/81025
|
|
|
|
|
* reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
|
|
|
|
|
|
2019-04-03 14:30:16 +02:00
|
|
|
|
2019-04-03 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/84101
|
|
|
|
|
* tree-vect-stmts.c: Include explow.h for hard_function_value,
|
|
|
|
|
regs.h for hard_regno_nregs.
|
|
|
|
|
(cfun_returns): New helper.
|
|
|
|
|
(vect_model_store_cost): When vectorizing a store to a decl
|
|
|
|
|
we return and the function ABI returns in a multi-reg location
|
|
|
|
|
account for the possible spilling that will happen.
|
|
|
|
|
|
2019-04-03 13:26:09 +02:00
|
|
|
|
2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/s390.c (s390_legitimate_address_p): Reject long
|
|
|
|
|
displacement addresses for vector mode operands.
|
|
|
|
|
|
2019-04-03 12:08:04 +02:00
|
|
|
|
2019-04-03 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* config/arc/arc.c (GMASK_LEN): Define.
|
|
|
|
|
(arc_restore_callee_saves): Restore first blink when
|
|
|
|
|
!optimize_size.
|
|
|
|
|
|
2019-04-03 12:02:23 +02:00
|
|
|
|
2019-04-03 Sudakshina Das <sudi.das@arm.com>
|
|
|
|
|
|
|
|
|
|
* doc/extend.texi: Add deprecated comment on sign-return-address
|
|
|
|
|
function attribute and add mbranch-protection.
|
|
|
|
|
* doc/invoke.texi: Add bti to the options for mbranch-protection.
|
|
|
|
|
|
2019-04-03 10:46:00 +02:00
|
|
|
|
2019-04-03 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR lto/89896
|
|
|
|
|
* lto-wrapper.c (run_gcc): Avoid implicit rules making
|
|
|
|
|
the all target phony.
|
|
|
|
|
|
2019-04-02 19:05:59 +02:00
|
|
|
|
2019-04-02 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR target/89902
|
|
|
|
|
PR target/89903
|
|
|
|
|
* config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
|
|
|
|
|
Return false for variable DImode shifts.
|
|
|
|
|
(dimode_scalar_chain::compute_convert_gain): Do not handle
|
|
|
|
|
register count operand in variable DImode shifts.
|
|
|
|
|
(dimode_scalar_chain::make_vector_copies): Remove support to copy
|
|
|
|
|
count argument of a variable shift instruction to a vector register.
|
|
|
|
|
(dimode_scalar_chain::convert_reg): Remove support to convert
|
|
|
|
|
count argument of a variable shift instruction.
|
|
|
|
|
|
2019-04-02 17:45:57 +02:00
|
|
|
|
2019-04-02 Andrey Belevantsev <abel@ispras.ru>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/84206
|
|
|
|
|
* sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
|
|
|
|
|
iterating over loop headers.
|
|
|
|
|
|
2019-04-02 17:39:22 +02:00
|
|
|
|
2019-04-02 Andrey Belevantsev <abel@ispras.ru>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/85876
|
|
|
|
|
* sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
|
|
|
|
|
beyond the original fence.
|
|
|
|
|
|
2019-04-02 16:08:06 +02:00
|
|
|
|
2019-04-02 Ulrich Weigand <uweigand@de.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config.gcc: Mark spu* targets as deprecated/obsolete.
|
|
|
|
|
|
S/390: arch13: vector float-int conversion builtins
gcc/ChangeLog:
2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
* config/s390/s390-builtin-types.def: New builtin function type
definitions. Remove unused types.
* config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
(s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
(s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
overloaded builtins.
(s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
(s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
* config/s390/vecintrin.h (vec_float): New builtin macro definition.
(vec_double, vec_signed, vec_unsigned): Define to use the new
overloaded builtins.
* config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
Remove expanders.
gcc/testsuite/ChangeLog:
2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
* gcc.target/s390/zvector/vec-double-compile.c: New test.
* gcc.target/s390/zvector/vec-float-compile.c: New test.
* gcc.target/s390/zvector/vec-signed-compile.c: New test.
* gcc.target/s390/zvector/vec-unsigned-compile.c: New test.
From-SVN: r270091
2019-04-02 13:10:13 +02:00
|
|
|
|
2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/s390-builtin-types.def: New builtin function type
|
|
|
|
|
definitions. Remove unused types.
|
|
|
|
|
* config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
|
|
|
|
|
(s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
|
|
|
|
|
(s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
|
|
|
|
|
overloaded builtins.
|
|
|
|
|
(s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
|
|
|
|
|
(s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
|
|
|
|
|
* config/s390/vecintrin.h (vec_float): New builtin macro definition.
|
|
|
|
|
(vec_double, vec_signed, vec_unsigned): Define to use the new
|
|
|
|
|
overloaded builtins.
|
|
|
|
|
* config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
|
|
|
|
|
Remove expanders.
|
|
|
|
|
|
2019-04-02 13:08:54 +02:00
|
|
|
|
2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/s390-builtin-types.def: New builtin function type
|
|
|
|
|
definitions.
|
|
|
|
|
* config/s390/s390-builtins.def (s390_vec_search_string_cc)
|
|
|
|
|
(s390_vec_search_string_until_zero_cc): New overloaded builtins.
|
|
|
|
|
(s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
|
|
|
|
|
(s390_vstrszh, s390_vstrszf): New low-level builtins.
|
|
|
|
|
* config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
|
|
|
|
|
constant definitions.
|
|
|
|
|
* config/s390/vecintrin.h (vec_search_string_cc)
|
|
|
|
|
(vec_search_string_until_zero_cc): New builtin name definitions.
|
|
|
|
|
* config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
|
|
|
|
|
expanders.
|
|
|
|
|
("vec_vstrs<mode>"): New insn definition.
|
|
|
|
|
|
2019-04-02 13:07:44 +02:00
|
|
|
|
2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/s390-builtin-types.def: Add new builtin function
|
|
|
|
|
types.
|
|
|
|
|
* config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
|
|
|
|
|
New overloaded builtins.
|
|
|
|
|
(s390_vec_sldb, s390_vec_srdb): New low-level builtins. and
|
|
|
|
|
s390_vsrd.
|
|
|
|
|
* config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
|
|
|
|
|
(UNSPEC_VEC_SLDBYTE): ... this.
|
|
|
|
|
(UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
|
|
|
|
|
* config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
|
|
|
|
|
definitions.
|
|
|
|
|
* config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
|
|
|
|
|
Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
|
|
|
|
|
("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
|
|
|
|
|
|
2019-04-02 13:06:30 +02:00
|
|
|
|
2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
|
|
|
|
|
New insn definition.
|
|
|
|
|
* config/s390/vx-builtins.md (V_HW_HSD): Move to ...
|
|
|
|
|
* config/s390/vector.md (V_HW_HSD): ... here.
|
|
|
|
|
|
2019-04-02 13:03:40 +02:00
|
|
|
|
2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
|
|
|
|
|
* config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
|
|
|
|
|
("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
|
|
|
|
|
("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
|
|
|
|
|
New insn definitions.
|
|
|
|
|
|
2019-04-02 13:02:22 +02:00
|
|
|
|
2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/s390-builtin-types.def: Add new builtin function type.
|
|
|
|
|
* config/s390/s390-builtins.def: Add overloaded builtin
|
|
|
|
|
s390_vec_reve and low-level builtins for s390_vler and s390_vster.
|
|
|
|
|
* config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
|
|
|
|
|
* config/s390/vecintrin.h (vec_reve): New builtin name definition.
|
|
|
|
|
* config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
|
|
|
|
|
("eltswap<mode>"): New expander.
|
|
|
|
|
("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
|
|
|
|
|
insn definitions.
|
|
|
|
|
|
2019-04-02 13:01:06 +02:00
|
|
|
|
2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/s390-builtin-types.def: Add new builtin function types.
|
|
|
|
|
* config/s390/s390-builtins.def: Add overloaded builtin
|
|
|
|
|
s390_vec_revb. Add low-level builtins for vlbr and vstbr
|
|
|
|
|
instructions.
|
|
|
|
|
* config/s390/vecintrin.h (vec_revb): New builtin name definition.
|
|
|
|
|
* config/s390/vector.md (VT_HW_HSDT): New mode iterator.
|
|
|
|
|
("bswap<mode>"): New expander.
|
|
|
|
|
("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
|
|
|
|
|
|
2019-04-02 12:59:30 +02:00
|
|
|
|
2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
|
|
|
|
|
* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
|
|
|
|
|
vector builtin version number in __VEC__.
|
|
|
|
|
|
2019-04-02 12:58:33 +02:00
|
|
|
|
2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
|
|
|
|
|
iterators.
|
|
|
|
|
(SFSI): New mode attribute.
|
|
|
|
|
("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
|
|
|
|
|
("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
|
|
|
|
|
rename to ...
|
|
|
|
|
("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
|
|
|
|
|
("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
|
|
|
|
|
("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
|
|
|
|
|
("floatsi<mode>2"): Add wcefb instruction.
|
|
|
|
|
|
2019-04-02 12:57:39 +02:00
|
|
|
|
2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
2019-04-07 21:30:22 +02:00
|
|
|
|
* config/s390/s390.md ("xde"): Extend mode attribute to vector types.
|
2019-04-02 12:57:39 +02:00
|
|
|
|
* config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
|
|
|
|
|
mode iterators.
|
|
|
|
|
("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
|
|
|
|
|
("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
|
|
|
|
|
support 32 bit fp-int conversions. Rename to ...
|
|
|
|
|
("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
|
|
|
|
|
("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
|
|
|
|
|
("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
|
|
|
|
|
("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
|
|
|
|
|
... to these.
|
|
|
|
|
|
2019-04-02 12:56:34 +02:00
|
|
|
|
2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
|
|
|
|
|
if-then-else constructs if we can use the select instruction.
|
|
|
|
|
* config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
|
|
|
|
|
|
2019-04-02 12:55:26 +02:00
|
|
|
|
2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/s390.md ("*popcountdi_arch13_cc")
|
|
|
|
|
("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
|
|
|
|
|
definition.
|
|
|
|
|
("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
|
|
|
|
|
Append _z196 to make it ...
|
|
|
|
|
("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
|
|
|
|
|
("popcounthi2_z196"): ... this.
|
|
|
|
|
("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
|
|
|
|
|
("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
|
|
|
|
|
|
2019-04-02 12:51:53 +02:00
|
|
|
|
2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* config/s390/s390.c (s390_canonicalize_comparison): Convert
|
|
|
|
|
certain compares for arch13 in order to make use of the condition
|
|
|
|
|
code result produced by the new instructions.
|
|
|
|
|
(s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
|
|
|
|
|
nxrk, and nxgrk instruction patterns.
|
|
|
|
|
* config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
|
|
|
|
|
(inv_no): Add new code iterator together with some attributes.
|
|
|
|
|
("*andc_split_<mode>"): Disable splitter for arch13.
|
|
|
|
|
("*<ANDOR:bitops_name>c<GPR:mode>_cc")
|
|
|
|
|
("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
|
|
|
|
|
("*<ANDOR:bitops_name>c<GPR:mode>")
|
|
|
|
|
("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
|
|
|
|
|
("*n<ANDOR:inv_bitops_name><mode>_cconly")
|
|
|
|
|
("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
|
|
|
|
|
("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
|
|
|
|
|
|
2019-04-02 12:50:03 +02:00
|
|
|
|
2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
* common/config/s390/s390-common.c (processor_flags_table): New
|
|
|
|
|
entry for arch13.
|
|
|
|
|
* config.gcc: Support arch13 with the --with-arch= configure flag.
|
|
|
|
|
* config/s390/driver-native.c (s390_host_detect_local_cpu):
|
|
|
|
|
* config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
|
|
|
|
|
* config/s390/s390.c (s390_get_sched_attrmask)
|
|
|
|
|
(s390_get_unit_mask): Add PROCESSOR_ARCH13.
|
|
|
|
|
* config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
|
|
|
|
|
* config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
|
|
|
|
|
(TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
|
|
|
|
|
(TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
|
|
|
|
|
definitions.
|
|
|
|
|
* config/s390/s390.opt: Support arch13 as processor type in
|
|
|
|
|
command line options.
|
|
|
|
|
|
2019-04-02 09:55:30 +02:00
|
|
|
|
2019-04-02 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR translation/89912
|
|
|
|
|
* params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
|
|
|
|
|
Fix param description of graphite-max-arrays-per-scop.
|
|
|
|
|
|
2019-04-02 09:40:30 +02:00
|
|
|
|
2019-04-02 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
|
|
|
|
|
(ASAN_CC1_SPEC): Use it in 64-bit mode.
|
|
|
|
|
* config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
|
|
|
|
|
|
2019-04-01 20:05:08 +02:00
|
|
|
|
2019-04-01 Andrey Belevantsev <abel@ispras.ru>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/85412
|
|
|
|
|
* sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
|
|
|
|
|
sel_sched_region_1, not after.
|
|
|
|
|
|
2019-04-01 18:32:24 +02:00
|
|
|
|
2019-04-01 Andrey Belevantsev <abel@ispras.ru>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/86928
|
|
|
|
|
* sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
|
|
|
|
|
compute_live if necessary.
|
|
|
|
|
(sel_redirect_edge_and_branch): Likewise.
|
|
|
|
|
|
2019-04-01 18:18:30 +02:00
|
|
|
|
2019-04-01 Vladimir Makarov <vmakarov@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/89865
|
|
|
|
|
* ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
|
|
|
|
|
register if it is a part of small class.
|
|
|
|
|
|
2019-04-01 17:20:13 +02:00
|
|
|
|
2019-04-01 Andrey Belevantsev <abel@ispras.ru>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/87273
|
|
|
|
|
* sel-sched-ir.c (merge_fences): Remove assert.
|
|
|
|
|
|
2019-04-01 13:36:25 +02:00
|
|
|
|
2019-04-01 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/46590
|
|
|
|
|
* domwalk.h (dom_walker::dom_walker): Consolidate constructors.
|
|
|
|
|
(dom_walker::m_reachability): Add in place of...
|
|
|
|
|
(dom_walker::m_skip_unreachable_blocks): ...this.
|
|
|
|
|
* domwalk.c (dom_walker::dom_walker): Consoliate constructors.
|
|
|
|
|
Move complex initialization ...
|
|
|
|
|
(dom_walker::walk): Here. Especially compute m_bb_to_rpo
|
|
|
|
|
lazily and initialize edge flags on each invocation.
|
|
|
|
|
(dom_walker::bb_reachable): Use m_reachability.
|
|
|
|
|
|
2019-04-01 09:17:38 +02:00
|
|
|
|
2019-04-01 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
PR driver/89861
|
|
|
|
|
* opt-suggestions.c (option_proposer::build_option_suggestions):
|
|
|
|
|
Add variant without any argument in order to provide better
|
|
|
|
|
hints.
|
|
|
|
|
|
2019-04-01 09:16:38 +02:00
|
|
|
|
2019-04-01 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c/71598
|
|
|
|
|
* gimple.c: Include langhooks.h.
|
|
|
|
|
(gimple_get_alias_set): Treat enumeral types as the underlying
|
|
|
|
|
integer type.
|
|
|
|
|
|
2019-03-30 05:24:22 +01:00
|
|
|
|
2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org>
|
|
|
|
|
Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/89862
|
|
|
|
|
* rtl.h (word_register_operation_p): Exclude CONST_INT from operations
|
|
|
|
|
that operates on the full registers for WORD_REGISTER_OPERATIONS
|
|
|
|
|
architectures.
|
|
|
|
|
|
2019-03-29 22:51:58 +01:00
|
|
|
|
2019-03-29 Jim Wilson <jimw@sifive.com>
|
|
|
|
|
|
|
|
|
|
* common/config/riscv/riscv-common.c (riscv_parse_arch_string):
|
|
|
|
|
Clear MASK_RVC and then set if C subset supported.
|
|
|
|
|
|
2019-03-29 20:32:20 +01:00
|
|
|
|
2019-03-29 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/89872
|
|
|
|
|
* gimplify.c (gimplify_compound_literal_expr): Don't optimize a
|
|
|
|
|
non-addressable complit into its initializer if it is volatile.
|
|
|
|
|
|
2019-03-29 19:44:01 +01:00
|
|
|
|
2019-03-29 Roman Zhuykov <zhroma@ispras.ru>
|
|
|
|
|
|
|
|
|
|
* opts-common.c (integral_argument): Set errno properly in one case.
|
|
|
|
|
|
2019-03-29 15:53:12 +01:00
|
|
|
|
2019-03-29 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* doc/invoke.texi: Remove -Wchkp from documentation.
|
|
|
|
|
|
2019-03-29 12:45:56 +01:00
|
|
|
|
2019-03-29 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* dbgcnt.c (print_limit_reach): New function.
|
|
|
|
|
(dbg_cnt): Use it.
|
|
|
|
|
|
2019-03-29 12:45:39 +01:00
|
|
|
|
2019-03-29 Martin Liska <mliska@suse.cz>
|
|
|
|
|
|
|
|
|
|
* dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
|
|
|
|
|
(dbg_cnt_process_opt): Parse first tokens aas
|
|
|
|
|
dbg_cnt_process_single_pair is also using strtok.
|
|
|
|
|
|
2019-03-29 12:42:51 +01:00
|
|
|
|
2019-03-29 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/87485
|
|
|
|
|
* function.c (expand_function_end): Move stack_protect_epilogue
|
|
|
|
|
before loading of return value into hard register(s).
|
|
|
|
|
|
2019-03-28 23:33:29 +01:00
|
|
|
|
2019-03-28 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/89621
|
|
|
|
|
* tree-inline.h (struct copy_body_data): Add
|
|
|
|
|
dont_remap_vla_if_no_change flag.
|
|
|
|
|
* tree-inline.c (remap_type_3, remap_type_2): New functions.
|
|
|
|
|
(remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
|
|
|
|
|
and remap_type_2 returns false.
|
|
|
|
|
* omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
|
|
|
|
|
Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
|
|
|
|
|
only from where it is copied to nested contexts.
|
|
|
|
|
|
2019-03-28 20:33:22 +01:00
|
|
|
|
2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR target/89865
|
|
|
|
|
* config/i386/i386.md (RMW operation with LEA peephole):
|
|
|
|
|
Use LEAMODE mode attribute instead of SWI mode iterator for
|
|
|
|
|
LEA pattern.
|
|
|
|
|
|
2019-03-28 20:15:58 +01:00
|
|
|
|
2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR target/89848
|
|
|
|
|
* config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
|
|
|
|
|
Also process XEXP (src, 0) of a shift insn.
|
|
|
|
|
|
2019-03-28 15:40:56 +01:00
|
|
|
|
2019-03-28 David Malcolm <dmalcolm@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/89725
|
|
|
|
|
* optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
|
|
|
|
|
Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
|
|
|
|
|
|
2019-03-28 15:07:40 +01:00
|
|
|
|
2019-03-28 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2019-03-28 15:20:10 +01:00
|
|
|
|
* regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
|
|
|
|
|
test.
|
|
|
|
|
(cprop_hardreg_bb, cprop_hardreg_debug): New functions.
|
|
|
|
|
(pass_cprop_hardreg::execute): Use those. Don't repeat bb processing
|
|
|
|
|
immediately after first one with df_analyze in between, but rather
|
|
|
|
|
process all bbs, queueing ones that need second pass in a worklist,
|
|
|
|
|
df_analyze, process queued debug insn changes and if second pass is
|
|
|
|
|
needed, process bbs from worklist, df_analyze, process queued debug
|
|
|
|
|
insns again.
|
|
|
|
|
|
2019-03-28 15:07:40 +01:00
|
|
|
|
* rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
|
|
|
|
|
or CALL_P instead of INSN_P && !DEBUG_INSN_P.
|
|
|
|
|
(INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
|
|
|
|
|
|
2019-03-28 14:42:48 +01:00
|
|
|
|
2019-03-28 Jonathan Wakely <jwakely@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/79022
|
|
|
|
|
* gengtype.h (create_nested_ptr_option): Fix parameter names to match
|
|
|
|
|
definition.
|
|
|
|
|
|
2019-03-27 22:17:48 +01:00
|
|
|
|
2019-03-27 Mateusz B <mateuszb@poczta.onet.pl>
|
|
|
|
|
|
|
|
|
|
PR target/85667
|
|
|
|
|
* config/i386/i386.c (ix86_function_value_1): Call the newly added
|
|
|
|
|
function for 32-bit MS_ABI.
|
|
|
|
|
(function_value_ms_32): New function.
|
|
|
|
|
|
2019-03-27 18:06:26 +01:00
|
|
|
|
2019-03-27 Andrew Stubbs <ams@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* config/gcn/gcn.md (CC_SAVE_REG): New constant.
|
|
|
|
|
(movdi): Call gen_movdi_symbol_save_scc.
|
|
|
|
|
(gen_movdi_symbol_save_scc): New insn and split.
|
|
|
|
|
|
2019-03-27 17:59:15 +01:00
|
|
|
|
2019-03-27 Peter Bergner <bergner@linux.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/89313
|
|
|
|
|
* function.c (matching_constraint_num): New static function.
|
|
|
|
|
(match_asm_constraints_1): Use it. Fixup white space and comment.
|
|
|
|
|
Don't replace inputs with non-matching constraints which conflict
|
|
|
|
|
with early clobber outputs.
|
|
|
|
|
|
2019-03-27 17:18:06 +01:00
|
|
|
|
2019-03-27 Jeff Law <law@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/87761
|
|
|
|
|
PR rtl-optimization/89826
|
|
|
|
|
* regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
|
|
|
|
|
slightly later.
|
|
|
|
|
(pass_cprop_hardreg::execute): Call df_analyze after adding the
|
|
|
|
|
note problem to get REG_DEAD/REG_UNUSED notes updated.
|
|
|
|
|
|
2019-03-27 10:31:53 +01:00
|
|
|
|
2019-03-27 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/89463
|
|
|
|
|
* tree-ssa-dce.c (remove_dead_stmt): Take output vector to
|
|
|
|
|
queue edges to remove.
|
|
|
|
|
(eliminate_unnecessary_stmts): Remove dead PHIs alongside
|
|
|
|
|
dead stmts. Delay edge removal until PHIs are removed to
|
|
|
|
|
make debug-stmt creation not confused by seemingly degenerate
|
|
|
|
|
PHIs.
|
|
|
|
|
|
2019-03-27 02:15:50 +01:00
|
|
|
|
2019-03-27 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
|
|
|
|
|
throughout file.
|
|
|
|
|
* config/rs6000/darwin.h: Likewise.
|
|
|
|
|
* config/rs6000/rs6000.c: Likewise.
|
|
|
|
|
|
2019-03-27 02:12:35 +01:00
|
|
|
|
2019-03-27 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
|
|
|
|
|
assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting.
|
|
|
|
|
|
RISC-V: Add sifive-7 pipeline description.
* config/riscv/generic.md (generic_alu, generic_load, generic_store)
(generic_xfer, generic_branch, generic_imul, generic_idivsi)
(generic_idivdi, generic_fmul_single, generic_fmul_double)
(generic_fdiv, generic_fsqrt): Add check for generic tune.
(generic_alu): Add auipc to type list.
* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
(riscv_microarchitecture): Declare.
* config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
* config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
field.
(riscv_microarchitecture): New.
(sifive_7_tune_info): New.
(riscv_cpu_info_table): Add microarchitecture value for rocket and
size. Add sifive-3-series, sifive-5-series, and sifive-7-series
entries.
(riscv_store_data_bypass_p): New.
(riscv_option_override): Set riscv_microarchitecture from
cpu->microarchitecture.
* config/riscv/riscv.md: Include sifive-7.md.
(type): Add auipc.
(tune): New.
(auipc<mode>): Change type to auipc.
(restore_stack_nonlocal): New.
* config/riscv/sifive-7.md: New.
* doc/invoke.texi (RISC-V Options): Update mtune docs.
Co-Authored-By: Jim Wilson <jimw@sifive.com>
From-SVN: r269954
2019-03-26 20:41:02 +01:00
|
|
|
|
2019-03-26 Andrew Waterman <andrew@sifive.com>
|
|
|
|
|
Jim Wilson <jimw@sifive.com>
|
|
|
|
|
|
|
|
|
|
* config/riscv/generic.md (generic_alu, generic_load, generic_store)
|
|
|
|
|
(generic_xfer, generic_branch, generic_imul, generic_idivsi)
|
|
|
|
|
(generic_idivdi, generic_fmul_single, generic_fmul_double)
|
|
|
|
|
(generic_fdiv, generic_fsqrt): Add check for generic tune.
|
|
|
|
|
(generic_alu): Add auipc to type list.
|
|
|
|
|
* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
|
|
|
|
|
(riscv_microarchitecture): Declare.
|
|
|
|
|
* config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
|
|
|
|
|
* config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
|
|
|
|
|
field.
|
|
|
|
|
(riscv_microarchitecture): New.
|
|
|
|
|
(sifive_7_tune_info): New.
|
|
|
|
|
(riscv_cpu_info_table): Add microarchitecture value for rocket and
|
|
|
|
|
size. Add sifive-3-series, sifive-5-series, and sifive-7-series
|
|
|
|
|
entries.
|
|
|
|
|
(riscv_store_data_bypass_p): New.
|
|
|
|
|
(riscv_option_override): Set riscv_microarchitecture from
|
|
|
|
|
cpu->microarchitecture.
|
|
|
|
|
* config/riscv/riscv.md: Include sifive-7.md.
|
|
|
|
|
(type): Add auipc.
|
|
|
|
|
(tune): New.
|
|
|
|
|
(auipc<mode>): Change type to auipc.
|
|
|
|
|
(restore_stack_nonlocal): New.
|
|
|
|
|
* config/riscv/sifive-7.md: New.
|
|
|
|
|
* doc/invoke.texi (RISC-V Options): Update mtune docs.
|
|
|
|
|
|
2019-03-26 19:59:14 +01:00
|
|
|
|
2019-03-26 Uroš Bizjak <ubizjak@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR target/89827
|
|
|
|
|
* config/i386/i386.c (dimode_scalar_chain::convert_reg):
|
|
|
|
|
Also process XEXP (src, 0) of a shift insn.
|
|
|
|
|
|
2019-03-26 15:56:30 +01:00
|
|
|
|
2019-03-26 Richard Biener <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* tree-inline.c (remap_gimple_stmt): Cache gimple_block.
|
|
|
|
|
(copy_debug_stmt): Likewise.
|
|
|
|
|
(expand_call_inline): Likewise.
|
|
|
|
|
(copy_bb): Avoid redundant lookup & set of gimple_block.
|
|
|
|
|
* gimple-low.c (lower_gimple_return): Likewise.
|
|
|
|
|
(lower_builtin_setjmp): Likewise.
|
|
|
|
|
|
2019-03-26 14:40:43 +01:00
|
|
|
|
2019-03-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
|
|
|
|
|
is constant 0, turn into static const data member initialized to false.
|
|
|
|
|
(hash_table::hash_table): Only initialize m_gather_mem_stats #if
|
|
|
|
|
GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param.
|
|
|
|
|
|
2019-03-26 14:38:53 +01:00
|
|
|
|
2019-03-26 Jason Merrill <jason@redhat.com>
|
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* mem-stats.h (mem_alloc_description::unregister_descriptor): New
|
|
|
|
|
method.
|
|
|
|
|
(mem_alloc_description::release_object_overhead): Fix comment typos.
|
|
|
|
|
* hash-table.h (hash_table::~hash_table): Call
|
|
|
|
|
release_instance_overhead only if m_entries is non-NULL, otherwise
|
|
|
|
|
call unregister_descriptor.
|
|
|
|
|
|
2019-03-26 12:12:37 +01:00
|
|
|
|
2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/81740
|
|
|
|
|
* tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
|
|
|
|
|
In case of outer loop vectorization, check for backward dependence
|
|
|
|
|
at the inner loop if outer loop dependence is reversed.
|
|
|
|
|
|
2019-03-26 06:16:14 +01:00
|
|
|
|
2019-03-26 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
|
|
|
|
|
rs6000_vector_mem init. Correct wI and wJ comment.
|
|
|
|
|
|
2019-03-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.
|
2019-04-07 21:30:22 +02:00
|
|
|
|
* common/config/aarch64/aarch64-common.c
|
|
|
|
|
(aarch64_rewrite_selected_cpu): Likewise.
|
2019-03-11 14:58:44 +01:00
|
|
|
|
* 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.
|
2019-04-07 21:30:22 +02:00
|
|
|
|
* common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
|
|
|
|
|
Likewise.
|
|
|
|
|
* common/config/riscv/riscv-common.c
|
|
|
|
|
(riscv_subset_list::parsing_subset_version): Likewise.
|
2019-03-11 14:58:44 +01:00
|
|
|
|
(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>
|
|
|
|
|
|
2019-04-07 21:30:22 +02:00
|
|
|
|
PR middle-end/88074
|
2019-02-19 13:46:48 +01:00
|
|
|
|
* 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>
|
|
|
|
|
|
2019-04-07 21:30:22 +02:00
|
|
|
|
* 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:32:40 +01:00
|
|
|
|
|
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>
|
|
|
|
|
|
2019-04-07 21:30:22 +02:00
|
|
|
|
* godump.c (go_output_typedef): When outputting a typedef, refer
|
2019-01-16 00:54:37 +01:00
|
|
|
|
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
|
2019-04-07 21:30:22 +02:00
|
|
|
|
targetm.hard_regno_call_part_clobbered call.
|
2019-01-11 17:50:17 +01:00
|
|
|
|
* 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,
|
2019-04-07 21:30:22 +02:00
|
|
|
|
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.
|
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
|
|
|
|
* 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.
|
2019-04-07 21:30:22 +02:00
|
|
|
|
* config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
|
|
|
|
|
New.
|
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
|
|
|
|
* 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>
|
|
|
|
|
|
2019-04-07 21:30:22 +02:00
|
|
|
|
* config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
|
|
|
|
|
Add qualifier_lane_pair_index.
|
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
|
|
|
|
(emit-rtl.h): Include.
|
|
|
|
|
(TYPES_QUADOP_LANE_PAIR): New.
|
|
|
|
|
(aarch64_simd_expand_args): Use it.
|
|
|
|
|
(aarch64_simd_expand_builtin): Likewise.
|
2019-04-07 21:30:22 +02:00
|
|
|
|
(AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
|
|
|
|
|
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
|
|
|
|
(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,
|
2019-04-07 21:30:22 +02:00
|
|
|
|
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-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
|
|
|
|
AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
|
|
|
|
|
* config/aarch64/iterators.md (FCMLA_maybe_lane): New.
|
2019-04-07 21:30:22 +02:00
|
|
|
|
* 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.
|
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
|
|
|
|
* config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
|
2019-04-07 21:30:22 +02:00
|
|
|
|
aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
|
|
|
|
|
aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): 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
|
|
|
|
* 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>
|
2019-04-07 21:30:22 +02:00
|
|
|
|
James Clarke <jrtc27@jrtc27.com>
|
2019-01-09 15:34:20 +01:00
|
|
|
|
|
|
|
|
|
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-04-07 21:30:22 +02:00
|
|
|
|
* ipa-inline.c (edge_badness): Use inlined_time instead of
|
|
|
|
|
inline_summaries->get.
|
2019-01-06 18:16:00 +01:00
|
|
|
|
|
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>
|
2019-04-07 21:30:22 +02:00
|
|
|
|
Jeff Law <law@redhat.com>
|
2019-01-02 19:30:50 +01:00
|
|
|
|
|
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>
|
2019-04-07 21:30:22 +02:00
|
|
|
|
Jeff Law <law@redhat.com>
|
2019-01-01 19:20:13 +01:00
|
|
|
|
|
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.
|