namespace llvm {
-class DILocalVariable;
class DILocation;
class DINode;
class MachineFunction;
class AsmPrinter;
class MCExpr;
-class raw_ostream;
class FaultMaps {
public:
class LegalizerInfo;
class MachineInstr;
class MachineIRBuilder;
-class MachineRegisterInfo;
// Contains information relevant to enabling/disabling various combines for a
// pass.
namespace llvm {
class MachineInstr;
-class MachineFunction;
// Worklist which mostly works similar to InstCombineWorkList, but on
// MachineInstrs. The main difference with something like a SetVector is that
namespace llvm {
-class MachineRegisterInfo;
class LostDebugLocObserver;
class Legalizer : public MachineFunctionPass {
namespace llvm {
// Forward declarations.
class LegalizerInfo;
-class Legalizer;
class MachineRegisterInfo;
class GISelChangeObserver;
class LostDebugLocObserver;
class MachineInstr;
class MachineRegisterInfo;
class MCInstrInfo;
-class GISelChangeObserver;
namespace LegalizeActions {
enum LegalizeAction : std::uint8_t {
namespace llvm {
// Forward declarations.
class MachineRegisterInfo;
-class TargetTransformInfo;
namespace GISelAddressing {
/// Helper struct to store a base, index and offset that forms an address
struct BaseIndexOffset {
class TargetPassConfig;
class TargetRegisterInfo;
class TargetRegisterClass;
-class ConstantInt;
class ConstantFP;
class APFloat;
class MachineIRBuilder;
class AAResults;
class LiveIntervals;
-class MachineBlockFrequencyInfo;
class MachineInstr;
-class MachineLoopInfo;
class MachineOperand;
class TargetInstrInfo;
class TargetRegisterInfo;
#define LLVM_CODEGEN_MACHINELOOPUTILS_H
namespace llvm {
-class MachineLoop;
class MachineBasicBlock;
class MachineRegisterInfo;
class TargetInstrInfo;
namespace llvm {
class BasicBlock;
-class CallInst;
class Function;
class LLVMTargetMachine;
class MMIAddrLabelMap;
class ModulePass;
class Pass;
class TargetMachine;
-class TargetRegisterClass;
class raw_ostream;
} // End llvm namespace
namespace llvm {
class MachineBasicBlock;
-class MachineBlockFrequencyInfo;
class MachineBranchProbabilityInfo;
class MachineFunction;
class MachineInstr;
namespace llvm {
-class BranchProbability;
class CCState;
class CCValAssign;
class Constant;