@@ -60,8 +60,8 @@ convertPtrAddOp(PtrAddOp ptrAddOp, llvm::IRBuilderBase &builder,
6060 return ptrAddOp.emitError (" Failed to lookup operands" );
6161
6262 // Create GEP instruction for pointer arithmetic
63- llvm::GetElementPtrInst *gep = llvm::GetElementPtrInst::Create (
64- builder.getInt8Ty (), basePtr, {offset}, " " , builder. GetInsertBlock ( ));
63+ auto *gep = cast< llvm::GetElementPtrInst> (
64+ builder.CreateGEP (builder. getInt8Ty (), basePtr, {offset}));
6565
6666 // Set the appropriate flags
6767 switch (ptrAddOp.getFlags ()) {
@@ -96,9 +96,11 @@ static LogicalResult convertLoadOp(LoadOp loadOp, llvm::IRBuilderBase &builder,
9696 return loadOp.emitError (" Failed to convert result type" );
9797
9898 // Create the load instruction.
99+ llvm::MaybeAlign alignment = loadOp.getAlignment ()
100+ ? llvm::MaybeAlign (*loadOp.getAlignment ())
101+ : llvm::MaybeAlign ();
99102 llvm::LoadInst *loadInst = builder.CreateAlignedLoad (
100- resultType, ptr, llvm::MaybeAlign (loadOp.getAlignment ().value_or (0 )),
101- loadOp.getVolatile_ ());
103+ resultType, ptr, alignment, loadOp.getVolatile_ ());
102104
103105 // Set op flags and metadata.
104106 loadInst->setAtomic (convertAtomicOrdering (loadOp.getOrdering ()));
@@ -145,9 +147,11 @@ convertStoreOp(StoreOp storeOp, llvm::IRBuilderBase &builder,
145147 return storeOp.emitError (" Failed to lookup operands" );
146148
147149 // Create the store instruction.
148- llvm::StoreInst *storeInst = builder.CreateAlignedStore (
149- value, ptr, llvm::MaybeAlign (storeOp.getAlignment ().value_or (0 )),
150- storeOp.getVolatile_ ());
150+ llvm::MaybeAlign alignment = storeOp.getAlignment ()
151+ ? llvm::MaybeAlign (*storeOp.getAlignment ())
152+ : llvm::MaybeAlign ();
153+ llvm::StoreInst *storeInst =
154+ builder.CreateAlignedStore (value, ptr, alignment, storeOp.getVolatile_ ());
151155
152156 // Set op flags and metadata.
153157 storeInst->setAtomic (convertAtomicOrdering (storeOp.getOrdering ()));
0 commit comments