#ifndef LLVM_LIB_TARGET_AMDGPU_SIMACHINEFUNCTIONINFO_H
#define LLVM_LIB_TARGET_AMDGPU_SIMACHINEFUNCTIONINFO_H
#include "AMDGPUArgumentUsageInfo.h"
#include "AMDGPUMachineFunction.h"
#include "AMDGPUTargetMachine.h"
#include "GCNSubtarget.h"
#include "MCTargetDesc/AMDGPUMCTargetDesc.h"
#include "SIInstrInfo.h"
#include "SIModeRegisterDefaults.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/CodeGen/MIRYamlMapping.h"
#include "llvm/CodeGen/PseudoSourceValue.h"
#include "llvm/Support/raw_ostream.h"
#include <optional>
namespace llvm {
class MachineFrameInfo;
class MachineFunction;
class SIMachineFunctionInfo;
class SIRegisterInfo;
class TargetRegisterClass;
class AMDGPUPseudoSourceValue : public PseudoSourceValue { … };
class AMDGPUGWSResourcePseudoSourceValue final : public AMDGPUPseudoSourceValue { … };
namespace yaml {
struct SIArgument { … };
template <> struct MappingTraits<SIArgument> { … };
struct SIArgumentInfo { … };
template <> struct MappingTraits<SIArgumentInfo> { … };
struct SIMode { … };
template <> struct MappingTraits<SIMode> { … };
struct SIMachineFunctionInfo final : public yaml::MachineFunctionInfo { … };
template <> struct MappingTraits<SIMachineFunctionInfo> { … };
}
enum class SGPRSaveKind : uint8_t { … };
class PrologEpilogSGPRSaveRestoreInfo { … };
class SIMachineFunctionInfo final : public AMDGPUMachineFunction,
private MachineRegisterInfo::Delegate { … };
}
#endif