aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2010-02-09 02:01:46 +0000
committerDale Johannesen <dalej@apple.com>2010-02-09 02:01:46 +0000
commitd94998f52574eacef148bd856de701af2c594b03 (patch)
tree6e322d8320bd89ffe43b53fdb53c103330ff64cd
parent8581e0147cd7622ecec96a47310fc1a211b77908 (diff)
downloadexternal_llvm-d94998f52574eacef148bd856de701af2c594b03.tar.gz
external_llvm-d94998f52574eacef148bd856de701af2c594b03.tar.bz2
external_llvm-d94998f52574eacef148bd856de701af2c594b03.zip
Skip DEBUG_VALUE in some places where it was affecting codegen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95647 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/CodeGen/CalcSpillWeights.cpp3
-rw-r--r--lib/CodeGen/LiveVariables.cpp2
-rw-r--r--lib/CodeGen/TwoAddressInstructionPass.cpp4
3 files changed, 9 insertions, 0 deletions
diff --git a/lib/CodeGen/CalcSpillWeights.cpp b/lib/CodeGen/CalcSpillWeights.cpp
index b8ef219bf9..7da833bbbf 100644
--- a/lib/CodeGen/CalcSpillWeights.cpp
+++ b/lib/CodeGen/CalcSpillWeights.cpp
@@ -64,6 +64,9 @@ bool CalculateSpillWeights::runOnMachineFunction(MachineFunction &fn) {
if (mi->getOpcode() == TargetInstrInfo::IMPLICIT_DEF)
continue;
+ if (mi->getOpcode() == TargetInstrInfo::DEBUG_VALUE)
+ continue;
+
for (unsigned i = 0, e = mi->getNumOperands(); i != e; ++i) {
const MachineOperand &mopi = mi->getOperand(i);
if (!mopi.isReg() || mopi.getReg() == 0)
diff --git a/lib/CodeGen/LiveVariables.cpp b/lib/CodeGen/LiveVariables.cpp
index b44a2202e7..23ee8c3eda 100644
--- a/lib/CodeGen/LiveVariables.cpp
+++ b/lib/CodeGen/LiveVariables.cpp
@@ -543,6 +543,8 @@ bool LiveVariables::runOnMachineFunction(MachineFunction &mf) {
for (MachineBasicBlock::iterator I = MBB->begin(), E = MBB->end();
I != E; ++I) {
MachineInstr *MI = I;
+ if (MI->getOpcode()==TargetInstrInfo::DEBUG_VALUE)
+ continue;
DistanceMap.insert(std::make_pair(MI, Dist++));
// Process all of the operands of the instruction...
diff --git a/lib/CodeGen/TwoAddressInstructionPass.cpp b/lib/CodeGen/TwoAddressInstructionPass.cpp
index a3f6364aa8..71d9b83f7b 100644
--- a/lib/CodeGen/TwoAddressInstructionPass.cpp
+++ b/lib/CodeGen/TwoAddressInstructionPass.cpp
@@ -318,6 +318,8 @@ bool TwoAddressInstructionPass::NoUseAfterLastDef(unsigned Reg,
MachineInstr *MI = MO.getParent();
if (MI->getParent() != MBB)
continue;
+ if (MI->getOpcode() == TargetInstrInfo::DEBUG_VALUE)
+ continue;
DenseMap<MachineInstr*, unsigned>::iterator DI = DistanceMap.find(MI);
if (DI == DistanceMap.end())
continue;
@@ -341,6 +343,8 @@ MachineInstr *TwoAddressInstructionPass::FindLastUseInMBB(unsigned Reg,
MachineInstr *MI = MO.getParent();
if (MI->getParent() != MBB)
continue;
+ if (MI->getOpcode() == TargetInstrInfo::DEBUG_VALUE)
+ continue;
DenseMap<MachineInstr*, unsigned>::iterator DI = DistanceMap.find(MI);
if (DI == DistanceMap.end())
continue;