From 410927d1adeadbe8de72769bd794064f0cd801cd Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Thu, 7 Oct 2010 04:42:26 -0400 Subject: [PATCH] gc: elide dead code R=ken2 CC=golang-dev https://golang.org/cl/2365044 --- src/cmd/gc/gen.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/cmd/gc/gen.c b/src/cmd/gc/gen.c index d2396aa09f..a8b2e1b8ed 100644 --- a/src/cmd/gc/gen.c +++ b/src/cmd/gc/gen.c @@ -257,6 +257,17 @@ gen(Node *n) break; case OIF: + if(n->ntest == N || n->ntest->op == OLITERAL) { + // drop dead code in if true or if false. + // the linker will do it for us in general, + // but this avoids writnig to the object file + // in a very common case. + if(n->ntest == N || n->ntest->val.u.bval) + genlist(n->nbody); + else + genlist(n->nelse); + break; + } p1 = gjmp(P); // goto test p2 = gjmp(P); // p2: goto else patch(p1, pc); // test: -- 2.48.1