diff --git a/llvm/lib/Transforms/Scalar/Scalarizer.cpp b/llvm/lib/Transforms/Scalar/Scalarizer.cpp --- a/llvm/lib/Transforms/Scalar/Scalarizer.cpp +++ b/llvm/lib/Transforms/Scalar/Scalarizer.cpp @@ -50,6 +50,10 @@ #define DEBUG_TYPE "scalarizer" +static cl::opt + DisableScalarizer("disable-scalarizer", cl::init(false), cl::Hidden, + cl::desc("Don't execute the scalarizer pass")); + static cl::opt ClScalarizeVariableInsertExtract( "scalarize-variable-insert-extract", cl::init(true), cl::Hidden, cl::desc("Allow the scalarizer pass to scalarize " @@ -1011,6 +1015,9 @@ } PreservedAnalyses ScalarizerPass::run(Function &F, FunctionAnalysisManager &AM) { + if (DisableScalarizer) + return PreservedAnalyses::all(); + Module &M = *F.getParent(); unsigned ParallelLoopAccessMDKind = M.getContext().getMDKindID("llvm.mem.parallel_loop_access");