| //===--- 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/IR/SystemLibraries.h" | |
| #include "llvm/TargetParser/Triple.h" | |
| #include "llvm/Transforms/Instrumentation/InstrProfiling.h" | |
| namespace llvm::driver { | |
| llvm::VectorLibrary | |
| convertDriverVectorLibraryToVectorLibrary(llvm::driver::VectorLibrary VecLib) { | |
| switch (VecLib) { | |
| case llvm::driver::VectorLibrary::NoLibrary: | |
| return llvm::VectorLibrary::NoLibrary; | |
| case llvm::driver::VectorLibrary::Accelerate: | |
| return llvm::VectorLibrary::Accelerate; | |
| case llvm::driver::VectorLibrary::Darwin_libsystem_m: | |
| return llvm::VectorLibrary::DarwinLibSystemM; | |
| case llvm::driver::VectorLibrary::LIBMVEC: | |
| return llvm::VectorLibrary::LIBMVEC; | |
| case llvm::driver::VectorLibrary::MASSV: | |
| return llvm::VectorLibrary::MASSV; | |
| case llvm::driver::VectorLibrary::SVML: | |
| return llvm::VectorLibrary::SVML; | |
| case llvm::driver::VectorLibrary::SLEEF: | |
| return llvm::VectorLibrary::SLEEFGNUABI; | |
| case llvm::driver::VectorLibrary::ArmPL: | |
| return llvm::VectorLibrary::ArmPL; | |
| case llvm::driver::VectorLibrary::AMDLIBM: | |
| return llvm::VectorLibrary::AMDLIBM; | |
| } | |
| llvm_unreachable("Unexpected driver::VectorLibrary"); | |
| } | |
| TargetLibraryInfoImpl *createTLII(const llvm::Triple &TargetTriple, | |
| driver::VectorLibrary Veclib) { | |
| return new TargetLibraryInfoImpl( | |
| TargetTriple, convertDriverVectorLibraryToVectorLibrary(Veclib)); | |
| } | |
| std::string | |
| getDefaultProfileGenName(const cl::LibraryOptionsContext &LibraryOptions) { | |
| return isProfileCorrelationEnabled(LibraryOptions) ? "default_%m.proflite" | |
| : "default_%m.profraw"; | |
| } | |
| } // namespace llvm::driver |