diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-02-03 17:04:16 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-02-03 17:04:16 +0000 |
commit | f12e120743102dbc8b87ff7e1b1b221ad96cea31 (patch) | |
tree | 78be0d9acea3848dd746dc88c8019b0cc9844a5b /llvm/lib/CodeGen/SplitKit.h | |
parent | 2b855eb69c01d7a3d8ae2c87f309544a4362e723 (diff) | |
download | bcm5719-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.h | 23 |
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. |