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