class AllocaInst
Declaration
class AllocaInst : public UnaryInstruction { /* full declaration omitted */ };Declared at: llvm/include/llvm/IR/Instructions.h:59
Inherits from: UnaryInstruction
Member Variables
Inherited from Value:
- protected SubclassOptionalData
 - protected NumUserOperands
 - protected IsUsedByMD
 - protected HasName
 - protected HasHungOffUses
 - protected HasDescriptor
 - public static MaxAlignmentExponent = 29
 - public static MaximumAlignment = 1U << MaxAlignmentExponent
 
Method Overview
- public AllocaInst(llvm::Type * Ty, unsigned int AddrSpace, llvm::Value * ArraySize = nullptr, const llvm::Twine & Name = "", llvm::Instruction * InsertBefore = nullptr)
 - public AllocaInst(llvm::Type * Ty, unsigned int AddrSpace, llvm::Value * ArraySize, const llvm::Twine & Name, llvm::BasicBlock * InsertAtEnd)
 - public AllocaInst(llvm::Type * Ty, unsigned int AddrSpace, const llvm::Twine & Name, llvm::Instruction * InsertBefore = nullptr)
 - public AllocaInst(llvm::Type * Ty, unsigned int AddrSpace, const llvm::Twine & Name, llvm::BasicBlock * InsertAtEnd)
 - public AllocaInst(llvm::Type * Ty, unsigned int AddrSpace, llvm::Value * ArraySize, llvm::MaybeAlign Align, const llvm::Twine & Name = "", llvm::Instruction * InsertBefore = nullptr)
 - public AllocaInst(llvm::Type * Ty, unsigned int AddrSpace, llvm::Value * ArraySize, llvm::MaybeAlign Align, const llvm::Twine & Name, llvm::BasicBlock * InsertAtEnd)
 - public static bool classof(const llvm::Value * V)
 - public static bool classof(const llvm::Instruction * I)
 - protected llvm::AllocaInst * cloneImpl() const
 - public unsigned int getAlignment() const
 - public llvm::Type * getAllocatedType() const
 - public Optional<uint64_t> getAllocationSizeInBits(const llvm::DataLayout & DL) const
 - public const llvm::Value * getArraySize() const
 - public llvm::Value * getArraySize()
 - public llvm::PointerType * getType() const
 - public bool isArrayAllocation() const
 - public bool isStaticAlloca() const
 - public bool isSwiftError() const
 - public bool isUsedWithInAlloca() const
 - public void setAlignment(llvm::MaybeAlign Align)
 - public void setAllocatedType(llvm::Type * Ty)
 - public void setSwiftError(bool V)
 - public void setUsedWithInAlloca(bool V)
 
Inherited from UnaryInstruction:
Inherited from Instruction:
- public andIRFlags
 - public applyMergedLocation
 - public classof
 - public clone
 - public copyFastMathFlags
 - public copyFastMathFlags
 - public copyIRFlags
 - public copyMetadata
 - public dropPoisonGeneratingFlags
 - public dropUnknownNonDebugMetadata
 - public dropUnknownNonDebugMetadata
 - public dropUnknownNonDebugMetadata
 - public dropUnknownNonDebugMetadata
 - public eraseFromParent
 - public extractProfMetadata
 - public extractProfTotalWeight
 - public getAAMetadata
 - public getAllMetadata
 - public getAllMetadataOtherThanDebugLoc
 - public getDebugLoc
 - public getFastMathFlags
 - public getFunction
 - public getFunction
 - public getMetadata
 - public getMetadata
 - public getModule
 - public getModule
 - public getNextNonDebugInstruction
 - public getNextNonDebugInstruction
 - public getNumSuccessors
 - public getOpcode
 - public getOpcodeName
 - public getOpcodeName
 - public getParent
 - public getParent
 - public getPrevNonDebugInstruction
 - public getPrevNonDebugInstruction
 - protected getSubclassDataFromInstruction
 - public getSuccessor
 - public hasAllowContract
 - public hasAllowReassoc
 - public hasAllowReciprocal
 - public hasApproxFunc
 - public hasAtomicLoad
 - public hasAtomicStore
 - public hasMetadata
 - public hasMetadata
 - public hasMetadata
 - public hasMetadataOtherThanDebugLoc
 - public hasNoInfs
 - public hasNoNaNs
 - public hasNoSignedWrap
 - public hasNoSignedZeros
 - public hasNoUnsignedWrap
 - public insertAfter
 - public insertBefore
 - public isArithmeticShift
 - public isAssociative
 - public isAssociative
 - public isAtomic
 - public isBinaryOp
 - public isBinaryOp
 - public isBitwiseLogicOp
 - public isBitwiseLogicOp
 - public isCast
 - public isCast
 - public isCommutative
 - public isCommutative
 - public isEHPad
 - public isExact
 - public isExceptionalTerminator
 - public isExceptionalTerminator
 - public isFast
 - public isFenceLike
 - public isFuncletPad
 - public isFuncletPad
 - public isIdempotent
 - public isIdempotent
 - public isIdenticalTo
 - public isIdenticalToWhenDefined
 - public isIndirectTerminator
 - public isIndirectTerminator
 - public isIntDivRem
 - public isIntDivRem
 - public isLifetimeStartOrEnd
 - public isLogicalShift
 - public isNilpotent
 - public isNilpotent
 - public isSafeToRemove
 - public isSameOperationAs
 - public isShift
 - public isShift
 - public isTerminator
 - public isTerminator
 - public isUnaryOp
 - public isUnaryOp
 - public isUsedOutsideOfBlock
 - public mayHaveSideEffects
 - public mayReadFromMemory
 - public mayReadOrWriteMemory
 - public mayThrow
 - public mayWriteToMemory
 - public moveAfter
 - public moveBefore
 - public moveBefore
 - public removeFromParent
 - public replaceSuccessorWith
 - public setAAMetadata
 - public setDebugLoc
 - public setFast
 - public setFastMathFlags
 - public setHasAllowReassoc
 - public setHasAllowReciprocal
 - public setHasApproxFunc
 - public setHasNoInfs
 - public setHasNoNaNs
 - public setHasNoSignedWrap
 - public setHasNoSignedZeros
 - public setHasNoUnsignedWrap
 - protected setInstructionSubclassData
 - public setIsExact
 - public setMetadata
 - public setMetadata
 - public setProfWeight
 - public setSuccessor
 - public swapProfMetadata
 - public user_back
 - public user_back
 
Inherited from User:
- protected Op
 - protected Op
 - protected OpFrom
 - protected allocHungoffUses
 - public classof
 - public dropAllReferences
 - public getDescriptor
 - public getDescriptor
 - public getNumOperands
 - public getOperand
 - public getOperandList
 - public getOperandList
 - public getOperandUse
 - public getOperandUse
 - protected growHungoffUses
 - public op_begin
 - public op_begin
 - public op_end
 - public op_end
 - public operand_values
 - public operand_values
 - public operands
 - public operands
 - public replaceUsesOfWith
 - public setGlobalVariableNumOperands
 - public setNumHungOffUseOperands
 - public setOperand
 - public value_op_begin
 - public value_op_begin
 - public value_op_end
 - public value_op_end
 
Inherited from Value:
- public DoPHITranslation
 - public DoPHITranslation
 - public addUse
 - public assertModuleIsMaterialized
 - public assertModuleIsMaterializedImpl
 - public clearSubclassOptionalData
 - public deleteValue
 - public dump
 - public getContext
 - public getName
 - public getNumUses
 - public getPointerAlignment
 - public getPointerDereferenceableBytes
 - public getRawSubclassOptionalData
 - protected getSubclassDataFromValue
 - public getType
 - public getValueID
 - public getValueName
 - public hasNUses
 - public hasNUsesOrMore
 - public hasName
 - public hasOneUse
 - public hasSameSubclassOptionalData
 - public hasValueHandle
 - public isSwiftError
 - public isUsedByMetadata
 - public isUsedInBasicBlock
 - public materialized_use_begin
 - public materialized_use_begin
 - public materialized_use_empty
 - public materialized_user_begin
 - public materialized_user_begin
 - public materialized_users
 - public materialized_users
 - public materialized_uses
 - public materialized_uses
 - public mutateType
 - public print
 - public print
 - public printAsOperand
 - public printAsOperand
 - public replaceAllUsesWith
 - public replaceNonMetadataUsesWith
 - public replaceUsesOutsideBlock
 - public replaceUsesWithIf
 - public reverseUseList
 - public setName
 - public setValueName
 - protected setValueSubclassData
 - public sortUseList
 - public stripAndAccumulateConstantOffsets
 - public stripAndAccumulateConstantOffsets
 - public stripAndAccumulateInBoundsConstantOffsets
 - public stripAndAccumulateInBoundsConstantOffsets
 - public stripInBoundsConstantOffsets
 - public stripInBoundsConstantOffsets
 - public stripInBoundsOffsets
 - public stripInBoundsOffsets
 - public stripPointerCasts
 - public stripPointerCasts
 - public stripPointerCastsAndAliases
 - public stripPointerCastsAndAliases
 - public stripPointerCastsAndInvariantGroups
 - public stripPointerCastsAndInvariantGroups
 - public stripPointerCastsSameRepresentation
 - public stripPointerCastsSameRepresentation
 - public takeName
 - public use_begin
 - public use_begin
 - public use_empty
 - public use_end
 - public use_end
 - public user_back
 - public user_back
 - public user_begin
 - public user_begin
 - public user_empty
 - public user_end
 - public user_end
 - public users
 - public users
 - public uses
 - public uses
 
Methods
¶AllocaInst(
    llvm::Type* Ty,
    unsigned int AddrSpace,
    llvm::Value* ArraySize = nullptr,
    const llvm::Twine& Name = "",
    llvm::Instruction* InsertBefore = nullptr)
AllocaInst(
    llvm::Type* Ty,
    unsigned int AddrSpace,
    llvm::Value* ArraySize = nullptr,
    const llvm::Twine& Name = "",
    llvm::Instruction* InsertBefore = nullptr)Declared at: llvm/include/llvm/IR/Instructions.h:69
Parameters
- llvm::Type* Ty
 - unsigned int AddrSpace
 - llvm::Value* ArraySize = nullptr
 - const llvm::Twine& Name = ""
 - llvm::Instruction* InsertBefore = nullptr
 
¶AllocaInst(llvm::Type* Ty,
           unsigned int AddrSpace,
           llvm::Value* ArraySize,
           const llvm::Twine& Name,
           llvm::BasicBlock* InsertAtEnd)
AllocaInst(llvm::Type* Ty,
           unsigned int AddrSpace,
           llvm::Value* ArraySize,
           const llvm::Twine& Name,
           llvm::BasicBlock* InsertAtEnd)Declared at: llvm/include/llvm/IR/Instructions.h:73
Parameters
- llvm::Type* Ty
 - unsigned int AddrSpace
 - llvm::Value* ArraySize
 - const llvm::Twine& Name
 - llvm::BasicBlock* InsertAtEnd
 
¶AllocaInst(
    llvm::Type* Ty,
    unsigned int AddrSpace,
    const llvm::Twine& Name,
    llvm::Instruction* InsertBefore = nullptr)
AllocaInst(
    llvm::Type* Ty,
    unsigned int AddrSpace,
    const llvm::Twine& Name,
    llvm::Instruction* InsertBefore = nullptr)Declared at: llvm/include/llvm/IR/Instructions.h:76
Parameters
- llvm::Type* Ty
 - unsigned int AddrSpace
 - const llvm::Twine& Name
 - llvm::Instruction* InsertBefore = nullptr
 
¶AllocaInst(llvm::Type* Ty,
           unsigned int AddrSpace,
           const llvm::Twine& Name,
           llvm::BasicBlock* InsertAtEnd)
AllocaInst(llvm::Type* Ty,
           unsigned int AddrSpace,
           const llvm::Twine& Name,
           llvm::BasicBlock* InsertAtEnd)Declared at: llvm/include/llvm/IR/Instructions.h:78
Parameters
- llvm::Type* Ty
 - unsigned int AddrSpace
 - const llvm::Twine& Name
 - llvm::BasicBlock* InsertAtEnd
 
¶AllocaInst(
    llvm::Type* Ty,
    unsigned int AddrSpace,
    llvm::Value* ArraySize,
    llvm::MaybeAlign Align,
    const llvm::Twine& Name = "",
    llvm::Instruction* InsertBefore = nullptr)
AllocaInst(
    llvm::Type* Ty,
    unsigned int AddrSpace,
    llvm::Value* ArraySize,
    llvm::MaybeAlign Align,
    const llvm::Twine& Name = "",
    llvm::Instruction* InsertBefore = nullptr)Declared at: llvm/include/llvm/IR/Instructions.h:81
Parameters
- llvm::Type* Ty
 - unsigned int AddrSpace
 - llvm::Value* ArraySize
 - llvm::MaybeAlign Align
 - const llvm::Twine& Name = ""
 - llvm::Instruction* InsertBefore = nullptr
 
¶AllocaInst(llvm::Type* Ty,
           unsigned int AddrSpace,
           llvm::Value* ArraySize,
           llvm::MaybeAlign Align,
           const llvm::Twine& Name,
           llvm::BasicBlock* InsertAtEnd)
AllocaInst(llvm::Type* Ty,
           unsigned int AddrSpace,
           llvm::Value* ArraySize,
           llvm::MaybeAlign Align,
           const llvm::Twine& Name,
           llvm::BasicBlock* InsertAtEnd)Declared at: llvm/include/llvm/IR/Instructions.h:83
Parameters
- llvm::Type* Ty
 - unsigned int AddrSpace
 - llvm::Value* ArraySize
 - llvm::MaybeAlign Align
 - const llvm::Twine& Name
 - llvm::BasicBlock* InsertAtEnd
 
¶static bool classof(const llvm::Value* V)
static bool classof(const llvm::Value* V)Declared at: llvm/include/llvm/IR/Instructions.h:151
Parameters
- const llvm::Value* V
 
¶static bool classof(const llvm::Instruction* I)
static bool classof(const llvm::Instruction* I)Declared at: llvm/include/llvm/IR/Instructions.h:148
Parameters
- const llvm::Instruction* I
 
¶llvm::AllocaInst* cloneImpl() const
llvm::AllocaInst* cloneImpl() constDeclared at: llvm/include/llvm/IR/Instructions.h:66
¶unsigned int getAlignment() const
unsigned int getAlignment() constDescription
Return the alignment of the memory that is being allocated by the instruction.
Declared at: llvm/include/llvm/IR/Instructions.h:112
¶llvm::Type* getAllocatedType() const
llvm::Type* getAllocatedType() constDescription
Return the type that is being allocated by the instruction.
Declared at: llvm/include/llvm/IR/Instructions.h:105
¶Optional<uint64_t> getAllocationSizeInBits(
    const llvm::DataLayout& DL) const
Optional<uint64_t> getAllocationSizeInBits(
    const llvm::DataLayout& DL) constDescription
Get allocation size in bits. Returns None if size can't be determined, e.g. in case of a VLA.
Declared at: llvm/include/llvm/IR/Instructions.h:102
Parameters
- const llvm::DataLayout& DL
 
¶const llvm::Value* getArraySize() const
const llvm::Value* getArraySize() constDescription
Get the number of elements allocated. For a simple allocation of a single element, this will return a constant 1 value.
Declared at: llvm/include/llvm/IR/Instructions.h:92
¶llvm::Value* getArraySize()
llvm::Value* getArraySize()Declared at: llvm/include/llvm/IR/Instructions.h:93
¶llvm::PointerType* getType() const
llvm::PointerType* getType() constDescription
Overload to return most specific pointer type.
Declared at: llvm/include/llvm/IR/Instructions.h:96
¶bool isArrayAllocation() const
bool isArrayAllocation() constDescription
Return true if there is an allocation size parameter to the allocation instruction that is not 1.
Declared at: llvm/include/llvm/IR/Instructions.h:88
¶bool isStaticAlloca() const
bool isStaticAlloca() constDescription
Return true if this alloca is in the entry block of the function and is a constant size. If so, the code generator will fold it into the prolog/epilog code, so it is basically free.
Declared at: llvm/include/llvm/IR/Instructions.h:122
¶bool isSwiftError() const
bool isSwiftError() constDescription
Return true if this alloca is used as a swifterror argument to a call.
Declared at: llvm/include/llvm/IR/Instructions.h:137
¶bool isUsedWithInAlloca() const
bool isUsedWithInAlloca() constDescription
Return true if this alloca is used as an inalloca argument to a call. Such allocas are never considered static even if they are in the entry block.
Declared at: llvm/include/llvm/IR/Instructions.h:126
¶void setAlignment(llvm::MaybeAlign Align)
void setAlignment(llvm::MaybeAlign Align)Declared at: llvm/include/llvm/IR/Instructions.h:117
Parameters
- llvm::MaybeAlign Align
 
¶void setAllocatedType(llvm::Type* Ty)
void setAllocatedType(llvm::Type* Ty)Description
for use only in special circumstances that need to generically transform a whole instruction (eg: IR linking and vectorization).
Declared at: llvm/include/llvm/IR/Instructions.h:108
Parameters
- llvm::Type* Ty
 
¶void setSwiftError(bool V)
void setSwiftError(bool V)Description
Specify whether this alloca is used to represent a swifterror.
Declared at: llvm/include/llvm/IR/Instructions.h:142
Parameters
- bool V
 
¶void setUsedWithInAlloca(bool V)
void setUsedWithInAlloca(bool V)Description
Specify whether this alloca is used to represent the arguments to a call.
Declared at: llvm/include/llvm/IR/Instructions.h:131
Parameters
- bool V