diff --git a/src/cmd/compile/internal/ssa/cache.go b/src/cmd/compile/internal/ssa/cache.go new file mode 100644 index 0000000000..64f9659520 --- /dev/null +++ b/src/cmd/compile/internal/ssa/cache.go @@ -0,0 +1,10 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package ssa + +// A Cache holds reusable compiler state. +// It is intended to be re-used for multiple Func compilations. +type Cache struct { +} diff --git a/src/cmd/compile/internal/ssa/config.go b/src/cmd/compile/internal/ssa/config.go index 52692847b9..978c0d6fa8 100644 --- a/src/cmd/compile/internal/ssa/config.go +++ b/src/cmd/compile/internal/ssa/config.go @@ -14,6 +14,9 @@ import ( "strings" ) +// A Config holds readonly compilation information. +// It is created once, early during compilation, +// and shared across all compilations. type Config struct { arch string // "amd64", etc. IntSize int64 // 4 or 8 diff --git a/src/cmd/compile/internal/ssa/func.go b/src/cmd/compile/internal/ssa/func.go index 5dc352e991..75b5b44a96 100644 --- a/src/cmd/compile/internal/ssa/func.go +++ b/src/cmd/compile/internal/ssa/func.go @@ -11,8 +11,9 @@ import ( "strings" ) -// A Func represents a Go func declaration (or function literal) and -// its body. This package compiles each Func independently. +// A Func represents a Go func declaration (or function literal) and its body. +// This package compiles each Func independently. +// Funcs are single-use; a new Func must be created for every compiled function. type Func struct { Config *Config // architecture information pass *pass // current pass information (name, options, etc.)