summaryrefslogtreecommitdiff
path: root/lib/Transforms/Instrumentation
diff options
context:
space:
mode:
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>2012-12-14 13:43:11 +0000
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>2012-12-14 13:43:11 +0000
commit63cca4e2fd4dd70e54055c4d34d858f810e0bd44 (patch)
treeccfee29a6940e6d03863d81f12e8b68acbd4cce5 /lib/Transforms/Instrumentation
parente6b63c11886a3a61bba2056b269276884abc1e46 (diff)
downloadllvm-63cca4e2fd4dd70e54055c4d34d858f810e0bd44.tar.gz
llvm-63cca4e2fd4dd70e54055c4d34d858f810e0bd44.tar.bz2
llvm-63cca4e2fd4dd70e54055c4d34d858f810e0bd44.tar.xz
[msan] Origin stores and loads do not need explicit alignment.
Origin address is always 4 byte aligned, and the access type is always i32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170199 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Instrumentation')
-rw-r--r--lib/Transforms/Instrumentation/MemorySanitizer.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/lib/Transforms/Instrumentation/MemorySanitizer.cpp b/lib/Transforms/Instrumentation/MemorySanitizer.cpp
index 0d9739dde8..db8e684752 100644
--- a/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+++ b/lib/Transforms/Instrumentation/MemorySanitizer.cpp
@@ -421,7 +421,7 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> {
if (ClTrackOrigins) {
if (ClStoreCleanOrigin || isa<StructType>(Shadow->getType())) {
- IRB.CreateAlignedStore(getOrigin(Val), getOriginPtr(Addr, IRB), I.getAlignment());
+ IRB.CreateStore(getOrigin(Val), getOriginPtr(Addr, IRB));
} else {
Value *ConvertedShadow = convertToShadowTyNoVec(Shadow, IRB);
@@ -435,10 +435,10 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> {
Value *Cmp = IRB.CreateICmpNE(ConvertedShadow,
getCleanShadow(ConvertedShadow), "_mscmp");
Instruction *CheckTerm =
- SplitBlockAndInsertIfThen(cast<Instruction>(Cmp), false, MS.OriginStoreWeights);
- IRBuilder<> IRBNewBlock(CheckTerm);
- IRBNewBlock.CreateAlignedStore(getOrigin(Val),
- getOriginPtr(Addr, IRBNewBlock), I.getAlignment());
+ SplitBlockAndInsertIfThen(cast<Instruction>(Cmp), false,
+ MS.OriginStoreWeights);
+ IRBuilder<> IRBNew(CheckTerm);
+ IRBNew.CreateStore(getOrigin(Val), getOriginPtr(Addr, IRBNew));
}
}
}
@@ -787,7 +787,7 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> {
insertCheck(I.getPointerOperand(), &I);
if (ClTrackOrigins)
- setOrigin(&I, IRB.CreateAlignedLoad(getOriginPtr(Addr, IRB), I.getAlignment()));
+ setOrigin(&I, IRB.CreateLoad(getOriginPtr(Addr, IRB)));
}
/// \brief Instrument StoreInst
@@ -1296,9 +1296,8 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> {
kShadowTLSAlignment);
}
if (ClTrackOrigins)
- IRB.CreateAlignedStore(getOrigin(A),
- getOriginPtrForArgument(A, IRB, ArgOffset),
- kShadowTLSAlignment);
+ IRB.CreateStore(getOrigin(A),
+ getOriginPtrForArgument(A, IRB, ArgOffset));
assert(Size != 0 && Store != 0);
DEBUG(dbgs() << " Param:" << *Store << "\n");
ArgOffset += DataLayout::RoundUpAlignment(Size, 8);