Skip to content

Commit 50d6d5d

Browse files
ronliebzhang2amd
authored andcommitted
Fixes to compile SPEC CPU with A+A options
Change-Id: Ia9b4cb2ad100c990881ab1d18ee12eefd3ce8152
1 parent 6bae452 commit 50d6d5d

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

clang/lib/Driver/ToolChains/AmdOptArgs.cpp

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,16 @@ static void addCmdArgs(const ArgList &Args, ArgStringList &CmdArgs,
7171
bool noPrefix=false) {
7272
if (checkOnly)
7373
return;
74-
if (noPrefix)
74+
if (isLLD) {
75+
const Twine Str = "-plugin-opt=";
76+
CmdArgs.push_back(Args.MakeArgString(Str + Arg));
77+
} else if (noPrefix) {
7578
CmdArgs.push_back(Arg);
76-
else if (!isLLD) {
79+
} else if (!isLLD) {
7780
CmdArgs.push_back("-mllvm");
7881
CmdArgs.push_back(Arg);
7982
} else {
80-
const Twine Str = "-plugin-opt=";
81-
CmdArgs.push_back(Args.MakeArgString(Str + Arg));
83+
// Nothing, isLLD and !isLLD make this dead patch
8284
}
8385
}
8486

@@ -141,7 +143,7 @@ static bool checkForPropOpts(const ToolChain &TC, const Driver &D,
141143
if (Arg *A = Args.getLastArg(options::OPT_fstruct_layout_EQ)) {
142144
StringRef Val = A->getValue();
143145
addCmdArgs(Args, CmdArgs, isLLD, checkOnly,
144-
Args.MakeArgString("-struct-layout=" + Val), !isLLD);
146+
Args.MakeArgString("-struct-layout=" + Val), isLLD);
145147
ClosedToolChainNeeded = true;
146148
}
147149

@@ -160,7 +162,7 @@ static bool checkForPropOpts(const ToolChain &TC, const Driver &D,
160162
}
161163
if (Args.hasFlag(options::OPT_farray_remap, options::OPT_fno_array_remap,
162164
false)) {
163-
addCmdArgs(Args, CmdArgs, isLLD, checkOnly, "-remap-arrays", !isLLD);
165+
addCmdArgs(Args, CmdArgs, isLLD, checkOnly, "-remap-arrays", isLLD);
164166
addCmdArgs(Args, CmdArgs, isLLD, checkOnly, "-simplifycfg-no-storesink");
165167
ClosedToolChainNeeded = true;
166168
}
@@ -230,7 +232,7 @@ static bool checkForPropOpts(const ToolChain &TC, const Driver &D,
230232
StringRef Val = A->getValue();
231233
addCmdArgs(Args, CmdArgs, isLLD, checkOnly,
232234
Args.MakeArgString("-struct-peel-mem-block-size=" + Val),
233-
!isLLD);
235+
isLLD);
234236
ClosedToolChainNeeded = true;
235237
} else if (Arg *A = Args.getLastArg(options::OPT_march_EQ)) {
236238
if (ClosedToolChainNeeded && HasAltPath) {
@@ -243,23 +245,23 @@ static bool checkForPropOpts(const ToolChain &TC, const Driver &D,
243245
addCmdArgs(Args, CmdArgs, isLLD, checkOnly,
244246
Args.MakeArgString(
245247
"-struct-peel-mem-block-size=" ZNVER1_MEMBLOCK_SIZE),
246-
!isLLD);
248+
isLLD);
247249
ClosedToolChainNeeded = true;
248250
}
249251
if (MArch == "znver2" || (MArch == "native" && CPU == "znver2")) {
250252
// Tune mem-block-size for znver2
251253
addCmdArgs(Args, CmdArgs, isLLD, checkOnly,
252254
Args.MakeArgString(
253255
"-struct-peel-mem-block-size=" ZNVER2_MEMBLOCK_SIZE),
254-
!isLLD);
256+
isLLD);
255257
ClosedToolChainNeeded = true;
256258
}
257259
if (MArch == "znver3" || (MArch == "native" && CPU == "znver3")) {
258260
// Tune mem-block-size for znver3
259261
addCmdArgs(Args, CmdArgs, isLLD, checkOnly,
260262
Args.MakeArgString(
261263
"-struct-peel-mem-block-size=" ZNVER2_MEMBLOCK_SIZE),
262-
!isLLD);
264+
isLLD);
263265
addCmdArgs(Args, CmdArgs, isLLD, checkOnly,
264266
Args.MakeArgString("-x86-convert-cmpmr-to-cmprm"));
265267
ClosedToolChainNeeded = true;
@@ -305,7 +307,7 @@ static bool checkForPropOpts(const ToolChain &TC, const Driver &D,
305307
if (Args.hasFlag(options::OPT_flv_function_specialization,
306308
options::OPT_fno_lv_function_specialization, false)) {
307309
addCmdArgs(Args, CmdArgs, isLLD, checkOnly,
308-
"-lv-function-specialization", !isLLD);
310+
"-lv-function-specialization", isLLD);
309311
if (!isLLD)
310312
addCmdArgs(Args, CmdArgs, isLLD, checkOnly, "-delay-vectorization-to-lto");
311313
ClosedToolChainNeeded = true;

0 commit comments

Comments
 (0)