Lines Matching defs:Addr

58   llvm::Value *emitRawPointerFromAddress(Address Addr) const {
59 return Addr.getBasePointer();
63 Address createConstGEP2_32(Address Addr, unsigned Idx0, unsigned Idx1,
69 Addr.getElementType(), emitRawPointerFromAddress(Addr), Idx0, Idx1,
73 Addr.getElementType(), emitRawPointerFromAddress(Addr), Idx0, Idx1,
76 DL.getIndexSizeInBits(Addr.getType()->getPointerAddressSpace()), 0,
81 Addr.getAlignment().alignmentAtOffset(
83 IsInBounds ? Addr.isKnownNonNull() : NotKnownNonNull);
107 llvm::LoadInst *CreateLoad(Address Addr, const llvm::Twine &Name = "") {
108 return CreateAlignedLoad(Addr.getElementType(),
109 emitRawPointerFromAddress(Addr),
110 Addr.getAlignment().getAsAlign(), Name);
112 llvm::LoadInst *CreateLoad(Address Addr, const char *Name) {
115 return CreateAlignedLoad(Addr.getElementType(),
116 emitRawPointerFromAddress(Addr),
117 Addr.getAlignment().getAsAlign(), Name);
119 llvm::LoadInst *CreateLoad(Address Addr, bool IsVolatile,
122 Addr.getElementType(), emitRawPointerFromAddress(Addr),
123 Addr.getAlignment().getAsAlign(), IsVolatile, Name);
127 llvm::LoadInst *CreateAlignedLoad(llvm::Type *Ty, llvm::Value *Addr,
130 return CreateAlignedLoad(Ty, Addr, Align.getAsAlign(), Name);
135 llvm::StoreInst *CreateStore(llvm::Value *Val, Address Addr,
137 return CreateAlignedStore(Val, emitRawPointerFromAddress(Addr),
138 Addr.getAlignment().getAsAlign(), IsVolatile);
142 llvm::StoreInst *CreateAlignedStore(llvm::Value *Val, llvm::Value *Addr,
145 return CreateAlignedStore(Val, Addr, Align.getAsAlign(), IsVolatile);
151 llvm::Value *Addr,
153 return CGBuilderBaseTy::CreateStore(Val, Addr, IsVolatile);
157 llvm::LoadInst *CreateFlagLoad(llvm::Value *Addr,
159 return CreateAlignedLoad(getInt1Ty(), Addr, CharUnits::One(), Name);
163 llvm::StoreInst *CreateFlagStore(bool Value, llvm::Value *Addr) {
164 return CreateAlignedStore(getInt1(Value), Addr, CharUnits::One());
168 CreateAtomicCmpXchg(Address Addr, llvm::Value *Cmp, llvm::Value *New,
173 Addr.emitRawPointer(*getCGF()), Cmp, New,
174 Addr.getAlignment().getAsAlign(), SuccessOrdering, FailureOrdering,
179 CreateAtomicRMW(llvm::AtomicRMWInst::BinOp Op, Address Addr, llvm::Value *Val,
183 Op, Addr.emitRawPointer(*getCGF()), Val,
184 Addr.getAlignment().getAsAlign(), Ordering, SSID);
188 Address CreateAddrSpaceCast(Address Addr, llvm::Type *Ty,
191 if (!Addr.hasOffset())
192 return Address(CreateAddrSpaceCast(Addr.getBasePointer(), Ty, Name),
193 ElementTy, Addr.getAlignment(), Addr.getPointerAuthInfo(),
194 /*Offset=*/nullptr, Addr.isKnownNonNull());
197 CreateAddrSpaceCast(Addr.emitRawPointer(*getCGF()), Ty, Name),
198 ElementTy, Addr.getAlignment(), Addr.isKnownNonNull());
202 Address CreatePointerBitCastOrAddrSpaceCast(Address Addr, llvm::Type *Ty,
205 if (Addr.getType()->getAddressSpace() == Ty->getPointerAddressSpace())
206 return Addr.withElementType(ElementTy);
207 return CreateAddrSpaceCast(Addr, Ty, ElementTy, Name);
218 Address CreateStructGEP(Address Addr, unsigned Index,
220 llvm::StructType *ElTy = cast<llvm::StructType>(Addr.getElementType());
225 return Address(CreateStructGEP(Addr.getElementType(), Addr.getBasePointer(),
228 Addr.getAlignment().alignmentAtOffset(Offset),
229 Addr.isKnownNonNull());
240 Address CreateConstArrayGEP(Address Addr, uint64_t Index,
242 llvm::ArrayType *ElTy = cast<llvm::ArrayType>(Addr.getElementType());
248 CreateInBoundsGEP(Addr.getElementType(), Addr.getBasePointer(),
251 Addr.getAlignment().alignmentAtOffset(Index * EltSize),
252 Addr.isKnownNonNull());
260 Address CreateConstInBoundsGEP(Address Addr, uint64_t Index,
262 llvm::Type *ElTy = Addr.getElementType();
267 CreateInBoundsGEP(ElTy, Addr.getBasePointer(), getSize(Index), Name),
268 ElTy, Addr.getAlignment().alignmentAtOffset(Index * EltSize),
269 Addr.isKnownNonNull());
277 Address CreateConstGEP(Address Addr, uint64_t Index,
279 llvm::Type *ElTy = Addr.getElementType();
283 return Address(CreateGEP(ElTy, Addr.getBasePointer(), getSize(Index), Name),
284 Addr.getElementType(),
285 Addr.getAlignment().alignmentAtOffset(Index * EltSize));
291 Address CreateGEP(CodeGenFunction &CGF, Address Addr, llvm::Value *Index,
295 CharUnits::fromQuantity(DL.getTypeAllocSize(Addr.getElementType()));
298 CreateGEP(Addr.getElementType(), Addr.emitRawPointer(CGF), Index, Name),
299 Addr.getElementType(),
300 Addr.getAlignment().alignmentOfArrayElement(EltSize));
304 Address CreateConstInBoundsByteGEP(Address Addr, CharUnits Offset,
306 assert(Addr.getElementType() == TypeCache.Int8Ty);
308 CreateInBoundsGEP(Addr.getElementType(), Addr.getBasePointer(),
310 Addr.getElementType(), Addr.getAlignment().alignmentAtOffset(Offset),
311 Addr.isKnownNonNull());
314 Address CreateConstByteGEP(Address Addr, CharUnits Offset,
316 assert(Addr.getElementType() == TypeCache.Int8Ty);
317 return Address(CreateGEP(Addr.getElementType(), Addr.getBasePointer(),
319 Addr.getElementType(),
320 Addr.getAlignment().alignmentAtOffset(Offset));
324 Address CreateConstInBoundsGEP2_32(Address Addr, unsigned Idx0, unsigned Idx1,
326 return createConstGEP2_32<true>(Addr, Idx0, Idx1, Name);
330 Address CreateConstGEP2_32(Address Addr, unsigned Idx0, unsigned Idx1,
332 return createConstGEP2_32<false>(Addr, Idx0, Idx1, Name);
335 Address CreateGEP(Address Addr, ArrayRef<llvm::Value *> IdxList,
338 llvm::Value *Ptr = emitRawPointerFromAddress(Addr);
339 return RawAddress(CreateGEP(Addr.getElementType(), Ptr, IdxList, Name),
344 Address CreateInBoundsGEP(Address Addr, ArrayRef<llvm::Value *> IdxList,
347 return RawAddress(CreateInBoundsGEP(Addr.getElementType(),
348 emitRawPointerFromAddress(Addr),
350 ElementType, Align, Addr.isKnownNonNull());
354 llvm::Value *CreateIsNull(Address Addr, const Twine &Name = "") {
355 if (!Addr.hasOffset())
356 return CreateIsNull(Addr.getBasePointer(), Name);
357 // The pointer isn't null if Addr has an offset since offsets can always
411 Address CreatePreserveStructAccessIndex(Address Addr, unsigned Index,
414 llvm::StructType *ElTy = cast<llvm::StructType>(Addr.getElementType());
420 CreatePreserveStructAccessIndex(ElTy, emitRawPointerFromAddress(Addr),
423 Addr.getAlignment().alignmentAtOffset(Offset));
427 Address CreatePreserveUnionAccessIndex(Address Addr, unsigned FieldIndex,
429 Addr.replaceBasePointer(CreatePreserveUnionAccessIndex(
430 Addr.getBasePointer(), FieldIndex, DbgInfo));
431 return Addr;
435 Address CreateLaunderInvariantGroup(Address Addr) {
436 Addr.replaceBasePointer(CreateLaunderInvariantGroup(Addr.getBasePointer()));
437 return Addr;
441 Address CreateStripInvariantGroup(Address Addr) {
442 Addr.replaceBasePointer(CreateStripInvariantGroup(Addr.getBasePointer()));
443 return Addr;