1
0
mirror of https://github.com/golang/go synced 2024-10-05 22:11:23 -06:00
go/src/cmd
Todd Neal 078ba138d3 [dev.ssa] cmd/compile/internal : Implement Lengauer-Tarjan for dominators
Implements the simple Lengauer-Tarjan algorithm for dominator
and post-dominator calculation.

benchmark                           old ns/op     new ns/op     delta
BenchmarkDominatorsLinear-8         1403862       1292741       -7.92%
BenchmarkDominatorsFwdBack-8        1270633       1428285       +12.41%
BenchmarkDominatorsManyPred-8       225932354     1530886       -99.32%
BenchmarkDominatorsMaxPred-8        445994225     1393612       -99.69%
BenchmarkDominatorsMaxPredVal-8     447235248     1246899       -99.72%
BenchmarkNilCheckDeep1-8            829           1259          +51.87%
BenchmarkNilCheckDeep10-8           2199          2397          +9.00%
BenchmarkNilCheckDeep100-8          57325         29405         -48.70%
BenchmarkNilCheckDeep1000-8         6625837       2933151       -55.73%
BenchmarkNilCheckDeep10000-8        763559787     319105541     -58.21%

benchmark                           old MB/s     new MB/s     speedup
BenchmarkDominatorsLinear-8         7.12         7.74         1.09x
BenchmarkDominatorsFwdBack-8        7.87         7.00         0.89x
BenchmarkDominatorsManyPred-8       0.04         6.53         163.25x
BenchmarkDominatorsMaxPred-8        0.02         7.18         359.00x
BenchmarkDominatorsMaxPredVal-8     0.02         8.02         401.00x
BenchmarkNilCheckDeep1-8            1.21         0.79         0.65x
BenchmarkNilCheckDeep10-8           4.55         4.17         0.92x
BenchmarkNilCheckDeep100-8          1.74         3.40         1.95x
BenchmarkNilCheckDeep1000-8         0.15         0.34         2.27x
BenchmarkNilCheckDeep10000-8        0.01         0.03         3.00x

Change-Id: Icec3d774422a9bc64914779804c8c0ab73aa72bf
Reviewed-on: https://go-review.googlesource.com/11971
Reviewed-by: Keith Randall <khr@golang.org>
2015-07-15 16:17:04 +00:00
..
addr2line cmd/addr2line: simplify windows test 2015-06-17 14:23:20 +00:00
api go/importer: added go/importer package, adjusted go/types 2015-04-15 02:28:53 +00:00
asm cmd/asm: add tests for erroneous expressions 2015-06-26 23:33:39 +00:00
cgo cmd/cgo: fix a problem with 'go build -compiler gccgo' 2015-06-29 15:15:59 +00:00
compile [dev.ssa] cmd/compile/internal : Implement Lengauer-Tarjan for dominators 2015-07-15 16:17:04 +00:00
cover all: extract "can I exec?" check from tests into internal/testenv 2015-06-16 18:07:36 +00:00
dist [dev.ssa] Merge remote-tracking branch 'origin/master' into ssamerge 2015-06-30 21:11:33 -07:00
doc cmd/doc: fix copy/paste error in test 2015-06-22 22:29:35 +00:00
fix all: use "reports whether" in place of "returns true if(f)" 2015-03-18 15:14:06 +00:00
go cmd/go: use GOOS and GOARCH from build context for "go generate" 2015-06-30 06:52:47 +00:00
gofmt cmd/gofmt, go/format: refactor common pieces into internal/format 2015-04-01 17:35:26 +00:00
internal [dev.ssa] Merge remote-tracking branch 'origin/master' into ssamerge 2015-06-30 21:11:33 -07:00
link cmd/link: reject data size > 2 GB 2015-06-30 19:40:39 +00:00
newlink cmd/link: move to cmd/newlink 2015-05-21 17:31:40 +00:00
nm all: extract "can I exec?" check from tests into internal/testenv 2015-06-16 18:07:36 +00:00
objdump all: extract "can I exec?" check from tests into internal/testenv 2015-06-16 18:07:36 +00:00
old5a cmd/old5a, cmd/old8a, cmd/old9a: rebuild y.go 2015-05-29 17:36:43 +00:00
old6a cmd/internal/obj: make Prog.From3 a pointer 2015-05-29 16:19:02 +00:00
old8a cmd/old5a, cmd/old8a, cmd/old9a: rebuild y.go 2015-05-29 17:36:43 +00:00
old9a cmd/old5a, cmd/old8a, cmd/old9a: rebuild y.go 2015-05-29 17:36:43 +00:00
pack all: extract "can I exec?" check from tests into internal/testenv 2015-06-16 18:07:36 +00:00
pprof all: fix misprints in comments 2015-06-11 14:18:57 +00:00
trace cmd/trace: sort procs 2015-06-30 16:50:57 +00:00
vet cmd/vet: refer info about -printfuncs to the -printf flag 2015-06-22 20:42:01 +00:00
yacc all: fix misprints in comments 2015-06-11 14:18:57 +00:00