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

Inherited from Value:

Methods

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)

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

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)

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

Declared at: llvm/include/llvm/IR/InlineAsm.h:72

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)

Declared at: llvm/include/llvm/IR/InlineAsm.h:339

Parameters

unsigned int InputFlag

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)

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

Declared at: llvm/include/llvm/IR/InlineAsm.h:84

const std::string& getConstraintString() const

Declared at: llvm/include/llvm/IR/InlineAsm.h:85

llvm::InlineAsm::AsmDialect getDialect() const

Declared at: llvm/include/llvm/IR/InlineAsm.h:71

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)

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)

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)

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)

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

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)

Declared at: llvm/include/llvm/IR/InlineAsm.h:344

Parameters

unsigned int Flags

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)

Declared at: llvm/include/llvm/IR/InlineAsm.h:425

Parameters

unsigned int Constraint

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)

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

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)

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

Declared at: llvm/include/llvm/IR/InlineAsm.h:69

bool isAlignStack() const

Declared at: llvm/include/llvm/IR/InlineAsm.h:70

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)

Declared at: llvm/include/llvm/IR/InlineAsm.h:295

Parameters

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)

Declared at: llvm/include/llvm/IR/InlineAsm.h:297

Parameters

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)

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)

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