From: Cameron Zwarich Date: Wed, 12 Oct 2011 21:24:54 +0000 (+0000) Subject: To find the exiting VN of a LiveInterval from a block, use the previous slot X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=980df169203a5f60793e758cdc5cbcad853ca9eb;p=oota-llvm.git To find the exiting VN of a LiveInterval from a block, use the previous slot rather than the previous index. If a block has a single instruction, the previous index may be in a different basic block. I have no clue how this used to work on all of test-suite, because now this failure is seen quite often when trying to compile code with -strong-phi-elim. This fixes PR10252. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141812 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/StrongPHIElimination.cpp b/lib/CodeGen/StrongPHIElimination.cpp index 0fabd8e6eef..76e6c9966a7 100644 --- a/lib/CodeGen/StrongPHIElimination.cpp +++ b/lib/CodeGen/StrongPHIElimination.cpp @@ -674,7 +674,7 @@ void StrongPHIElimination::InsertCopiesForPHI(MachineInstr *PHI, if (PHIColor && SrcColor == PHIColor) { LiveInterval &SrcInterval = LI->getInterval(SrcReg); SlotIndex PredIndex = LI->getMBBEndIdx(PredBB); - VNInfo *SrcVNI = SrcInterval.getVNInfoAt(PredIndex.getPrevIndex()); + VNInfo *SrcVNI = SrcInterval.getVNInfoAt(PredIndex.getPrevSlot()); assert(SrcVNI); SrcVNI->setHasPHIKill(true); continue;