OSDN Git Service

Preserve PHIDef bits in cloned values during splitting.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 26 Oct 2010 22:36:02 +0000 (22:36 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 26 Oct 2010 22:36:02 +0000 (22:36 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117405 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SplitKit.cpp

index 798f714..0d43341 100644 (file)
@@ -321,6 +321,10 @@ VNInfo *LiveIntervalMap::defValue(const VNInfo *ParentVNI, SlotIndex Idx) {
   // Create a new value.
   VNInfo *VNI = li_->getNextValue(Idx, 0, lis_.getVNInfoAllocator());
 
+  // Preserve the PHIDef bit.
+  if (ParentVNI->isPHIDef() && Idx == ParentVNI->def)
+    VNI->setIsPHIDef(true);
+
   // Use insert for lookup, so we can add missing values with a second lookup.
   std::pair<ValueMap::iterator,bool> InsP =
     valueMap_.insert(makeVV(ParentVNI, Idx == ParentVNI->def ? VNI : 0));