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
16namespace llvm::sandboxir {
17
18std::unique_ptr<sandboxir::RegionPass>
19SandboxVectorizerPassBuilder::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
30std::unique_ptr<sandboxir::FunctionPass>
31SandboxVectorizerPassBuilder::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