[llvm] r224805 - RegisterCoalescer: With subrange liveness there may be no RedefVNI for unused lanes.
Matthias Braun
matze at braunis.de
Tue Dec 23 18:11:48 PST 2014
Author: matze
Date: Tue Dec 23 20:11:48 2014
New Revision: 224805
URL: http://llvm.org/viewvc/llvm-project?rev=224805&view=rev
Log:
RegisterCoalescer: With subrange liveness there may be no RedefVNI for unused lanes.
Modified:
llvm/trunk/lib/CodeGen/RegisterCoalescer.cpp
Modified: llvm/trunk/lib/CodeGen/RegisterCoalescer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegisterCoalescer.cpp?rev=224805&r1=224804&r2=224805&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/RegisterCoalescer.cpp (original)
+++ llvm/trunk/lib/CodeGen/RegisterCoalescer.cpp Tue Dec 23 20:11:48 2014
@@ -1817,9 +1817,12 @@ JoinVals::analyzeValue(unsigned ValNo, J
// not important.
if (Redef) {
V.RedefVNI = LR.Query(VNI->def).valueIn();
- assert(V.RedefVNI && "Instruction is reading nonexistent value");
- computeAssignment(V.RedefVNI->id, Other);
- V.ValidLanes |= Vals[V.RedefVNI->id].ValidLanes;
+ assert(TrackSubRegLiveness || V.RedefVNI &&
+ "Instruction is reading nonexistent value");
+ if (V.RedefVNI != nullptr) {
+ computeAssignment(V.RedefVNI->id, Other);
+ V.ValidLanes |= Vals[V.RedefVNI->id].ValidLanes;
+ }
}
// An IMPLICIT_DEF writes undef values.
More information about the llvm-commits
mailing list