13#ifndef LLVM_CODEGEN_GLOBALISEL_COMBINERINFO_H
14#define LLVM_CODEGEN_GLOBALISEL_COMBINERINFO_H
19class GISelChangeObserver;
22class MachineIRBuilder;
35 "Expecting legalizerInfo when illegalops not allowed");
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
virtual bool combine(GISelChangeObserver &Observer, MachineInstr &MI, MachineIRBuilder &B) const =0
Attempt to combine instructions using MI as the root.
bool EnableMinSize
Whether we're optimizing for minsize (-Oz).
CombinerInfo(bool AllowIllegalOps, bool ShouldLegalizeIllegal, const LegalizerInfo *LInfo, bool OptEnabled, bool OptSize, bool MinSize)
const LegalizerInfo * LInfo
bool LegalizeIllegalOps
If LegalizeIllegalOps is true, the Combiner will also legalize the illegal ops that are created.
bool IllegalOpsAllowed
If IllegalOpsAllowed is false, the CombinerHelper will make use of the legalizerInfo to check for leg...
virtual ~CombinerInfo()=default
bool EnableOptSize
Whether we're optimizing for size.
bool EnableOpt
Whether optimizations should be enabled.
Abstract class that contains various methods for clients to notify about changes.
Helper class to build MachineInstr.
Representation of each machine instruction.
This is an optimization pass for GlobalISel generic memory operations.