• Michael Munday's avatar
    cmd/compile: convert memmove call into Move when arguments are disjoint · 6d00e8c4
    Michael Munday authored
    Move ops can be faster than memmove calls because the number of bytes
    to be moved is fixed and they don't incur the overhead of a call.
    This change allows memmove to be converted into a Move op when the
    arguments are disjoint.
    
    The optimization is only enabled on s390x at the moment, however
    other architectures may also benefit from it in the future. The
    memmove inlining rule triggers an extra 12 times when compiling the
    standard library. It will most likely make more of a difference as the
    disjoint function is improved over time (to recognize fresh heap
    allocations for example).
    
    Change-Id: I9af570dcfff28257b8e59e0ff584a46d8e248310
    Reviewed-on: https://go-review.googlesource.com/110064
    Run-TryBot: Michael Munday <mike.munday@ibm.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarIlya Tocar <ilya.tocar@intel.com>
    6d00e8c4
rewritegeneric.go 625 KB