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