[llvm-commits] [llvm] r129092 - /llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp
Jakob Stoklund Olesen
stoklund at 2pi.dk
Thu Apr 7 11:43:14 PDT 2011
Author: stoklund
Date: Thu Apr 7 13:43:14 2011
New Revision: 129092
URL: http://llvm.org/viewvc/llvm-project?rev=129092&view=rev
Log:
Recompute hasPHIKill flags when shrinking live intervals.
PHI values may be deleted, causing the flags to be wrong. This fixes PR9616.
Modified:
llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp
Modified: llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp?rev=129092&r1=129091&r2=129092&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp (original)
+++ llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp Thu Apr 7 13:43:14 2011
@@ -787,6 +787,8 @@
VNInfo *VNI = *I;
if (VNI->isUnused())
continue;
+ // We may eliminate PHI values, so recompute PHIKill flags.
+ VNI->setHasPHIKill(false);
NewLI.addRange(LiveRange(VNI->def, VNI->def.getNextSlot(), VNI));
// A use tied to an early-clobber def ends at the load slot and isn't caught
@@ -822,7 +824,7 @@
VNInfo *PVNI = li->getVNInfoAt(Stop);
// A predecessor is not required to have a live-out value for a PHI.
if (PVNI) {
- assert(PVNI->hasPHIKill() && "Missing hasPHIKill flag");
+ PVNI->setHasPHIKill(true);
WorkList.push_back(std::make_pair(Stop, PVNI));
}
}
More information about the llvm-commits
mailing list