Path: blob/main/contrib/llvm-project/llvm/lib/Frontend/Driver/CodeGenOptions.cpp
35266 views
//===--- CodeGenOptions.cpp - Shared codegen option handling --------------===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//78#include "llvm/Frontend/Driver/CodeGenOptions.h"9#include "llvm/Analysis/TargetLibraryInfo.h"10#include "llvm/TargetParser/Triple.h"1112namespace llvm::driver {1314TargetLibraryInfoImpl *createTLII(llvm::Triple &TargetTriple,15driver::VectorLibrary Veclib) {16TargetLibraryInfoImpl *TLII = new TargetLibraryInfoImpl(TargetTriple);1718using VectorLibrary = llvm::driver::VectorLibrary;19switch (Veclib) {20case VectorLibrary::Accelerate:21TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::Accelerate,22TargetTriple);23break;24case VectorLibrary::LIBMVEC:25TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::LIBMVEC_X86,26TargetTriple);27break;28case VectorLibrary::MASSV:29TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::MASSV,30TargetTriple);31break;32case VectorLibrary::SVML:33TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::SVML,34TargetTriple);35break;36case VectorLibrary::SLEEF:37TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::SLEEFGNUABI,38TargetTriple);39break;40case VectorLibrary::Darwin_libsystem_m:41TLII->addVectorizableFunctionsFromVecLib(42TargetLibraryInfoImpl::DarwinLibSystemM, TargetTriple);43break;44case VectorLibrary::ArmPL:45TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::ArmPL,46TargetTriple);47break;48case VectorLibrary::AMDLIBM:49TLII->addVectorizableFunctionsFromVecLib(TargetLibraryInfoImpl::AMDLIBM,50TargetTriple);51break;52default:53break;54}55return TLII;56}5758} // namespace llvm::driver596061