]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/gc: Don't calculate second value in range if it is blank.
authorDaniel Morsing <daniel.morsing@gmail.com>
Wed, 26 Sep 2012 19:10:29 +0000 (21:10 +0200)
committerDaniel Morsing <daniel.morsing@gmail.com>
Wed, 26 Sep 2012 19:10:29 +0000 (21:10 +0200)
Low hanging fruit optimization. Will remove an expensive copy if the range variable is an array.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/6564052

src/cmd/gc/range.c

index 459105ee88d3abaeedc57ec0865b9b58a92b9c1a..741a9ac9a7b41dab9b8dd417d201aacb3cba9b58 100644 (file)
@@ -71,6 +71,11 @@ typecheckrange(Node *n)
        v2 = N;
        if(n->list->next)
                v2 = n->list->next->n;
+       
+       if(isblank(v2)) {
+               n->list = list1(v1);
+               v2 = N;
+       }
 
        if(v1->defn == n)
                v1->type = t1;