mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile: refactor constant rewriting
Extract all rewrite-to-OLITERAL expressions to use a single setconst helper function. Does not pass toolstash-check for two reasons: 1) We now consistently clear Left/Right/etc when rewriting Nodes into OLITERALs, which results in their inlining complexity being correctly computed. So more functions can now be inlined. 2) We preserve Pos, so PC line tables change somewhat. Change-Id: I2b5c293bee7c69c2ccd704677f5aba4ec40e3155 Reviewed-on: https://go-review.googlesource.com/103860 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
This commit is contained in:
parent
3c588b3fe7
commit
0250ef910f
5 changed files with 72 additions and 142 deletions
|
|
@ -790,7 +790,8 @@ func slicelit(ctxt initContext, n *Node, var_ *Node, init *Nodes) {
|
|||
}
|
||||
|
||||
var v Node
|
||||
nodconst(&v, types.Types[TINT], t.NumElem())
|
||||
v.Type = types.Types[TINT]
|
||||
setintconst(&v, t.NumElem())
|
||||
|
||||
nam.Xoffset += int64(array_array)
|
||||
gdata(&nam, nod(OADDR, vstat, nil), Widthptr)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue