cmd/compile: optimize sccp for faster convergence#77399
cmd/compile: optimize sccp for faster convergence#77399y1yang0 wants to merge 2 commits intogolang:masterfrom
Conversation
This patch optimizes sccp for faster convergence by several improvements - avoid adding duplicate ueses to the re-visit worklist - prevent queueing uses of values that have already reached Bottom - add an early exit when processing a value that is already Bottom These changes provide an overall speedup of ~9% for sccp during a full make.bash run Updates golang#77325
|
This PR (HEAD: b3fc7b9) has been imported to Gerrit for code review. Please visit Gerrit at https://go-review.googlesource.com/c/go/+/740980. Important tips:
|
|
Message from Gopher Robot: Patch Set 1: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/740980. |
|
Some raw data you may find useful(cnt_sorted_: number of constants found or the amount of dead code eliminated, time_sorted_*: phase time consumption) |
|
Message from Yi Yang: Patch Set 2: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/740980. |
|
Message from Jorropo: Patch Set 2: Commit-Queue+1 (4 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/740980. |
|
Message from Go LUCI: Patch Set 2: Dry run: CV is trying the patch. Bot data: {"action":"start","triggered_at":"2026-02-02T07:47:55Z","revision":"8ff18b0b776cf2028c3d7d3d3aebd911df41cd12"} Please don’t reply on this GitHub thread. Visit golang.org/cl/740980. |
|
Message from Jorropo: Patch Set 2: -Commit-Queue Please don’t reply on this GitHub thread. Visit golang.org/cl/740980. |
|
Message from Go LUCI: Patch Set 2: This CL has failed the run. Reason: Tryjob golang/try/x_tools-gotip-linux-amd64 has failed with summary (view all results):
To reproduce, try Additional links for debugging: Please don’t reply on this GitHub thread. Visit golang.org/cl/740980. |
|
Message from Go LUCI: Patch Set 2: LUCI-TryBot-Result-1 Please don’t reply on this GitHub thread. Visit golang.org/cl/740980. |
|
Message from Yi Yang: Patch Set 2: (3 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/740980. |
|
Message from Yi Yang: Patch Set 2: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/740980. |
|
This PR (HEAD: 4923155) has been imported to Gerrit for code review. Please visit Gerrit at https://go-review.googlesource.com/c/go/+/740980. Important tips:
|
|
Message from Yi Yang: Patch Set 3: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/740980. |
|
Message from Keith Randall: Patch Set 3: Commit-Queue+1 Please don’t reply on this GitHub thread. Visit golang.org/cl/740980. |
|
Message from Go LUCI: Patch Set 3: Dry run: CV is trying the patch. Bot data: {"action":"start","triggered_at":"2026-02-11T06:29:38Z","revision":"f84abede6a15dd8cf46a6118b764c4716be29b01"} Please don’t reply on this GitHub thread. Visit golang.org/cl/740980. |
|
Message from Keith Randall: Patch Set 3: -Commit-Queue (Posted by golang-scoped@luci-project-accounts.iam.gserviceaccount.com on behalf of khr@golang.org) Please don’t reply on this GitHub thread. Visit golang.org/cl/740980. |
|
Message from Go LUCI: Patch Set 3: This CL has passed the run Please don’t reply on this GitHub thread. Visit golang.org/cl/740980. |
|
Message from Go LUCI: Patch Set 3: LUCI-TryBot-Result+1 Please don’t reply on this GitHub thread. Visit golang.org/cl/740980. |
While investigating other optimizations, I found several
opportunities to accelerate sccp convergence:
These changes provide an overall speedup of ~9% for sccp phase
during a full make.bash run. Also they does not change
the number of constants found or the amount of dead code eliminated.
Updates #77325