class CombinerInfo

Declaration

class CombinerInfo { /* full declaration omitted */ };

Declared at: llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h:26

Member Variables

public bool IllegalOpsAllowed
If \p IllegalOpsAllowed is false, the CombinerHelper will make use of the legalizerInfo to check for legality before each transformation.
public bool LegalizeIllegalOps
If \p LegalizeIllegalOps is true, the Combiner will also legalize the illegal ops that are created.
public const llvm::LegalizerInfo* LInfo
public bool EnableOpt
Whether optimizations should be enabled. This is to distinguish between uses of the combiner unconditionally and only when optimizations are specifically enabled/
public bool EnableOptSize
Whether we're optimizing for size.
public bool EnableMinSize
Whether we're optimizing for minsize (-Oz).

Method Overview

  • public CombinerInfo(bool AllowIllegalOps, bool ShouldLegalizeIllegal, const llvm::LegalizerInfo * LInfo, bool OptEnabled, bool OptSize, bool MinSize)
  • public virtual bool combine(llvm::GISelChangeObserver & Observer, llvm::MachineInstr & MI, llvm::MachineIRBuilder & B) const
  • public virtual ~CombinerInfo()

Methods

CombinerInfo(bool AllowIllegalOps,
             bool ShouldLegalizeIllegal,
             const llvm::LegalizerInfo* LInfo,
             bool OptEnabled,
             bool OptSize,
             bool MinSize)

Declared at: llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h:28

Parameters

bool AllowIllegalOps
bool ShouldLegalizeIllegal
const llvm::LegalizerInfo* LInfo
bool OptEnabled
bool OptSize
bool MinSize

virtual bool combine(
    llvm::GISelChangeObserver& Observer,
    llvm::MachineInstr& MI,
    llvm::MachineIRBuilder& B) const

Description

Attempt to combine instructions using MI as the root. Use Observer to report the creation, modification, and erasure of instructions. GISelChangeObserver will automatically report certain kinds of operations. These operations are: * Instructions that are newly inserted into the MachineFunction * Instructions that are erased from the MachineFunction. However, it is important to report instruction modification and this is not automatic.

Declared at: llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h:66

Parameters

llvm::GISelChangeObserver& Observer
llvm::MachineInstr& MI
llvm::MachineIRBuilder& B

virtual ~CombinerInfo()

Declared at: llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h:37