]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: teach front-end deadcode about && and ||
authorAustin Clements <austin@google.com>
Fri, 23 Feb 2018 00:58:59 +0000 (19:58 -0500)
committerAustin Clements <austin@google.com>
Fri, 23 Feb 2018 21:59:49 +0000 (21:59 +0000)
commit2dbf15e88ea33c04ccc1d0762b2cfcb3bfd8a039
tree03c1ae444900adab0a0c844a1d2fde1158e5efe3
parent33b76920ec3bde98e58e0a6cb0816eb7be28bb4e
cmd/compile: teach front-end deadcode about && and ||

The front-end dead code elimination is very simple. Currently, it just
looks for if statements with constant boolean conditions. Its main
purpose is to reduce load on the compiler and shrink code before
inlining computes hairiness.

This CL teaches front-end dead code elimination about short-circuiting
boolean expressions && and ||, since they're essentially the same as
if statements.

This also teaches the inliner that the constant 'if' form left behind
by deadcode is free.

These changes will help with runtime modifications in the next CL that
would otherwise inhibit inlining in some hot code paths. Currently,
however, they have no significant impact on benchmarks.

Change-Id: I886203b3c4acdbfef08148fddd7f3a7af5afc7c1
Reviewed-on: https://go-review.googlesource.com/96778
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/gc/inl.go
src/cmd/compile/internal/gc/typecheck.go