From: Cherry Zhang Date: Sat, 30 Jun 2018 21:46:25 +0000 (-0400) Subject: cmd/compile: run generic deadcode in -N mode X-Git-Tag: go1.11beta2~226 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=3f54e8537aa31cf3dbcf27d0c3033b17756d093a;p=gostls13.git cmd/compile: run generic deadcode in -N mode Late opt pass may generate dead stores, which messes up store chain calculation in later passes. Run generic deadcode even in -N mode to remove them. Fixes #26163. Change-Id: I8276101717bb978d5980e6c7998f53fd8d0ae10f Reviewed-on: https://go-review.googlesource.com/121856 Run-TryBot: Cherry Zhang Reviewed-by: Keith Randall --- diff --git a/src/cmd/compile/internal/ssa/compile.go b/src/cmd/compile/internal/ssa/compile.go index c7797d79e9..7f75dc4a03 100644 --- a/src/cmd/compile/internal/ssa/compile.go +++ b/src/cmd/compile/internal/ssa/compile.go @@ -373,7 +373,7 @@ var passes = [...]pass{ {name: "softfloat", fn: softfloat, required: true}, {name: "late opt", fn: opt, required: true}, // TODO: split required rules and optimizing rules {name: "dead auto elim", fn: elimDeadAutosGeneric}, - {name: "generic deadcode", fn: deadcode}, + {name: "generic deadcode", fn: deadcode, required: true}, // remove dead stores, which otherwise mess up store chain {name: "check bce", fn: checkbce}, {name: "branchelim", fn: branchelim}, {name: "fuse", fn: fuse}, diff --git a/test/fixedbugs/issue26163.go b/test/fixedbugs/issue26163.go new file mode 100644 index 0000000000..3f3d77859d --- /dev/null +++ b/test/fixedbugs/issue26163.go @@ -0,0 +1,17 @@ +// compile -N -d=softfloat + +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Issue 26163: dead store generated in late opt messes +// up store chain calculation. + +package p + +var i int +var A = ([]*int{})[i] + +var F func(float64, complex128) int +var C chan complex128 +var B = F(1, 1+(<-C))