forked from OSchip/llvm-project
If -fslp-vectorize or -fno-slp-vectorize are given, honor this selection. If no flag is given, enable it for -O3.
llvm-svn: 187630
This commit is contained in:
parent
87dc60761f
commit
9562d4a2d7
|
@ -1974,6 +1974,12 @@ static bool isOptimizationLevelFast(const ArgList &Args) {
|
|||
return false;
|
||||
}
|
||||
|
||||
static bool isOptimizationLevel3(const ArgList &Args) {
|
||||
if (Arg *A = Args.getLastArg(options::OPT_O_Group))
|
||||
return StringRef(A->getValue()).equals("3");
|
||||
return false;
|
||||
}
|
||||
|
||||
void Clang::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
const InputInfo &Output,
|
||||
const InputInfoList &Inputs,
|
||||
|
@ -3452,9 +3458,17 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
options::OPT_fno_vectorize, true))
|
||||
CmdArgs.push_back("-vectorize-loops");
|
||||
|
||||
// -fslp-vectorize is default.
|
||||
if (Args.hasFlag(options::OPT_fslp_vectorize,
|
||||
options::OPT_fno_slp_vectorize, true))
|
||||
bool EnableSLP = false;
|
||||
// If -fslp-vectorize or -fno-slp-vectorize are given, honor this selection.
|
||||
if (Arg *A = Args.getLastArg(options::OPT_fslp_vectorize,
|
||||
options::OPT_fno_slp_vectorize)) {
|
||||
EnableSLP = A->getOption().matches(options::OPT_fslp_vectorize);
|
||||
} else {
|
||||
// Also enable SLP vectorization on O3 or OFast
|
||||
EnableSLP = isOptimizationLevel3(Args) || isOptimizationLevelFast(Args);
|
||||
}
|
||||
|
||||
if (EnableSLP)
|
||||
CmdArgs.push_back("-vectorize-slp");
|
||||
|
||||
// -fno-slp-vectorize-aggressive is default.
|
||||
|
|
Loading…
Reference in New Issue