• Michael Munday's avatar
    cmd/compile: make link register allocatable in non-leaf functions · 15817e40
    Michael Munday authored
    We save and restore the link register in non-leaf functions because
    it is clobbered by CALLs. It is therefore available for general
    purpose use.
    
    Only enabled on s390x currently. The RC4 benchmarks in particular
    benefit from the extra register:
    
    name     old speed     new speed     delta
    RC4_128  243MB/s ± 2%  341MB/s ± 2%  +40.46%  (p=0.008 n=5+5)
    RC4_1K   267MB/s ± 0%  359MB/s ± 1%  +34.32%  (p=0.008 n=5+5)
    RC4_8K   271MB/s ± 0%  362MB/s ± 0%  +33.61%  (p=0.008 n=5+5)
    
    Change-Id: Id23bff95e771da9425353da2f32668b8e34ba09f
    Reviewed-on: https://go-review.googlesource.com/30597Reviewed-by: 's avatarCherry Zhang <cherryyz@google.com>
    Run-TryBot: Michael Munday <munday@ca.ibm.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    15817e40
AMD64Ops.go 39 KB