41 lines · cpp
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::sandboxir41