Displaying 20 results from an estimated 68 matches for "looprot".
Did you mean:
loopro
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 safe to hoist. Doing this doesn't change the
> order of
> // execution in the preheader, but does prevent the instruction fr...
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();
>
>...
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? Ho...
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 prevent the instruction from
// executing in e...
2018 Mar 17
0
[NFC] Restructuring LoopRoration.cpp to create Loop Rotation Pass with Loop Rotation Utility Interface
NFC: Restructuring LoopRoration.cpp to create Loop Rotation Pass with Loop Rotation Utility Interface
=============================================================================
Why this NFC change?
=================
The existing LoopRotation.cpp is implemented as one of loop passes instead of being a utility. The user cannot easily perform the loop rotation selectively (or on demand) under different optimization level. For example, the loop rotation is needed as part of the logic to convert a loop into a loop with bottom test for...
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...
2011 Jan 11
2
[LLVMdev] clang+LLVM fails to compile ctags
...sion 2.9 based upon llvm 2.9svn hosted on x86_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 g...
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 l...
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...
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 c...
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,...
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 passe...
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 ?