mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
[dev.ssa] cmd/compile: rewrite user nil check as OpIsNonNil
Rewite user nil checks as OpIsNonNil so our nil check elimination pass can take advantage and remove redundant checks. With make.bash this removes 10% more nilchecks (34110 vs 31088). Change-Id: Ifb01d1b6d2d759f5e2a5aaa0470e1d5a2a680212 Reviewed-on: https://go-review.googlesource.com/14321 Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
This commit is contained in:
parent
617e892b87
commit
ec8a597cd2
6 changed files with 136 additions and 9 deletions
|
|
@ -313,9 +313,9 @@ var genericOps = []opData{
|
|||
{name: "Cvt64Fto32F"},
|
||||
|
||||
// Automatically inserted safety checks
|
||||
{name: "IsNonNil"}, // arg0 != nil
|
||||
{name: "IsInBounds"}, // 0 <= arg0 < arg1
|
||||
{name: "IsSliceInBounds"}, // 0 <= arg0 <= arg1
|
||||
{name: "IsNonNil", typ: "Bool"}, // arg0 != nil
|
||||
{name: "IsInBounds", typ: "Bool"}, // 0 <= arg0 < arg1
|
||||
{name: "IsSliceInBounds", typ: "Bool"}, // 0 <= arg0 <= arg1
|
||||
|
||||
// Pseudo-ops
|
||||
{name: "PanicNilCheck"}, // trigger a dereference fault; arg0=nil ptr, arg1=mem, returns mem
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue