class CombinerInfo
Declaration
class CombinerInfo { /* full declaration omitted */ };
Declared at: llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h:27
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, 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,
llvm::LegalizerInfo* LInfo,
bool OptEnabled,
bool OptSize,
bool MinSize)
CombinerInfo(bool AllowIllegalOps,
bool ShouldLegalizeIllegal,
llvm::LegalizerInfo* LInfo,
bool OptEnabled,
bool OptSize,
bool MinSize)
Declared at: llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h:29
Parameters
- bool AllowIllegalOps
- bool ShouldLegalizeIllegal
- llvm::LegalizerInfo* LInfo
- bool OptEnabled
- bool OptSize
- bool MinSize
¶virtual bool combine(
llvm::GISelChangeObserver& Observer,
llvm::MachineInstr& MI,
llvm::MachineIRBuilder& B) const
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:67
Parameters
- llvm::GISelChangeObserver& Observer
- llvm::MachineInstr& MI
- llvm::MachineIRBuilder& B
¶virtual ~CombinerInfo()
virtual ~CombinerInfo()
Declared at: llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h:38