Skip to content

Commit e848959

Browse files
authored
ARM: Remove CPU from computeTargetABI (#151983)
The target CPU is a subtarget / function level concept, which should not influence the module level ABI decisions. No tests fail so it appears nothing is relying on this.
1 parent 8761b6c commit e848959

File tree

3 files changed

+11
-15
lines changed

3 files changed

+11
-15
lines changed

llvm/include/llvm/TargetParser/ARMTargetParser.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -270,10 +270,9 @@ LLVM_ABI ProfileKind parseArchProfile(StringRef Arch);
270270
LLVM_ABI unsigned parseArchVersion(StringRef Arch);
271271

272272
LLVM_ABI void fillValidCPUArchList(SmallVectorImpl<StringRef> &Values);
273-
LLVM_ABI StringRef computeDefaultTargetABI(const Triple &TT, StringRef CPU);
273+
LLVM_ABI StringRef computeDefaultTargetABI(const Triple &TT);
274274

275-
LLVM_ABI ARMABI computeTargetABI(const Triple &TT, StringRef CPU,
276-
StringRef ABIName = "");
275+
LLVM_ABI ARMABI computeTargetABI(const Triple &TT, StringRef ABIName = "");
277276

278277
/// Get the (LLVM) name of the minimum ARM CPU for the arch we are targeting.
279278
///

llvm/lib/Target/ARM/ARMTargetMachine.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,10 @@ static std::unique_ptr<TargetLoweringObjectFile> createTLOF(const Triple &TT) {
121121
return std::make_unique<ARMElfTargetObjectFile>();
122122
}
123123

124-
static std::string computeDataLayout(const Triple &TT, StringRef CPU,
124+
static std::string computeDataLayout(const Triple &TT,
125125
const TargetOptions &Options,
126126
bool isLittle) {
127-
auto ABI = ARM::computeTargetABI(TT, CPU, Options.MCOptions.ABIName);
127+
auto ABI = ARM::computeTargetABI(TT, Options.MCOptions.ABIName);
128128
std::string Ret;
129129

130130
if (isLittle)
@@ -202,11 +202,10 @@ ARMBaseTargetMachine::ARMBaseTargetMachine(const Target &T, const Triple &TT,
202202
std::optional<Reloc::Model> RM,
203203
std::optional<CodeModel::Model> CM,
204204
CodeGenOptLevel OL, bool isLittle)
205-
: CodeGenTargetMachineImpl(T, computeDataLayout(TT, CPU, Options, isLittle),
206-
TT, CPU, FS, Options,
207-
getEffectiveRelocModel(TT, RM),
205+
: CodeGenTargetMachineImpl(T, computeDataLayout(TT, Options, isLittle), TT,
206+
CPU, FS, Options, getEffectiveRelocModel(TT, RM),
208207
getEffectiveCodeModel(CM, CodeModel::Small), OL),
209-
TargetABI(ARM::computeTargetABI(TT, CPU, Options.MCOptions.ABIName)),
208+
TargetABI(ARM::computeTargetABI(TT, Options.MCOptions.ABIName)),
210209
TLOF(createTLOF(getTargetTriple())), isLittle(isLittle) {
211210

212211
// Default to triple-appropriate float ABI

llvm/lib/TargetParser/ARMTargetParser.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -535,9 +535,8 @@ void ARM::fillValidCPUArchList(SmallVectorImpl<StringRef> &Values) {
535535
}
536536
}
537537

538-
StringRef ARM::computeDefaultTargetABI(const Triple &TT, StringRef CPU) {
539-
StringRef ArchName =
540-
CPU.empty() ? TT.getArchName() : getArchName(parseCPUArch(CPU));
538+
StringRef ARM::computeDefaultTargetABI(const Triple &TT) {
539+
StringRef ArchName = TT.getArchName();
541540

542541
if (TT.isOSBinFormatMachO()) {
543542
if (TT.getEnvironment() == Triple::EABI ||
@@ -575,10 +574,9 @@ StringRef ARM::computeDefaultTargetABI(const Triple &TT, StringRef CPU) {
575574
}
576575
}
577576

578-
ARM::ARMABI ARM::computeTargetABI(const Triple &TT, StringRef CPU,
579-
StringRef ABIName) {
577+
ARM::ARMABI ARM::computeTargetABI(const Triple &TT, StringRef ABIName) {
580578
if (ABIName.empty())
581-
ABIName = ARM::computeDefaultTargetABI(TT, CPU);
579+
ABIName = ARM::computeDefaultTargetABI(TT);
582580

583581
if (ABIName == "aapcs16")
584582
return ARM_ABI_AAPCS16;

0 commit comments

Comments
 (0)