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.