LLVM: lib/Target/Lanai/LanaiTargetMachine.cpp Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

14

26#include

27

28using namespace llvm;

29

39

43

48 bool JIT)

50 T, TT.computeDataLayout(), TT, Cpu, FeatureString, Options,

57}

58

63

70

71namespace {

72

74public:

77

80 }

81

82 void addIRPasses() override;

83 bool addInstSelector() override;

84 void addPreSched2() override;

85 void addPreEmitPass() override;

86};

87}

88

91 return new LanaiPassConfig(*this, &PassManager);

92}

93

94void LanaiPassConfig::addIRPasses() {

96

98}

99

100

101bool LanaiPassConfig::addInstSelector() {

103 return false;

104}

105

106

107

108void LanaiPassConfig::addPreEmitPass() {

110}

111

112

113

114void LanaiPassConfig::addPreSched2() {

116}

static Reloc::Model getEffectiveRelocModel()

#define LLVM_EXTERNAL_VISIBILITY

LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeLanaiTarget()

Definition LanaiTargetMachine.cpp:30

const GCNTargetMachine & getTM(const GCNSubtarget *STI)

Target-Independent Code Generator Pass Configuration Options pass.

This pass exposes codegen information to IR-level passes.

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

TargetPassConfig * createPassConfig(PassManagerBase &pass_manager) override

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

Definition LanaiTargetMachine.cpp:90

LanaiTargetMachine(const Target &TheTarget, const Triple &TargetTriple, StringRef Cpu, StringRef FeatureString, const TargetOptions &Options, std::optional< Reloc::Model > RM, std::optional< CodeModel::Model > CodeModel, CodeGenOptLevel OptLevel, bool JIT)

Definition LanaiTargetMachine.cpp:44

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

Create the target's instance of MachineFunctionInfo.

Definition LanaiTargetMachine.cpp:64

TargetTransformInfo getTargetTransformInfo(const Function &F) const override

Get a TargetTransformInfo implementation for the target.

Definition LanaiTargetMachine.cpp:60

Manages a sequence of passes over a particular unit of IR.

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

CodeModel::Model getCodeModel() const

Returns the code model.

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.

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.

Target & getTheLanaiTarget()

FunctionPass * createLanaiMemAluCombinerPass()

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

FunctionPass * createLanaiISelDag(LanaiTargetMachine &TM)

CodeModel::Model getEffectiveCodeModel(std::optional< CodeModel::Model > CM, CodeModel::Model Default)

Helper method for getting the code model, returning Default if CM does not have a value.

CodeGenOptLevel

Code generation optimization level.

void initializeLanaiDAGToDAGISelLegacyPass(PassRegistry &)

void initializeLanaiMemAluCombinerPass(PassRegistry &)

void initializeLanaiAsmPrinterPass(PassRegistry &)

FunctionPass * createLanaiDelaySlotFillerPass(const LanaiTargetMachine &TM)

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.

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,...