mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-26 07:24:25 +00:00
opt: Mirror vectorization presets of clang
clang enables vectorization at optimization levels > 1 and size level < 2. opt should behave similarily. Loop vectorization and SLP vectorization can be disabled with the flags -disable-(loop/slp)-vectorization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196294 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -139,6 +139,16 @@ static cl::opt<bool>
|
||||
DisableLoopUnrolling("disable-loop-unrolling",
|
||||
cl::desc("Disable loop unrolling in all relevant passes"),
|
||||
cl::init(false));
|
||||
static cl::opt<bool>
|
||||
DisableLoopVectorization("disable-loop-vectorization",
|
||||
cl::desc("Disable the loop vectorization pass"),
|
||||
cl::init(false));
|
||||
|
||||
static cl::opt<bool>
|
||||
DisableSLPVectorization("disable-slp-vectorization",
|
||||
cl::desc("Disable the slp vectorization pass"),
|
||||
cl::init(false));
|
||||
|
||||
|
||||
static cl::opt<bool>
|
||||
DisableSimplifyLibCalls("disable-simplify-libcalls",
|
||||
@ -461,8 +471,10 @@ static void AddOptimizationPasses(PassManagerBase &MPM,FunctionPassManager &FPM,
|
||||
Builder.DisableUnrollLoops = (DisableLoopUnrolling.getNumOccurrences() > 0) ?
|
||||
DisableLoopUnrolling : OptLevel == 0;
|
||||
|
||||
Builder.LoopVectorize = OptLevel > 1 && SizeLevel < 2;
|
||||
Builder.SLPVectorize = true;
|
||||
Builder.LoopVectorize =
|
||||
DisableLoopVectorization ? false : OptLevel > 1 && SizeLevel < 2;
|
||||
Builder.SLPVectorize =
|
||||
DisableSLPVectorization ? false : OptLevel > 1 && SizeLevel < 2;
|
||||
|
||||
Builder.populateFunctionPassManager(FPM);
|
||||
Builder.populateModulePassManager(MPM);
|
||||
|
Reference in New Issue
Block a user