search for: loopunrollpass

Displaying 20 results from an estimated 33 matches for "loopunrollpass".

2012 Apr 03
1
[LLVMdev] Possible typo in LoopUnrollPass.cpp
hi, In "LoopUnrollPass.cpp", when trying to reduce unroll count to meet the unroll threshold requirement in line 200 and line 206, variable "CurrentThreshold" is used in the computation, instead of the variable "Threshold", which is defined by: // Determine the current unrolling threshold. W...
2015 May 02
5
[LLVMdev] Modifying LoopUnrollingPass
Hi Zhoulai, I am trying to modify "LoopUnrollPass" in llvm which produces multiple copies of loop equal to the loop unroll factor.Currently, using multicore architecture, say 3 for example and the execution goes like: for 3 cores if there are 9 iterations of loop core instruction 1 0,3,6 2 1,4,7...
2010 Jun 04
0
[LLVMdev] Speculative phi elimination at the top of a loop?
Hi, On Fri, Jun 4, 2010 at 5:18 AM, Pekka Nikander <pekka.nikander at nomadiclab.com> wrote: >  Would the best way be to add an option to -loop-unroll, and hack away at lib/Transforms/Utils/LoopUnroll.cpp? Instead, the better alternative is to write another pass similar to LoopUnrollPass.cpp (say LoopPeelPass.cpp) and add new option -loop-peel. The new pass could use llvm::UnrollLoop() utility function. Feel free to adjust this utility function if required, but the core utility function should be used by both passes. - Devang
2014 Aug 19
2
[LLVMdev] [RFC] Removing static initializers for command line options
...They > should be an option passed to the constructor of the pass. It may > also involve exposing it to the C api and the PassManagerBuilder. How would you suggest we expose cl::opts for modifying these options in tools like opt? A good example of this type of option would be the options in LoopUnrollPass.cpp. > > * Options that we use during development of llvm. They are useful for > testing, tracking a bug or enabling/disabling a feature that is still > under development. These can use a static storage since external > clients like webkit will never change them. We do have to avoi...
2011 Jun 16
2
[LLVMdev] Loop Unroll Factor
Dear all, What is the default loop-unroll factor in llvm? How can we specify our own unroll-factor? -Suresh
2011 Jun 16
0
[LLVMdev] Loop Unroll Factor
Suresh, On Jun 15, 2011, at 9:13 PM, Suresh Purini wrote: > Dear all, > > What is the default loop-unroll factor in llvm? How can we specify > our own unroll-factor? Here "we" means end user or a compiler developer ? The threshold is 150, see LoopUnrollPass.cpp - Devang
2011 Jan 27
2
[LLVMdev] Passing command line arguments to optimization passes
...r example, I'd like to have a -optStrength parameter, that can be given to all of my passes simultaneously. Thanks a lot, Guy Arnaud Allard de Grandmaison wrote: > > Hi Harel, > > Several existing passes can take command line arguments. Have a look at > lib/Transforms/Scalar/LoopUnrollPass.cpp for example. Its command line > arguments are defined using the cl::opt objects. > > Best regards, > -- > Arnaud de Grandmaison > ________________________________ > From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On > Behalf Of Harel Cain &g...
2011 Jan 27
0
[LLVMdev] Passing command line arguments to optimization passes
Hi Harel, Several existing passes can take command line arguments. Have a look at lib/Transforms/Scalar/LoopUnrollPass.cpp for example. Its command line arguments are defined using the cl::opt objects. Best regards, -- Arnaud de Grandmaison ________________________________ From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Harel Cain Sent: Thursday, January 27, 2011 10:05 AM...
2011 Jan 27
2
[LLVMdev] Passing command line arguments to optimization passes
Hi all, I was wondering if there's any way to pass command line arguments to LLVM optimization passes when run through the opt tool. For example, suppose I register called MyPass, then I want to run opt -load libMyPass.so -MyPass 3 < input.bc and have "3" be available to MyPass as a kind of argv argumnet through some method. Or does it take a major rewrite of the opt tool
2020 May 14
3
LLVM's loop unroller & llvm.loop.parallel_accesses
...l Kruse <llvmdev at meinersbur.de> wrote: > llvm.loop.parallel_accesses does not imply that these accesses from > different iterations are not aliasing. Examples where an access are > parallel are that the accesses are atomic or read-only from a specific > location. > > The LoopUnrollPass might deduce that non-atomic stores are necessarily > not aliasing (when not using transactional memory), but I don't think > we can do this for all the read accesses. Would that be sufficiently > useful? > > Michael > > > Am Do., 14. Mai 2020 um 15:11 Uhr schrieb Hendri...
2005 Jan 19
1
[LLVMdev] Constant Propagation Problem
...ctionCombiningPass CFGSimplificationPass RaisePointerReferencesPass TailDuplicationPass CFGSimplificationPass ScalarReplAggregatesPass InstructionCombiningPass ReassociatePass InstructionCombiningPass TailCallEliminationPass CFGSimplificationPass LICMPass InstructionCombiningPass IndVarSimplifyPass LoopUnrollPass InstructionCombiningPass GCSEPass SCCPPass InstructionCombiningPass DeadStoreEliminationPass AggressiveDCEPass CFGSimplificationPass -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: optimizeme.txt URL: <http://lists.llvm.org/pipermail/llvm-d...
2011 Jan 28
0
[LLVMdev] Passing command line arguments to optimization passes
...For example, I'd like to have a -optStrength parameter, that can be given to all of my passes simultaneously. Thanks a lot, Guy Arnaud Allard de Grandmaison wrote: > > Hi Harel, > > Several existing passes can take command line arguments. Have a look at > lib/Transforms/Scalar/LoopUnrollPass.cpp for example. Its command line > arguments are defined using the cl::opt objects. > > Best regards, > -- > Arnaud de Grandmaison > ________________________________ > From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On > Behalf Of Harel Cain &gt...
2010 Jun 04
5
[LLVMdev] Speculative phi elimination at the top of a loop?
I am working on heavily optimising unusually static C++ code, and have encountered a situation where I basically want an optimiser that would speculatively unroll a loop to see if the first round of the loop could be optimised further. (I happen to know that it is possible.) The previous optimisations that produce the loop in the first place already do a magical job (relying heavily on constant
2020 May 18
2
LLVM's loop unroller & llvm.loop.parallel_accesses
...>> llvm.loop.parallel_accesses does not imply that these accesses from > >> different iterations are not aliasing. Examples where an access are > >> parallel are that the accesses are atomic or read-only from a specific > >> location. > >> > >> The LoopUnrollPass might deduce that non-atomic stores are necessarily > >> not aliasing (when not using transactional memory), but I don't think > >> we can do this for all the read accesses. Would that be sufficiently > >> useful? > >> > >> Michael > >> >...
2015 May 04
2
[LLVMdev] Modifying LoopUnrollingPass
...o locate this in the code). >>> >>> Michael >>> >>> > On May 2, 2015, at 9:00 AM, yaduveer singh <yaduveer99 at gmail.com> >>> wrote: >>> > >>> > Hi Zhoulai, >>> > >>> > I am trying to modify "LoopUnrollPass" in llvm which produces multiple >>> > copies of loop equal to the loop unroll factor.Currently, using >>> multicore >>> > architecture, say 3 for example and the execution goes like: >>> > >>> > for 3 cores if there are 9 iterations of...
2020 May 14
3
LLVM's loop unroller & llvm.loop.parallel_accesses
Hi, in our backend, which is unfortunately not upstreamed, we are relying on llvm.loop.parallel_accesses metadata for certain passes like software pipelining so we can re-order instructions. Ideally, we would want the loop unroller to support the notion of the loop's parallelism in its pre-unrolled version. This probably should happen by propagating !alias.scope and !alias metadata. Is there
2017 Feb 01
2
Strange opt error in Value ("replaceAllUses of value with new value of different type!" assertion failure)
...Info const&, llvm::AssumptionCache&, bool, llvm::Optional<unsigned int>, llvm::Optional<unsigned int>, llvm::Optional<bool>, l #12 0x00007fd937ec8415 (anonymous namespace)::LoopUnroll::runOnLoop(llvm::Loop*, llvm::LPPassManager&) /llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp:1019:0 #13 0x00007fd93a11c695 llvm::LPPassManager::runOnFunction(llvm::Function&) /llvm/lib/Analysis/LoopPass.cpp:200:0 #14 0x00007fd939759035 llvm::FPPassManager::runOnFunction(llvm::Function&) /llvm/lib/IR/LegacyPassManager.cpp:1526:0 #15 0x00007fd9397591e...
2015 Oct 16
2
question about llvm partial unrolling/runtime unrolling
...> 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...
2020 May 19
2
LLVM's loop unroller & llvm.loop.parallel_accesses
...y that these accesses from > >> >> different iterations are not aliasing. Examples where an access are > >> >> parallel are that the accesses are atomic or read-only from a > specific > >> >> location. > >> >> > >> >> The LoopUnrollPass might deduce that non-atomic stores are > necessarily > >> >> not aliasing (when not using transactional memory), but I don't think > >> >> we can do this for all the read accesses. Would that be sufficiently > >> >> useful? > >> >>...
2020 May 22
4
Loop Unroll
Hi, I'm interesting in find a pass for loop unrolling in LLVM compiler. I tried opt --loop-unroll --unroll-count=4, but it don't work well. What pass I can used and how? I would also like to know if there is any way to mark the loops that I want them to be unroll Thanks you. -------------- next part -------------- An HTML attachment was scrubbed... URL: