mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile: factor out Pkg, Sym, and Type into package types
- created new package cmd/compile/internal/types - moved Pkg, Sym, Type to new package - to break cycles, for now we need the (ugly) types/utils.go file which contains a handful of functions that must be installed early by the gc frontend - to break cycles, for now we need two functions to convert between *gc.Node and *types.Node (the latter is a dummy type) - adjusted the gc's code to use the new package and the conversion functions as needed - made several Pkg, Sym, and Type methods functions as needed - renamed constructors typ, typPtr, typArray, etc. to types.New, types.NewPtr, types.NewArray, etc. Passes toolstash-check -all. Change-Id: I8adfa5e85c731645d0a7fd2030375ed6ebf54b72 Reviewed-on: https://go-review.googlesource.com/39855 Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
parent
19bd145d07
commit
f68f292820
48 changed files with 2433 additions and 2005 deletions
|
|
@ -5,6 +5,7 @@
|
|||
package gc
|
||||
|
||||
import (
|
||||
"cmd/compile/internal/types"
|
||||
"cmd/internal/src"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
|
@ -67,7 +68,7 @@ func instrument(fn *Node) {
|
|||
// getcallerpc. We use -widthptr(FP) for x86.
|
||||
// BUG: this will not work on arm.
|
||||
nodpc := *nodfp
|
||||
nodpc.Type = Types[TUINTPTR]
|
||||
nodpc.Type = types.Types[TUINTPTR]
|
||||
nodpc.Xoffset = int64(-Widthptr)
|
||||
nd := mkcall("racefuncenter", nil, nil, &nodpc)
|
||||
fn.Func.Enter.Prepend(nd)
|
||||
|
|
@ -216,7 +217,7 @@ func instrumentnode(np **Node, init *Nodes, wr int, skip int) {
|
|||
instrumentnode(&n.Left, init, 0, 0)
|
||||
if n.Left.Type.IsMap() {
|
||||
n1 := nod(OCONVNOP, n.Left, nil)
|
||||
n1.Type = typPtr(Types[TUINT8])
|
||||
n1.Type = types.NewPtr(types.Types[TUINT8])
|
||||
n1 = nod(OIND, n1, nil)
|
||||
n1 = typecheck(n1, Erv)
|
||||
callinstr(&n1, init, 0, skip)
|
||||
|
|
@ -561,14 +562,14 @@ func makeaddable(n *Node) {
|
|||
func uintptraddr(n *Node) *Node {
|
||||
r := nod(OADDR, n, nil)
|
||||
r.SetBounded(true)
|
||||
r = conv(r, Types[TUNSAFEPTR])
|
||||
r = conv(r, Types[TUINTPTR])
|
||||
r = conv(r, types.Types[TUNSAFEPTR])
|
||||
r = conv(r, types.Types[TUINTPTR])
|
||||
return r
|
||||
}
|
||||
|
||||
func detachexpr(n *Node, init *Nodes) *Node {
|
||||
addr := nod(OADDR, n, nil)
|
||||
l := temp(typPtr(n.Type))
|
||||
l := temp(types.NewPtr(n.Type))
|
||||
as := nod(OAS, l, addr)
|
||||
as = typecheck(as, Etop)
|
||||
as = walkexpr(as, init)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue