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:30

Inherits from: Value

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

Inherited from Value:

Methods

InlineAsm(const llvm::InlineAsm&)

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

Parameters

const llvm::InlineAsm&

int ParseConstraints() const

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

static int ParseConstraints(
    llvm::StringRef ConstraintString)

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

Parameters

llvm::StringRef ConstraintString

static bool Verify(llvm::FunctionType* Ty,
                   llvm::StringRef Constraints)

Description

Verify - This static method can be used by the parser to check to see if the specified constraint string is legal for the type. This returns true if legal, false if not.

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

Parameters

llvm::FunctionType* Ty
llvm::StringRef Constraints

static bool classof(const llvm::Value* V)

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

Parameters

const llvm::Value* V

static unsigned int
convertMemFlagWordToMatchingFlagWord(
    unsigned int InputFlag)

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

Parameters

unsigned int InputFlag

static llvm::InlineAsm* get(
    llvm::FunctionType* Ty,
    llvm::StringRef AsmString,
    llvm::StringRef Constraints,
    bool hasSideEffects,
    bool isAlignStack = false,
    llvm::InlineAsm::AsmDialect asmDialect =
        AD_ATT)

Description

InlineAsm::get - Return the specified uniqued inline asm string.

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

Parameters

llvm::FunctionType* Ty
llvm::StringRef AsmString
llvm::StringRef Constraints
bool hasSideEffects
bool isAlignStack = false
llvm::InlineAsm::AsmDialect asmDialect = AD_ATT

const std::string& getAsmString() const

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

const std::string& getConstraintString() const

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

llvm::InlineAsm::AsmDialect getDialect() const

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

static unsigned int getFlagWord(
    unsigned int Kind,
    unsigned int NumOps)

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

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:288

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:312

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:300

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:78

static unsigned int getKind(unsigned int Flags)

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

Parameters

unsigned int Flags

static unsigned int getMemoryConstraintID(
    unsigned int Flag)

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

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:336

Parameters

unsigned int Flag

llvm::PointerType* getType() const

Description

getType - InlineAsm's are always pointers.

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

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:351

Parameters

unsigned int Flag
unsigned int& RC

bool hasSideEffects() const

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

bool isAlignStack() const

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

static bool isClobberKind(unsigned int Flag)

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

Parameters

unsigned int Flag

static bool isImmKind(unsigned int Flag)

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

Parameters

unsigned int Flag

static bool isMemKind(unsigned int Flag)

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

Parameters

unsigned int Flag

static bool isRegDefEarlyClobberKind(
    unsigned int Flag)

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

Parameters

unsigned int Flag

static bool isRegDefKind(unsigned int Flag)

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

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:342

Parameters

unsigned int Flag
unsigned int& Idx