Displaying 15 results from an estimated 15 matches for "createloopunrollpass".
2016 Oct 12
2
Loop Unrolling Fail in Simple Vectorized loop
...inner loops fully unrolled.
To inspect further, I added the following to the PassManagerBuilder.cpp to
run some canonicalization routines and redo unrolling again. I have set
partial unrolling on + have a huge threshold + allows expensive loop trip
counts. Still it didn't unroll by 2.
MPM.add(createLoopUnrollPass());
MPM.add(createCFGSimplificationPass());
MPM.add(createLoopSimplifyPass());
MPM.add(createLoopRotatePass(SizeLevel == 2 ? 0 : -1));
MPM.add(createLCSSAPass());
MPM.add(createIndVarSimplifyPass()); // Canonicalize indvars
MPM.add(createLoopUnrollPass());
Digging deeper I found, tha...
2016 Oct 13
2
Loop Unrolling Fail in Simple Vectorized loop
...> To inspect further, I added the following to the PassManagerBuilder.cpp to
> run some canonicalization routines and redo unrolling again. I have set
> partial unrolling on + have a huge threshold + allows expensive loop trip
> counts. Still it didn't unroll by 2.
>
> MPM.add(createLoopUnrollPass());
>
> MPM.add(createCFGSimplificationPass());
>
> MPM.add(createLoopSimplifyPass());
>
> MPM.add(createLoopRotatePass(SizeLevel == 2 ? 0 : -1));
>
> MPM.add(createLCSSAPass());
>
> MPM.add(createIndVarSimplifyPass()); // Canonicalize indvars
>
> MPM.add(...
2008 Aug 11
2
[LLVMdev] Applying different Optimizations for different Functions - Questions?
...rrent2 = (*CurFunc2);
cerr << "Dead Store Eliminations" << std::endl;
DeadStoreElim = createDeadStoreEliminationPass();
DeadStoreElim->runOnFunction(Current1);
cerr << "Loop Unroll" << std::endl;
LPPM = new LPPassManager(1);
UnrollLoops = createLoopUnrollPass();
LPPM->add(UnrollLoops);
LPPM->runOnFunction(Current2);
LPPM->releaseMemory();
delete LPPM;
LPPM = NULL;
return true;
}
This tool compiles successfully, but I got errors when I apply it onto
a program.
DeadStoreElim = createDeadStoreEliminationPass();
DeadStoreElim->...
2016 Oct 13
2
Loop Unrolling Fail in Simple Vectorized loop
...lowing to the PassManagerBuilder.cpp
>>> to run some canonicalization routines and redo unrolling again. I have set
>>> partial unrolling on + have a huge threshold + allows expensive loop trip
>>> counts. Still it didn't unroll by 2.
>>>
>>> MPM.add(createLoopUnrollPass());
>>>
>>> MPM.add(createCFGSimplificationPass());
>>>
>>> MPM.add(createLoopSimplifyPass());
>>>
>>> MPM.add(createLoopRotatePass(SizeLevel == 2 ? 0 : -1));
>>>
>>> MPM.add(createLCSSAPass());
>>>
>>> MPM.ad...
2012 Aug 06
3
[LLVMdev] How to call some transformation passes (LoopRotate and LoopUnroll) from my own pass
...AU.addPreservedID(LoopSimplifyID);
AU.addRequiredID(LCSSAID);
AU.addPreservedID(LCSSAID);
}
However, I couldn't figure out how to call the LoopRotate and
LoopUnroll passes since I cannot use addRequiredID or addRequired for
these two transformations.
In Scalar.h, I found:
> Pass *createLoopUnrollPass(int Threshold = -1, int Count = -1, int AllowPartial = -1);
> Pass *createLoopRotatePass();
Is to call these methods the way to go? How?, can somebody show me an
excerpt?
P.S. I tried hard on Google but I couldn't find anything related.
Thanks!
Jorge
2018 Aug 09
3
Legacy Loop Pass Manager question
...UnrollAndJam) {
// Unroll and Jam. We do this before unroll but need to be in a
separate
// loop pass manager in order for the outer loop to be processed by
// unroll and jam before the inner loop is unrolled.
MPM.add(createLoopUnrollAndJamPass(OptLevel));
}
MPM.add(createLoopUnrollPass(OptLevel)); // Unroll small loops
I see:
Loop-Closed SSA Form Pass
Loop Pass Manager
Unroll and Jam loops
Loop Pass Manager
Unroll loops
Lazy Branch Probability Analysis
Here two different loop pass managers were created. What is the difference
in betwee...
2015 Oct 12
2
question about llvm partial unrolling/runtime unrolling
...t to do is to turn
loop (n)
{
<loop body>
}
into
loop (n/4)
{
<loop body>
<loop body>
<loop body>
<loop body>
}
loop (n%4)
{
<loop body>
}
I set allowPartial and Runtime to both 1 (
llvm::createLoopUnrollPass(Threshold, count, 1, 1) )
Also overload the UnrollingPreferences structure to gives values to all
the Partial* members, but the loop still doesn't unroll.
The unrolling process hits this code in LoopUnrollRuntime.cpp
// Only unroll loops with a computable trip count and the trip count needs...
2015 Oct 16
2
question about llvm partial unrolling/runtime unrolling
...o
>
> loop (n/4)
> {
> <loop body>
> <loop body>
> <loop body>
> <loop body>
> }
> loop (n%4)
> {
> <loop body>
> }
>
> I set allowPartial and Runtime to both 1 (
> llvm::createLoopUnrollPass(Threshold, count, 1, 1) )
> Also overload the UnrollingPreferences structure to gives values to all
> the Partial* members, but the loop still doesn't unroll.
>
> The unrolling process hits this code in LoopUnrollRuntime.cpp
>
> // Only unroll loops with a computable trip co...
2012 Aug 06
0
[LLVMdev] How to call some transformation passes (LoopRotate and LoopUnroll) from my own pass
...iredID(LCSSAID);
> AU.addPreservedID(LCSSAID);
> }
>
> However, I couldn't figure out how to call the LoopRotate and
> LoopUnroll passes since I cannot use addRequiredID or addRequired for
> these two transformations.
>
> In Scalar.h, I found:
>
>> Pass *createLoopUnrollPass(int Threshold = -1, int Count = -1, int AllowPartial = -1);
>> Pass *createLoopRotatePass();
>
>
> Is to call these methods the way to go? How?, can somebody show me an
> excerpt?
The create*Pass methods give you a Pass instance that you can add to a pass manager. If you're...
2006 Sep 03
0
[LLVMdev] llvm-gcc4: Enable various optimizations at -O1/-O2
...PerModulePasses->add(createLoopUnswitchPass()); //
Unswitch loops.
+ PerModulePasses->add(createInstructionCombiningPass()); // Clean
up after LICM/reassoc
+ PerModulePasses->add(createIndVarSimplifyPass()); //
Canonicalize indvars
+ PerModulePasses->add(createLoopUnrollPass()); // Unroll
small loops
+ PerModulePasses->add(createInstructionCombiningPass()); // Clean
up after the unroller
+
+ if (optimize > 2)
+ PerModulePasses->add(createLoadValueNumberingPass()); // GVN
for load instructions
+
+ PerModulePasses->add(createGC...
2019 May 13
2
Is it possible to reproduce the result of opt -O3 manually?
I think this has to do with how the pass manager is populated when we give
-O3 vs when we give particular pass names.
Some passes have multiple createXYZPass() methods that accept arguments
too. These methods call non-default pass constructors, which in turn cause
the passes to behave in a different manner.
eg:
Pass *llvm::createLICMPass() { return new LegacyLICMPass(); }
Pass
2013 Jul 28
0
[LLVMdev] IR Passes and TargetTransformInfo: Straw Man
...); // Recognize idioms like memset.
+ PM.add(createLoopDeletionPass()); // Delete dead loops
+
+ if (/*LoopVectorize &&*/ OptLevel > 1 && SizeLevel < 2)
+ PM.add(createLoopVectorizePass());
+
+ if (!DisableUnrollLoops)
+ PM.add(createLoopUnrollPass()); // Unroll small loops
+
+ addExtensionsToPM(EP_LoopOptimizerEnd, PM);
+
+ if (OptLevel > 1)
+ PM.add(createGVNPass()); // Remove redundancies
+
+ PM.add(createInstructionCombiningPass());
+ PM.add(createDeadStoreEliminationPass()); // Dele...
2013 Jul 18
3
[LLVMdev] IR Passes and TargetTransformInfo: Straw Man
Andy and I briefly discussed this the other day, we have not yet got
chance to list a detailed pass order
for the pre- and post- IPO scalar optimizations.
This is wish-list in our mind:
pre-IPO: based on the ordering he propose, get rid of the inlining (or
just inline tiny func), get rid of
all loop xforms...
post-IPO: get rid of inlining, or maybe we still need it, only
2011 Apr 05
3
[LLVMdev] Building LLVM on Solaris/Sparc
...erts/GraphPrinters.o
llvm::PassManager::add(llvm::Pass*)
/n/fs/scratch/tpondich/ParallelAssert/llvm-objects/tools/opt/Debug+Asserts/opt.o
vtable for llvm::cl::opt<bool, false, llvm::cl::parser<bool>
>/n/fs/scratch/tpondich/ParallelAssert/llvm-objects/tools/opt/Debug+Asserts/opt.o
llvm::createLoopUnrollPass()
/n/fs/scratch/tpondich/ParallelAssert/llvm-objects/tools/opt/Debug+Asserts/opt.o
llvm::createLoopUnswitchPass(bool)
/n/fs/scratch/tpondich/ParallelAssert/llvm-objects/tools/opt/Debug+Asserts/opt.o
llvm::SMDiagnostic::Print(char const*, llvm::raw_ostream&)
const/n/fs/scratch/tpondich/Paralle...
2007 Apr 30
1
[LLVMdev] llvm-gcc build broken
.../compiler/llvm-gcc/gcc/llvm-backend.cpp:322: error:
`createLoopUnswitchPass' was not declared in this scope
/projects/compiler/llvm-gcc/gcc/llvm-backend.cpp:324: error:
`createIndVarSimplifyPass' was not declared in this scope
/projects/compiler/llvm-gcc/gcc/llvm-backend.cpp:326: error:
`createLoopUnrollPass' was not declared in this scope
/projects/compiler/llvm-gcc/gcc/llvm-backend.cpp:328: error:
`createLoadValueNumberingPass' was not declared in this scope
/projects/compiler/llvm-gcc/gcc/llvm-backend.cpp:329: error:
`createGCSEPass' was not declared in this scope
/projects/compiler/ll...