[llvm-commits] [dragonegg] r164697 - in /dragonegg/trunk/src: Convert.cpp x86/Target.cpp

Duncan Sands baldrick at free.fr
Wed Sep 26 07:04:37 PDT 2012


Author: baldrick
Date: Wed Sep 26 09:04:37 2012
New Revision: 164697

URL: http://llvm.org/viewvc/llvm-project?rev=164697&view=rev
Log:
Use the new CreateAlignedLoad and CreateAlignedStore IRBuilder methods.

Modified:
    dragonegg/trunk/src/Convert.cpp
    dragonegg/trunk/src/x86/Target.cpp

Modified: dragonegg/trunk/src/Convert.cpp
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/src/Convert.cpp?rev=164697&r1=164696&r2=164697&view=diff
==============================================================================
--- dragonegg/trunk/src/Convert.cpp (original)
+++ dragonegg/trunk/src/Convert.cpp Wed Sep 26 09:04:37 2012
@@ -178,8 +178,8 @@
                                   LLVMBuilder &Builder) {
   unsigned AddrSpace = cast<PointerType>(Loc.Ptr->getType())->getAddressSpace();
   Value *Ptr = Builder.CreateBitCast(Loc.Ptr, Ty->getPointerTo(AddrSpace));
-  LoadInst *LI = Builder.CreateLoad(Ptr, Loc.Volatile);
-  LI->setAlignment(Loc.getAlignment());
+  LoadInst *LI = Builder.CreateAlignedLoad(Ptr, Loc.getAlignment(),
+                                           Loc.Volatile);
   if (AliasTag)
     LI->setMetadata(LLVMContext::MD_tbaa, AliasTag);
   return LI;
@@ -191,8 +191,8 @@
   Type *Ty = V->getType();
   unsigned AddrSpace = cast<PointerType>(Loc.Ptr->getType())->getAddressSpace();
   Value *Ptr = Builder.CreateBitCast(Loc.Ptr, Ty->getPointerTo(AddrSpace));
-  StoreInst *SI = Builder.CreateStore(V, Ptr, Loc.Volatile);
-  SI->setAlignment(Loc.getAlignment());
+  StoreInst *SI = Builder.CreateAlignedStore(V, Ptr,  Loc.getAlignment(),
+                                             Loc.Volatile);
   if (AliasTag)
     SI->setMetadata(LLVMContext::MD_tbaa, AliasTag);
   return SI;
@@ -1331,8 +1331,8 @@
         !isa<COMPLEX_TYPE>(TREE_TYPE(TreeRetVal))) {
       // If the DECL_RESULT is a scalar type, just load out the return value
       // and return it.
-      LoadInst *Load = Builder.CreateLoad(ResultLV.Ptr);
-      Load->setAlignment(ResultLV.getAlignment());
+      LoadInst *Load = Builder.CreateAlignedLoad(ResultLV.Ptr,
+                                                 ResultLV.getAlignment());
       RetVals.push_back(Builder.CreateBitCast(Load, Fn->getReturnType()));
     } else {
       uint64_t ResultSize =
@@ -2796,8 +2796,7 @@
 
     // Load the bits.
     Value *Ptr = Builder.CreateBitCast(LV.Ptr, LoadType->getPointerTo());
-    Value *Val = Builder.CreateLoad(Ptr, LV.Volatile);
-    cast<LoadInst>(Val)->setAlignment(Alignment);
+    Value *Val = Builder.CreateAlignedLoad(Ptr, Alignment, LV.Volatile);
 
     // Mask the bits out by shifting left first, then shifting right.  The
     // optimizers will turn this into an "and" in the unsigned case.
@@ -3464,8 +3463,8 @@
     // Store the integer rather than the call result to the aggregate.
   }
   Ptr = Builder.CreateBitCast(Ptr, PointerType::getUnqual(Val->getType()));
-  StoreInst *St = Builder.CreateStore(Val, Ptr, DestLoc->Volatile);
-  St->setAlignment(DestLoc->getAlignment());
+  Builder.CreateAlignedStore(Val, Ptr, DestLoc->getAlignment(),
+                             DestLoc->Volatile);
   return 0;
 }
 
@@ -8963,8 +8962,7 @@
 
   // Load the bits.
   Value *Ptr = Builder.CreateBitCast(LV.Ptr, LoadType->getPointerTo());
-  Value *Val = Builder.CreateLoad(Ptr, LV.Volatile);
-  cast<LoadInst>(Val)->setAlignment(LV.getAlignment());
+  Value *Val = Builder.CreateAlignedLoad(Ptr, LV.getAlignment(), LV.Volatile);
 
   // Get the right-hand side as a value of the same type.
   // FIXME: This assumes the right-hand side is an integer.
@@ -8991,6 +8989,5 @@
 
   // Finally, merge the two together and store it.
   Val = Builder.CreateOr(Val, RHS);
-  StoreInst *SI = Builder.CreateStore(Val, Ptr, LV.Volatile);
-  SI->setAlignment(LV.getAlignment());
+  Builder.CreateAlignedStore(Val, Ptr, LV.getAlignment(), LV.Volatile);
 }

Modified: dragonegg/trunk/src/x86/Target.cpp
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/src/x86/Target.cpp?rev=164697&r1=164696&r2=164697&view=diff
==============================================================================
--- dragonegg/trunk/src/x86/Target.cpp (original)
+++ dragonegg/trunk/src/x86/Target.cpp Wed Sep 26 09:04:37 2012
@@ -412,51 +412,42 @@
     VectorType *v4f32 = VectorType::get(Type::getFloatTy(Context), 4);
     PointerType *v4f32Ptr = v4f32->getPointerTo();
     Value *BC = Builder.CreateBitCast(Ops[0], v4f32Ptr);
-    LoadInst *LI = Builder.CreateLoad(BC);
-    LI->setAlignment(1);
-    Result = LI;
+    Result = Builder.CreateAlignedLoad(BC, 1);
     return true;
   }
   case loadupd: {
     VectorType *v2f64 = VectorType::get(Type::getDoubleTy(Context), 2);
     PointerType *v2f64Ptr = v2f64->getPointerTo();
     Value *BC = Builder.CreateBitCast(Ops[0], v2f64Ptr);
-    LoadInst *LI = Builder.CreateLoad(BC);
-    LI->setAlignment(1);
-    Result = LI;
+    Result = Builder.CreateAlignedLoad(BC, 1);
     return true;
   }
   case loaddqu: {
     VectorType *v16i8 = VectorType::get(Type::getInt8Ty(Context), 16);
     PointerType *v16i8Ptr = v16i8->getPointerTo();
     Value *BC = Builder.CreateBitCast(Ops[0], v16i8Ptr);
-    LoadInst *LI = Builder.CreateLoad(BC);
-    LI->setAlignment(1);
-    Result = LI;
+    Result = Builder.CreateAlignedLoad(BC, 1);
     return true;
   }
   case storeups: {
     VectorType *v4f32 = VectorType::get(Type::getFloatTy(Context), 4);
     PointerType *v4f32Ptr = v4f32->getPointerTo();
     Value *BC = Builder.CreateBitCast(Ops[0], v4f32Ptr);
-    StoreInst *SI = Builder.CreateStore(Ops[1], BC);
-    SI->setAlignment(1);
+    Builder.CreateAlignedStore(Ops[1], BC, 1);
     return true;
   }
   case storeupd: {
     VectorType *v2f64 = VectorType::get(Type::getDoubleTy(Context), 2);
     PointerType *v2f64Ptr = v2f64->getPointerTo();
     Value *BC = Builder.CreateBitCast(Ops[0], v2f64Ptr);
-    StoreInst *SI = Builder.CreateStore(Ops[1], BC);
-    SI->setAlignment(1);
+    Builder.CreateAlignedStore(Ops[1], BC, 1);
     return true;
   }
   case storedqu: {
     VectorType *v16i8 = VectorType::get(Type::getInt8Ty(Context), 16);
     PointerType *v16i8Ptr = v16i8->getPointerTo();
     Value *BC = Builder.CreateBitCast(Ops[0], v16i8Ptr);
-    StoreInst *SI = Builder.CreateStore(Ops[1], BC);
-    SI->setAlignment(1);
+    Builder.CreateAlignedStore(Ops[1], BC, 1);
     return true;
   }
   case loadhps: {
@@ -804,9 +795,8 @@
                                        PointerType::get(Ops[1]->getType(), AS),
                                        "cast");
 
-    StoreInst *SI = Builder.CreateStore(Ops[1], Ptr);
+    StoreInst *SI = Builder.CreateAlignedStore(Ops[1], Ptr, 16);
     SI->setMetadata(TheModule->getMDKindID("nontemporal"), Node);
-    SI->setAlignment(16);
     return true;
   }
   case rsqrtf: {





More information about the llvm-commits mailing list