]> Cypherpunks repositories - gostls13.git/commit
cmd/6g, cmd/8g: eliminate extra agen for nil comparisons.
authorRémy Oudompheng <oudomphe@phare.normalesup.org>
Tue, 11 Sep 2012 06:08:40 +0000 (08:08 +0200)
committerRémy Oudompheng <oudomphe@phare.normalesup.org>
Tue, 11 Sep 2012 06:08:40 +0000 (08:08 +0200)
commitff642e290f8e8ced8be26324838febda2ae3c534
tree354912b80ebd255dbf7057b93f1618fa8af184e5
parentb19c32acce20c9e7ef54111bfecae97f0906fa1a
cmd/6g, cmd/8g: eliminate extra agen for nil comparisons.

Removes an extra LEAL/LEAQ instructions there and usually saves
a useless temporary in the idiom
    if err := foo(); err != nil {...}

Generated code is also less involved:
    MOVQ err+n(SP), AX
    CMPQ AX, $0
(potentially CMPQ n(SP), $0) instead of
    LEAQ err+n(SP), AX
    CMPQ (AX), $0

Update #1914.

R=daniel.morsing, nigeltao, rsc
CC=golang-dev, remy
https://golang.org/cl/6493099
src/cmd/6g/cgen.c
src/cmd/8g/cgen.c