Commit 2bba3a61 authored by Ken Thompson's avatar Ken Thompson

reorder1 - function first instead of last

SVN=122160
parent a544938c
...@@ -1224,6 +1224,7 @@ convas(Node *n) ...@@ -1224,6 +1224,7 @@ convas(Node *n)
if(n->op != OAS) if(n->op != OAS)
fatal("convas: not as %O", n->op); fatal("convas: not as %O", n->op);
ullmancalc(n);
l = n->left; l = n->left;
r = n->right; r = n->right;
if(l == N || r == N) if(l == N || r == N)
...@@ -1321,7 +1322,7 @@ loop1: ...@@ -1321,7 +1322,7 @@ loop1:
if(c == 0 || t == 1) if(c == 0 || t == 1)
return n; return n;
if(c > 1) { if(c > 1) {
yyerror("reorder1: too many funcation calls evaluating parameters"); yyerror("reorder1: too many function calls evaluating parameters");
return n; return n;
} }
goto pass2; goto pass2;
...@@ -1337,21 +1338,18 @@ loop1: ...@@ -1337,21 +1338,18 @@ loop1:
pass2: pass2:
l = listfirst(&save, &n); l = listfirst(&save, &n);
f = N; // isolated function call r = N; // rest
r = N; // rest of them f = N; // fncall
loop2: loop2:
if(l == N) { if(l == N) {
if(r == N || f == N)
fatal("reorder1 not nil 1");
r = nod(OLIST, f, r); r = nod(OLIST, f, r);
return rev(r); r = rev(r);
return r;
} }
if(l->ullman >= UINF) { if(l->ullman >= UINF)
if(f != N)
fatal("reorder1 not nil 2");
f = l; f = l;
} else else
if(r == N) if(r == N)
r = l; r = l;
else else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment