[llvm-branch-commits] [llvm-branch] r123256 - in /llvm/branches/Apple/Hartnell: ./ lib/Transforms/InstCombine/InstCombineCalls.cpp lib/Transforms/Scalar/ScalarReplAggregates.cpp test/Transforms/InstCombine/memset2.ll

Bill Wendling isanbard at gmail.com
Tue Jan 11 11:28:38 PST 2011


Author: void
Date: Tue Jan 11 13:28:38 2011
New Revision: 123256

URL: http://llvm.org/viewvc/llvm-project?rev=123256&view=rev
Log:
$ svn merge -c 122215 https://llvm.org/svn/llvm-project/llvm/trunk
--- Merging r122215 into '.':
U    lib/Transforms/InstCombine/InstCombineCalls.cpp
$ svn merge -c 122216 https://llvm.org/svn/llvm-project/llvm/trunk
--- Merging r122216 into '.':
A    test/Transforms/InstCombine/memset2.ll
$ svn merge -c 122462 https://llvm.org/svn/llvm-project/llvm/trunk
--- Merging r122462 into '.':
U    lib/Transforms/Scalar/ScalarReplAggregates.cpp


Added:
    llvm/branches/Apple/Hartnell/test/Transforms/InstCombine/memset2.ll
      - copied unchanged from r122216, llvm/trunk/test/Transforms/InstCombine/memset2.ll
Modified:
    llvm/branches/Apple/Hartnell/   (props changed)
    llvm/branches/Apple/Hartnell/lib/Transforms/InstCombine/InstCombineCalls.cpp
    llvm/branches/Apple/Hartnell/lib/Transforms/Scalar/ScalarReplAggregates.cpp

Propchange: llvm/branches/Apple/Hartnell/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jan 11 13:28:38 2011
@@ -1,2 +1,2 @@
 /llvm/branches/Apple/Morbo:102475
-/llvm/trunk:104174-104175,105453,107846,108367,109519,109549,110987,119819
+/llvm/trunk:104174-104175,105453,107846,108367,109519,109549,110987,119819,122215-122216,122462

Modified: llvm/branches/Apple/Hartnell/lib/Transforms/InstCombine/InstCombineCalls.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Hartnell/lib/Transforms/InstCombine/InstCombineCalls.cpp?rev=123256&r1=123255&r2=123256&view=diff
==============================================================================
--- llvm/branches/Apple/Hartnell/lib/Transforms/InstCombine/InstCombineCalls.cpp (original)
+++ llvm/branches/Apple/Hartnell/lib/Transforms/InstCombine/InstCombineCalls.cpp Tue Jan 11 13:28:38 2011
@@ -225,7 +225,9 @@
     const Type *ITy = IntegerType::get(MI->getContext(), Len*8);  // n=1 -> i8.
     
     Value *Dest = MI->getDest();
-    Dest = Builder->CreateBitCast(Dest, PointerType::getUnqual(ITy));
+    unsigned DstAddrSp = cast<PointerType>(Dest->getType())->getAddressSpace();
+    Type *NewDstPtrTy = PointerType::get(ITy, DstAddrSp);
+    Dest = Builder->CreateBitCast(Dest, NewDstPtrTy);
 
     // Alignment 0 is identity for alignment 1 for memset, but not store.
     if (Alignment == 0) Alignment = 1;

Modified: llvm/branches/Apple/Hartnell/lib/Transforms/Scalar/ScalarReplAggregates.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/Apple/Hartnell/lib/Transforms/Scalar/ScalarReplAggregates.cpp?rev=123256&r1=123255&r2=123256&view=diff
==============================================================================
--- llvm/branches/Apple/Hartnell/lib/Transforms/Scalar/ScalarReplAggregates.cpp (original)
+++ llvm/branches/Apple/Hartnell/lib/Transforms/Scalar/ScalarReplAggregates.cpp Tue Jan 11 13:28:38 2011
@@ -462,8 +462,14 @@
         // pointer (bitcasted), then a store to our new alloca.
         assert(MTI->getRawDest() == Ptr && "Neither use is of pointer?");
         Value *SrcPtr = MTI->getSource();
-        SrcPtr = Builder.CreateBitCast(SrcPtr, NewAI->getType());
-        
+        const PointerType* SPTy = cast<PointerType>(SrcPtr->getType());
+        const PointerType* AIPTy = cast<PointerType>(NewAI->getType());
+        if (SPTy->getAddressSpace() != AIPTy->getAddressSpace()) {
+          AIPTy = PointerType::get(AIPTy->getElementType(),
+                                   SPTy->getAddressSpace());
+        }
+        SrcPtr = Builder.CreateBitCast(SrcPtr, AIPTy);
+
         LoadInst *SrcVal = Builder.CreateLoad(SrcPtr, "srcval");
         SrcVal->setAlignment(MTI->getAlignment());
         Builder.CreateStore(SrcVal, NewAI);
@@ -473,7 +479,14 @@
         assert(MTI->getRawSource() == Ptr && "Neither use is of pointer?");
         LoadInst *SrcVal = Builder.CreateLoad(NewAI, "srcval");
 
-        Value *DstPtr = Builder.CreateBitCast(MTI->getDest(), NewAI->getType());
+        const PointerType* DPTy = cast<PointerType>(MTI->getDest()->getType());
+        const PointerType* AIPTy = cast<PointerType>(NewAI->getType());
+        if (DPTy->getAddressSpace() != AIPTy->getAddressSpace()) {
+          AIPTy = PointerType::get(AIPTy->getElementType(),
+                                   DPTy->getAddressSpace());
+        }
+        Value *DstPtr = Builder.CreateBitCast(MTI->getDest(), AIPTy);
+
         StoreInst *NewStore = Builder.CreateStore(SrcVal, DstPtr);
         NewStore->setAlignment(MTI->getAlignment());
       } else {





More information about the llvm-branch-commits mailing list