class SwitchInst
Declaration
class SwitchInst : public Instruction { /* full declaration omitted */ };Declared at: llvm/include/llvm/IR/Instructions.h:3125
Inherits from: Instruction
Member Variables
- public static const unsigned int DefaultPseudoIndex = static_cast<unsigned int>(~0L - 1)
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 static llvm::SwitchInst * Create(llvm::Value * Value, llvm::BasicBlock * Default, unsigned int NumCases, llvm::Instruction * InsertBefore = nullptr)
- public static llvm::SwitchInst * Create(llvm::Value * Value, llvm::BasicBlock * Default, unsigned int NumCases, llvm::BasicBlock * InsertAtEnd)
- public void addCase(llvm::ConstantInt * OnVal, llvm::BasicBlock * Dest)
- public llvm::SwitchInst::CaseIt case_begin()
- public llvm::SwitchInst::ConstCaseIt case_begin() const
- public llvm::SwitchInst::ConstCaseIt case_default() const
- public llvm::SwitchInst::CaseIt case_default()
- public llvm::SwitchInst::ConstCaseIt case_end() const
- public llvm::SwitchInst::CaseIt case_end()
- public iterator_range<llvm::SwitchInst::ConstCaseIt> cases() const
- public iterator_range<llvm::SwitchInst::CaseIt> cases()
- public static bool classof(const llvm::Instruction * I)
- public static bool classof(const llvm::Value * V)
- protected llvm::SwitchInst * cloneImpl() const
- public llvm::ConstantInt * findCaseDest(llvm::BasicBlock * BB)
- public llvm::SwitchInst::CaseIt findCaseValue(const llvm::ConstantInt * C)
- public llvm::SwitchInst::ConstCaseIt findCaseValue(const llvm::ConstantInt * C) const
- public llvm::Value * getCondition() const
- public llvm::BasicBlock * getDefaultDest() const
- public unsigned int getNumCases() const
- public unsigned int getNumSuccessors() const
- public llvm::BasicBlock * getSuccessor(unsigned int idx) const
- public llvm::SwitchInst::CaseIt removeCase(llvm::SwitchInst::CaseIt I)
- public void setCondition(llvm::Value * V)
- public void setDefaultDest(llvm::BasicBlock * DefaultCase)
- public void setSuccessor(unsigned int idx, llvm::BasicBlock * NewSucc)
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
¶static llvm::SwitchInst* Create(
llvm::Value* Value,
llvm::BasicBlock* Default,
unsigned int NumCases,
llvm::Instruction* InsertBefore = nullptr)
static llvm::SwitchInst* Create(
llvm::Value* Value,
llvm::BasicBlock* Default,
unsigned int NumCases,
llvm::Instruction* InsertBefore = nullptr)Declared at: llvm/include/llvm/IR/Instructions.h:3315
Parameters
- llvm::Value* Value
- llvm::BasicBlock* Default
- unsigned int NumCases
- llvm::Instruction* InsertBefore = nullptr
¶static llvm::SwitchInst* Create(
llvm::Value* Value,
llvm::BasicBlock* Default,
unsigned int NumCases,
llvm::BasicBlock* InsertAtEnd)
static llvm::SwitchInst* Create(
llvm::Value* Value,
llvm::BasicBlock* Default,
unsigned int NumCases,
llvm::BasicBlock* InsertAtEnd)Declared at: llvm/include/llvm/IR/Instructions.h:3321
Parameters
- llvm::Value* Value
- llvm::BasicBlock* Default
- unsigned int NumCases
- llvm::BasicBlock* InsertAtEnd
¶void addCase(llvm::ConstantInt* OnVal,
llvm::BasicBlock* Dest)
void addCase(llvm::ConstantInt* OnVal,
llvm::BasicBlock* Dest)Description
Add an entry to the switch instruction. Note: This action invalidates case_end(). Old case_end() iterator will point to the added case.
Declared at: llvm/include/llvm/IR/Instructions.h:3439
Parameters
- llvm::ConstantInt* OnVal
- llvm::BasicBlock* Dest
¶llvm::SwitchInst::CaseIt case_begin()
llvm::SwitchInst::CaseIt case_begin()Declared at: llvm/include/llvm/IR/Instructions.h:3349
¶llvm::SwitchInst::ConstCaseIt case_begin() const
llvm::SwitchInst::ConstCaseIt case_begin() constDeclared at: llvm/include/llvm/IR/Instructions.h:3355
¶llvm::SwitchInst::ConstCaseIt case_default() const
llvm::SwitchInst::ConstCaseIt case_default() constDeclared at: llvm/include/llvm/IR/Instructions.h:3389
¶llvm::SwitchInst::CaseIt case_default()
llvm::SwitchInst::CaseIt case_default()Declared at: llvm/include/llvm/IR/Instructions.h:3386
¶llvm::SwitchInst::ConstCaseIt case_end() const
llvm::SwitchInst::ConstCaseIt case_end() constDeclared at: llvm/include/llvm/IR/Instructions.h:3367
¶llvm::SwitchInst::CaseIt case_end()
llvm::SwitchInst::CaseIt case_end()Declared at: llvm/include/llvm/IR/Instructions.h:3361
¶iterator_range<llvm::SwitchInst::ConstCaseIt>
cases() const
iterator_range<llvm::SwitchInst::ConstCaseIt>
cases() constDeclared at: llvm/include/llvm/IR/Instructions.h:3377
¶iterator_range<llvm::SwitchInst::CaseIt> cases()
iterator_range<llvm::SwitchInst::CaseIt> cases()Declared at: llvm/include/llvm/IR/Instructions.h:3372
¶static bool classof(const llvm::Instruction* I)
static bool classof(const llvm::Instruction* I)Declared at: llvm/include/llvm/IR/Instructions.h:3461
Parameters
- const llvm::Instruction* I
¶static bool classof(const llvm::Value* V)
static bool classof(const llvm::Value* V)Declared at: llvm/include/llvm/IR/Instructions.h:3464
Parameters
- const llvm::Value* V
¶llvm::SwitchInst* cloneImpl() const
llvm::SwitchInst* cloneImpl() constDeclared at: llvm/include/llvm/IR/Instructions.h:3160
¶llvm::ConstantInt* findCaseDest(
llvm::BasicBlock* BB)
llvm::ConstantInt* findCaseDest(
llvm::BasicBlock* BB)Description
Finds the unique case value for a given successor. Returns null if the successor is not found, not unique, or is the default case.
Declared at: llvm/include/llvm/IR/Instructions.h:3417
Parameters
- llvm::BasicBlock* BB
¶llvm::SwitchInst::CaseIt findCaseValue(
const llvm::ConstantInt* C)
llvm::SwitchInst::CaseIt findCaseValue(
const llvm::ConstantInt* C)Declared at: llvm/include/llvm/IR/Instructions.h:3397
Parameters
- const llvm::ConstantInt* C
¶llvm::SwitchInst::ConstCaseIt findCaseValue(
const llvm::ConstantInt* C) const
llvm::SwitchInst::ConstCaseIt findCaseValue(
const llvm::ConstantInt* C) constDeclared at: llvm/include/llvm/IR/Instructions.h:3405
Parameters
- const llvm::ConstantInt* C
¶llvm::Value* getCondition() const
llvm::Value* getCondition() constDeclared at: llvm/include/llvm/IR/Instructions.h:3330
¶llvm::BasicBlock* getDefaultDest() const
llvm::BasicBlock* getDefaultDest() constDeclared at: llvm/include/llvm/IR/Instructions.h:3333
¶unsigned int getNumCases() const
unsigned int getNumCases() constDescription
Return the number of 'cases' in this switch instruction, excluding the default case.
Declared at: llvm/include/llvm/IR/Instructions.h:3343
¶unsigned int getNumSuccessors() const
unsigned int getNumSuccessors() constDeclared at: llvm/include/llvm/IR/Instructions.h:3450
¶llvm::BasicBlock* getSuccessor(
unsigned int idx) const
llvm::BasicBlock* getSuccessor(
unsigned int idx) constDeclared at: llvm/include/llvm/IR/Instructions.h:3451
Parameters
- unsigned int idx
¶llvm::SwitchInst::CaseIt removeCase(
llvm::SwitchInst::CaseIt I)
llvm::SwitchInst::CaseIt removeCase(
llvm::SwitchInst::CaseIt I)Description
This method removes the specified case and its successor from the switch instruction. Note that this operation may reorder the remaining cases at index idx and above. Note: This action invalidates iterators for all cases following the one removed, including the case_end() iterator. It returns an iterator for the next case.
Declared at: llvm/include/llvm/IR/Instructions.h:3448
Parameters
¶void setCondition(llvm::Value* V)
void setCondition(llvm::Value* V)Declared at: llvm/include/llvm/IR/Instructions.h:3331
Parameters
- llvm::Value* V
¶void setDefaultDest(llvm::BasicBlock* DefaultCase)
void setDefaultDest(llvm::BasicBlock* DefaultCase)Declared at: llvm/include/llvm/IR/Instructions.h:3337
Parameters
- llvm::BasicBlock* DefaultCase
¶void setSuccessor(unsigned int idx,
llvm::BasicBlock* NewSucc)
void setSuccessor(unsigned int idx,
llvm::BasicBlock* NewSucc)Declared at: llvm/include/llvm/IR/Instructions.h:3455
Parameters
- unsigned int idx
- llvm::BasicBlock* NewSucc