Displaying 20 results from an estimated 2000 matches similar to: "About LoopDeletion and infinite loops ... again! (RFC?)"
2017 Sep 30
0
About LoopDeletion and infinite loops ... again! (RFC?)
On Fri, Sep 29, 2017 at 7:17 PM, Marcello Maggioni via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> Hello!
>
> I read a bunch of discussions about the matter on this very mailing-list
> that are relatively recent or relatively old and I couldn’t find much
> agreement on the matter, so … here again :D
>
> LoopDeletion and infinite loops …
>
> Currently
2017 Sep 30
4
About LoopDeletion and infinite loops ... again! (RFC?)
I see the usecase for mixed language compilation (that’s probably why you fancy something like the side-effect thing instead right?)
BTW if the other proposal passes can we basically assume that if a loop doesn’t have the sideeffect intrinsic in it is then removable?
That patch seems to suggest that in its current state llvm is mostly broken for languages that consider all infinite loops as
2017 Sep 30
0
About LoopDeletion and infinite loops ... again! (RFC?)
On 09/29/2017 10:02 PM, Marcello Maggioni via llvm-dev wrote:
> I see the usecase for mixed language compilation (that’s probably why you fancy something like the side-effect thing instead right?)
It's also about not having parameterized semantics for the IR. I'd
certainly find that undesirable. We could make it part of datalayout, or
similar, but that has problems with
2017 Sep 30
0
About LoopDeletion and infinite loops ... again! (RFC?)
On Fri, Sep 29, 2017 at 8:02 PM, Marcello Maggioni <mmaggioni at apple.com> wrote:
> I see the usecase for mixed language compilation (that’s probably why you fancy something like the side-effect thing instead right?)
>
That could be a reason, but it wasn't my main motivation. Basically
I'm worried about having per-passes specific flags for non-debug
purposes.
Also, whether
2010 Nov 24
0
[LLVMdev] how to eliminate dead infinite loops?
Andrew Clinton wrote:
> Most of my programs contain loops that the LoopDeletion pass is unable
> to remove. It appears that the following code in LoopDeletion.cpp:152
> is the culprit:
>
> ScalarEvolution& SE = getAnalysis<ScalarEvolution>();
> const SCEV *S = SE.getMaxBackedgeTakenCount(L);
> if (isa<SCEVCouldNotCompute>(S))
> return
2010 Nov 23
5
[LLVMdev] how to eliminate dead infinite loops?
Most of my programs contain loops that the LoopDeletion pass is unable
to remove. It appears that the following code in LoopDeletion.cpp:152
is the culprit:
ScalarEvolution& SE = getAnalysis<ScalarEvolution>();
const SCEV *S = SE.getMaxBackedgeTakenCount(L);
if (isa<SCEVCouldNotCompute>(S))
return Changed;
So, LoopDeletion thinks my loops might be infinite so it
2018 Jan 10
1
LoopDeletion and use in unreachable block
Hello All,
I filed a bug https://bugs.llvm.org/show_bug.cgi?id=35884 which I want to fix but I'm in trouble with detecting who is wrong :)
The story is as follows:
LoopDeletion tries to delete an invariant loop which has a def with use in some unreachable block.
The IR is well-formed due to any use in unreachable block is dominated as Verifier states.
LoopDeletion detected the loop as
2010 Nov 24
0
[LLVMdev] how to eliminate dead infinite loops?
On Nov 23, 2010, at 9:22 AM, Andrew Clinton wrote:
> Most of my programs contain loops that the LoopDeletion pass is unable
> to remove. It appears that the following code in LoopDeletion.cpp:152
> is the culprit:
>
> ScalarEvolution& SE = getAnalysis<ScalarEvolution>();
> const SCEV *S = SE.getMaxBackedgeTakenCount(L);
> if
2010 Nov 26
0
[LLVMdev] how to eliminate dead infinite loops?
On 11/25/2010 12:59 PM, Andrew Clinton wrote:
> On 11/24/2010 06:55 PM, Owen Anderson wrote:
>> On Nov 23, 2010, at 9:22 AM, Andrew Clinton wrote:
>>
>>
>>> Most of my programs contain loops that the LoopDeletion pass is unable
>>> to remove. It appears that the following code in LoopDeletion.cpp:152
>>> is the culprit:
>>>
>>>
2010 Nov 24
2
[LLVMdev] how to eliminate dead infinite loops?
On 11/24/2010 03:36 PM, Nick Lewycky wrote:
> Andrew Clinton wrote:
>> Most of my programs contain loops that the LoopDeletion pass is unable
>> to remove. It appears that the following code in LoopDeletion.cpp:152
>> is the culprit:
>>
>> ScalarEvolution& SE = getAnalysis<ScalarEvolution>();
>> const SCEV *S =
2010 Nov 25
3
[LLVMdev] how to eliminate dead infinite loops?
On 11/24/2010 06:55 PM, Owen Anderson wrote:
> On Nov 23, 2010, at 9:22 AM, Andrew Clinton wrote:
>
>
>> Most of my programs contain loops that the LoopDeletion pass is unable
>> to remove. It appears that the following code in LoopDeletion.cpp:152
>> is the culprit:
>>
>> ScalarEvolution& SE = getAnalysis<ScalarEvolution>();
>>
2020 Sep 04
2
[RFC] Introducing the maynotprogress IR attribute
Hi All,
We’ve prepared a new function attribute `maynotprogress` and loop
metadata `llvm.loop.mustprogress` in order to better formalize the way
LLVM deals with infinite loops without observable side-effects. This
is deeply related to the implicit forward progress requirements in the
IR.
Background:
There has been a demonstrated need for clarity within the forward
progress requirements in LLVM
2020 Sep 05
4
[RFC] Introducing the maynotprogress IR attribute
On 9/4/20 7:39 PM, Hal Finkel via llvm-dev wrote:
>
> On 9/4/20 6:31 PM, Atmn Patel via llvm-dev wrote:
>> Hi All,
>>
>> We’ve prepared a new function attribute `maynotprogress` and loop
>> metadata `llvm.loop.mustprogress` in order to better formalize the way
>> LLVM deals with infinite loops without observable side-effects. This
>> is deeply
2010 Nov 24
0
[LLVMdev] how to eliminate dead infinite loops?
On Nov 24, 2010, at 1:23 PM, Andrew Clinton wrote:
>
> FYI, removing the ScalarEvolution conditional in the LoopDeletion code
> (and copying the algorithm to my own loop deletion pass) seems to
> correctly handle the elimination of infinite loops. However I'd still
> like to find a way to do this with standard passes if possible.
There is no way to do this with the
2010 Nov 26
1
[LLVMdev] how to eliminate dead infinite loops?
Andrew Clinton wrote:
> On 11/25/2010 12:59 PM, Andrew Clinton wrote:
>> On 11/24/2010 06:55 PM, Owen Anderson wrote:
>>> On Nov 23, 2010, at 9:22 AM, Andrew Clinton wrote:
>>>
>>>
>>>> Most of my programs contain loops that the LoopDeletion pass is unable
>>>> to remove. It appears that the following code in LoopDeletion.cpp:152
2010 Nov 28
5
[LLVMdev] how to eliminate dead infinite loops?
On Nov 24, 2010, at 3:58 PM, Owen Anderson wrote:
>
> On Nov 24, 2010, at 1:23 PM, Andrew Clinton wrote:
>>
>> FYI, removing the ScalarEvolution conditional in the LoopDeletion code
>> (and copying the algorithm to my own loop deletion pass) seems to
>> correctly handle the elimination of infinite loops. However I'd still
>> like to find a way to do
2017 Oct 27
3
Infinite loops with no side effects
Hello,
This email picks up the thread that to my knowledge was last discussed here:
http://lists.llvm.org/pipermail/llvm-dev/2015-July/088103.html
In brief, infinite loops containing no side effects produce undefined
behavior in C++ (and C in some cases), however in other languages, they
have fully defined behavior. LLVM's optimizer currently assumes that
infinite loops eventually terminate
2017 Oct 27
2
Infinite loops with no side effects
Personally, I don't like the side effect intrinsic. It will pollute all the
IR generated by non-C frontends. What most of these frontends really want
is just a switch to disable a targeted set of optimizations.
One thing I like about the function attribute idea is that it's
conservatively correct to discard it when doing cross-language inlining. It
just becomes something that C-family
2010 Nov 29
0
[LLVMdev] how to eliminate dead infinite loops?
Hi Chris,
>>> FYI, removing the ScalarEvolution conditional in the LoopDeletion code
>>> (and copying the algorithm to my own loop deletion pass) seems to
>>> correctly handle the elimination of infinite loops. However I'd still
>>> like to find a way to do this with standard passes if possible.
>>
>> There is no way to do this with the
2008 May 07
2
[LLVMdev] -loop-deletion commandline option inconsistent?
Hi,
the newly added LoopDeletion pass uses loop-deletion as it's name (and thus
commandline option for opt). Looking at the other loop passes (loop-rotate,
loop-unroll, loop-reduce), perhaps loop-delete would be a better name?
Gr.
Matthijs
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: