LLVM: lib/Target/ARM/ARMTargetMachine.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13#ifndef LLVM_LIB_TARGET_ARM_ARMTARGETMACHINE_H

14#define LLVM_LIB_TARGET_ARM_ARMTARGETMACHINE_H

15

23#include

24#include

25

26namespace llvm {

27

29public:

36

37protected:

38 std::unique_ptr TLOF;

41

42

43 void reset() override;

44

45public:

48 std::optionalReloc::Model RM,

52

54

55

56

59

61

62

64

66 return TLOF.get();

67 }

68

78 }

79

81

85

86

88

89 return true;

90 }

91

98 SMRange &SourceRange) const override;

99};

100

101

102

104public:

107 std::optionalReloc::Model RM,

109 bool JIT);

110};

111

112

113

115public:

118 std::optionalReloc::Model RM,

120 bool JIT);

121};

122

123}

124

125#endif

This file defines the StringMap class.

This pass exposes codegen information to IR-level passes.

ARM/Thumb big endian target machine.

TargetLoweringObjectFile * getObjFileLowering() const override

~ARMBaseTargetMachine() override

bool parseMachineFunctionInfo(const yaml::MachineFunctionInfo &, PerFunctionMIParsingState &PFS, SMDiagnostic &Error, SMRange &SourceRange) const override

Parse out the target's MachineFunctionInfo from the YAML reprsentation.

bool isTargetHardFloat() const

std::unique_ptr< TargetLoweringObjectFile > TLOF

enum llvm::ARMBaseTargetMachine::ARMABI TargetABI

void reset() override

Reset internal state.

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

Create the target's instance of MachineFunctionInfo.

bool isNoopAddrSpaceCast(unsigned SrcAS, unsigned DestAS) const override

Returns true if a cast between SrcAS and DestAS is a noop.

yaml::MachineFunctionInfo * createDefaultFuncInfoYAML() const override

Allocate and return a default initialized instance of the YAML representation for the MachineFunction...

bool targetSchedulesPostRAScheduling() const override

True if subtarget inserts the final scheduling pass on its own.

TargetPassConfig * createPassConfig(PassManagerBase &PM) override

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

const ARMSubtarget * getSubtargetImpl() const =delete

StringMap< std::unique_ptr< ARMSubtarget > > SubtargetMap

bool isLittleEndian() const

TargetTransformInfo getTargetTransformInfo(const Function &F) const override

Get a TargetTransformInfo implementation for the target.

yaml::MachineFunctionInfo * convertFuncInfoToYAML(const MachineFunction &MF) const override

Allocate and initialize an instance of the YAML representation of the MachineFunctionInfo.

ARM/Thumb little endian target machine.

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

Lightweight error class with error context and mandatory checking.

Instances of this class encapsulate one diagnostic report, allowing printing to a raw_ostream as a ca...

Represents a range in source code.

StringMap - This is an unconventional map that is specialized for handling keys that are "strings",...

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

Triple TargetTriple

Triple string, CPU name, and target feature strings the TargetMachine instance is created with.

std::unique_ptr< const MCSubtargetInfo > STI

Target-Independent Code Generator Pass Configuration Options.

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.

SubArchType getSubArch() const

get the parsed subarchitecture type for this triple.

bool isOSBinFormatMachO() const

Tests whether the environment is MachO.

EnvironmentType getEnvironment() const

Get the parsed environment type of this triple.

bool isOSWindows() const

Tests whether the OS is Windows.

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.

CodeGenOptLevel

Code generation optimization level.

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

Targets should override this in a way that mirrors the implementation of llvm::MachineFunctionInfo.