mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile: expand calls cleanup
Convert expand calls into a smaller number of focused recursive rewrites, and rely on an enhanced version of "decompose" to clean up afterwards. Debugging information seems to emerge intact. Change-Id: Ic46da4207e3a4da5c8e2c47b637b0e35abbe56bb Reviewed-on: https://go-review.googlesource.com/c/go/+/507295 Run-TryBot: David Chase <drchase@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: Keith Randall <khr@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
parent
8b6e0e6e8e
commit
b72bbaebf9
10 changed files with 1660 additions and 1629 deletions
|
|
@ -472,8 +472,8 @@ var passes = [...]pass{
|
|||
{name: "nilcheckelim", fn: nilcheckelim},
|
||||
{name: "prove", fn: prove},
|
||||
{name: "early fuse", fn: fuseEarly},
|
||||
{name: "decompose builtin", fn: decomposeBuiltIn, required: true},
|
||||
{name: "expand calls", fn: expandCalls, required: true},
|
||||
{name: "decompose builtin", fn: postExpandCallsDecompose, required: true},
|
||||
{name: "softfloat", fn: softfloat, required: true},
|
||||
{name: "late opt", fn: opt, required: true}, // TODO: split required rules and optimizing rules
|
||||
{name: "dead auto elim", fn: elimDeadAutosGeneric},
|
||||
|
|
@ -547,6 +547,8 @@ var passOrder = [...]constraint{
|
|||
{"generic cse", "tighten"},
|
||||
// checkbce needs the values removed
|
||||
{"generic deadcode", "check bce"},
|
||||
// decompose builtin now also cleans up after expand calls
|
||||
{"expand calls", "decompose builtin"},
|
||||
// don't run optimization pass until we've decomposed builtin objects
|
||||
{"decompose builtin", "late opt"},
|
||||
// decompose builtin is the last pass that may introduce new float ops, so run softfloat after it
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue