mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile/internal/ir: remove AsNode
Except for a single call site in escape analysis, every use of ir.AsNode involves a types.Object that's known to contain an *ir.Name. Asserting directly to that type makes the code simpler and more efficient. The one use in escape analysis is extended to handle nil correctly without it. Change-Id: I694ae516903e541341d82c2f65a9155e4b0a9809 Reviewed-on: https://go-review.googlesource.com/c/go/+/520775 TryBot-Bypass: Matthew Dempsky <mdempsky@google.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> Auto-Submit: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
This commit is contained in:
parent
4089b6a5b1
commit
7af28fa90e
6 changed files with 13 additions and 17 deletions
|
|
@ -153,8 +153,8 @@ func hashFunc(t *types.Type) *ir.Func {
|
|||
sym.Def = fn.Nname
|
||||
fn.Pragma |= ir.Noinline // TODO(mdempsky): We need to emit this during the unified frontend instead, to allow inlining.
|
||||
|
||||
np := ir.AsNode(fn.Type().Params().Field(0).Nname)
|
||||
nh := ir.AsNode(fn.Type().Params().Field(1).Nname)
|
||||
np := fn.Type().Params().Field(0).Nname.(*ir.Name)
|
||||
nh := fn.Type().Params().Field(1).Nname.(*ir.Name)
|
||||
|
||||
switch t.Kind() {
|
||||
case types.TARRAY:
|
||||
|
|
@ -375,9 +375,9 @@ func eqFunc(t *types.Type) *ir.Func {
|
|||
sym.Def = fn.Nname
|
||||
fn.Pragma |= ir.Noinline // TODO(mdempsky): We need to emit this during the unified frontend instead, to allow inlining.
|
||||
|
||||
np := ir.AsNode(fn.Type().Params().Field(0).Nname)
|
||||
nq := ir.AsNode(fn.Type().Params().Field(1).Nname)
|
||||
nr := ir.AsNode(fn.Type().Results().Field(0).Nname)
|
||||
np := fn.Type().Params().Field(0).Nname.(*ir.Name)
|
||||
nq := fn.Type().Params().Field(1).Nname.(*ir.Name)
|
||||
nr := fn.Type().Results().Field(0).Nname.(*ir.Name)
|
||||
|
||||
// Label to jump to if an equality test fails.
|
||||
neq := typecheck.AutoLabel(".neq")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue