[llvm-dev] Interprocedural DSE for -ftrivial-auto-var-init

JF Bastien via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 15 13:55:24 PDT 2019

> On Apr 15, 2019, at 1:51 PM, Vitaly Buka <vitalybuka at google.com> wrote:
> Hi JF,
>    I've heard that you are interested DSE improvements and maybe we need to be in sync.
>    So far I experimented with following DSE improvements:
> * Cross-block DSE, it eliminates additional 7% stores comparing to existing DSE. But it's not visible on benchmarks.
> * Cross-block + Interprocedural analysis to annotate each function argument with: 
>   - can read before write
>   - will always write 
> This annotations gets me 20% stores deleted additional to the current DSE.
> This is on LLVM codebase with -ftrivial-auto-var-init=patter.
> As-is it's less than I expected, so I would like to find good benchmark to decide if we should work to make production code from my experiment.
> So now I am also planing to try to extend that to whole program analysis.
> I will cleanup my code and upload this during this weak, if anyone wants to try.

This is great! I’ll try out the patches when you post them, and see if it resolves the issues I’d been seeing. I don’t think we need benchmark gains fro this to be worthwhile since variable auto-init adds slightly unusual code. I think it’s aggravating cases where current DSE was failing in innocuous ways.

More information about the llvm-dev mailing list