tools/go/ssa
Alan Donovan 142566e529 go/ssa: avoid "premature optimization" of dead branch removal.
Blocks dominated by "if false" should be retained in the
initial SSA form so they remain visible to subsequent source
code analysis tools.

In any case, true compilers already need a stronger version of
this optimization so they can simplify CFGs such as this:
	const x, y = ...
        switch x {case y:...}
where a branch is constant but the comparison of constants
does not occur within an expression.

LGTM=gri
R=gri
CC=golang-codereviews, pcc
https://golang.org/cl/101250043
2014-06-12 11:31:41 -04:00
..
interp go.tools/go/types: comma-ok expressions return bool rather than untyped bool 2014-06-11 15:03:38 -07:00
ssautil go.tools/go/loader: add Config.ParserMode configuration parameter. 2014-03-27 12:50:26 -04:00
testdata go/ssa: avoid "premature optimization" of dead branch removal. 2014-06-12 11:31:41 -04: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/ssa: avoid "premature optimization" of dead branch removal. 2014-06-12 11:31:41 -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/ssa: add Node interface: common parts of Value+Instruction, plus Operands/Referrers. 2014-06-11 13:14:06 -04:00
create.go go.tools/ssa: create thunks for method expressions T.f. 2014-06-11 13:10:26 -04:00
doc.go go/ssa: s/Capture/FreeVar/g 2014-06-11 14:04:45 -04: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/ssa: create thunks for method expressions T.f. 2014-06-11 13:10:26 -04:00
example_test.go go.tools/go/ssa: fix incorrect indentation in SSA printout. 2014-05-16 12:37:17 -04:00
func.go go/ssa: s/Capture/FreeVar/g 2014-06-11 14:04:45 -04: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/ssa: s/Capture/FreeVar/g 2014-06-11 14:04:45 -04:00
promote.go go/ssa: s/Capture/FreeVar/g 2014-06-11 14:04:45 -04:00
sanity.go go/ssa: avoid "premature optimization" of dead branch removal. 2014-06-12 11:31:41 -04:00
source.go go.tools/ssa: create thunks for method expressions T.f. 2014-06-11 13:10:26 -04:00
source_test.go go.tools/ssa: create thunks for method expressions T.f. 2014-06-11 13:10:26 -04:00
ssa.go go.tools/go/ssa: add Max to Slice's SSA operand list 2014-06-11 16:16:19 -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/ssa: add Node interface: common parts of Value+Instruction, plus Operands/Referrers. 2014-06-11 13:14:06 -04:00
util.go go/ssa: remove optimization of 'rundefers'. 2014-06-11 16:33:25 -04:00