]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: classify more nodes as "poor choices" for statements
authorDavid Chase <drchase@google.com>
Mon, 30 Sep 2019 15:08:43 +0000 (11:08 -0400)
committerDavid Chase <drchase@google.com>
Thu, 3 Oct 2019 21:08:27 +0000 (21:08 +0000)
Aggregate-making nodes that are later decomposed
are poor choices for statements, because the decomposition
phase turns them into multiple sub-values, some of which may be
dead.  Better to look elsewhere for a statement mark.

Change-Id: Ibd9584138ab3d1384548686896a28580a2e43f54
Reviewed-on: https://go-review.googlesource.com/c/go/+/198477
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Jeremy Faller <jeremy@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
src/cmd/compile/internal/ssa/numberlines.go

index a39e597d59e9ce2dc4064fd9cbb1fd4c8d40abb9..3e6afd72ff4cd4e220a1c2b0049fdbd4b5e31054 100644 (file)
@@ -15,7 +15,9 @@ func isPoorStatementOp(op Op) bool {
        switch op {
        // Note that Nilcheck often vanishes, but when it doesn't, you'd love to start the statement there
        // so that a debugger-user sees the stop before the panic, and can examine the value.
-       case OpAddr, OpLocalAddr, OpOffPtr, OpStructSelect, OpConstBool, OpConst8, OpConst16, OpConst32, OpConst64, OpConst32F, OpConst64F:
+       case OpAddr, OpLocalAddr, OpOffPtr, OpStructSelect,
+               OpIMake, OpStringMake, OpSliceMake, OpStructMake0, OpStructMake1, OpStructMake2, OpStructMake3, OpStructMake4,
+               OpConstBool, OpConst8, OpConst16, OpConst32, OpConst64, OpConst32F, OpConst64F:
                return true
        }
        return false