tools/go/ssa
Alan Donovan 7d1d69032b go.tools/go/ssa: don't attempt fusion on single-pred blocks with φ-nodes
During block optimization, degenerate conditional logic such
as "false && x" may result in single-predecessor blocks
containing φ-nodes.  (Ideally such φ-nodes would be replaced
by their sole operand, but that requires Referrers information
which isn't computed until later.)  It is obviously not safe
to fuse such blocks, so now we don't.

Fixes golang/go#7840

LGTM=gri
R=gri
CC=golang-codereviews, pcc
https://golang.org/cl/90620043
2014-04-24 09:08:21 -04:00
..
interp go.tools/go/ssa: don't attempt fusion on single-pred blocks with φ-nodes 2014-04-24 09:08:21 -04:00
ssautil go.tools/go/loader: add Config.ParserMode configuration parameter. 2014-03-27 12:50:26 -04:00
testdata go.tools/go/types: split Info.Objects map into Defs and Uses. 2014-02-27 13:21:59 -05:00
blockopt.go go.tools/go/ssa: don't attempt fusion on single-pred blocks with φ-nodes 2014-04-24 09:08:21 -04:00
builder.go go.tools/go/ssa: perform nil check when taking value of interface method. 2014-04-09 18:00:57 -04:00
builder_test.go go.tools/go/loader: add Config.ParserMode configuration parameter. 2014-03-27 12:50:26 -04:00
const.go go.tools: various comments + doc tweaks. 2014-03-11 18:24:39 -04:00
create.go go.tools: various comments + doc tweaks. 2014-03-11 18:24:39 -04:00
doc.go go.tools/go/ssa: fix nondeterministic computation of necessary method sets. 2014-02-18 12:39:29 -08:00
dom.go go.tools/go/ssa: use bytes.Buffer instead of io.Writer. 2014-01-28 17:48:10 -05:00
emit.go go.tools/go/types: cleanup: more consistent exported predicate names 2014-01-28 10:57:56 -08:00
example_test.go go.tools/go/loader: add Config.ParserMode configuration parameter. 2014-03-27 12:50:26 -04:00
func.go go.tools/go/ssa: name anon funcs by their enclosing func. 2014-02-28 10:18:55 -05:00
lift.go go.tools: rename packages. 2014-01-16 09:33:58 -05:00
lvalue.go go.tools: rename packages. 2014-01-16 09:33:58 -05:00
print.go go.tools/go/types/typeutil: new package for type utilities. 2014-02-19 13:32:36 -05:00
promote.go go.tools/pointer: opt: type-based label tracking reduces solver time by up to 75%. 2014-02-18 12:40:44 -08:00
sanity.go go.tools/go/ssa: use bytes.Buffer instead of io.Writer. 2014-01-28 17:48:10 -05:00
source.go go.tools/pointer: opt: type-based label tracking reduces solver time by up to 75%. 2014-02-18 12:40:44 -08:00
source_test.go go.tools/go/loader: add Config.ParserMode configuration parameter. 2014-03-27 12:50:26 -04:00
ssa.go go.tools: various comments + doc tweaks. 2014-03-11 18:24:39 -04:00
stdlib_test.go go/loader: convert directory separators to slash when enumerating packages. 2014-03-04 13:48:09 -05:00
testmain.go go.tools/go/ssa: fix breakage caused by removal of types.NewPackage parameter. 2014-02-20 19:49:38 -05:00
util.go go.tools: rename packages. 2014-01-16 09:33:58 -05:00