brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 4e16027 Raw
72 lines · cpp
1//===--- CodeGenOptions.cpp - Shared codegen option handling --------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "llvm/Frontend/Driver/CodeGenOptions.h"10#include "llvm/Analysis/TargetLibraryInfo.h"11#include "llvm/IR/SystemLibraries.h"12#include "llvm/ProfileData/InstrProfCorrelator.h"13#include "llvm/TargetParser/Triple.h"14 15namespace llvm {16extern llvm::cl::opt<llvm::InstrProfCorrelator::ProfCorrelatorKind>17    ProfileCorrelate;18} // namespace llvm19 20namespace llvm::driver {21 22TargetLibraryInfoImpl *createTLII(const llvm::Triple &TargetTriple,23                                  driver::VectorLibrary Veclib) {24  TargetLibraryInfoImpl *TLII = new TargetLibraryInfoImpl(TargetTriple);25 26  using VectorLibrary = llvm::driver::VectorLibrary;27  switch (Veclib) {28  case VectorLibrary::Accelerate:29    TLII->addVectorizableFunctionsFromVecLib(llvm::VectorLibrary::Accelerate,30                                             TargetTriple);31    break;32  case VectorLibrary::LIBMVEC:33    TLII->addVectorizableFunctionsFromVecLib(llvm::VectorLibrary::LIBMVEC,34                                             TargetTriple);35    break;36  case VectorLibrary::MASSV:37    TLII->addVectorizableFunctionsFromVecLib(llvm::VectorLibrary::MASSV,38                                             TargetTriple);39    break;40  case VectorLibrary::SVML:41    TLII->addVectorizableFunctionsFromVecLib(llvm::VectorLibrary::SVML,42                                             TargetTriple);43    break;44  case VectorLibrary::SLEEF:45    TLII->addVectorizableFunctionsFromVecLib(llvm::VectorLibrary::SLEEFGNUABI,46                                             TargetTriple);47    break;48  case VectorLibrary::Darwin_libsystem_m:49    TLII->addVectorizableFunctionsFromVecLib(50        llvm::VectorLibrary::DarwinLibSystemM, TargetTriple);51    break;52  case VectorLibrary::ArmPL:53    TLII->addVectorizableFunctionsFromVecLib(llvm::VectorLibrary::ArmPL,54                                             TargetTriple);55    break;56  case VectorLibrary::AMDLIBM:57    TLII->addVectorizableFunctionsFromVecLib(llvm::VectorLibrary::AMDLIBM,58                                             TargetTriple);59    break;60  default:61    break;62  }63  return TLII;64}65 66std::string getDefaultProfileGenName() {67  return llvm::ProfileCorrelate != InstrProfCorrelator::NONE68             ? "default_%m.proflite"69             : "default_%m.profraw";70}71} // namespace llvm::driver72