1 #include "llvm/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizerPassBuilder.h"
2 
3 #include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.h"
4 #include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/NullPass.h"
5 #include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/PackReuse.h"
6 #include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/PrintInstructionCount.h"
7 #include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/PrintRegion.h"
8 #include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/RegionsFromBBs.h"
9 #include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/RegionsFromMetadata.h"
10 #include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/SeedCollection.h"
11 #include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/TransactionAcceptOrRevert.h"
12 #include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/TransactionAlwaysAccept.h"
13 #include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/TransactionAlwaysRevert.h"
14 #include "llvm/Transforms/Vectorize/SandboxVectorizer/Passes/TransactionSave.h"
15 
16 namespace llvm::sandboxir {
17 
18 std::unique_ptr<sandboxir::RegionPass>
createRegionPass(StringRef Name,StringRef Args)19 SandboxVectorizerPassBuilder::createRegionPass(StringRef Name, StringRef Args) {
20 #define REGION_PASS(NAME, CLASS_NAME)                                          \
21   if (Name == NAME) {                                                          \
22     assert(Args.empty() && "Unexpected arguments for pass '" NAME "'.");       \
23     return std::make_unique<CLASS_NAME>();                                     \
24   }
25 // TODO: Support region passes with params.
26 #include "Passes/PassRegistry.def"
27   return nullptr;
28 }
29 
30 std::unique_ptr<sandboxir::FunctionPass>
createFunctionPass(StringRef Name,StringRef Args)31 SandboxVectorizerPassBuilder::createFunctionPass(StringRef Name,
32                                                  StringRef Args) {
33 #define FUNCTION_PASS_WITH_PARAMS(NAME, CLASS_NAME)                            \
34   if (Name == NAME)                                                            \
35     return std::make_unique<CLASS_NAME>(Args);
36 #include "Passes/PassRegistry.def"
37   return nullptr;
38 }
39 
40 } // namespace llvm::sandboxir
41