LLVM: lib/TargetParser/PPCTargetParser.cpp Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

17

18namespace llvm {

19namespace PPC {

20

23

24};

25

27#define PPC_CPU(Name, Linux_SUPPORT_METHOD, LinuxID, AIX_SUPPORT_METHOD, \

28 AIXID) \

29 {Name},

30#include "llvm/TargetParser/PPCTargetParser.def"

31};

32

35 if (C.Name == CPU)

36 return &C;

37 return nullptr;

38}

39

41

42

43

44

45

47 .Cases("common", "405", "generic")

48 .Cases("ppc440", "440fp", "440")

49 .Cases("630", "power3", "pwr3")

50 .Case("G3", "g3")

51 .Case("G4", "g4")

52 .Case("G4+", "g4+")

53 .Case("8548", "e500")

54 .Case("ppc970", "970")

55 .Case("G5", "g5")

56 .Case("ppca2", "a2")

57 .Case("power4", "pwr4")

58 .Case("power5", "pwr5")

59 .Case("power5x", "pwr5x")

60 .Case("power5+", "pwr5+")

61 .Case("power6", "pwr6")

62 .Case("power6x", "pwr6x")

63 .Case("power7", "pwr7")

64 .Case("power8", "pwr8")

65 .Case("power9", "pwr9")

66 .Case("power10", "pwr10")

67 .Case("power11", "pwr11")

68 .Cases("powerpc", "powerpc32", "ppc")

69 .Case("powerpc64", "ppc64")

70 .Case("powerpc64le", "ppc64le")

72}

73

77}

78

82}

83

87 return false;

88 return true;

89}

90

92 if (!CPUName.empty()) {

93 if (CPUName == "native") {

95 if (!CPU.empty() && CPU != "generic")

96 return CPU;

97 }

98

100 if (CPU != "generic" && CPU != "native")

101 return CPU;

102 }

103

104

105

106 if (T.isOSAIX())

107 return "pwr7";

109 return "ppc64le";

111 return "ppc64";

112

113 return "ppc";

114}

115

118}

119

120}

121}

Analysis containing CSE Info

This file implements the StringSwitch template, which mimics a switch() statement whose cases are str...

This class consists of common code factored out of the SmallVector class to reduce code duplication b...

reference emplace_back(ArgTypes &&... Args)

A wrapper around a string literal that serves as a proxy for constructing global tables of StringRefs...

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

constexpr bool empty() const

empty - Check if the string is empty.

A switch()-like statement whose cases are string literals.

StringSwitch & Case(StringLiteral S, T Value)

StringSwitch & Cases(StringLiteral S0, StringLiteral S1, T Value)

Triple - Helper class for working with autoconf configuration names.

@ C

The default llvm calling convention, compatible with C.

StringRef getNormalizedPPCTargetCPU(const Triple &T, StringRef CPUName="")

constexpr CPUInfo PPCCPUInfo[]

bool isValidCPU(StringRef CPU)

StringRef normalizeCPUName(StringRef CPUName)

static const CPUInfo * getCPUInfoByName(StringRef CPU)

void fillValidTuneCPUList(SmallVectorImpl< StringRef > &Values)

StringRef getNormalizedPPCTuneCPU(const Triple &T, StringRef CPUName="")

void fillValidCPUList(SmallVectorImpl< StringRef > &Values)

StringRef getHostCPUName()

getHostCPUName - Get the LLVM name for the host CPU.

This is an optimization pass for GlobalISel generic memory operations.