diff options
author | kelefth <konstantinos.eleftheriou@vrull.eu> | 2024-12-05 11:11:27 +0100 |
---|---|---|
committer | Philipp Tomsich <philipp.tomsich@vrull.eu> | 2024-12-06 12:36:42 +0100 |
commit | b317dca04e3ffb31144f79cb804ff6835c2a9af8 (patch) | |
tree | 2dd46256ca9622ef3fcab22d95a718a90e99d23c /gcc/c/c-parser.cc | |
parent | ed210c69ce934b785410d7c1d7cd76d4ed46624d (diff) | |
download | gcc-b317dca04e3ffb31144f79cb804ff6835c2a9af8.zip gcc-b317dca04e3ffb31144f79cb804ff6835c2a9af8.tar.gz gcc-b317dca04e3ffb31144f79cb804ff6835c2a9af8.tar.bz2 |
avoid-store-forwarding: bail when an instruction may throw [PR117816]
Avoid-store-forwarding doesn't handle the case where an instruction in
the store-load sequence contains a REG_EH_REGION note, leading to the
insertion of instructions after it, while it should be the last
instruction in the basic block. This causes an ICE when compiling
using `-O -fnon-call-exceptions -favoid-store-forwarding
-fno-forward-propagate -finstrument-functions`.
This patch rejects the transformation when there are instructions in
the sequence that may throw an exeption.
PR rtl-optimization/117816
gcc/ChangeLog:
* avoid-store-forwarding.cc (store_forwarding_analyzer::avoid_store_forwarding):
Reject the transformation when having instructions that may
throw exceptions in the sequence.
gcc/testsuite/ChangeLog:
* gcc.dg/pr117816.c: New test.
Diffstat (limited to 'gcc/c/c-parser.cc')
0 files changed, 0 insertions, 0 deletions