LLVM: lib/Target/DirectX/MCTargetDesc/DirectXMCTargetDesc.cpp Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

30#include

31

32using namespace llvm;

33

34#define GET_INSTRINFO_MC_DESC

35#define GET_INSTRINFO_MC_HELPERS

36#include "DirectXGenInstrInfo.inc"

37

38#define GET_SUBTARGETINFO_MC_DESC

39#include "DirectXGenSubtargetInfo.inc"

40

41#define GET_REGINFO_MC_DESC

42#include "DirectXGenRegisterInfo.inc"

43

44namespace {

45

46

48public:

52

55

56 std::pair<const char *, uint64_t>

58 return std::make_pair<const char *, uint64_t>("", 0ull);

59 }

60

61private:

62};

63

65public:

66 DXILMCCodeEmitter() {}

67

71};

72

74

75public:

78 ~DXILAsmBackend() override = default;

79

82

83 std::unique_ptr

84 createObjectTargetWriter() const override {

86 }

87

90 return true;

91 }

92};

93

94class DirectXMCAsmInfo : public MCAsmInfo {

95public:

98};

99

100}

101

103 unsigned SyntaxVariant,

107 if (SyntaxVariant == 0)

108 return new DXILInstPrinter(MAI, MII, MRI);

109 return nullptr;

110}

111

114 return new DXILMCCodeEmitter();

115}

116

121 return new DXILAsmBackend(STI);

122}

123

126 return createDirectXMCSubtargetInfoImpl(TT, CPU, CPU, FS);

127}

128

132

134

unsigned const MachineRegisterInfo * MRI

#define LLVM_EXTERNAL_VISIBILITY

MCAsmBackend * createDXILMCAsmBackend(const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options)

Definition DirectXMCTargetDesc.cpp:117

static MCRegisterInfo * createDirectXMCRegisterInfo(const Triple &Triple)

Definition DirectXMCTargetDesc.cpp:129

static MCSubtargetInfo * createDirectXMCSubtargetInfo(const Triple &TT, StringRef CPU, StringRef FS)

Definition DirectXMCTargetDesc.cpp:125

LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeDirectXTargetMC()

Definition DirectXMCTargetDesc.cpp:136

static MCInstrInfo * createDirectXMCInstrInfo()

Definition DirectXMCTargetDesc.cpp:133

static MCInstPrinter * createDXILMCInstPrinter(const Triple &T, unsigned SyntaxVariant, const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)

Definition DirectXMCTargetDesc.cpp:102

MCCodeEmitter * createDXILMCCodeEmitter(const MCInstrInfo &MCII, MCContext &Ctx)

Definition DirectXMCTargetDesc.cpp:112

This file contains DirectX target interface.

A common definition of LaneBitmask for use in TableGen and CodeGen.

static TableGen::Emitter::OptClass< SkeletonEmitter > X("gen-skeleton-class", "Generate example skeleton class")

StringRef getMnemonic(unsigned Opc)

Generic interface to target specific assembler backends.

This class is intended to be used as a base class for asm properties and features specific to the tar...

MCCodeEmitter - Generic instruction encoding interface.

Context object for machine code objects.

Encode information on a single operation to perform on a byte sequence (e.g., an encoded instruction)...

This is an instance of a target assembly language printer that converts an MCInst to valid target ass...

Instances of this class represent a single low-level machine instruction.

Interface to description of machine instruction set.

MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...

Generic base class for all target subtargets.

This class consists of common code factored out of the SmallVector class to reduce code duplication b...

StringRef - Represent a constant reference to a string, i.e.

Target - Wrapper for Target specific information.

Triple - Helper class for working with autoconf configuration names.

LLVM Value Representation.

This class implements an extremely fast bulk output stream that can only output to a stream.

This is an optimization pass for GlobalISel generic memory operations.

Target & getTheDirectXTarget()

FunctionAddr VTableAddr Count

FunctionAddr VTableAddr uintptr_t uintptr_t Data

std::unique_ptr< MCObjectTargetWriter > createDXContainerTargetObjectWriter()

RegisterMCAsmInfo - Helper template for registering a target assembly info implementation.

static void RegisterMCRegInfo(Target &T, Target::MCRegInfoCtorFnTy Fn)

RegisterMCRegInfo - Register a MCRegisterInfo implementation for the given target.

static void RegisterMCAsmBackend(Target &T, Target::MCAsmBackendCtorTy Fn)

RegisterMCAsmBackend - Register a MCAsmBackend implementation for the given target.

static void RegisterMCCodeEmitter(Target &T, Target::MCCodeEmitterCtorTy Fn)

RegisterMCCodeEmitter - Register a MCCodeEmitter implementation for the given target.

static void RegisterMCSubtargetInfo(Target &T, Target::MCSubtargetInfoCtorFnTy Fn)

RegisterMCSubtargetInfo - Register a MCSubtargetInfo implementation for the given target.

static void RegisterMCInstPrinter(Target &T, Target::MCInstPrinterCtorTy Fn)

RegisterMCInstPrinter - Register a MCInstPrinter implementation for the given target.

static void RegisterMCInstrInfo(Target &T, Target::MCInstrInfoCtorFnTy Fn)

RegisterMCInstrInfo - Register a MCInstrInfo implementation for the given target.