• David Chase's avatar
    cmd/compile: move spills to loop exits when easy. · 6b85a45e
    David Chase authored
    For call-free inner loops.
    
    Revised statistics:
      85 inner loop spills sunk
     341 inner loop spills remaining
    1162 inner loop spills that were candidates for sinking
         ended up completely register allocated
     119 inner loop spills could have been sunk were used in
         "shuffling" at the bottom of the loop.
       1 inner loop spill not sunk because the register assigned
         changed between def and exit,
    
     Understanding how to make an inner loop definition not be
     a candidate for from-memory shuffling (to force the shuffle
     code to choose some other value) should pick up some of the
     119 other spills disqualified for this reason.
    
     Modified the stats printing based on feedback from Austin.
    
    Change-Id: If3fb9b5d5a028f42ccc36c4e3d9e0da39db5ca60
    Reviewed-on: https://go-review.googlesource.com/21037Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    Run-TryBot: David Chase <drchase@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    6b85a45e
likelyadjust.go 11.6 KB