<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 7, 2017 at 6:43 AM, Dave Green via Phabricator <span dir="ltr"><<a href="mailto:reviews@reviews.llvm.org" target="_blank">reviews@reviews.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">dmgreen added a comment.<br>
<br>
OK. I have some performance numbers. I'm compiling clang ("ninja clang") and using<br>
-ftime-report/-stat to get info (with some extra precision for decimal places) and<br>
summing the results for all the compiled files. The total runtime is a little noisy on<br>
this machine, but these sub-numbers seem pretty stable between runs.<br>
<br>
Firstly the good news. With this version we now remove more dead store.<br>
Old: 41310 New: 51660<br>
With my "MemSSA can enable us to remove more stores" hat on, this is good stuff.<br>
<br>
Some more good news is that DSE is now quicker, for the sum of time for each file:<br>
Old: ~26s New: ~19s<br>
<br>
The bad news is that we also need to add in the MemorySSA passes. I think we now<br>
calc this twice in the pipeline, not once as before, so times roughly double.<br>
Old: ~35s New: ~69s<br>
I'm hoping that in the long run we can shared the cost of this between other passes.<br>
NewGVN is a couple of hops earlier in the LTO pass pipeline, LICM also quite close<br>
in the normal one. Hopefully this cost can be shared out.<br></blockquote><div><br></div><div>Yeah, this is always the case when we introduce new stateful infrastructure. We can just preserve it.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
The other bad news is we use a post-dom tree (again, maybe sharable?):<br>
Old: ~15s New: ~27s<br></blockquote><div><br></div><div>This is surprising actually.</div><div>This would imply that post-dom is costing more than the pass?</div><div><br></div></div></div></div>