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)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 30 std::unique_ptr<sandboxir::FunctionPass> createFunctionPass(StringRef Name,StringRef Args)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