LLVM: lib/Target/XCore/XCoreTargetMachine.cpp Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

24#include

25

26using namespace llvm;

27

31

34 if (CM) {

37 return *CM;

38 }

40}

41

42

43

47 std::optionalReloc::Model RM,

48 std::optionalCodeModel::Model CM,

51 T, "e-m:e-p:32:32-i1:8:32-i8:8:32-i16:16:32-i64:32-f64:32-a:0:32-n32",

55 Subtarget(TT, std::string(CPU), std::string(FS), *this) {

57}

58

60

61namespace {

62

63

65public:

68

71 }

72

73 void addIRPasses() override;

74 bool addPreISel() override;

75 bool addInstSelector() override;

76 void addPreEmitPass() override;

77};

78

79}

80

82 return new XCorePassConfig(*this, PM);

83}

84

85void XCorePassConfig::addIRPasses() {

87

89}

90

91bool XCorePassConfig::addPreISel() {

93 return false;

94}

95

96bool XCorePassConfig::addInstSelector() {

98 return false;

99}

100

101void XCorePassConfig::addPreEmitPass() {

103}

104

105

113

118

static Reloc::Model getEffectiveRelocModel()

#define LLVM_EXTERNAL_VISIBILITY

const GCNTargetMachine & getTM(const GCNSubtarget *STI)

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

Target-Independent Code Generator Pass Configuration Options pass.

This pass exposes codegen information to IR-level passes.

LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeXCoreTarget()

Definition XCoreTargetMachine.cpp:106

static CodeModel::Model getEffectiveXCoreCodeModel(std::optional< CodeModel::Model > CM)

Definition XCoreTargetMachine.cpp:33

This file a TargetTransformInfoImplBase conforming object specific to the XCore target machine.

CodeGenTargetMachineImpl(const Target &T, StringRef DataLayoutString, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOptLevel OL)

PassRegistry - This class manages the registration and intitialization of the pass subsystem as appli...

static LLVM_ABI PassRegistry * getPassRegistry()

getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...

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

std::unique_ptr< const MCSubtargetInfo > STI

Target-Independent Code Generator Pass Configuration Options.

virtual void addIRPasses()

Add common target configurable passes that perform LLVM IR to IR transforms following machine indepen...

TargetSubtargetInfo - Generic base class for all target subtargets.

This pass provides access to the codegen interfaces that are needed for IR-level transformations.

Target - Wrapper for Target specific information.

Triple - Helper class for working with autoconf configuration names.

TargetPassConfig * createPassConfig(PassManagerBase &PM) override

Create a pass configuration object to be used by addPassToEmitX methods for generating a pipeline of ...

Definition XCoreTargetMachine.cpp:81

TargetTransformInfo getTargetTransformInfo(const Function &F) const override

Get a TargetTransformInfo implementation for the target.

Definition XCoreTargetMachine.cpp:115

MachineFunctionInfo * createMachineFunctionInfo(BumpPtrAllocator &Allocator, const Function &F, const TargetSubtargetInfo *STI) const override

Create the target's instance of MachineFunctionInfo.

Definition XCoreTargetMachine.cpp:119

XCoreTargetMachine(const Target &T, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, std::optional< Reloc::Model > RM, std::optional< CodeModel::Model > CM, CodeGenOptLevel OL, bool JIT)

Create an ILP32 architecture model.

Definition XCoreTargetMachine.cpp:44

~XCoreTargetMachine() override

PassManagerBase - An abstract interface to allow code to add passes to a pass manager without having ...

This is an optimization pass for GlobalISel generic memory operations.

FunctionPass * createXCoreFrameToArgsOffsetEliminationPass()

createXCoreFrameToArgsOffsetEliminationPass - returns an instance of the Frame to args offset elimina...

Target & getTheXCoreTarget()

static Reloc::Model getEffectiveRelocModel(std::optional< Reloc::Model > RM)

void initializeXCoreDAGToDAGISelLegacyPass(PassRegistry &)

LLVM_ABI void report_fatal_error(Error Err, bool gen_crash_diag=true)

void initializeXCoreLowerThreadLocalPass(PassRegistry &p)

CodeGenOptLevel

Code generation optimization level.

void initializeXCoreAsmPrinterPass(PassRegistry &)

ModulePass * createXCoreLowerThreadLocalPass()

LLVM_ABI FunctionPass * createAtomicExpandLegacyPass()

AtomicExpandPass - At IR level this pass replace atomic instructions with __atomic_* library calls,...

BumpPtrAllocatorImpl<> BumpPtrAllocator

The standard BumpPtrAllocator which just uses the default template parameters.

FunctionPass * createXCoreISelDag(XCoreTargetMachine &TM, CodeGenOptLevel OptLevel)

createXCoreISelDag - This pass converts a legalized DAG into a XCore-specific DAG,...

Implement std::hash so that hash_code can be used in STL containers.

MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...

static FuncInfoTy * create(BumpPtrAllocator &Allocator, const Function &F, const SubtargetTy *STI)

Factory function: default behavior is to call new using the supplied allocator.

RegisterTargetMachine - Helper template for registering a target machine implementation,...