r232533 - Add fveclib option.

Filipe Cabecinhas filcab at gmail.com
Tue Mar 17 13:43:54 PDT 2015


Hi Michael,

This breaks Windows, I guess you need to explicitly name the enum:
C:\Buildbot\Slave\builds\1.LLVM.Windows.Phase.4\clang.src\lib\CodeGen\BackendUtil.cpp(243):
error C2039: 'addVectorizableFunctionsFromVecLib' : is not a member of
'llvm::TargetLibraryInfoImpl'
[C:\Buildbot\Slave\builds\1.LLVM.Windows.Phase.4\llvm.obj\tools\clang\lib\CodeGen\clangCodeGen.vcxproj]

C:\Buildbot\Slave\builds\1.LLVM.Windows.Phase.4\llvm.src\include\llvm/Analysis/TargetLibraryInfo.h(38)
: see declaration of 'llvm::TargetLibraryInfoImpl'
C:\Buildbot\Slave\builds\1.LLVM.Windows.Phase.4\clang.src\lib\CodeGen\BackendUtil.cpp(243):
error C2039: 'Accelerate' : is not a member of
'llvm::TargetLibraryInfoImpl'
[C:\Buildbot\Slave\builds\1.LLVM.Windows.Phase.4\llvm.obj\tools\clang\lib\CodeGen\clangCodeGen.vcxproj]

C:\Buildbot\Slave\builds\1.LLVM.Windows.Phase.4\llvm.src\include\llvm/Analysis/TargetLibraryInfo.h(38)
: see declaration of 'llvm::TargetLibraryInfoImpl'
C:\Buildbot\Slave\builds\1.LLVM.Windows.Phase.4\clang.src\lib\CodeGen\BackendUtil.cpp(243):
error C2065: 'Accelerate' : undeclared identifier
[C:\Buildbot\Slave\builds\1.LLVM.Windows.Phase.4\llvm.obj\tools\clang\lib\CodeGen\clangCodeGen.vcxproj]

Thanks,

  Filipe

On Tue, Mar 17, 2015 at 1:03 PM, Michael Zolotukhin <mzolotukhin at apple.com>
wrote:

> Author: mzolotukhin
> Date: Tue Mar 17 15:03:11 2015
> New Revision: 232533
>
> URL: http://llvm.org/viewvc/llvm-project?rev=232533&view=rev
> Log:
> Add fveclib option.
>
> Review: http://reviews.llvm.org/D8097
>
> Added:
>     cfe/trunk/test/Driver/fveclib.c
> Modified:
>     cfe/trunk/include/clang/Driver/Options.td
>     cfe/trunk/include/clang/Frontend/CodeGenOptions.def
>     cfe/trunk/include/clang/Frontend/CodeGenOptions.h
>     cfe/trunk/lib/CodeGen/BackendUtil.cpp
>     cfe/trunk/lib/Driver/Tools.cpp
>     cfe/trunk/lib/Frontend/CompilerInvocation.cpp
>
> Modified: cfe/trunk/include/clang/Driver/Options.td
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=232533&r1=232532&r2=232533&view=diff
>
> ==============================================================================
> --- cfe/trunk/include/clang/Driver/Options.td (original)
> +++ cfe/trunk/include/clang/Driver/Options.td Tue Mar 17 15:03:11 2015
> @@ -756,6 +756,8 @@ def fno_exceptions : Flag<["-"], "fno-ex
>  def fno_gnu_keywords : Flag<["-"], "fno-gnu-keywords">, Group<f_Group>,
> Flags<[CC1Option]>;
>  def fno_inline_functions : Flag<["-"], "fno-inline-functions">,
> Group<f_clang_Group>, Flags<[CC1Option]>;
>  def fno_inline : Flag<["-"], "fno-inline">, Group<f_clang_Group>,
> Flags<[CC1Option]>;
> +def fveclib : Joined<["-"], "fveclib=">, Group<f_Group>,
> Flags<[CC1Option]>,
> +    HelpText<"Use the given vector functions library">;
>  def fno_lax_vector_conversions : Flag<["-"],
> "fno-lax-vector-conversions">, Group<f_Group>,
>    HelpText<"Disallow implicit conversions between vectors with a
> different number of elements or different element types">,
> Flags<[CC1Option]>;
>  def fno_merge_all_constants : Flag<["-"], "fno-merge-all-constants">,
> Group<f_Group>,
>
> Modified: cfe/trunk/include/clang/Frontend/CodeGenOptions.def
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/CodeGenOptions.def?rev=232533&r1=232532&r2=232533&view=diff
>
> ==============================================================================
> --- cfe/trunk/include/clang/Frontend/CodeGenOptions.def (original)
> +++ cfe/trunk/include/clang/Frontend/CodeGenOptions.def Tue Mar 17
> 15:03:11 2015
> @@ -162,6 +162,9 @@ VALUE_CODEGENOPT(DwarfVersion, 3, 0)
>  /// The kind of inlining to perform.
>  ENUM_CODEGENOPT(Inlining, InliningMethod, 2, NoInlining)
>
> +// Vector functions library to use.
> +ENUM_CODEGENOPT(VecLib, VectorLibrary, 1, NoLibrary)
> +
>  /// The default TLS model to use.
>  ENUM_CODEGENOPT(DefaultTLSModel, TLSModel, 2, GeneralDynamicTLSModel)
>
>
> Modified: cfe/trunk/include/clang/Frontend/CodeGenOptions.h
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/CodeGenOptions.h?rev=232533&r1=232532&r2=232533&view=diff
>
> ==============================================================================
> --- cfe/trunk/include/clang/Frontend/CodeGenOptions.h (original)
> +++ cfe/trunk/include/clang/Frontend/CodeGenOptions.h Tue Mar 17 15:03:11
> 2015
> @@ -46,6 +46,11 @@ public:
>      OnlyAlwaysInlining  // Only run the always inlining pass.
>    };
>
> +  enum VectorLibrary {
> +    NoLibrary, // Don't use any vector library.
> +    Accelerate // Use the Accelerate framework.
> +  };
> +
>    enum ObjCDispatchMethodKind {
>      Legacy = 0,
>      NonLegacy = 1,
>
> Modified: cfe/trunk/lib/CodeGen/BackendUtil.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/BackendUtil.cpp?rev=232533&r1=232532&r2=232533&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/BackendUtil.cpp (original)
> +++ cfe/trunk/lib/CodeGen/BackendUtil.cpp Tue Mar 17 15:03:11 2015
> @@ -237,6 +237,14 @@ static TargetLibraryInfoImpl *createTLII
>    TargetLibraryInfoImpl *TLII = new TargetLibraryInfoImpl(TargetTriple);
>    if (!CodeGenOpts.SimplifyLibCalls)
>      TLII->disableAllFunctions();
> +
> +  switch (CodeGenOpts.getVecLib()) {
> +  case CodeGenOptions::Accelerate:
> +
> TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::Accelerate);
> +    break;
> +  default:
> +    break;
> +  }
>    return TLII;
>  }
>
>
> Modified: cfe/trunk/lib/Driver/Tools.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=232533&r1=232532&r2=232533&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Driver/Tools.cpp (original)
> +++ cfe/trunk/lib/Driver/Tools.cpp Tue Mar 17 15:03:11 2015
> @@ -2864,6 +2864,8 @@ void Clang::ConstructJob(Compilation &C,
>    else
>
>  CmdArgs.push_back(Args.MakeArgString(getToolChain().getThreadModel()));
>
> +  Args.AddLastArg(CmdArgs, options::OPT_fveclib);
> +
>    if (!Args.hasFlag(options::OPT_fmerge_all_constants,
>                      options::OPT_fno_merge_all_constants))
>      CmdArgs.push_back("-fno-merge-all-constants");
>
> Modified: cfe/trunk/lib/Frontend/CompilerInvocation.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=232533&r1=232532&r2=232533&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Frontend/CompilerInvocation.cpp (original)
> +++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp Tue Mar 17 15:03:11 2015
> @@ -367,6 +367,16 @@ static bool ParseCodeGenArgs(CodeGenOpti
>    Opts.setInlining(Args.hasArg(OPT_fno_inline_functions) ?
>                       CodeGenOptions::OnlyAlwaysInlining :
> Opts.getInlining());
>
> +  if (Arg *A = Args.getLastArg(OPT_fveclib)) {
> +    StringRef Name = A->getValue();
> +    if (Name == "Accelerate")
> +      Opts.setVecLib(CodeGenOptions::Accelerate);
> +    else if (Name == "none")
> +      Opts.setVecLib(CodeGenOptions::NoLibrary);
> +    else
> +      Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args)
> << Name;
> +  }
> +
>    if (Args.hasArg(OPT_gline_tables_only)) {
>      Opts.setDebugInfo(CodeGenOptions::DebugLineTablesOnly);
>    } else if (Args.hasArg(OPT_g_Flag) || Args.hasArg(OPT_gdwarf_2) ||
>
> Added: cfe/trunk/test/Driver/fveclib.c
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/fveclib.c?rev=232533&view=auto
>
> ==============================================================================
> --- cfe/trunk/test/Driver/fveclib.c (added)
> +++ cfe/trunk/test/Driver/fveclib.c Tue Mar 17 15:03:11 2015
> @@ -0,0 +1,8 @@
> +// RUN: %clang -### -c -fveclib=none %s 2>&1 | FileCheck -check-prefix
> CHECK-NOLIB %s
> +// RUN: %clang -### -c -fveclib=Accelerate %s 2>&1 | FileCheck
> -check-prefix CHECK-ACCELERATE %s
> +// RUN: not %clang -c -fveclib=something %s 2>&1 | FileCheck
> -check-prefix CHECK-INVALID %s
> +
> +// CHECK-NOLIB: "-fveclib=none"
> +// CHECK-ACCELERATE: "-fveclib=Accelerate"
> +
> +// CHECK-INVALID: error: invalid value 'something' in '-fveclib=something'
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150317/94c989d8/attachment.html>


More information about the cfe-commits mailing list