• Ilya Tocar's avatar
    cmd/compile/internal/ssa: inline memmove with known size · f3884680
    Ilya Tocar authored
    Replace calls to memmove with known (constant) size, with OpMove.
    Do it only if it is safe from aliasing point of view.
    Helps with code like this:
    
    append(buf,"const str"...)
    
    In strconv this provides nice benefit:
    Quote-6                                   731ns ± 2%   647ns ± 3%  -11.41%  (p=0.000 n=10+10)
    QuoteRune-6                               117ns ± 5%   111ns ± 1%   -4.54%  (p=0.000 n=10+10)
    AppendQuote-6                             475ns ± 0%   396ns ± 0%  -16.59%  (p=0.000 n=9+10)
    AppendQuoteRune-6                        32.0ns ± 0%  27.4ns ± 0%  -14.41%  (p=0.000 n=8+9)
    
    Change-Id: I7704f5c51b46aed2d8f033de74c75140fc35036c
    Reviewed-on: https://go-review.googlesource.com/54394
    Run-TryBot: Ilya Tocar <ilya.tocar@intel.com>
    Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    f3884680
asm_test.go 42 KB