1
0
mirror of https://github.com/golang/go synced 2024-10-05 21:21:21 -06:00
go/src/cmd
Josh Bleecher Snyder 8c954d5780 [dev.ssa] cmd/compile: speed up cse
By walking only the current set of partitions
at any given point, the cse pass ended up doing
lots of extraneous, effectively O(n^2) work.

Using a regular for loop allows each cse pass to
make as much progress as possible by processing
each new class as it is introduced.

This can and should be optimized further,
but it already reduces by 75% cse time on test/slice3.go.

The overall time to compile test/slice3.go is still
dominated by the O(n^2) work in the liveness pass.
However, Keith is rewriting regalloc anyway.

Change-Id: I8be020b2f69352234587eeadeba923481bf43fcc
Reviewed-on: https://go-review.googlesource.com/12244
Reviewed-by: Keith Randall <khr@golang.org>
2015-07-23 18:06: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: speed up cse 2015-07-23 18:06: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