]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: use dereference boundedness hint during ssa conversion
authorJosh Bleecher Snyder <josharian@gmail.com>
Sun, 19 Apr 2020 22:34:32 +0000 (15:34 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Mon, 20 Apr 2020 16:36:22 +0000 (16:36 +0000)
This has a minor positive effect on generated code,
particularly code using type switches.

Change-Id: I7269769ab0d861ef6fc9e6d7809ffc3573c68340
Reviewed-on: https://go-review.googlesource.com/c/go/+/228885
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/gc/ssa.go

index 4829c5f5fc4e4d435813d614faf977411279f21b..40e2f52467edb3bbb075b70cef3d25e8f6c241cc 100644 (file)
@@ -2549,7 +2549,7 @@ func (s *state) expr(n *Node) *ssa.Value {
                return s.load(n.Type, addr)
 
        case ODEREF:
-               p := s.exprPtr(n.Left, false, n.Pos)
+               p := s.exprPtr(n.Left, n.Bounded(), n.Pos)
                return s.load(n.Type, p)
 
        case ODOT:
@@ -2574,7 +2574,7 @@ func (s *state) expr(n *Node) *ssa.Value {
                return s.newValue1I(ssa.OpStructSelect, n.Type, int64(fieldIdx(n)), v)
 
        case ODOTPTR:
-               p := s.exprPtr(n.Left, false, n.Pos)
+               p := s.exprPtr(n.Left, n.Bounded(), n.Pos)
                p = s.newValue1I(ssa.OpOffPtr, types.NewPtr(n.Type), n.Xoffset, p)
                return s.load(n.Type, p)