LLVM: lib/Target/WebAssembly/WebAssemblyTargetMachine.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15#ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYTARGETMACHINE_H

16#define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYTARGETMACHINE_H

17

20#include

21

22namespace llvm {

23

25

31}

32

34 std::unique_ptr TLOF;

36 bool UsesMultivalueABI = false;

37

38public:

41 std::optionalReloc::Model RM,

42 std::optionalCodeModel::Model CM,

44

46

49 std::string FS) const;

52

53

55

57 return TLOF.get();

58 }

59

63

65

67

74 SMRange &SourceRange) const override;

75

77};

78

79}

80

81#endif

This file declares the WebAssembly-specific subclass of TargetSubtarget.

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

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.

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.

yaml::MachineFunctionInfo * createDefaultFuncInfoYAML() const override

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

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

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

WebAssemblyTargetMachine(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 WebAssembly architecture model.

TargetPassConfig * createPassConfig(PassManagerBase &PM) override

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

TargetLoweringObjectFile * getObjFileLowering() const override

Definition WebAssemblyTargetMachine.h:56

bool usesPhysRegsForValues() const override

True if the target uses physical regs (as nearly all targets do).

Definition WebAssemblyTargetMachine.h:66

const WebAssemblySubtarget * getSubtargetImpl() const

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

Create the target's instance of MachineFunctionInfo.

~WebAssemblyTargetMachine() override

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.

bool usesMultivalueABI() const

Definition WebAssemblyTargetMachine.h:76

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

cl::opt< bool > WasmUseLegacyEH

cl::opt< bool > WasmEnableEH

cl::opt< bool > WasmEnableSjLj

cl::opt< bool > WasmEnableEmEH

cl::opt< bool > WasmEnableEmSjLj

template class LLVM_TEMPLATE_ABI opt< bool >

This is an optimization pass for GlobalISel generic memory operations.

CodeGenOptLevel

Code generation optimization level.

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

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