aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-inline.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2020-02-07 11:09:03 +0100
committerJakub Jelinek <jakub@redhat.com>2020-02-07 11:12:22 +0100
commitc006911de91ca9e23d7d2df069499c768d215eac (patch)
tree6f83adbbdb0062f67f1ebb49045153b1c3e6b3d3 /gcc/tree-inline.c
parentc58e6cc32c4e36032701e3bc5caa136a35231b5d (diff)
downloadgcc-c006911de91ca9e23d7d2df069499c768d215eac.zip
gcc-c006911de91ca9e23d7d2df069499c768d215eac.tar.gz
gcc-c006911de91ca9e23d7d2df069499c768d215eac.tar.bz2
powerpc: Fix -fstack-clash-protection -mprefixed-addr ICE [PR93122]
As mentioned in the PR, the following testcase ICEs because rs, while valid add_operand is not valid add_cint_operand and so gen_add3_insn fails, because it doesn't meet the expander predicates. Here is what I meant as the alternative, i.e. don't check any predicates, just gen_add3_insn, if that fails, force rs into register and retry. And, add REG_FRAME_RELATED_EXPR note always when we haven't emitted a single insn that has rtl exactly matching what we'd add the REG_FRAME_RELATED_EXPR with (in that case, dwarf2cfi.c is able to figure it out by itself, no need to waste compile time memory). 2020-02-07 Jakub Jelinek <jakub@redhat.com> PR target/93122 * config/rs6000/rs6000-logue.c (rs6000_emit_probe_stack_range_stack_clash): Always use gen_add3_insn, if it fails, move rs into end_addr and retry. Add REG_FRAME_RELATED_EXPR note whenever it returns more than one insn or the insn pattern doesn't describe well what exactly happens to dwarf2cfi.c. * gcc.target/powerpc/pr93122.c: New test.
Diffstat (limited to 'gcc/tree-inline.c')
0 files changed, 0 insertions, 0 deletions