Skip to content

Commit ae298d8

Browse files
ronliebmacurtis-amd
authored andcommitted
Restore lost lto opts for amdgpu
1 parent 9a91602 commit ae298d8

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9464,6 +9464,28 @@ void LinkerWrapper::ConstructJob(Compilation &C, const JobAction &JA,
94649464
A->render(Args, LinkerArgs);
94659465
}
94669466

9467+
if (isAMDGPU && !C.getDriver().IsFlangMode()) {
9468+
StringRef OOpt;
9469+
if (const Arg *A = Args.getLastArg(options::OPT_O_Group)) {
9470+
if (A->getOption().matches(options::OPT_O4) ||
9471+
A->getOption().matches(options::OPT_Ofast))
9472+
OOpt = "3";
9473+
else if (A->getOption().matches(options::OPT_O)) {
9474+
OOpt = A->getValue();
9475+
if (OOpt == "g")
9476+
OOpt = "1";
9477+
else if (OOpt == "s" || OOpt == "z")
9478+
OOpt = "2";
9479+
} else if (A->getOption().matches(options::OPT_O0))
9480+
OOpt = "0";
9481+
}
9482+
9483+
if (!OOpt.empty() && OOpt != "0") {
9484+
LinkerArgs.push_back(Args.MakeArgString(
9485+
"--lto-newpm-passes=default-post-link<O" + OOpt + ">"));
9486+
}
9487+
}
9488+
94679489
// Forward all of these to the appropriate toolchain.
94689490
for (StringRef Arg : CompilerArgs)
94699491
CmdArgs.push_back(Args.MakeArgString(

0 commit comments

Comments
 (0)