42 Value *IRBuilderBase::getCastedInt8PtrValue(
Value *Ptr) {
65 bool isVolatile,
MDNode *TBAATag) {
66 Ptr = getCastedInt8PtrValue(Ptr);
83 bool isVolatile,
MDNode *TBAATag,
MDNode *TBAAStructTag) {
84 Dst = getCastedInt8PtrValue(Dst);
85 Src = getCastedInt8PtrValue(Src);
107 bool isVolatile,
MDNode *TBAATag) {
108 Dst = getCastedInt8PtrValue(Dst);
109 Src = getCastedInt8PtrValue(Src);
126 assert(isa<PointerType>(Ptr->
getType()) &&
127 "lifetime.start only applies to pointers.");
128 Ptr = getCastedInt8PtrValue(Ptr);
133 "lifetime.start requires the size to be an i64");
134 Value *Ops[] = { Size, Ptr };
141 assert(isa<PointerType>(Ptr->
getType()) &&
142 "lifetime.end only applies to pointers.");
143 Ptr = getCastedInt8PtrValue(Ptr);
148 "lifetime.end requires the size to be an i64");
149 Value *Ops[] = { Size, Ptr };
Common base class shared among various IRBuilders.
IntegerType * getType() const
static Constant * getString(LLVMContext &Context, StringRef Initializer, bool AddNull=true)
BasicBlock::iterator GetInsertPoint() const
static CallInst * createCallHelper(Value *Callee, ArrayRef< Value * > Ops, IRBuilderBase *Builder)
The main container class for the LLVM Intermediate Representation.
Like Internal, but omit from symbol table.
Type * getReturnType() const
const Function * getParent() const
Return the enclosing method, or null if none.
MDNode - a tuple of other values.
unsigned getAddressSpace() const
Return the address space of the Pointer type.
CallInst * CreateLifetimeEnd(Value *Ptr, ConstantInt *Size=0)
Create a lifetime.end intrinsic.
CallInst * CreateMemMove(Value *Dst, Value *Src, uint64_t Size, unsigned Align, bool isVolatile=false, MDNode *TBAATag=0)
Create and insert a memmove between the specified pointers.
IntegerType * getInt64Ty()
Fetch the type representing a 64-bit integer.
void setName(const Twine &Name)
This class represents a no-op cast from one type to another.
Function * getDeclaration(Module *M, ID id, ArrayRef< Type * > Tys=None)
Type * getElementType() const
ConstantInt * getInt1(bool V)
Get a constant value representing either true or false.
Type * getCurrentFunctionReturnType() const
Get the return type of the current function that we're emitting into.
LLVM Constant Representation.
const InstListType & getInstList() const
Return the underlying instruction list container.
iterator insert(iterator where, NodeTy *New)
ConstantInt * getInt64(uint64_t C)
Get a constant 64-bit value.
PointerType * getInt8PtrTy(unsigned AddrSpace=0)
Fetch the type representing a pointer to an 8-bit integer value.
void setMetadata(unsigned KindID, MDNode *Node)
static CallInst * Create(Value *Func, ArrayRef< Value * > Args, const Twine &NameStr="", Instruction *InsertBefore=0)
Class for constant integers.
void setUnnamedAddr(bool Val)
ConstantInt * getInt32(uint32_t C)
Get a constant 32-bit value.
BasicBlock * GetInsertBlock() const
static cl::opt< AlignMode > Align(cl::desc("Load/store alignment support"), cl::Hidden, cl::init(DefaultAlign), cl::values(clEnumValN(DefaultAlign,"arm-default-align","Generate unaligned accesses only on hardware/OS ""combinations that are known to support them"), clEnumValN(StrictAlign,"arm-strict-align","Disallow all unaligned memory accesses"), clEnumValN(NoStrictAlign,"arm-no-strict-align","Allow unaligned memory accesses"), clEnumValEnd))
CallInst * CreateMemSet(Value *Ptr, Value *Val, uint64_t Size, unsigned Align, bool isVolatile=false, MDNode *TBAATag=0)
Create and insert a memset to the specified pointer and the specified value.
LLVM Value Representation.
CallInst * CreateLifetimeStart(Value *Ptr, ConstantInt *Size=0)
Create a lifetime.start intrinsic.
Value * CreateGlobalString(StringRef Str, const Twine &Name="")
Make a new global variable with initializer type i8*.
BasicBlock::iterator InsertPt
CallInst * CreateMemCpy(Value *Dst, Value *Src, uint64_t Size, unsigned Align, bool isVolatile=false, MDNode *TBAATag=0, MDNode *TBAAStructTag=0)
Create and insert a memcpy between the specified pointers.
void SetInstDebugLocation(Instruction *I) const
If this builder has a current debug location, set it on the specified instruction.