r187630 - If -fslp-vectorize or -fno-slp-vectorize are given, honor this selection. If no flag is given, enable it for -O3.
Hal Finkel
hfinkel at anl.gov
Thu Aug 1 16:20:57 PDT 2013
----- Original Message -----
> Author: nadav
> Date: Thu Aug 1 17:56:53 2013
> New Revision: 187630
>
> URL: http://llvm.org/viewvc/llvm-project?rev=187630&view=rev
> Log:
> If -fslp-vectorize or -fno-slp-vectorize are given, honor this
> selection. If no flag is given, enable it for -O3.
This should have a test case.
-Hal
>
>
> Modified:
> cfe/trunk/lib/Driver/Tools.cpp
>
> Modified: cfe/trunk/lib/Driver/Tools.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=187630&r1=187629&r2=187630&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Driver/Tools.cpp (original)
> +++ cfe/trunk/lib/Driver/Tools.cpp Thu Aug 1 17:56:53 2013
> @@ -1974,6 +1974,12 @@ static bool isOptimizationLevelFast(cons
> 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,
> 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.
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
--
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory
More information about the cfe-commits
mailing list