----- 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@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > -- Hal Finkel Assistant Computational Scientist Leadership Computing Facility Argonne National Laboratory _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits