diff options
author | ChrisALiles <caveryliles@gmail.com> | 2018-02-14 14:54:59 +1100 |
---|---|---|
committer | Josh Bleecher Snyder <josharian@gmail.com> | 2018-02-27 19:40:36 +0000 |
commit | 4f5389c321b0b5623f7cbd5b9d003920ccbb94ff (patch) | |
tree | 62cb1f23688dd6adb9ce46342ee9928a8f32594d /src/cmd/compile/internal/ssa | |
parent | 0f2ef0ad449a76d03eec18219eb133cb39000486 (diff) | |
download | go-4f5389c321b0b5623f7cbd5b9d003920ccbb94ff.tar.gz go-4f5389c321b0b5623f7cbd5b9d003920ccbb94ff.zip |
cmd/compile: move the SSA local type definitions to a single location
Fixes #20304
Change-Id: I52ee02d1602ed7fffc96b27fd60990203c771aaf
Reviewed-on: https://go-review.googlesource.com/94256
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Diffstat (limited to 'src/cmd/compile/internal/ssa')
-rw-r--r-- | src/cmd/compile/internal/ssa/config.go | 33 | ||||
-rw-r--r-- | src/cmd/compile/internal/ssa/export_test.go | 26 |
2 files changed, 34 insertions, 25 deletions
diff --git a/src/cmd/compile/internal/ssa/config.go b/src/cmd/compile/internal/ssa/config.go index 9bf4ef5968..1226ca7a5a 100644 --- a/src/cmd/compile/internal/ssa/config.go +++ b/src/cmd/compile/internal/ssa/config.go @@ -73,6 +73,39 @@ type Types struct { BytePtrPtr *types.Type } +// Instantiate the SSA type pointers. +func NewTypes() *Types { + t := new(Types) + t.SetTypPtrs() + return t +} + +// Populate the SSA type pointers. +func (t *Types) SetTypPtrs() { + t.Bool = types.Types[types.TBOOL] + t.Int8 = types.Types[types.TINT8] + t.Int16 = types.Types[types.TINT16] + t.Int32 = types.Types[types.TINT32] + t.Int64 = types.Types[types.TINT64] + t.UInt8 = types.Types[types.TUINT8] + t.UInt16 = types.Types[types.TUINT16] + t.UInt32 = types.Types[types.TUINT32] + t.UInt64 = types.Types[types.TUINT64] + t.Float32 = types.Types[types.TFLOAT32] + t.Float64 = types.Types[types.TFLOAT64] + t.Int = types.Types[types.TINT] + t.Uintptr = types.Types[types.TUINTPTR] + t.String = types.Types[types.TSTRING] + t.BytePtr = types.NewPtr(types.Types[types.TUINT8]) + t.Int32Ptr = types.NewPtr(types.Types[types.TINT32]) + t.UInt32Ptr = types.NewPtr(types.Types[types.TUINT32]) + t.IntPtr = types.NewPtr(types.Types[types.TINT]) + t.UintptrPtr = types.NewPtr(types.Types[types.TUINTPTR]) + t.Float32Ptr = types.NewPtr(types.Types[types.TFLOAT32]) + t.Float64Ptr = types.NewPtr(types.Types[types.TFLOAT64]) + t.BytePtrPtr = types.NewPtr(types.NewPtr(types.Types[types.TUINT8])) +} + type Logger interface { // Logf logs a message from the compiler. Logf(string, ...interface{}) diff --git a/src/cmd/compile/internal/ssa/export_test.go b/src/cmd/compile/internal/ssa/export_test.go index ac7a1b00e0..1fe0bbe6ae 100644 --- a/src/cmd/compile/internal/ssa/export_test.go +++ b/src/cmd/compile/internal/ssa/export_test.go @@ -184,31 +184,7 @@ func init() { t.Align = uint8(typ.width) types.Types[typ.et] = t } - - dummyTypes = Types{ - Bool: types.Types[types.TBOOL], - Int8: types.Types[types.TINT8], - Int16: types.Types[types.TINT16], - Int32: types.Types[types.TINT32], - Int64: types.Types[types.TINT64], - UInt8: types.Types[types.TUINT8], - UInt16: types.Types[types.TUINT16], - UInt32: types.Types[types.TUINT32], - UInt64: types.Types[types.TUINT64], - Float32: types.Types[types.TFLOAT32], - Float64: types.Types[types.TFLOAT64], - Int: types.Types[types.TINT], - Uintptr: types.Types[types.TUINTPTR], - String: types.Types[types.TSTRING], - BytePtr: types.NewPtr(types.Types[types.TUINT8]), - Int32Ptr: types.NewPtr(types.Types[types.TINT32]), - UInt32Ptr: types.NewPtr(types.Types[types.TUINT32]), - IntPtr: types.NewPtr(types.Types[types.TINT]), - UintptrPtr: types.NewPtr(types.Types[types.TUINTPTR]), - Float32Ptr: types.NewPtr(types.Types[types.TFLOAT32]), - Float64Ptr: types.NewPtr(types.Types[types.TFLOAT64]), - BytePtrPtr: types.NewPtr(types.NewPtr(types.Types[types.TUINT8])), - } + dummyTypes.SetTypPtrs() } func (d DummyFrontend) DerefItab(sym *obj.LSym, off int64) *obj.LSym { return nil } |