LLVM: lib/Target/MSP430/MSP430TargetMachine.cpp Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

21#include

22using namespace llvm;

23

25

29}

30

33}

34

37 return "e-m:e-p:16:16-i32:16-i64:16-f32:16-f64:16-a:8-n8:16-S16";

38}

39

43 std::optionalReloc::Model RM,

44 std::optionalCodeModel::Model CM,

52}

53

55

56namespace {

57

59public:

62

64 return getTM();

65 }

66

67 void addIRPasses() override;

68 bool addInstSelector() override;

69 void addPreEmitPass() override;

70};

71}

72

74 return new MSP430PassConfig(*this, PM);

75}

76

80 return MSP430MachineFunctionInfo::create(Allocator,

82}

83

84void MSP430PassConfig::addIRPasses() {

86

88}

89

90bool MSP430PassConfig::addInstSelector() {

91

93 return false;

94}

95

96void MSP430PassConfig::addPreEmitPass() {

97

99}

#define LLVM_EXTERNAL_VISIBILITY

static GCMetadataPrinterRegistry::Add< ErlangGCPrinter > X("erlang", "erlang-compatible garbage collector")

static std::string computeDataLayout()

LLVM_EXTERNAL_VISIBILITY void LLVMInitializeMSP430Target()

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

Target-Independent Code Generator Pass Configuration Options pass.

Allocate memory in an ever growing pool, as if by bump-pointer.

implements a set of functionality in the TargetMachine class for targets that make use of the indepen...

MSP430TargetMachine(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)

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

Create the target's instance of MachineFunctionInfo.

~MSP430TargetMachine() override

TargetPassConfig * createPassConfig(PassManagerBase &PM) override

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

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

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

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 & getTheMSP430Target()

FunctionPass * createMSP430BranchSelectionPass()

Returns an instance of the Branch Selection Pass.

void initializeMSP430DAGToDAGISelLegacyPass(PassRegistry &)

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.

FunctionPass * createAtomicExpandLegacyPass()

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

FunctionPass * createMSP430ISelDag(MSP430TargetMachine &TM, CodeGenOptLevel OptLevel)

createMSP430ISelDag - This pass converts a legalized DAG into a MSP430-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...

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