[dev.inline] cmd/compile: parse source files concurrently

Conversion to Nodes still happens sequentially at the moment.

Change-Id: I3407ba0711b8b92e22ece0a06fefaff863c3ccc9
Reviewed-on: https://go-review.googlesource.com/35126
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Robert Griesemer <gri@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Matthew Dempsky 2017-01-11 15:48:30 -08:00
parent b90aed020d
commit ec63158d71
3 changed files with 87 additions and 71 deletions

View file

@ -6,7 +6,10 @@
package gc
import "cmd/internal/src"
import (
"cmd/compile/internal/syntax"
"cmd/internal/src"
)
// A Node is a single node in the syntax tree.
// Actually the syntax tree is a syntax DAG, because there is only one
@ -285,7 +288,7 @@ type Param struct {
// OTYPE pragmas
//
// TODO: Should Func pragmas also be stored on the Name?
Pragma Pragma
Pragma syntax.Pragma
}
// Func holds Node fields used only with function-like nodes.
@ -313,11 +316,11 @@ type Func struct {
Endlineno src.XPos
WBPos src.XPos // position of first write barrier
Pragma Pragma // go:xxx function annotations
Dupok bool // duplicate definitions ok
Wrapper bool // is method wrapper
Needctxt bool // function uses context register (has closure variables)
ReflectMethod bool // function calls reflect.Type.Method or MethodByName
Pragma syntax.Pragma // go:xxx function annotations
Dupok bool // duplicate definitions ok
Wrapper bool // is method wrapper
Needctxt bool // function uses context register (has closure variables)
ReflectMethod bool // function calls reflect.Type.Method or MethodByName
IsHiddenClosure bool
NoFramePointer bool // Must not use a frame pointer for this function
}