mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-18 01:35:44 +00:00
misched: fix LiveInterval update for bottom-up scheduling
llvm-svn: 153162
This commit is contained in:
parent
c97a63d77d
commit
6663a6f2ef
@ -1049,9 +1049,19 @@ public:
|
||||
bool hasRegMaskOp = false;
|
||||
collectRanges(MI, Entering, Internal, Exiting, hasRegMaskOp, OldIdx);
|
||||
|
||||
moveAllEnteringFrom(OldIdx, Entering);
|
||||
moveAllInternalFrom(OldIdx, Internal);
|
||||
moveAllExitingFrom(OldIdx, Exiting);
|
||||
// To keep the LiveRanges valid within an interval, move the ranges closest
|
||||
// to the destination first. This prevents ranges from overlapping, to that
|
||||
// APIs like removeRange still work.
|
||||
if (NewIdx < OldIdx) {
|
||||
moveAllEnteringFrom(OldIdx, Entering);
|
||||
moveAllInternalFrom(OldIdx, Internal);
|
||||
moveAllExitingFrom(OldIdx, Exiting);
|
||||
}
|
||||
else {
|
||||
moveAllExitingFrom(OldIdx, Exiting);
|
||||
moveAllInternalFrom(OldIdx, Internal);
|
||||
moveAllEnteringFrom(OldIdx, Entering);
|
||||
}
|
||||
|
||||
if (hasRegMaskOp)
|
||||
updateRegMaskSlots(OldIdx);
|
||||
|
Loading…
x
Reference in New Issue
Block a user