diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-04-20 22:14:20 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-04-20 22:14:20 +0000 |
commit | 86e53ced08beca7b2333e7c0a52427eae5b2499e (patch) | |
tree | 6beee5a979ab051df15ebe37e58577402d768011 /llvm | |
parent | 90d79bdcd26f27dac9c6da07d6dfcbcb505aea27 (diff) | |
download | bcm5719-llvm-86e53ced08beca7b2333e7c0a52427eae5b2499e.tar.gz bcm5719-llvm-86e53ced08beca7b2333e7c0a52427eae5b2499e.zip |
Add debug output for rematerializable instructions.
llvm-svn: 129883
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/lib/CodeGen/InlineSpiller.cpp | 6 | ||||
-rw-r--r-- | llvm/lib/CodeGen/LiveRangeEdit.cpp | 8 | ||||
-rw-r--r-- | llvm/lib/CodeGen/LiveRangeEdit.h | 2 |
3 files changed, 10 insertions, 6 deletions
diff --git a/llvm/lib/CodeGen/InlineSpiller.cpp b/llvm/lib/CodeGen/InlineSpiller.cpp index bcbe718bc86..0a785565f6c 100644 --- a/llvm/lib/CodeGen/InlineSpiller.cpp +++ b/llvm/lib/CodeGen/InlineSpiller.cpp @@ -420,8 +420,10 @@ void InlineSpiller::analyzeSiblingValues() { } if (!DefMI && !VNI->isPHIDef()) DefMI = LIS.getInstructionFromIndex(VNI->def); - if (DefMI) - Edit->checkRematerializable(VNI, DefMI, TII, AA); + if (DefMI && Edit->checkRematerializable(VNI, DefMI, TII, AA)) { + DEBUG(dbgs() << "Value " << PrintReg(Reg) << ':' << VNI->id << '@' + << VNI->def << " may remat from " << *DefMI); + } } } } diff --git a/llvm/lib/CodeGen/LiveRangeEdit.cpp b/llvm/lib/CodeGen/LiveRangeEdit.cpp index b1dc9019ccc..443cc2e9048 100644 --- a/llvm/lib/CodeGen/LiveRangeEdit.cpp +++ b/llvm/lib/CodeGen/LiveRangeEdit.cpp @@ -36,14 +36,16 @@ LiveInterval &LiveRangeEdit::createFrom(unsigned OldReg, return LI; } -void LiveRangeEdit::checkRematerializable(VNInfo *VNI, +bool LiveRangeEdit::checkRematerializable(VNInfo *VNI, const MachineInstr *DefMI, const TargetInstrInfo &tii, AliasAnalysis *aa) { assert(DefMI && "Missing instruction"); - if (tii.isTriviallyReMaterializable(DefMI, aa)) - remattable_.insert(VNI); scannedRemattable_ = true; + if (!tii.isTriviallyReMaterializable(DefMI, aa)) + return false; + remattable_.insert(VNI); + return true; } void LiveRangeEdit::scanRemattable(LiveIntervals &lis, diff --git a/llvm/lib/CodeGen/LiveRangeEdit.h b/llvm/lib/CodeGen/LiveRangeEdit.h index 54a2c83fd6f..c008d7647db 100644 --- a/llvm/lib/CodeGen/LiveRangeEdit.h +++ b/llvm/lib/CodeGen/LiveRangeEdit.h @@ -137,7 +137,7 @@ public: /// checkRematerializable - Manually add VNI to the list of rematerializable /// values if DefMI may be rematerializable. - void checkRematerializable(VNInfo *VNI, const MachineInstr *DefMI, + bool checkRematerializable(VNInfo *VNI, const MachineInstr *DefMI, const TargetInstrInfo&, AliasAnalysis*); /// Remat - Information needed to rematerialize at a specific location. |