mirror of
https://github.com/golang/go
synced 2024-11-22 01:04:40 -07:00
reorder1 - function first instead of last
SVN=122160
This commit is contained in:
parent
a544938c26
commit
2bba3a610d
@ -1224,6 +1224,7 @@ convas(Node *n)
|
||||
if(n->op != OAS)
|
||||
fatal("convas: not as %O", n->op);
|
||||
|
||||
ullmancalc(n);
|
||||
l = n->left;
|
||||
r = n->right;
|
||||
if(l == N || r == N)
|
||||
@ -1321,7 +1322,7 @@ loop1:
|
||||
if(c == 0 || t == 1)
|
||||
return n;
|
||||
if(c > 1) {
|
||||
yyerror("reorder1: too many funcation calls evaluating parameters");
|
||||
yyerror("reorder1: too many function calls evaluating parameters");
|
||||
return n;
|
||||
}
|
||||
goto pass2;
|
||||
@ -1337,21 +1338,18 @@ loop1:
|
||||
|
||||
pass2:
|
||||
l = listfirst(&save, &n);
|
||||
f = N; // isolated function call
|
||||
r = N; // rest of them
|
||||
r = N; // rest
|
||||
f = N; // fncall
|
||||
|
||||
loop2:
|
||||
if(l == N) {
|
||||
if(r == N || f == N)
|
||||
fatal("reorder1 not nil 1");
|
||||
r = nod(OLIST, f, r);
|
||||
return rev(r);
|
||||
r = rev(r);
|
||||
return r;
|
||||
}
|
||||
if(l->ullman >= UINF) {
|
||||
if(f != N)
|
||||
fatal("reorder1 not nil 2");
|
||||
if(l->ullman >= UINF)
|
||||
f = l;
|
||||
} else
|
||||
else
|
||||
if(r == N)
|
||||
r = l;
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user