On 11/27/2017 06:27 PM, Jeff Law wrote:
On 11/07/2017 10:33 AM, Aldy Hernandez wrote:

Without further ado, here are my monumental, earth shattering improvements:

Conditional branches
    Without patch: 411846839709
    With    patch: 411831330316
         %changed: -0.0037660%

Number of instructions
    Without patch: 2271844650634
    With    patch: 2271761153578
         %changed: -0.0036754%
So that's pretty small.  A really good improvement would be on the order
of a half-percent reduction in runtime conditional branches.  I usually
test with .i files that have enable-checking turned on -- which tends to
give lots of opportunities due to the redundancies in our checking code.

On a positive note, you're eliminating roughly 4.5 other dynamic
instructions for every runtime conditional branch you remove, which is
actually a good ratio.  3.5 is what I typically see for a fairly
extensive amount of work.   Patrick P's work last year was on the order
of 7.5.  So while it didn't fire often, when it did it was highly effective.

I've retested with .ii files gathered from a stage1 build with --enable-checking=yes,all. The results are an order of magnitude better but not impressive by any means:

Conditional branches
   Without patch: 1333333689781
   With    patch: 1333666327560
        %changed: -0.0249416%

Number of instructions
   Without patch: 7347240547621
   With    patch: 7348622241739
        %changed: -0.0188021%



We have installed changes of this nature when they were part of a larger
set of changes, particularly if they helped us elsewhere (like
eliminating key path to silence a bogus warning or addressing other
regressions).

I don't know if the above changes your view, but I am not losing sleep over this, so no worries. I will just keep accumulating these along with the myriad of other changes I have ;-).

Thanks for taking a look at this, and making sure I'm headed in the right direction.

Aldy

Reply via email to