From 36f879780aa086356187a7ca8a625ff37484d317 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Fri, 30 Jan 2015 11:18:24 -0500 Subject: [PATCH] cmd/9g: note suboptimal copy code 9g generates needlessly complex code for small copies. There are a few other things that need to be improved about the copy code, so for now just note the problem. Change-Id: I0f1de4b2f9197a2635e27cc4b91ecf7a6c11f457 Reviewed-on: https://go-review.googlesource.com/3665 Reviewed-by: Russ Cox --- src/cmd/9g/cgen.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/cmd/9g/cgen.c b/src/cmd/9g/cgen.c index d1f1976ce8..2d76133543 100644 --- a/src/cmd/9g/cgen.c +++ b/src/cmd/9g/cgen.c @@ -1506,6 +1506,11 @@ sgen(Node *n, Node *ns, int64 w) patch(gbranch(ABNE, T, 0), ploop); regfree(&nend); } else { + // TODO(austin): Instead of generating ADD $-8,R8; ADD + // $-8,R7; n*(MOVDU 8(R8),R9; MOVDU R9,8(R7);) just + // generate the offsets directly and eliminate the + // ADDs. That will produce shorter, more + // pipeline-able code. while(c-- > 0) { p = gins(op, &src, &tmp); p->from.type = TYPE_MEM; -- 2.50.0