Synopsis

Declared in <llvm/CodeGen/GlobalISel/InstructionSelector.h>

class InstructionSelector
    : public GIMatchTableExecutor

Base Classes

Name

Description

GIMatchTableExecutor

Provides the logic to execute GlobalISel match tables, which are used by the instruction selector and instruction combiners as their engine to match and apply MIR patterns.

Types

Name

ExecInfoTy

Member Functions

Name

Description

~InstructionSelector [destructor] [virtual]

Destructor

select [virtual]

Select the (possibly generic) instruction I to only use target‐specific opcodes. It is OK to insert multiple instructions, but they cannot be generic pre‐isel instructions.

setupGeneratedPerFunctionState [virtual]

setupMF [virtual]

Setup per‐MF executor state.

Static Member Functions

Data Members

Name

Description

AllObservers

Note: InstructionSelect does not track changed instructions. changingInstr() and changedInstr() will never be called on these observers.

BFI

CoverageInfo

CurMBB

MF

MORE

PSI

VT

Protected Types

Protected Type Aliases

Protected Member Functions

Name

Description

executeMatchTable

Execute a given matcher table and return true if the match was successful and false otherwise.

getMatchTable [virtual]

isBaseWithConstantOffset

Return true if the specified operand is a G_PTR_ADD with a G_CONSTANT on the right‐hand side. GlobalISel's separation of pointer and integer types means that we don't need to worry about G_OR with equivalent semantics.

isObviouslySafeToFold

Return true if MI can obviously be folded into IntoMI. MI and IntoMI do not need to be in the same basic blocks, but MI must preceed IntoMI.

isOperandImmEqual

renderFrameIndex

runCustomAction [virtual]

shouldOptForSize

testImmPredicate_APFloat [virtual]

testImmPredicate_APInt [virtual]

testImmPredicate_I64 [virtual]

testMIPredicate_MI [virtual]

testMOPredicate_MO [virtual]

testSimplePredicate [virtual]

Protected Static Member Functions