gotools/go/ssa/ssa.go

type Program

type Package

type Member

type Type

type NamedConst

type Value

type Instruction

type Node

type Function

type BasicBlock

type FreeVar

type Parameter

type Const

type Global

type Builtin

type Alloc

type Phi

type Call

type BinOp

type UnOp

type ChangeType

type Convert

type MultiConvert

type ChangeInterface

type SliceToArrayPointer

type MakeInterface

type MakeClosure

type MakeMap

type MakeChan

type MakeSlice

type Slice

type FieldAddr

type Field

type IndexAddr

type Index

type Lookup

type SelectState

type Select

type Range

type Next

type TypeAssert

type Extract

type Jump

type If

type Return

type RunDefers

type Panic

type Go

type Defer

type Send

type Store

type MapUpdate

type DebugRef

type register

type anInstruction

type CallCommon

// IsInvoke returns true if this call has "invoke" (not "call") mode.
func (c *CallCommon) IsInvoke() bool {}

func (c *CallCommon) Pos() token.Pos {}

// Signature returns the signature of the called function.
//
// For an "invoke"-mode call, the signature of the interface method is
// returned.
//
// In either "call" or "invoke" mode, if the callee is a method, its
// receiver is represented by sig.Recv, not sig.Params().At(0).
func (c *CallCommon) Signature() *types.Signature {}

// StaticCallee returns the callee if this is a trivially static
// "call"-mode call to a function.
func (c *CallCommon) StaticCallee() *Function {}

// Description returns a description of the mode of this call suitable
// for a user interface, e.g., "static method call".
func (c *CallCommon) Description() string {}

type CallInstruction

func (s *Call) Common() *CallCommon  {}

func (s *Defer) Common() *CallCommon {}

func (s *Go) Common() *CallCommon    {}

func (s *Call) Value() *Call  {}

func (s *Defer) Value() *Call {}

func (s *Go) Value() *Call    {}

func (v *Builtin) Type() types.Type        {}

func (v *Builtin) Name() string            {}

func (*Builtin) Referrers() *[]Instruction {}

func (v *Builtin) Pos() token.Pos          {}

func (v *Builtin) Object() types.Object    {}

func (v *Builtin) Parent() *Function       {}

func (v *FreeVar) Type() types.Type          {}

func (v *FreeVar) Name() string              {}

func (v *FreeVar) Referrers() *[]Instruction {}

func (v *FreeVar) Pos() token.Pos            {}

func (v *FreeVar) Parent() *Function         {}

func (v *Global) Type() types.Type                     {}

func (v *Global) Name() string                         {}

func (v *Global) Parent() *Function                    {}

func (v *Global) Pos() token.Pos                       {}

func (v *Global) Referrers() *[]Instruction            {}

func (v *Global) Token() token.Token                   {}

func (v *Global) Object() types.Object                 {}

func (v *Global) String() string                       {}

func (v *Global) Package() *Package                    {}

func (v *Global) RelString(from *types.Package) string {}

func (v *Function) Name() string       {}

func (v *Function) Type() types.Type   {}

func (v *Function) Pos() token.Pos     {}

func (v *Function) Token() token.Token {}

func (v *Function) Object() types.Object {}

func (v *Function) String() string    {}

func (v *Function) Package() *Package {}

func (v *Function) Parent() *Function {}

func (v *Function) Referrers() *[]Instruction {}

// TypeParams are the function's type parameters if generic or the
// type parameters that were instantiated if fn is an instantiation.
func (fn *Function) TypeParams() *types.TypeParamList {}

// TypeArgs are the types that TypeParams() were instantiated by to create fn
// from fn.Origin().
func (fn *Function) TypeArgs() []types.Type {}

// Origin returns the generic function from which fn was instantiated,
// or nil if fn is not an instantiation.
func (fn *Function) Origin() *Function {}

// origin is the function that fn is an instantiation of. Returns nil if fn is
// not an instantiation.
//
// Precondition: fn and the origin function are done building.
func origin(fn *Function) *Function {}

func (v *Parameter) Type() types.Type          {}

func (v *Parameter) Name() string              {}

func (v *Parameter) Object() types.Object      {}

func (v *Parameter) Referrers() *[]Instruction {}

func (v *Parameter) Pos() token.Pos            {}

func (v *Parameter) Parent() *Function         {}

func (v *Alloc) Type() types.Type          {}

func (v *Alloc) Referrers() *[]Instruction {}

func (v *Alloc) Pos() token.Pos            {}

func (v *register) Type() types.Type          {}

func (v *register) setType(typ types.Type)    {}

func (v *register) Name() string              {}

func (v *register) setNum(num int)            {}

func (v *register) Referrers() *[]Instruction {}

func (v *register) Pos() token.Pos            {}

func (v *register) setPos(pos token.Pos)      {}

func (v *anInstruction) Parent() *Function          {}

func (v *anInstruction) Block() *BasicBlock         {}

func (v *anInstruction) setBlock(block *BasicBlock) {}

func (v *anInstruction) Referrers() *[]Instruction  {}

func (t *Type) Name() string                         {}

func (t *Type) Pos() token.Pos                       {}

func (t *Type) Type() types.Type                     {}

func (t *Type) Token() token.Token                   {}

func (t *Type) Object() types.Object                 {}

func (t *Type) String() string                       {}

func (t *Type) Package() *Package                    {}

func (t *Type) RelString(from *types.Package) string {}

func (c *NamedConst) Name() string                         {}

func (c *NamedConst) Pos() token.Pos                       {}

func (c *NamedConst) String() string                       {}

func (c *NamedConst) Type() types.Type                     {}

func (c *NamedConst) Token() token.Token                   {}

func (c *NamedConst) Object() types.Object                 {}

func (c *NamedConst) Package() *Package                    {}

func (c *NamedConst) RelString(from *types.Package) string {}

func (d *DebugRef) Object() types.Object {}

// Func returns the package-level function of the specified name,
// or nil if not found.
func (p *Package) Func(name string) (f *Function) {}

// Var returns the package-level variable of the specified name,
// or nil if not found.
func (p *Package) Var(name string) (g *Global) {}

// Const returns the package-level constant of the specified name,
// or nil if not found.
func (p *Package) Const(name string) (c *NamedConst) {}

// Type returns the package-level type of the specified name,
// or nil if not found.
func (p *Package) Type(name string) (t *Type) {}

func (v *Call) Pos() token.Pos      {}

func (s *Defer) Pos() token.Pos     {}

func (s *Go) Pos() token.Pos        {}

func (s *MapUpdate) Pos() token.Pos {}

func (s *Panic) Pos() token.Pos     {}

func (s *Return) Pos() token.Pos    {}

func (s *Send) Pos() token.Pos      {}

func (s *Store) Pos() token.Pos     {}

func (s *If) Pos() token.Pos        {}

func (s *Jump) Pos() token.Pos      {}

func (s *RunDefers) Pos() token.Pos {}

func (s *DebugRef) Pos() token.Pos  {}

func (v *Alloc) Operands(rands []*Value) []*Value {}

func (v *BinOp) Operands(rands []*Value) []*Value {}

func (c *CallCommon) Operands(rands []*Value) []*Value {}

func (s *Go) Operands(rands []*Value) []*Value {}

func (s *Call) Operands(rands []*Value) []*Value {}

func (s *Defer) Operands(rands []*Value) []*Value {}

func (v *ChangeInterface) Operands(rands []*Value) []*Value {}

func (v *ChangeType) Operands(rands []*Value) []*Value {}

func (v *Convert) Operands(rands []*Value) []*Value {}

func (v *MultiConvert) Operands(rands []*Value) []*Value {}

func (v *SliceToArrayPointer) Operands(rands []*Value) []*Value {}

func (s *DebugRef) Operands(rands []*Value) []*Value {}

func (v *Extract) Operands(rands []*Value) []*Value {}

func (v *Field) Operands(rands []*Value) []*Value {}

func (v *FieldAddr) Operands(rands []*Value) []*Value {}

func (s *If) Operands(rands []*Value) []*Value {}

func (v *Index) Operands(rands []*Value) []*Value {}

func (v *IndexAddr) Operands(rands []*Value) []*Value {}

func (*Jump) Operands(rands []*Value) []*Value {}

func (v *Lookup) Operands(rands []*Value) []*Value {}

func (v *MakeChan) Operands(rands []*Value) []*Value {}

func (v *MakeClosure) Operands(rands []*Value) []*Value {}

func (v *MakeInterface) Operands(rands []*Value) []*Value {}

func (v *MakeMap) Operands(rands []*Value) []*Value {}

func (v *MakeSlice) Operands(rands []*Value) []*Value {}

func (v *MapUpdate) Operands(rands []*Value) []*Value {}

func (v *Next) Operands(rands []*Value) []*Value {}

func (s *Panic) Operands(rands []*Value) []*Value {}

func (v *Phi) Operands(rands []*Value) []*Value {}

func (v *Range) Operands(rands []*Value) []*Value {}

func (s *Return) Operands(rands []*Value) []*Value {}

func (*RunDefers) Operands(rands []*Value) []*Value {}

func (v *Select) Operands(rands []*Value) []*Value {}

func (s *Send) Operands(rands []*Value) []*Value {}

func (v *Slice) Operands(rands []*Value) []*Value {}

func (s *Store) Operands(rands []*Value) []*Value {}

func (v *TypeAssert) Operands(rands []*Value) []*Value {}

func (v *UnOp) Operands(rands []*Value) []*Value {}

// Non-Instruction Values:
func (v *Builtin) Operands(rands []*Value) []*Value   {}

func (v *FreeVar) Operands(rands []*Value) []*Value   {}

func (v *Const) Operands(rands []*Value) []*Value     {}

func (v *Function) Operands(rands []*Value) []*Value  {}

func (v *Global) Operands(rands []*Value) []*Value    {}

func (v *Parameter) Operands(rands []*Value) []*Value {}