1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 12:12:47 +01:00
llvm-mirror/include/llvm/CodeGen/ReplaceWithVeclib.h

37 lines
1.3 KiB
C
Raw Permalink Normal View History

//===- ReplaceWithVeclib.h - Replace vector instrinsics with veclib calls -===//
//
// 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
//
//===----------------------------------------------------------------------===//
//
// Replaces calls to LLVM vector intrinsics (i.e., calls to LLVM intrinsics
// with vector operands) with matching calls to functions from a vector
// library (e.g., libmvec, SVML) according to TargetLibraryInfo.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_CODEGEN_REPLACEWITHVECLIB_H
#define LLVM_CODEGEN_REPLACEWITHVECLIB_H
#include "llvm/IR/PassManager.h"
#include "llvm/InitializePasses.h"
namespace llvm {
struct ReplaceWithVeclib : public PassInfoMixin<ReplaceWithVeclib> {
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
};
// Legacy pass
struct ReplaceWithVeclibLegacy : public FunctionPass {
static char ID;
ReplaceWithVeclibLegacy() : FunctionPass(ID) {
initializeReplaceWithVeclibLegacyPass(*PassRegistry::getPassRegistry());
}
void getAnalysisUsage(AnalysisUsage &AU) const override;
bool runOnFunction(Function &F) override;
};
} // End namespace llvm
#endif // LLVM_CODEGEN_REPLACEWITHVECLIB_H