summaryrefslogtreecommitdiff
path: root/lib/CodeGen/SplitKit.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-03-03 01:29:13 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-03-03 01:29:13 +0000
commitbece06f0c6936527e2b1c72d09f7d3a949af9a47 (patch)
tree2f2d7bb9727c2c8dc68d57c34a5161e716084e31 /lib/CodeGen/SplitKit.cpp
parent8701768ae2e93e8741106acfa4a29959e1439487 (diff)
downloadllvm-bece06f0c6936527e2b1c72d09f7d3a949af9a47.tar.gz
llvm-bece06f0c6936527e2b1c72d09f7d3a949af9a47.tar.bz2
llvm-bece06f0c6936527e2b1c72d09f7d3a949af9a47.tar.xz
Change the SplitEditor interface to a single instance can be shared for multiple splits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126912 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SplitKit.cpp')
-rw-r--r--lib/CodeGen/SplitKit.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/CodeGen/SplitKit.cpp b/lib/CodeGen/SplitKit.cpp
index 9b007a4ac1..017511e20c 100644
--- a/lib/CodeGen/SplitKit.cpp
+++ b/lib/CodeGen/SplitKit.cpp
@@ -209,17 +209,24 @@ void SplitAnalysis::analyze(const LiveInterval *li) {
SplitEditor::SplitEditor(SplitAnalysis &sa,
LiveIntervals &lis,
VirtRegMap &vrm,
- MachineDominatorTree &mdt,
- LiveRangeEdit &edit)
+ MachineDominatorTree &mdt)
: SA(sa), LIS(lis), VRM(vrm),
MRI(vrm.getMachineFunction().getRegInfo()),
MDT(mdt),
TII(*vrm.getMachineFunction().getTarget().getInstrInfo()),
TRI(*vrm.getMachineFunction().getTarget().getRegisterInfo()),
- Edit(&edit),
+ Edit(0),
OpenIdx(0),
RegAssign(Allocator)
-{
+{}
+
+void SplitEditor::reset(LiveRangeEdit &lre) {
+ Edit = &lre;
+ OpenIdx = 0;
+ RegAssign.clear();
+ Values.clear();
+ LiveOutCache.clear();
+
// We don't need an AliasAnalysis since we will only be performing
// cheap-as-a-copy remats anyway.
Edit->anyRematerializable(LIS, TII, 0);