Skip to content

Commit 4aa168a

Browse files
committed
[clang][RISCV] Set default CPU for mti vendor
MipsTechnologies vendor is set up to use the p8700 processor by default. co-authored by Jovan Dmitrović <[email protected]>
1 parent 9b0b29c commit 4aa168a

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

clang/lib/Driver/ToolChains/Arch/RISCV.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,5 +364,9 @@ std::string riscv::getRISCVTargetCPU(const llvm::opt::ArgList &Args,
364364
if (!CPU.empty())
365365
return CPU;
366366

367+
if (Triple.getVendor() == llvm::Triple::MipsTechnologies &&
368+
Triple.isRISCV64())
369+
return "p8700";
370+
367371
return Triple.isRISCV64() ? "generic-rv64" : "generic-rv32";
368372
}

llvm/lib/Target/RISCV/RISCVSubtarget.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,17 @@ RISCVSubtarget::initializeSubtargetDependencies(const Triple &TT, StringRef CPU,
7979
StringRef ABIName) {
8080
// Determine default and user-specified characteristics
8181
bool Is64Bit = TT.isArch64Bit();
82-
if (CPU.empty() || CPU == "generic")
83-
CPU = Is64Bit ? "generic-rv64" : "generic-rv32";
82+
if (CPU.empty() || CPU == "generic") {
83+
if (Is64Bit) {
84+
if (TT.getVendor() == llvm::Triple::MipsTechnologies) {
85+
CPU = "p8700";
86+
} else {
87+
CPU = "generic-rv64";
88+
}
89+
} else {
90+
CPU = "generic-rv32";
91+
}
92+
}
8493

8594
if (TuneCPU.empty())
8695
TuneCPU = CPU;

0 commit comments

Comments
 (0)