[PATCH] D15124: Use @llvm.invariant.start/end intrinsics to extend basic AA with invariant range analysis for GVN-based load elimination purposes [Local objects only]

Larisse Voufo via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 15 18:07:37 PST 2016


lvoufo added a comment.

In http://reviews.llvm.org/D15124#328471, @lvoufo wrote:

> In http://reviews.llvm.org/D15124#326601, @chandlerc wrote:
>
> > I'm sorry, what is this data comparing? Specifically, what is extended in
> >  clang? Is it just this patch applied?
>
>
> [Updating my earlier reply in email here -- to make sure it doesn't get lost...]
>  Yes, what is extended in clang is just this patch applied (i.e., anything named "opt*").
>  This is comparing build times, execution times, and statistical data from "-mllvm -stats" between the version of clang with this patch applied and a version of clang without the patch (i.e., anything named "cur*).
>
> These comparison data are respectively in the sheets named "Build Clang", "Run Clang" and "Stats [*]".
>  Just in case, I also generated opt*- and cur*- clang binaries using both clang and gcc.
>  The sheets named "Stats [Clang]" and "Stats [GCC]" both represent statistical data with clang build clang and gcc.
>
> For run times, I simply ran regression tests. There may be other ways to get better runtime measurements (?). But I thought regression tests could give us something to start with.
>
> I also put some descriptions under the "Legend" sheet. I recognize that this could be clearer. So, please don't hesitate to ask me for any clarification.


[Update] The second pass at the benchmarks script is still running, amidst a few hiccups which are now resolved... But with the results that I currently have, I think we have a new piece of observation, that is as follows: 
For a little bit over 2000 invariant ranges generated, and an average of 433 invariant range analysis requested (also approximately the number of instructions within each range), it looks like we get:

- a 9.26% improvement on the number of load instructions deleted (15 more loads / range),
- a 3.51% improvement on the number of instructions deleted (21 more instrs / range), and
- a 8.46% (or 2.85%) runtime improvement with clang-built (or gcc-built) binaries.

I do get slightly different stats numbers than with the first run, but with the same percentages. So, it is possible that I may have missed something while fidgeting with the hiccups. So, I will re-run all these again over the week-end and see if the numbers get more stable. I do not anticipate any more hiccups. So, if everything goes well, the new numbers should be in on Sunday evening.

I'm open to any comment. But if you prefer to wait until after the 3rd run, that's fine too. Will keep you posted.


http://reviews.llvm.org/D15124





More information about the llvm-commits mailing list