summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SplitKit.h
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-02-03 17:04:16 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-02-03 17:04:16 +0000
commitf12e120743102dbc8b87ff7e1b1b221ad96cea31 (patch)
tree78be0d9acea3848dd746dc88c8019b0cc9844a5b /llvm/lib/CodeGen/SplitKit.h
parent2b855eb69c01d7a3d8ae2c87f309544a4362e723 (diff)
downloadbcm5719-llvm-f12e120743102dbc8b87ff7e1b1b221ad96cea31.tar.gz
bcm5719-llvm-f12e120743102dbc8b87ff7e1b1b221ad96cea31.zip
Return live range end points from SplitEditor::enter*/leave*.
These end points come from the inserted copies, and can be passed directly to useIntv. This simplifies the coloring code. llvm-svn: 124799
Diffstat (limited to 'llvm/lib/CodeGen/SplitKit.h')
-rw-r--r--llvm/lib/CodeGen/SplitKit.h23
1 files changed, 14 insertions, 9 deletions
diff --git a/llvm/lib/CodeGen/SplitKit.h b/llvm/lib/CodeGen/SplitKit.h
index 5e9b96b6290..205341c19c8 100644
--- a/llvm/lib/CodeGen/SplitKit.h
+++ b/llvm/lib/CodeGen/SplitKit.h
@@ -352,12 +352,15 @@ public:
/// Create a new virtual register and live interval.
void openIntv();
- /// enterIntvBefore - Enter OpenLI before the instruction at Idx. If CurLI is
- /// not live before Idx, a COPY is not inserted.
- void enterIntvBefore(SlotIndex Idx);
+ /// enterIntvBefore - Enter the open interval before the instruction at Idx.
+ /// If the parent interval is not live before Idx, a COPY is not inserted.
+ /// Return the beginning of the new live range.
+ SlotIndex enterIntvBefore(SlotIndex Idx);
- /// enterIntvAtEnd - Enter OpenLI at the end of MBB.
- void enterIntvAtEnd(MachineBasicBlock &MBB);
+ /// enterIntvAtEnd - Enter the open interval at the end of MBB.
+ /// Use the open interval from he inserted copy to the MBB end.
+ /// Return the beginning of the new live range.
+ SlotIndex enterIntvAtEnd(MachineBasicBlock &MBB);
/// useIntv - indicate that all instructions in MBB should use OpenLI.
void useIntv(const MachineBasicBlock &MBB);
@@ -365,12 +368,14 @@ public:
/// useIntv - indicate that all instructions in range should use OpenLI.
void useIntv(SlotIndex Start, SlotIndex End);
- /// leaveIntvAfter - Leave OpenLI after the instruction at Idx.
- void leaveIntvAfter(SlotIndex Idx);
+ /// leaveIntvAfter - Leave the open interval after the instruction at Idx.
+ /// Return the end of the live range.
+ SlotIndex leaveIntvAfter(SlotIndex Idx);
/// leaveIntvAtTop - Leave the interval at the top of MBB.
- /// Currently, only one value can leave the interval.
- void leaveIntvAtTop(MachineBasicBlock &MBB);
+ /// Add liveness from the MBB top to the copy.
+ /// Return the end of the live range.
+ SlotIndex leaveIntvAtTop(MachineBasicBlock &MBB);
/// closeIntv - Indicate that we are done editing the currently open
/// LiveInterval, and ranges can be trimmed.
OpenPOWER on IntegriCloud