search for: looprotate

Displaying 20 results from an estimated 68 matches for "looprotate".

Did you mean: logrotate
2012 Feb 03
1
[LLVMdev] Issues with the llvm.stackrestore intrinsic - now LoopRotation handling of alloca
2012/2/3 Patrik Hägglund <patrik.h.hagglund at ericsson.com>: > Hi, > > I've tracked the first problem (mentioned in my previous email, quoted > below) down further, ending up in the handling of alloca in > LoopRotation.cpp (from trunk): > >      // If the instruction's operands are invariant and it doesn't read > or write >      // memory, then it is
2012 Aug 06
0
[LLVMdev] How to call some transformation passes (LoopRotate and LoopUnroll) from my own pass
...t; AU.addRequired<LoopInfo>(); > AU.addPreserved<LoopInfo>(); > AU.addRequiredID(LoopSimplifyID); > 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(); > > &g...
2012 Aug 06
3
[LLVMdev] How to call some transformation passes (LoopRotate and LoopUnroll) from my own pass
...Usage(AnalysisUsage& AU) const { AU.addRequired<LoopInfo>(); AU.addPreserved<LoopInfo>(); AU.addRequiredID(LoopSimplifyID); 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?,...
2012 Feb 03
0
[LLVMdev] Issues with the llvm.stackrestore intrinsic - now LoopRotation handling of alloca
Hi, I've tracked the first problem (mentioned in my previous email, quoted below) down further, ending up in the handling of alloca in LoopRotation.cpp (from trunk): // If the instruction's operands are invariant and it doesn't read or write // memory, then it is safe to hoist. Doing this doesn't change the order of // execution in the preheader, but does
2018 Mar 17
0
[NFC] Restructuring LoopRoration.cpp to create Loop Rotation Pass with Loop Rotation Utility Interface
...stead of just the relevant loops. Change Made ========== We provide a utility interface for the loop rotation so that the loop rotation can be called on demand. The changeset is as follows: 1) Create a new file lib/Transforms/Utils/LoopRotationUtils.cpp and move the main implementation of class LoopRotate into this file. 2) Create a new file llvm/include/Transform/Utils/LoopRotationUtils.h with the interface LoopRotation(…). 3) Original LoopRotation.cpp is changed to use the utility function LoopRotation in LoopRotationUtils.cpp. This is done in the same way community did for mem-to-reg implementa...
2020 Mar 21
4
questionabout loop rotation
Hi Stefanos, Thanks for your comments. I added both as reviewer. > One question though. Are you sure that this: > This helps with LICM when instructions inside a conditional is loop invariant  > is not achieved with the current LoopRotate pass? Because AFAIK, it does. Basically it inserts > a guard (that branches to the preheader) and then passes like LICM hoist invariant instructions to the preheader. > Also, it does itself host some invariant instructions but only on the header and very limited ones. Currently LICM does som...
2011 Jan 11
2
[LLVMdev] clang+LLVM fails to compile ctags
...86_64-unknown-linux-gnu #include "..." search starts here: #include <...> search starts here: /usr/local/include /home/csaba/bin/../lib/clang/2.9/include /usr/include End of search list. clang: /home/csaba/LLVM/llvm/lib/Transforms/Scalar/LoopRotation.cpp:343: bool<unnamed>::LoopRotate::rotateLoop(llvm::Loop*): Assertion `DidIt && "Block merge failed??"' failed. 0 clang 0x00000000019cbeaf 1 clang 0x00000000019cc9ea 2 libpthread.so.0 0x00007f23a40982e0 3 libc.so.6 0x00007f23a33e09e5 gsignal + 53 4 libc.so.6 0x00007f23a33e1...
2008 Dec 05
3
[LLVMdev] Build errors on trunk for about a week now.
On Fri, Dec 5, 2008 at 1:58 PM, OvermindDL1 <overminddl1 at gmail.com> wrote: > On Fri, Dec 5, 2008 at 1:57 PM, OvermindDL1 <overminddl1 at gmail.com> wrote: >> On Fri, Dec 5, 2008 at 1:52 PM, OvermindDL1 <overminddl1 at gmail.com> wrote: >>> / * snip */ >> >> Actually, rebuilding it makes "debug tblgen" fail with the errors at >> the
2013 Feb 07
2
[LLVMdev] Rotated loop identification
Thanks for your reply. Maybe it wasn't so clear, but the optimization I'm writing is target-dependent and so it's declared inside the target backend and is run after the independent optimizer. So I cannot run my pass just after LoopRotate and before InstCombine. I can still use ScalarEvolution, but the instruction combiner can in some cases simplify the entry guard condition. A small example is the following: ///////////////////////////////////// extern void x(int); int foo_int(int a, int b) { int i; for (i = 0; i < b/2; +...
2014 Oct 16
2
[LLVMdev] RFC: Should we have (something like) -extra-vectorizer-passes in -O2?
Seems that adding -extra-vectorizer-passes doesn't help to vectorizer in my case. LoopRotation re-run does nothing. 2014-10-15 2:54 GMT+04:00 Chandler Carruth <chandlerc at google.com>: > > On Tue, Oct 14, 2014 at 3:50 PM, Hal Finkel <hfinkel at anl.gov> wrote: >> >> > I have and will continue to push >> > back on trying to add it until we at least
2013 Feb 07
0
[LLVMdev] Rotated loop identification
...scandale at gmail.com> wrote: > Thanks for your reply. > > Maybe it wasn't so clear, but the optimization I'm writing is target-dependent > and so it's declared inside the target backend and is run after the independent > optimizer. So I cannot run my pass just after LoopRotate and before InstCombine. > I can still use ScalarEvolution, but the instruction combiner can in some cases > simplify the entry guard condition. > > A small example is the following: > > ///////////////////////////////////// > extern void x(int); > > int foo_int(int a,...
2019 Jul 17
3
Loop Opt WG Meeting Minutes for July 17, 2019
Hi all, Apparently some people had trouble joining today. I also had trouble using the attendee ID provided by webex. I've canceled the meeting series and will be scheduling a new one with an updated link. Please remember to update your calendars with the new invite. My apologies to those who couldn't join today, and to everyone for the churn. Today's Meeting Minutes:
2012 Feb 01
3
[LLVMdev] Issues with the llvm.stackrestore intrinsic
Hi, I have two problems regarding the llvm.stackrestore intrinsic. I'm running on 3.0, but a quick test on trunk also showed the same behavior. First problem: --------------- I have code like: tmp1 = call llvm.stacksave() tmp2 = alloca [do some stuff with tmp2] call llvm.stackrestore(tmp1) [some other stuff] tmp3 = call llvm.stacksave() tmp4 = alloca [do some stuff
2020 Mar 21
2
questionabout loop rotation
hi, I had an implementation of loop-rotation that peels the loop such that each conditional is executed at least once. https://reviews.llvm.org/D22630 This helps with LICM when instructions inside a conditional is loop invariant. The patch has decent number of test cases. All the requested comments were addressed at that time. I'm happy to rebase and put the patch again. -Aditya
2017 Jun 30
2
LoopSimplify pass prevents loop unrolling
...All, In the attached test case there, is an unnested loop with 2 iterations. The loop latch block is terminated by an unconditional branch, so simplifycfg folds the almost empty latch block into its predecessor which is the loop header. This results in an additional backedge in the CFG, so when LoopRotate pass is called it canonicalizes the loop into a nested loop. However, now the loop trip count is unpredictable as the BackedgeTakenCount for the outer loop is not loop invariant. As a result the loop cannot be unrolled. Is this the intended canonicalization for this loop or is the loopsimplify cano...
2013 Feb 06
0
[LLVMdev] Rotated loop identification
...of the analysis that we use to determine trip count and benefits from rotated loops. LLVM never annotates the IR with a history of transformations. You could potentially annotate the LoopInfo analysis, but it will only be preserved within the same LoopPassManager (you would have to run right after LoopRotate). The only robust solution is ScalarEvolution. -Andy
2008 Jul 12
3
[LLVMdev] Little bug in LoopInfo after Rotate?
Hello, I have two for loops (one inside the other), that after indvars, looprotate, etc. (the important here is the loop rotate), is similar to this (I've stripped the real operations): define i32 @f() nounwind { entry: br label %bb1 bb1: ; preds = %bb3, %bb1, %entry %i.0.reg2mem.0.ph = phi i32 [ 0, %entry ], [ %i.0.reg2mem.0.ph, %bb1 ], [ %indvar.next9, %bb...
2013 Sep 19
2
[LLVMdev] [Polly] Move Polly's execution later
...lly uses "EP_EarlyAsPossible" to run as early as possible. As what you suggested: >Instead of removing canonicalization passes, I believe we may want to >move Polly to a later place in the pass manager. Possibly at the >beginning of the loop optimizer right before PM.add(createLoopRotatePass()); I want to move it to the point immediate after someone Loop optimization pass, e.g. MPM.add(createLoopRotatePass()). However no predefined ExtensionPointTy is available for this purpose. Instead, the "EP_ModuleOptimizerEarly" would move Polly before all loop optimization passes....
2011 Jan 11
0
[LLVMdev] clang+LLVM fails to compile ctags
...ote: > clang version 2.9 (trunk 123166) > Target: x86_64-unknown-linux-gnu > Thread model: posix > > Fails to compile ctags 5.8 (also 5.6), specifically eiffel.c: > > $ clang -v -c e.c -O2 -Wno-unused-value > clang version 2.9 (trunk 123166) […] > bool<unnamed>::LoopRotate::rotateLoop(llvm::Loop*): Assertion `DidIt > && "Block merge failed??"' failed. This looks very similar to http://llvm.org/bugs/show_bug.cgi?id=8955 which was a recent regression and was fixed in r123219.
2013 Apr 03
1
[LLVMdev] YSU_Student
...e(AnalysisUsage& AU) const { AU.addRequired<LoopInfo>(); AU.addPreserved<LoopInfo>(); AU.addRequiredID(LoopSimplifyID); 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. how can I do it ?