]> granicus.if.org Git - llvm/commit
[InlineSpiller] Fix a crash due to lack of forward progress from remat (try 2)
authorPhilip Reames <listmail@philipreames.com>
Tue, 12 Feb 2019 18:33:01 +0000 (18:33 +0000)
committerPhilip Reames <listmail@philipreames.com>
Tue, 12 Feb 2019 18:33:01 +0000 (18:33 +0000)
commit9becf5911e89bbe440fb70080bbed42735bf1900
tree6c3a65ec954ab37feb6d17ae9aa1ea301174ca8e
parent3044368de258cd87b7a2e40be70212b2d2d35208
[InlineSpiller] Fix a crash due to lack of forward progress from remat (try 2)

This is a recommit of r335091 Add more test cases for deopt-operands via regalloc, and r335077 [InlineSpiller] Fix a crash due to lack of forward progress from remat specifically for STATEPOINT.  They were reverted due to a crash.

This change includes the text of both original changes, but also includes three aditional pieces:
1) A bug fix for the observed crash.  I had failed to record the failed remat value as live which resulted in an instruction being deleted which still had uses.  With the machine verifier, this is caught quickly.  Without it, we fail in StackSlotColoring due to an empty live interval from LiveStack.
2) A test case which demonstrates the fix for (1).  See @test11.
3) A control flag which defaults to disabling this for the moment.  Once I've run more extensive validaton, I will switch the default and then remove this flag.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@353871 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/InlineSpiller.cpp
test/CodeGen/X86/statepoint-live-in.ll