The issue arises when multiple CALLSEQ_BEGIN nodes are unscheduled as the last node to be unscheduled will gain access to the CallResource register. But when a node is being picked, only CALLSEQ_END nodes are checked against the CallResource and have their chains evaluated. This then means that other CALLSEQ_BEGIN nodes can be scheduled before the existing call sequence has been finalised. This patch adds a check against the FrameSetup nodes in DelayForLiveRegs to prevent this from happening.
Thanks Sam, you are fast! This patch fixes the crash for me and all test cases still pass. Very nice!
I am not an expert in this area, so I will let others review the patch. Thanks again for helping make the AOSP buildbot green!
|1309 ↗||(On Diff #93645)|
There seems to be something wrong with the opening braces here. I had to fix them before this compiled.