summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2012-09-26 10:27:40 +0000
committerChandler Carruth <chandlerc@gmail.com>2012-09-26 10:27:40 +0000
commit6a4dfa38fa935efac6679b1a87d4448460a25b5c (patch)
treeeceafbc0fa44929dcfc5ab568dc5f8951e51be1a
parentaaf189b8cf074f0a54a56930540dd74f6b178c73 (diff)
downloadbcm5719-llvm-6a4dfa38fa935efac6679b1a87d4448460a25b5c.tar.gz
bcm5719-llvm-6a4dfa38fa935efac6679b1a87d4448460a25b5c.zip
Add some convenience methods to IRBuilder for constructing aligned loads
and stores. These will be used in subsequnet patches to SROA to more systematically manage the alignment on loads and stores. llvm-svn: 164688
-rw-r--r--llvm/include/llvm/IRBuilder.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/llvm/include/llvm/IRBuilder.h b/llvm/include/llvm/IRBuilder.h
index ae82c25e3d6..ff64660a429 100644
--- a/llvm/include/llvm/IRBuilder.h
+++ b/llvm/include/llvm/IRBuilder.h
@@ -810,6 +810,31 @@ public:
StoreInst *CreateStore(Value *Val, Value *Ptr, bool isVolatile = false) {
return Insert(new StoreInst(Val, Ptr, isVolatile));
}
+ // Provided to resolve 'CreateAlignedLoad(Ptr, Align, "...")' correctly,
+ // instead of converting the string to 'bool' for the isVolatile parameter.
+ LoadInst *CreateAlignedLoad(Value *Ptr, unsigned Align, const char *Name) {
+ LoadInst *LI = CreateLoad(Ptr, Name);
+ LI->setAlignment(Align);
+ return LI;
+ }
+ LoadInst *CreateAlignedLoad(Value *Ptr, unsigned Align,
+ const Twine &Name = "") {
+ LoadInst *LI = CreateLoad(Ptr, Name);
+ LI->setAlignment(Align);
+ return LI;
+ }
+ LoadInst *CreateAlignedLoad(Value *Ptr, unsigned Align, bool isVolatile,
+ const Twine &Name = "") {
+ LoadInst *LI = CreateLoad(Ptr, isVolatile, Name);
+ LI->setAlignment(Align);
+ return LI;
+ }
+ StoreInst *CreateAlignedStore(Value *Val, Value *Ptr, unsigned Align,
+ bool isVolatile = false) {
+ StoreInst *SI = CreateStore(Val, Ptr, isVolatile);
+ SI->setAlignment(Align);
+ return SI;
+ }
FenceInst *CreateFence(AtomicOrdering Ordering,
SynchronizationScope SynchScope = CrossThread) {
return Insert(new FenceInst(Context, Ordering, SynchScope));
OpenPOWER on IntegriCloud