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