Skip to content

Commit 9acaccb

Browse files
authored
[RISCV][Driver] Refactor riscv::getRISCVArch to return std::string. NFC. (#97965)
See the discussion in #94352 (comment)
1 parent 3259768 commit 9acaccb

File tree

7 files changed

+15
-14
lines changed

7 files changed

+15
-14
lines changed

clang/lib/Driver/Driver.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -681,7 +681,7 @@ static llvm::Triple computeTargetTriple(const Driver &D,
681681
if (Target.isRISCV()) {
682682
if (Args.hasArg(options::OPT_march_EQ) ||
683683
Args.hasArg(options::OPT_mcpu_EQ)) {
684-
StringRef ArchName = tools::riscv::getRISCVArch(Args, Target);
684+
std::string ArchName = tools::riscv::getRISCVArch(Args, Target);
685685
auto ISAInfo = llvm::RISCVISAInfo::parseArchString(
686686
ArchName, /*EnableExperimentalExtensions=*/true);
687687
if (!llvm::errorToBool(ISAInfo.takeError())) {

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ static void getRISCFeaturesFromMcpu(const Driver &D, const Arg *A,
7272
void riscv::getRISCVTargetFeatures(const Driver &D, const llvm::Triple &Triple,
7373
const ArgList &Args,
7474
std::vector<StringRef> &Features) {
75-
StringRef MArch = getRISCVArch(Args, Triple);
75+
std::string MArch = getRISCVArch(Args, Triple);
7676

7777
if (!getArchFeatures(D, MArch, Features, Args))
7878
return;
@@ -227,7 +227,7 @@ StringRef riscv::getRISCVABI(const ArgList &Args, const llvm::Triple &Triple) {
227227
// rv64g | rv64*d -> lp64d
228228
// rv64e -> lp64e
229229
// rv64* -> lp64
230-
StringRef Arch = getRISCVArch(Args, Triple);
230+
std::string Arch = getRISCVArch(Args, Triple);
231231

232232
auto ParseResult = llvm::RISCVISAInfo::parseArchString(
233233
Arch, /* EnableExperimentalExtension */ true);
@@ -253,8 +253,8 @@ StringRef riscv::getRISCVABI(const ArgList &Args, const llvm::Triple &Triple) {
253253
}
254254
}
255255

256-
StringRef riscv::getRISCVArch(const llvm::opt::ArgList &Args,
257-
const llvm::Triple &Triple) {
256+
std::string riscv::getRISCVArch(const llvm::opt::ArgList &Args,
257+
const llvm::Triple &Triple) {
258258
assert(Triple.isRISCV() && "Unexpected triple");
259259

260260
// GCC's logic around choosing a default `-march=` is complex. If GCC is not
@@ -295,7 +295,7 @@ StringRef riscv::getRISCVArch(const llvm::opt::ArgList &Args,
295295
StringRef MArch = llvm::RISCV::getMArchFromMcpu(CPU);
296296
// Bypass if target cpu's default march is empty.
297297
if (MArch != "")
298-
return MArch;
298+
return MArch.str();
299299
}
300300

301301
// 3. Choose a default based on `-mabi=`

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ void getRISCVTargetFeatures(const Driver &D, const llvm::Triple &Triple,
2424
std::vector<llvm::StringRef> &Features);
2525
StringRef getRISCVABI(const llvm::opt::ArgList &Args,
2626
const llvm::Triple &Triple);
27-
StringRef getRISCVArch(const llvm::opt::ArgList &Args,
28-
const llvm::Triple &Triple);
27+
std::string getRISCVArch(const llvm::opt::ArgList &Args,
28+
const llvm::Triple &Triple);
2929
std::string getRISCVTargetCPU(const llvm::opt::ArgList &Args,
3030
const llvm::Triple &Triple);
3131
} // end namespace riscv

clang/lib/Driver/ToolChains/BareMetal.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ static bool findRISCVMultilibs(const Driver &D,
3737
const llvm::Triple &TargetTriple,
3838
const ArgList &Args, DetectedMultilibs &Result) {
3939
Multilib::flags_list Flags;
40-
StringRef Arch = riscv::getRISCVArch(Args, TargetTriple);
40+
std::string Arch = riscv::getRISCVArch(Args, TargetTriple);
4141
StringRef Abi = tools::riscv::getRISCVABI(Args, TargetTriple);
4242

4343
if (TargetTriple.isRISCV64()) {

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2107,7 +2107,7 @@ void Clang::AddRISCVTargetArgs(const ArgList &Args,
21072107

21082108
// Get minimum VLen from march.
21092109
unsigned MinVLen = 0;
2110-
StringRef Arch = riscv::getRISCVArch(Args, Triple);
2110+
std::string Arch = riscv::getRISCVArch(Args, Triple);
21112111
auto ISAInfo = llvm::RISCVISAInfo::parseArchString(
21122112
Arch, /*EnableExperimentalExtensions*/ true);
21132113
// Ignore parsing error.

clang/lib/Driver/ToolChains/Flang.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ void Flang::AddRISCVTargetArgs(const ArgList &Args,
204204

205205
// Get minimum VLen from march.
206206
unsigned MinVLen = 0;
207-
StringRef Arch = riscv::getRISCVArch(Args, Triple);
207+
std::string Arch = riscv::getRISCVArch(Args, Triple);
208208
auto ISAInfo = llvm::RISCVISAInfo::parseArchString(
209209
Arch, /*EnableExperimentalExtensions*/ true);
210210
// Ignore parsing error.

clang/lib/Driver/ToolChains/Gnu.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -769,9 +769,10 @@ void tools::gnutools::Assembler::ConstructJob(Compilation &C,
769769
StringRef ABIName = riscv::getRISCVABI(Args, getToolChain().getTriple());
770770
CmdArgs.push_back("-mabi");
771771
CmdArgs.push_back(ABIName.data());
772-
StringRef MArchName = riscv::getRISCVArch(Args, getToolChain().getTriple());
772+
std::string MArchName =
773+
riscv::getRISCVArch(Args, getToolChain().getTriple());
773774
CmdArgs.push_back("-march");
774-
CmdArgs.push_back(MArchName.data());
775+
CmdArgs.push_back(Args.MakeArgString(MArchName));
775776
if (!Args.hasFlag(options::OPT_mrelax, options::OPT_mno_relax, true))
776777
Args.addOptOutFlag(CmdArgs, options::OPT_mrelax, options::OPT_mno_relax);
777778
break;
@@ -1882,7 +1883,7 @@ static void findRISCVBareMetalMultilibs(const Driver &D,
18821883
Multilib::flags_list Flags;
18831884
llvm::StringSet<> Added_ABIs;
18841885
StringRef ABIName = tools::riscv::getRISCVABI(Args, TargetTriple);
1885-
StringRef MArch = tools::riscv::getRISCVArch(Args, TargetTriple);
1886+
std::string MArch = tools::riscv::getRISCVArch(Args, TargetTriple);
18861887
for (auto Element : RISCVMultilibSet) {
18871888
addMultilibFlag(MArch == Element.march,
18881889
Twine("-march=", Element.march).str().c_str(), Flags);

0 commit comments

Comments
 (0)