[llvm-dev] RFC: Killing undef and spreading poison

Nuno Lopes via llvm-dev llvm-dev at lists.llvm.org
Tue Oct 25 15:12:15 PDT 2016


> On Tue, Oct 25, 2016 at 10:44 AM, Daniel Berlin via llvm-dev 
> <llvm-dev at lists.llvm.org> wrote:
>> Easier is a relative term.
>> I expect optimally choosing  which freezes to eliminate where, etc, 
>> reduces to a covering problem variant (or just straight ILP) :)
>
>
> I think it's fine for GVN to fold them all to the same thing. The only 
> difference between freeze(poison) and zero is that you can use a 
> pre-existing register like RBP or RSP that says constant across the 
> lifetime of the function so you don't need to materialize a zero if you 
> don't have one already.

That's clever! :)
In our prototype we do the naive thing: reserve an arbitrary register for 
each freeze (without materializing anything). Your solution neatly reduces 
register pressure.
Nuno 



More information about the llvm-dev mailing list