class InlineAsm
Declaration
class InlineAsm : public Value { /* full declaration omitted */ };
Description
LLVM Value Representation This is a very important LLVM class. It is the base class of all values computed by a program that may be used as operands to other values. Value is the super class of other important classes such as Instruction and Function. All Values have a Type. Type is not a subclass of Value. Some values can have a name and they belong to some Module. Setting the name on the Value automatically updates the module's symbol table. Every value has a "use list" that keeps track of which other Values are using this Value. A Value can also have an arbitrary number of ValueHandle objects that watch it and listen to RAUW and Destroy events. See llvm/IR/ValueHandle.h for details.
Declared at: llvm/include/llvm/IR/InlineAsm.h:32
Inherits from: Value
Member Variables
- private std::string AsmString
- private std::string Constraints
- private llvm::FunctionType* FTy
- private bool HasSideEffects
- private bool IsAlignStack
- private llvm::InlineAsm::AsmDialect Dialect
- private bool CanThrow
Inherited from Value:
- protected SubclassOptionalData
- protected NumUserOperands
- protected IsUsedByMD
- protected HasName
- protected HasMetadata
- protected HasHungOffUses
- protected HasDescriptor
- public static MaxAlignmentExponent = 32
- public static MaximumAlignment = 1ULL << MaxAlignmentExponent
Method Overview
- public InlineAsm(const llvm::InlineAsm &)
- private InlineAsm(llvm::FunctionType * Ty, const std::string & AsmString, const std::string & Constraints, bool hasSideEffects, bool isAlignStack, llvm::InlineAsm::AsmDialect asmDialect, bool canThrow)
- public llvm::InlineAsm::ConstraintInfoVector ParseConstraints() const
- public static llvm::InlineAsm::ConstraintInfoVector ParseConstraints(llvm::StringRef ConstraintString)
- public bool canThrow() const
- public static bool classof(const llvm::Value * V)
- public static unsigned int convertMemFlagWordToMatchingFlagWord(unsigned int InputFlag)
- private void destroyConstant()
- public static llvm::InlineAsm * get(llvm::FunctionType * Ty, llvm::StringRef AsmString, llvm::StringRef Constraints, bool hasSideEffects, bool isAlignStack = false, llvm::InlineAsm::AsmDialect asmDialect = AD_ATT, bool canThrow = false)
- public const std::string & getAsmString() const
- public const std::string & getConstraintString() const
- public llvm::InlineAsm::AsmDialect getDialect() const
- public static std::vector<StringRef> getExtraInfoNames(unsigned int ExtraInfo)
- public static unsigned int getFlagWord(unsigned int Kind, unsigned int NumOps)
- public static unsigned int getFlagWordForMatchingOp(unsigned int InputFlag, unsigned int MatchedOperandNo)
- public static unsigned int getFlagWordForMem(unsigned int InputFlag, unsigned int Constraint)
- public static unsigned int getFlagWordForRegClass(unsigned int InputFlag, unsigned int RC)
- public llvm::FunctionType * getFunctionType() const
- public static unsigned int getKind(unsigned int Flags)
- public static llvm::StringRef getKindName(unsigned int Kind)
- public static llvm::StringRef getMemConstraintName(unsigned int Constraint)
- public static unsigned int getMemoryConstraintID(unsigned int Flag)
- public static unsigned int getNumOperandRegisters(unsigned int Flag)
- public llvm::PointerType * getType() const
- public static bool hasRegClassConstraint(unsigned int Flag, unsigned int & RC)
- public bool hasSideEffects() const
- public bool isAlignStack() const
- public static bool isClobberKind(unsigned int Flag)
- public static bool isImmKind(unsigned int Flag)
- public static bool isMemKind(unsigned int Flag)
- public static bool isRegDefEarlyClobberKind(unsigned int Flag)
- public static bool isRegDefKind(unsigned int Flag)
- public static bool isUseOperandTiedToDef(unsigned int Flag, unsigned int & Idx)
- public static llvm::Error verify(llvm::FunctionType * Ty, llvm::StringRef Constraints)
Inherited from Value:
- public DoPHITranslation
- public DoPHITranslation
- protected addMetadata
- protected addMetadata
- public addUse
- public assertModuleIsMaterialized
- public assertModuleIsMaterializedImpl
- public canBeFreed
- protected clearMetadata
- public clearSubclassOptionalData
- public deleteValue
- public dropDroppableUse
- public dropDroppableUses
- public dropDroppableUsesIn
- public dump
- protected eraseMetadata
- protected getAllMetadata
- public getContext
- protected getMetadata
- protected getMetadata
- protected getMetadata
- protected getMetadata
- public getName
- public getNameOrAsOperand
- public getNumUses
- public getPointerAlignment
- public getPointerDereferenceableBytes
- public getRawSubclassOptionalData
- public getSingleUndroppableUse
- public getSingleUndroppableUse
- protected getSubclassDataFromValue
- public getType
- public getUniqueUndroppableUser
- public getUniqueUndroppableUser
- public getValueID
- public getValueName
- protected hasMetadata
- protected hasMetadata
- protected hasMetadata
- public hasNUndroppableUses
- public hasNUndroppableUsesOrMore
- public hasNUses
- public hasNUsesOrMore
- public hasName
- public hasOneUse
- public hasOneUser
- public hasSameSubclassOptionalData
- public hasValueHandle
- public isSwiftError
- public isTransitiveUsedByMetadataOnly
- 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
- protected setMetadata
- protected setMetadata
- 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 stripPointerCastsForAliasAnalysis
- public stripPointerCastsForAliasAnalysis
- 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
¶InlineAsm(const llvm::InlineAsm&)
InlineAsm(const llvm::InlineAsm&)
Declared at: llvm/include/llvm/IR/InlineAsm.h:59
Parameters
- const llvm::InlineAsm&
¶InlineAsm(llvm::FunctionType* Ty,
const std::string& AsmString,
const std::string& Constraints,
bool hasSideEffects,
bool isAlignStack,
llvm::InlineAsm::AsmDialect asmDialect,
bool canThrow)
InlineAsm(llvm::FunctionType* Ty,
const std::string& AsmString,
const std::string& Constraints,
bool hasSideEffects,
bool isAlignStack,
llvm::InlineAsm::AsmDialect asmDialect,
bool canThrow)
Declared at: llvm/include/llvm/IR/InlineAsm.h:50
Parameters
- llvm::FunctionType* Ty
- const std::string& AsmString
- const std::string& Constraints
- bool hasSideEffects
- bool isAlignStack
- llvm::InlineAsm::AsmDialect asmDialect
- bool canThrow
¶llvm::InlineAsm::ConstraintInfoVector
ParseConstraints() const
llvm::InlineAsm::ConstraintInfoVector
ParseConstraints() const
Description
ParseConstraints - Parse the constraints of this inlineasm object, returning them the same way that ParseConstraints(str) does.
Declared at: llvm/include/llvm/IR/InlineAsm.h:188
¶static llvm::InlineAsm::ConstraintInfoVector
ParseConstraints(llvm::StringRef ConstraintString)
static llvm::InlineAsm::ConstraintInfoVector
ParseConstraints(llvm::StringRef ConstraintString)
Description
ParseConstraints - Split up the constraint string into the specific constraints and their prefixes. If this returns an empty vector, and if the constraint string itself isn't empty, there was an error parsing.
Declared at: llvm/include/llvm/IR/InlineAsm.h:184
Parameters
- llvm::StringRef ConstraintString
¶bool canThrow() const
bool canThrow() const
Declared at: llvm/include/llvm/IR/InlineAsm.h:72
¶static bool classof(const llvm::Value* V)
static bool classof(const llvm::Value* V)
Declared at: llvm/include/llvm/IR/InlineAsm.h:193
Parameters
- const llvm::Value* V
¶static unsigned int
convertMemFlagWordToMatchingFlagWord(
unsigned int InputFlag)
static unsigned int
convertMemFlagWordToMatchingFlagWord(
unsigned int InputFlag)
Declared at: llvm/include/llvm/IR/InlineAsm.h:339
Parameters
- unsigned int InputFlag
¶void destroyConstant()
void destroyConstant()
Description
When the ConstantUniqueMap merges two types and makes two InlineAsms identical, it destroys one of them with this method.
Declared at: llvm/include/llvm/IR/InlineAsm.h:56
¶static llvm::InlineAsm* get(
llvm::FunctionType* Ty,
llvm::StringRef AsmString,
llvm::StringRef Constraints,
bool hasSideEffects,
bool isAlignStack = false,
llvm::InlineAsm::AsmDialect asmDialect =
AD_ATT,
bool canThrow = false)
static llvm::InlineAsm* get(
llvm::FunctionType* Ty,
llvm::StringRef AsmString,
llvm::StringRef Constraints,
bool hasSideEffects,
bool isAlignStack = false,
llvm::InlineAsm::AsmDialect asmDialect =
AD_ATT,
bool canThrow = false)
Description
InlineAsm::get - Return the specified uniqued inline asm string.
Declared at: llvm/include/llvm/IR/InlineAsm.h:64
Parameters
- llvm::FunctionType* Ty
- llvm::StringRef AsmString
- llvm::StringRef Constraints
- bool hasSideEffects
- bool isAlignStack = false
- llvm::InlineAsm::AsmDialect asmDialect = AD_ATT
- bool canThrow = false
¶const std::string& getAsmString() const
const std::string& getAsmString() const
Declared at: llvm/include/llvm/IR/InlineAsm.h:84
¶const std::string& getConstraintString() const
const std::string& getConstraintString() const
Declared at: llvm/include/llvm/IR/InlineAsm.h:85
¶llvm::InlineAsm::AsmDialect getDialect() const
llvm::InlineAsm::AsmDialect getDialect() const
Declared at: llvm/include/llvm/IR/InlineAsm.h:71
¶static std::vector<StringRef> getExtraInfoNames(
unsigned int ExtraInfo)
static std::vector<StringRef> getExtraInfoNames(
unsigned int ExtraInfo)
Declared at: llvm/include/llvm/IR/InlineAsm.h:382
Parameters
- unsigned int ExtraInfo
¶static unsigned int getFlagWord(
unsigned int Kind,
unsigned int NumOps)
static unsigned int getFlagWord(
unsigned int Kind,
unsigned int NumOps)
Declared at: llvm/include/llvm/IR/InlineAsm.h:288
Parameters
- unsigned int Kind
- unsigned int NumOps
¶static unsigned int getFlagWordForMatchingOp(
unsigned int InputFlag,
unsigned int MatchedOperandNo)
static unsigned int getFlagWordForMatchingOp(
unsigned int InputFlag,
unsigned int MatchedOperandNo)
Description
getFlagWordForMatchingOp - Augment an existing flag word returned by getFlagWord with information indicating that this input operand is tied to a previous output operand.
Declared at: llvm/include/llvm/IR/InlineAsm.h:307
Parameters
- unsigned int InputFlag
- unsigned int MatchedOperandNo
¶static unsigned int getFlagWordForMem(
unsigned int InputFlag,
unsigned int Constraint)
static unsigned int getFlagWordForMem(
unsigned int InputFlag,
unsigned int Constraint)
Description
Augment an existing flag word returned by getFlagWord with the constraint code for a memory constraint.
Declared at: llvm/include/llvm/IR/InlineAsm.h:331
Parameters
- unsigned int InputFlag
- unsigned int Constraint
¶static unsigned int getFlagWordForRegClass(
unsigned int InputFlag,
unsigned int RC)
static unsigned int getFlagWordForRegClass(
unsigned int InputFlag,
unsigned int RC)
Description
getFlagWordForRegClass - Augment an existing flag word returned by getFlagWord with the required register class for the following register operands. A tied use operand cannot have a register class, use the register class from the def operand instead.
Declared at: llvm/include/llvm/IR/InlineAsm.h:319
Parameters
- unsigned int InputFlag
- unsigned int RC
¶llvm::FunctionType* getFunctionType() const
llvm::FunctionType* getFunctionType() const
Description
getFunctionType - InlineAsm's are always pointers to functions.
Declared at: llvm/include/llvm/IR/InlineAsm.h:82
¶static unsigned int getKind(unsigned int Flags)
static unsigned int getKind(unsigned int Flags)
Declared at: llvm/include/llvm/IR/InlineAsm.h:344
Parameters
- unsigned int Flags
¶static llvm::StringRef getKindName(
unsigned int Kind)
static llvm::StringRef getKindName(
unsigned int Kind)
Declared at: llvm/include/llvm/IR/InlineAsm.h:406
Parameters
- unsigned int Kind
¶static llvm::StringRef getMemConstraintName(
unsigned int Constraint)
static llvm::StringRef getMemConstraintName(
unsigned int Constraint)
Declared at: llvm/include/llvm/IR/InlineAsm.h:425
Parameters
- unsigned int Constraint
¶static unsigned int getMemoryConstraintID(
unsigned int Flag)
static unsigned int getMemoryConstraintID(
unsigned int Flag)
Declared at: llvm/include/llvm/IR/InlineAsm.h:348
Parameters
- unsigned int Flag
¶static unsigned int getNumOperandRegisters(
unsigned int Flag)
static unsigned int getNumOperandRegisters(
unsigned int Flag)
Description
getNumOperandRegisters - Extract the number of registers field from the inline asm operand flag.
Declared at: llvm/include/llvm/IR/InlineAsm.h:355
Parameters
- unsigned int Flag
¶llvm::PointerType* getType() const
llvm::PointerType* getType() const
Description
getType - InlineAsm's are always pointers.
Declared at: llvm/include/llvm/IR/InlineAsm.h:76
¶static bool hasRegClassConstraint(
unsigned int Flag,
unsigned int& RC)
static bool hasRegClassConstraint(
unsigned int Flag,
unsigned int& RC)
Description
hasRegClassConstraint - Returns true if the flag contains a register class constraint. Sets RC to the register class ID.
Declared at: llvm/include/llvm/IR/InlineAsm.h:370
Parameters
- unsigned int Flag
- unsigned int& RC
¶bool hasSideEffects() const
bool hasSideEffects() const
Declared at: llvm/include/llvm/IR/InlineAsm.h:69
¶bool isAlignStack() const
bool isAlignStack() const
Declared at: llvm/include/llvm/IR/InlineAsm.h:70
¶static bool isClobberKind(unsigned int Flag)
static bool isClobberKind(unsigned int Flag)
Declared at: llvm/include/llvm/IR/InlineAsm.h:300
Parameters
- unsigned int Flag
¶static bool isImmKind(unsigned int Flag)
static bool isImmKind(unsigned int Flag)
Declared at: llvm/include/llvm/IR/InlineAsm.h:295
Parameters
- unsigned int Flag
¶static bool isMemKind(unsigned int Flag)
static bool isMemKind(unsigned int Flag)
Declared at: llvm/include/llvm/IR/InlineAsm.h:296
Parameters
- unsigned int Flag
¶static bool isRegDefEarlyClobberKind(
unsigned int Flag)
static bool isRegDefEarlyClobberKind(
unsigned int Flag)
Declared at: llvm/include/llvm/IR/InlineAsm.h:297
Parameters
- unsigned int Flag
¶static bool isRegDefKind(unsigned int Flag)
static bool isRegDefKind(unsigned int Flag)
Declared at: llvm/include/llvm/IR/InlineAsm.h:294
Parameters
- unsigned int Flag
¶static bool isUseOperandTiedToDef(
unsigned int Flag,
unsigned int& Idx)
static bool isUseOperandTiedToDef(
unsigned int Flag,
unsigned int& Idx)
Description
isUseOperandTiedToDef - Return true if the flag of the inline asm operand indicates it is an use operand that's matched to a def operand.
Declared at: llvm/include/llvm/IR/InlineAsm.h:361
Parameters
- unsigned int Flag
- unsigned int& Idx
¶static llvm::Error verify(
llvm::FunctionType* Ty,
llvm::StringRef Constraints)
static llvm::Error verify(
llvm::FunctionType* Ty,
llvm::StringRef Constraints)
Description
This static method can be used by the parser to check to see if the specified constraint string is legal for the type.
Declared at: llvm/include/llvm/IR/InlineAsm.h:89
Parameters
- llvm::FunctionType* Ty
- llvm::StringRef Constraints