Re: Some thoughts on the SSA debate

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Luc,

On 12 September 2017 at 11:48, Luc Van Oostenryck
<luc.vanoostenryck@xxxxxxxxx> wrote:
>> I have some practical reasons for it:
>>
>> a) In the JIT world, we often want fast compilation. I already disable
>> all subsequent phases, and generate code from the initial linear
>> output.
>
> Amusingly, the Simple SSA method was (partially) created for such uses.
> I think you can easily understand why.

Yes, I think the SSA form is important for simplifications. And for
some back-ends such as NanoJIT which do not have optimizations that
LLVM has, the Sparse layer can act as the optimizer. But the issue
right now is that the simplifications are not always correct even with
the new SSA so that I have to disable everything anyway. And having
the phi nodes then actually complicates things.

>
>
> Anyway, I'm more than a bit tired of this 'debate', mainly based by half-truths,
> assumptions and misunderstandings.

Given that there could be major changes in the output (at least for
the initial one) then it is good to make sure that there is a proper
consideration of pros and cons. I am not arguing against the new
implementation at all - just saying it should be a later phase. I also
accept your point that currently there are issues with the SSA
construction, and accept that changes are necessary.

>
> As I have already stated twice, I've put the code for SSSA on hold, focusing
> instead on the *correct* conversion of the *others variables* (since SSSA is
> only concerned by local variables which can never be aliased to anything,
> depending on your code that can be most variables or only a small number).
>
> When I'll have something I'm happy with, I'll evaluate (read: "based
> on numbers")
> if there is any value left to the SSSA method or not. If I see there
> is a significant
> value for some uses, I'll submit it and we can have this 'debate'.
> *If* the code reaches upstream and bothers you too much, as you had
> already asked
> for, you will be able to disable it by simply doing so that the call
> to 'is_promotable()'
> always returns false and you will have all your nice stores & loads.
>
> Meanwhile, the current code is broken and the existing code with SSSA
> *can* be used to test, experiment, evaluate, compare, ...
>

Okay that is exactly what I am giving you - feedback based on using
the new implementation. In fact I started with the assumption that it
solved all the problems, only after using and testing it found that it
didn't, i.e. later simplifications are still causing issues.

Regards
Dibyendu
--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux