class X86InstrPostProcess

Declaration

class X86InstrPostProcess : public InstrPostProcess { /* full declaration omitted */ };

Description

Class which can be overriden by targets to modify the mca::Instruction objects before the pipeline starts. A common usage of this class is to add immediate operands to certain instructions or to remove Defs/Uses from an instruction where the schedulinng model is incorrect.

Declared at: llvm/lib/Target/X86/MCA/X86CustomBehaviour.h:27

Inherits from: InstrPostProcess

Member Variables

Inherited from InstrPostProcess:

protected STI
protected MCII

Method Overview

Inherited from InstrPostProcess:

Methods

X86InstrPostProcess(
    const llvm::MCSubtargetInfo& STI,
    const llvm::MCInstrInfo& MCII)

Declared at: llvm/lib/Target/X86/MCA/X86CustomBehaviour.h:35

Parameters

const llvm::MCSubtargetInfo& STI
const llvm::MCInstrInfo& MCII

void postProcessInstruction(
    std::unique_ptr<Instruction>& Inst,
    const llvm::MCInst& MCI)

Description

This method can be overriden by targets to modify the mca::Instruction object after it has been lowered from the MCInst. This is generally a less disruptive alternative to modifying the scheduling model.

Declared at: llvm/lib/Target/X86/MCA/X86CustomBehaviour.h:40

Parameters

std::unique_ptr<Instruction>& Inst
const llvm::MCInst& MCI

void processWaitCnt(
    std::unique_ptr<Instruction>& Inst,
    const llvm::MCInst& MCI)

Declared at: llvm/lib/Target/X86/MCA/X86CustomBehaviour.h:28

Parameters

std::unique_ptr<Instruction>& Inst
const llvm::MCInst& MCI

void setMemBarriers(
    std::unique_ptr<Instruction>& Inst,
    const llvm::MCInst& MCI)

Description

Called within X86InstrPostProcess to specify certain instructions as load and store barriers.

Declared at: llvm/lib/Target/X86/MCA/X86CustomBehaviour.h:32

Parameters

std::unique_ptr<Instruction>& Inst
const llvm::MCInst& MCI

~X86InstrPostProcess()

Declared at: llvm/lib/Target/X86/MCA/X86CustomBehaviour.h:38