From 014d624a2864605b10d3b14fd9cda3163c41f6bf Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Tue, 22 Sep 2009 01:48:19 +0000 Subject: [PATCH] Fix a pasto. Also simplify for Bill's benefit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82505 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/SimpleRegisterCoalescing.cpp | 6 ++++-- test/CodeGen/ARM/2008-11-19-ScavengerAssert.ll | 2 +- test/CodeGen/X86/2008-02-22-ReMatBug.ll | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/CodeGen/SimpleRegisterCoalescing.cpp b/lib/CodeGen/SimpleRegisterCoalescing.cpp index 068dcda93b5..22b62c36037 100644 --- a/lib/CodeGen/SimpleRegisterCoalescing.cpp +++ b/lib/CodeGen/SimpleRegisterCoalescing.cpp @@ -2571,17 +2571,19 @@ void SimpleRegisterCoalescing::CalculateSpillWeights() { continue; bool HasDef = mopi.isDef(); - bool HasUse = mopi.isUse(); + bool HasUse = !HasDef; for (unsigned j = i+1; j != e; ++j) { const MachineOperand &mopj = MI->getOperand(j); if (!mopj.isReg() || mopj.getReg() != Reg) continue; HasDef |= mopj.isDef(); HasUse |= mopj.isUse(); + if (HasDef && HasUse) + break; } LiveInterval &RegInt = li_->getInterval(Reg); - float Weight = li_->getSpillWeight(HasDef, HasUse, loopDepth+1); + float Weight = li_->getSpillWeight(HasDef, HasUse, loopDepth); if (HasDef && isExit) { // Looks like this is a loop count variable update. MachineInstrIndex DefIdx = diff --git a/test/CodeGen/ARM/2008-11-19-ScavengerAssert.ll b/test/CodeGen/ARM/2008-11-19-ScavengerAssert.ll index 221a168cba8..3291856f18c 100644 --- a/test/CodeGen/ARM/2008-11-19-ScavengerAssert.ll +++ b/test/CodeGen/ARM/2008-11-19-ScavengerAssert.ll @@ -1,4 +1,4 @@ -; RUN: llc < %s -mtriple=arm-apple-darwin9 -stats |& grep asm-printer | grep 161 +; RUN: llc < %s -mtriple=arm-apple-darwin9 -stats |& grep asm-printer | grep 162 %"struct.Adv5::Ekin<3>" = type <{ i8 }> %"struct.Adv5::X::Energyflux<3>" = type { double } diff --git a/test/CodeGen/X86/2008-02-22-ReMatBug.ll b/test/CodeGen/X86/2008-02-22-ReMatBug.ll index a91ac27f98d..8d6bb0df1f6 100644 --- a/test/CodeGen/X86/2008-02-22-ReMatBug.ll +++ b/test/CodeGen/X86/2008-02-22-ReMatBug.ll @@ -1,4 +1,4 @@ -; RUN: llc < %s -march=x86 -stats |& grep {Number of re-materialization} | grep 2 +; RUN: llc < %s -march=x86 -stats |& grep {Number of re-materialization} | grep 3 ; rdar://5761454 %struct.quad_struct = type { i32, i32, %struct.quad_struct*, %struct.quad_struct*, %struct.quad_struct*, %struct.quad_struct*, %struct.quad_struct* }