]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: cache CFG-dependent computations
authorKeith Randall <khr@golang.org>
Fri, 16 Sep 2016 20:50:18 +0000 (13:50 -0700)
committerKeith Randall <khr@golang.org>
Mon, 19 Sep 2016 16:00:13 +0000 (16:00 +0000)
commit75ce89c20dab10857ab0b5102001b34767c45b6e
treeb6d0086e53b0187137ca606d54e10d799d7f2761
parent2679282da4e437ee086ec791ab73181c39ae3463
cmd/compile: cache CFG-dependent computations

We compute a lot of stuff based off the CFG: postorder traversal,
dominators, dominator tree, loop nest.  Multiple phases use this
information and we end up recomputing some of it.  Add a cache
for this information so if the CFG hasn't changed, we can reuse
the previous computation.

Change-Id: I9b5b58af06830bd120afbee9cfab395a0a2f74b2
Reviewed-on: https://go-review.googlesource.com/29356
Reviewed-by: David Chase <drchase@google.com>
18 files changed:
src/cmd/compile/internal/ssa/block.go
src/cmd/compile/internal/ssa/check.go
src/cmd/compile/internal/ssa/compile.go
src/cmd/compile/internal/ssa/cse.go
src/cmd/compile/internal/ssa/cse_test.go
src/cmd/compile/internal/ssa/dom.go
src/cmd/compile/internal/ssa/flagalloc.go
src/cmd/compile/internal/ssa/func.go
src/cmd/compile/internal/ssa/likelyadjust.go
src/cmd/compile/internal/ssa/loopbce.go
src/cmd/compile/internal/ssa/nilcheck.go
src/cmd/compile/internal/ssa/nilcheck_test.go
src/cmd/compile/internal/ssa/passbm_test.go
src/cmd/compile/internal/ssa/phiopt.go
src/cmd/compile/internal/ssa/prove.go
src/cmd/compile/internal/ssa/regalloc.go
src/cmd/compile/internal/ssa/sparsetreemap.go
src/cmd/compile/internal/ssa/stackalloc.go