ref: 05ade8e9661b399ac67cb352a6f4d4e70b426d47
parent: a589d0219533d196d7c80539629b3e47e97d4a9d
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Wed Nov 3 01:43:59 EDT 2021
cc2/qbe: Use sethi number to drive assign generation Sethi numbers gives an indication of the number of registers needed to implement a tree, and generating first the subtree with an higher sethi number improves the performance of the generated code.
--- a/src/cmd/cc/cc2/target/qbe/cgen.c
+++ b/src/cmd/cc/cc2/target/qbe/cgen.c
@@ -585,9 +585,14 @@
l = l->left;
}
case 0:
- /* TODO: see what is the most difficult */
- lhs(l, &aux2);
- rhs(r, ret);
+ if (l->complex >= r->complex) {
+ lhs(l, &aux2);
+ rhs(r, ret);
+ } else {
+ rhs(r, ret);
+ lhs(l, &aux2);
+ }
+
return assign(tp, &aux2, ret);
}
return ret;