mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-19 02:25:01 +00:00
LiveInterval: Document and enforce rules about empty subranges.
Empty subranges are not allowed in a LiveInterval and must be removed instead: Check this in the verifiers, put a reminder for this in the comment of the shrinkToUses variant for a single lane and make it automatic for the shrinkToUses variant for a LiveInterval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242431 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -403,9 +403,14 @@ bool LiveIntervals::shrinkToUses(LiveInterval *li,
|
||||
&& "Can only shrink virtual registers");
|
||||
|
||||
// Shrink subregister live ranges.
|
||||
bool NeedsCleanup = false;
|
||||
for (LiveInterval::SubRange &S : li->subranges()) {
|
||||
shrinkToUses(S, li->reg);
|
||||
if (S.empty())
|
||||
NeedsCleanup = true;
|
||||
}
|
||||
if (NeedsCleanup)
|
||||
li->removeEmptySubRanges();
|
||||
|
||||
// Find all the values used, including PHI kills.
|
||||
ShrinkToUsesWorkList WorkList;
|
||||
|
Reference in New Issue
Block a user