diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Frontend/Driver/CodeGenOptions.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/lib/Frontend/Driver/CodeGenOptions.cpp | 55 | 
1 files changed, 55 insertions, 0 deletions
diff --git a/contrib/llvm-project/llvm/lib/Frontend/Driver/CodeGenOptions.cpp b/contrib/llvm-project/llvm/lib/Frontend/Driver/CodeGenOptions.cpp new file mode 100644 index 000000000000..96c5b19a4a59 --- /dev/null +++ b/contrib/llvm-project/llvm/lib/Frontend/Driver/CodeGenOptions.cpp @@ -0,0 +1,55 @@ +//===--- CodeGenOptions.cpp - Shared codegen option handling --------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "llvm/Frontend/Driver/CodeGenOptions.h" +#include "llvm/Analysis/TargetLibraryInfo.h" +#include "llvm/TargetParser/Triple.h" + +namespace llvm::driver { + +TargetLibraryInfoImpl *createTLII(llvm::Triple &TargetTriple, +                                  driver::VectorLibrary Veclib) { +  TargetLibraryInfoImpl *TLII = new TargetLibraryInfoImpl(TargetTriple); + +  using VectorLibrary = llvm::driver::VectorLibrary; +  switch (Veclib) { +  case VectorLibrary::Accelerate: +    TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::Accelerate, +                                             TargetTriple); +    break; +  case VectorLibrary::LIBMVEC: +    TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::LIBMVEC_X86, +                                             TargetTriple); +    break; +  case VectorLibrary::MASSV: +    TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::MASSV, +                                             TargetTriple); +    break; +  case VectorLibrary::SVML: +    TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::SVML, +                                             TargetTriple); +    break; +  case VectorLibrary::SLEEF: +    TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::SLEEFGNUABI, +                                             TargetTriple); +    break; +  case VectorLibrary::Darwin_libsystem_m: +    TLII->addVectorizableFunctionsFromVecLib( +        TargetLibraryInfoImpl::DarwinLibSystemM, TargetTriple); +    break; +  case VectorLibrary::ArmPL: +    TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::ArmPL, +                                             TargetTriple); +    break; +  default: +    break; +  } +  return TLII; +} + +} // namespace llvm::driver  | 
