Skip to content
Snippets Groups Projects
  • kelefth's avatar
    b317dca0
    avoid-store-forwarding: bail when an instruction may throw [PR117816] · b317dca0
    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.
    b317dca0
    History
    avoid-store-forwarding: bail when an instruction may throw [PR117816]
    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.