From 7439ba32ffe5461372a5b51cc315d8c0e8dae03e Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Mon, 3 Apr 2017 10:00:02 -0700 Subject: [PATCH] cmd/compile: respect Node.Bounded when inserting OpArraySelect This triggers 119 times during make.bash. This CL reduces the time it takes for the compiler to panic while compiling the code in #19751 from 22 minutes to 15 minutes. Yay, I guess. Updates #19751 Change-Id: I8ca7f1ae75f89d1eb2a361d67b3055a975221734 Reviewed-on: https://go-review.googlesource.com/39294 Run-TryBot: Josh Bleecher Snyder TryBot-Result: Gobot Gobot Reviewed-by: Keith Randall --- src/cmd/compile/internal/gc/ssa.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/cmd/compile/internal/gc/ssa.go b/src/cmd/compile/internal/gc/ssa.go index c21422ac65..ad81858186 100644 --- a/src/cmd/compile/internal/gc/ssa.go +++ b/src/cmd/compile/internal/gc/ssa.go @@ -1965,7 +1965,9 @@ func (s *state) expr(n *Node) *ssa.Value { return s.newValue0(ssa.OpUnknown, n.Type) } i = s.extendIndex(i, panicindex) - s.boundsCheck(i, s.constInt(Types[TINT], bound)) + if !n.Bounded() { + s.boundsCheck(i, s.constInt(Types[TINT], bound)) + } return s.newValue1I(ssa.OpArraySelect, n.Type, 0, a) } p := s.addr(n, false)