[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