• Dave Cheney's avatar
    cmd/5g: avoid temporaries during gcmp(reg, constant) · 905e8dfa
    Dave Cheney authored
    Address several instances of unneeded temporaries when using gcmp.
    
    func M(m map[int]bool) int {
            return len(m)
    }
    
    --- prog list "M" ---
    0000 (/home/dfc/src/map.go:3) TEXT      M+0(SB),$0-8
    0001 (/home/dfc/src/map.go:4) MOVW      m+0(FP),R0
    0002 (/home/dfc/src/map.go:4) MOVW      $0,R1
    0003 (/home/dfc/src/map.go:4) CMP       R1,R0,
    0004 (/home/dfc/src/map.go:4) BEQ       ,6(APC)
    0005 (/home/dfc/src/map.go:4) MOVW      0(R0),R0
    0006 (/home/dfc/src/map.go:4) MOVW      R0,.noname+4(FP)
    0007 (/home/dfc/src/map.go:4) RET       ,
    
    after:
    
    --- prog list "M" ---
    0000 (/home/dfc/src/map.go:3) TEXT      M+0(SB),$0-8
    0001 (/home/dfc/src/map.go:4) MOVW      m+0(FP),R0
    0002 (/home/dfc/src/map.go:4) CMP       $0,R0,
    0003 (/home/dfc/src/map.go:4) BEQ       ,5(APC)
    0004 (/home/dfc/src/map.go:4) MOVW      0(R0),R0
    0005 (/home/dfc/src/map.go:4) MOVW      R0,.noname+4(FP)
    0006 (/home/dfc/src/map.go:4) RET       ,
    
    func C(c chan int) int {
            return cap(c)
    }
    
    --- prog list "C" ---
    0000 (/home/dfc/src/map.go:3) TEXT      C+0(SB),$0-8
    0001 (/home/dfc/src/map.go:4) MOVW      c+0(FP),R0
    0002 (/home/dfc/src/map.go:4) MOVW      $0,R1
    0003 (/home/dfc/src/map.go:4) CMP       R1,R0,
    0004 (/home/dfc/src/map.go:4) BEQ       ,6(APC)
    0005 (/home/dfc/src/map.go:4) MOVW      4(R0),R0
    0006 (/home/dfc/src/map.go:4) MOVW      R0,.noname+4(FP)
    0007 (/home/dfc/src/map.go:4) RET       ,
    
    after:
    
    --- prog list "C" ---
    0000 (/home/dfc/src/map.go:3) TEXT      C+0(SB),$0-8
    0001 (/home/dfc/src/map.go:4) MOVW      c+0(FP),R0
    0002 (/home/dfc/src/map.go:4) CMP       $0,R0,
    0003 (/home/dfc/src/map.go:4) BEQ       ,5(APC)
    0004 (/home/dfc/src/map.go:4) MOVW      4(R0),R0
    0005 (/home/dfc/src/map.go:4) MOVW      R0,.noname+4(FP)
    0006 (/home/dfc/src/map.go:4) RET       ,
    
    R=rsc, minux.ma, remyoudompheng
    CC=golang-dev
    https://golang.org/cl/6618054
    905e8dfa
cgen.c 27.6 KB