Displaying 20 results from an estimated 68 matches for "looprotation".
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 from
&g...
2012 Aug 06
0
[LLVMdev] How to call some transformation passes (LoopRotate and LoopUnroll) from my own pass
...t driver, opt.cpp to see how to do this. You can call addRequired<X> from your pass to force the PassManager to run X before your pass.
If you want to do these transformations within a single pass, then the transformations need to be exposed as a utility. llvm::UnrollLoop() currently is, but LoopRotation is not. LoopRotation could be exposed as a utility (or you could copy the relevant code), but you should try not to do that. The llvm strategy is that loop rotation should do the right thing when it runs before your pass. If loop rotation needs more information to what you want it to do, then you c...
2012 Aug 06
3
[LLVMdev] How to call some transformation passes (LoopRotate and LoopUnroll) from my own pass
Hello,
I wrote my own pass which needs to do some loop unrolling.
I can perform loop unrolling via opt:
opt -mem2reg -loops -loop-simplify -loop-rotate -lcssa -loop-unroll
-unroll-count=50 mytest.bc -o mytest.bc
This command works perfectly.
However, what I really want is to produce the **same behavior** but
from my own pass (i.e., I don't want to use opt). I wrote a Module
pass which
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 each i...
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 a tra...
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
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 gsigna...
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
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
On Feb 7, 2013, at 8:40 AM, Michele Scandale <michele.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
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
Hi 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
2013 Feb 06
0
[LLVMdev] Rotated loop identification
On Feb 4, 2013, at 10:48 AM, Michele Scandale <michele.scandale at gmail.com> wrote:
> Dear all,
>
> I'm working on a late IR target dependent optimization on loops. A part of this
> optimization requires to derive "by hand" the trip-count expression of a given
> loop. In order to handle correctly these cases I need to check if the loop has
> an entry guard
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, %bb3 ] ;
2013 Sep 19
2
[LLVMdev] [Polly] Move Polly's execution later
Hi Tobias,
I am trying to move Polly later.
LLVM provides some predefined ExtensionPointTy:
EP_EarlyAsPossible,
EP_ModuleOptimizerEarly,
EP_LoopOptimizerEnd,
EP_ScalarOptimizerLate,
...
Currently Polly 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
2011 Jan 11
0
[LLVMdev] clang+LLVM fails to compile ctags
On 11.01.2011, at 12:02, Csaba Raduly wrote:
> 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
>
2013 Apr 03
1
[LLVMdev] YSU_Student
Hello,
I wrote my own pass which needs to do some loop unrolling.
I can perform loop unrolling via opt:
opt -mem2reg -loops -loop-simplify -loop-rotate -lcssa -loop-unroll
-unroll-count=50 mytest.bc -o mytest.bc
This command works perfectly.
However, what I really want is to produce the **same behavior** but
from my own pass (i.e., I don't want to use opt). I wrote a Module
pass which