-
kelefth authored
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.
kelefth authoredAvoid-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.