[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