• Austin Clements's avatar
    cmd/compile: teach front-end deadcode about && and || · 2dbf15e8
    Austin Clements authored
    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: default avatarMatthew Dempsky <mdempsky@google.com>
    2dbf15e8
inl.go 31.5 KB