diff options
| author | thepudds <thepudds1460@gmail.com> | 2025-03-12 17:29:25 -0400 |
|---|---|---|
| committer | David Chase <drchase@google.com> | 2025-05-20 20:11:56 -0700 |
| commit | 74304cda29381fd5ba07a4090b701f8a670896c6 (patch) | |
| tree | 061d8e3b8885bd6dc91954956e4e62f7bb218b25 /test/codegen | |
| parent | a070533633bd709bc3598dbd7c28edca1d2ba6e2 (diff) | |
| download | go-74304cda29381fd5ba07a4090b701f8a670896c6.tar.xz | |
cmd/compile/internal/escape: improve order of work to speed up analyzing many locations
For the package github.com/microsoft/typescript-go/internal/checker,
compilation currently spends most of its time in escape analysis.
Here, we re-order work to be more efficient when analyzing many
locations, and delay visiting some locations to prioritize locations
that might be more likely to reach a terminal point of reaching the
heap and possibly reduce the count of intermediate states for each location.
Action graph reported build times show roughly a 5x improvement for
compilation of the typescript-go/internal/checker package:
go1.24.0: 91.792s
cl-657179-ps1: 17.578s
with timing via:
go build -a -debug-actiongraph=/tmp/actiongraph-cl-657179-ps1 -v github.com/microsoft/typescript-go/internal/checker
There are some additional adjustments to make here, including we can
consider a follow-on CL I have that parallelizes the operations of the
core loop, but this seems to be a nice win as is, and my understanding
is the desire is to merge this as it stands.
Updates #72815
Change-Id: I1753c5354b495b059f68fb97f3103ee7834f9eee
Reviewed-on: https://go-review.googlesource.com/c/go/+/657179
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: David Chase <drchase@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Diffstat (limited to 'test/codegen')
0 files changed, 0 insertions, 0 deletions
