[PATCH] LazyValueInfo: Solve again when overdefined? - Expose ConstantRange

Duncan Sands duncan.sands at gmail.com
Tue Jul 2 04:10:38 PDT 2013


Hi Ahmed,

On 02/07/13 06:45, Ahmed Bougacha wrote:
> Hi all,
>
> LazyValueInfo seems overly conservative by not even looking at a value it set to
> overdefined, solved its LHS, and then came back to.

please don't forget to include the testcases that show that, with your patch,
LVI gets lots of things it didn't get before.  Also, did you measure to see what
the compile time impact is?

Ciao, Duncan.

>
> The oneliner lvi-solve-overdef.diff makes it look at overdefined values again.
> It seems broken though, especially with the comment a few lines down saying that
> it sets it to overdefined "so that cycles will terminate and be conservatively
> correct.”
>
>  From what I read though, if a value is a binop, LVI will look at the LHS,
> figure out its lattice value, and then tell you that the binop is overdefined,
> even though at this point all the needed information is there.
>
> In my (limited) testing, this helps, and doesn’t seem to break anything.
> Insights welcome!
>
>
> The other patch exposes the constant range when available, which, even though
> limited, can be very useful.
>
> Thanks,
>
> -- Ahmed Bougacha
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>




More information about the llvm-commits mailing list