xref: /llvm-project/llvm/lib/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizerPassBuilder.cpp (revision 2e8ad49e7cffb22a169c22d02607708c71a80c65)
1*2e8ad49eSJorge Gorbe Moya #include "llvm/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizerPassBuilder.h"
2*2e8ad49eSJorge Gorbe Moya 
3*2e8ad49eSJorge Gorbe Moya #include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.h"
4*2e8ad49eSJorge Gorbe Moya #include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/NullPass.h"
5*2e8ad49eSJorge Gorbe Moya #include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/PrintInstructionCount.h"
6*2e8ad49eSJorge Gorbe Moya #include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/RegionsFromMetadata.h"
7*2e8ad49eSJorge Gorbe Moya 
8*2e8ad49eSJorge Gorbe Moya namespace llvm::sandboxir {
9*2e8ad49eSJorge Gorbe Moya 
10*2e8ad49eSJorge Gorbe Moya std::unique_ptr<sandboxir::RegionPass>
11*2e8ad49eSJorge Gorbe Moya SandboxVectorizerPassBuilder::createRegionPass(StringRef Name, StringRef Args) {
12*2e8ad49eSJorge Gorbe Moya #define REGION_PASS(NAME, CLASS_NAME)                                          \
13*2e8ad49eSJorge Gorbe Moya   if (Name == NAME) {                                                          \
14*2e8ad49eSJorge Gorbe Moya     assert(Args.empty() && "Unexpected arguments for pass '" NAME "'.");       \
15*2e8ad49eSJorge Gorbe Moya     return std::make_unique<CLASS_NAME>();                                     \
16*2e8ad49eSJorge Gorbe Moya   }
17*2e8ad49eSJorge Gorbe Moya // TODO: Support region passes with params.
18*2e8ad49eSJorge Gorbe Moya #include "Passes/PassRegistry.def"
19*2e8ad49eSJorge Gorbe Moya   return nullptr;
20*2e8ad49eSJorge Gorbe Moya }
21*2e8ad49eSJorge Gorbe Moya 
22*2e8ad49eSJorge Gorbe Moya std::unique_ptr<sandboxir::FunctionPass>
23*2e8ad49eSJorge Gorbe Moya SandboxVectorizerPassBuilder::createFunctionPass(StringRef Name,
24*2e8ad49eSJorge Gorbe Moya                                                  StringRef Args) {
25*2e8ad49eSJorge Gorbe Moya #define FUNCTION_PASS_WITH_PARAMS(NAME, CLASS_NAME)                            \
26*2e8ad49eSJorge Gorbe Moya   if (Name == NAME)                                                            \
27*2e8ad49eSJorge Gorbe Moya     return std::make_unique<CLASS_NAME>(Args);
28*2e8ad49eSJorge Gorbe Moya #include "Passes/PassRegistry.def"
29*2e8ad49eSJorge Gorbe Moya   return nullptr;
30*2e8ad49eSJorge Gorbe Moya }
31*2e8ad49eSJorge Gorbe Moya 
32*2e8ad49eSJorge Gorbe Moya } // namespace llvm::sandboxir
33