diff options
author | Sam Parker <sam.parker@arm.com> | 2017-04-11 08:43:32 +0000 |
---|---|---|
committer | Sam Parker <sam.parker@arm.com> | 2017-04-11 08:43:32 +0000 |
commit | 4fc5f3c02e57136c7c4055bd2f83a56bb79d37e5 (patch) | |
tree | c8e5ace0cb2018a7222d88e0765a47727461e020 /llvm/lib/CodeGen/StackProtector.cpp | |
parent | 5fd75fb72e0eb04bf590765fc70f27a444993e74 (diff) | |
download | bcm5719-llvm-4fc5f3c02e57136c7c4055bd2f83a56bb79d37e5.tar.gz bcm5719-llvm-4fc5f3c02e57136c7c4055bd2f83a56bb79d37e5.zip |
[SelectionDAG] Check CALLSEQ_BEGIN nodes in DelayForLiveRegs
A fix for the bug reported in PR30911.
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.
Differential Revision: https://reviews.llvm.org/D31536
llvm-svn: 299926
Diffstat (limited to 'llvm/lib/CodeGen/StackProtector.cpp')
0 files changed, 0 insertions, 0 deletions