LLVM: lib/Target/WebAssembly/WebAssemblySubtarget.cpp Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

19using namespace llvm;

20

21#define DEBUG_TYPE "wasm-subtarget"

22

23#define GET_SUBTARGETINFO_CTOR

24#define GET_SUBTARGETINFO_TARGET_DESC

25#include "WebAssemblyGenSubtargetInfo.inc"

26

28WebAssemblySubtarget::initializeSubtargetDependencies(StringRef CPU,

30

32

34 CPU = "generic";

35

37

39

40

41 if (HasBulkMemory) {

42 HasBulkMemoryOpt = true;

43 Bits.set(WebAssembly::FeatureBulkMemoryOpt);

44 }

45

46

47 if (HasReferenceTypes) {

48 HasCallIndirectOverlong = true;

49 Bits.set(WebAssembly::FeatureCallIndirectOverlong);

50 }

51

52

53 setFeatureBits(Bits);

54

55 return *this;

56}

57

59 const std::string &CPU,

60 const std::string &FS,

63 TargetTriple(TT), InstrInfo(initializeSubtargetDependencies(CPU, FS)),

64 TLInfo(TM, *this) {}

65

67

69}

70

72

73

74

75 return false;

76}

77

This file contains the WebAssembly implementation of the TargetInstrInfo class.

This file provides WebAssembly-specific target descriptions.

This file declares the WebAssembly-specific subclass of TargetSubtarget.

Container class for subtarget features.

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

constexpr bool empty() const

empty - Check if the string is empty.

Primary interface to the complete machine description for the target machine.

Triple - Helper class for working with autoconf configuration names.

bool enableAtomicExpand() const override

bool enableMachineScheduler() const override

WebAssemblySubtarget(const Triple &TT, const std::string &CPU, const std::string &FS, const TargetMachine &TM)

This constructor initializes the data members to match that of the specified triple.

void ParseSubtargetFeatures(StringRef CPU, StringRef TuneCPU, StringRef FS)

Parses features string setting specified subtarget options.

bool useAA() const override

This is an optimization pass for GlobalISel generic memory operations.

raw_ostream & dbgs()

dbgs() - This returns a reference to a raw_ostream for debugging messages.