go/src/cmd/compile/internal/ssa/decompose.go

// decompose converts phi ops on compound builtin types into phi
// ops on simple types, then invokes rewrite rules to decompose
// other ops on those types.
func decomposeBuiltIn(f *Func) {}

func maybeAppend(f *Func, ss []*LocalSlot, s *LocalSlot) []*LocalSlot {}

func maybeAppend2(f *Func, ss []*LocalSlot, s1, s2 *LocalSlot) []*LocalSlot {}

func decomposeBuiltInPhi(v *Value) {}

func decomposeStringPhi(v *Value) {}

func decomposeSlicePhi(v *Value) {}

func decomposeInt64Phi(v *Value) {}

func decomposeComplexPhi(v *Value) {}

func decomposeInterfacePhi(v *Value) {}

func decomposeUser(f *Func) {}

// decomposeUserArrayInto creates names for the element(s) of arrays referenced
// by name where possible, and appends those new names to slots, which is then
// returned.
func decomposeUserArrayInto(f *Func, name *LocalSlot, slots []*LocalSlot) []*LocalSlot {}

// decomposeUserStructInto creates names for the fields(s) of structs referenced
// by name where possible, and appends those new names to slots, which is then
// returned.
func decomposeUserStructInto(f *Func, name *LocalSlot, slots []*LocalSlot) []*LocalSlot {}

func decomposeUserPhi(v *Value) {}

// decomposeStructPhi replaces phi-of-struct with structmake(phi-for-each-field),
// and then recursively decomposes the phis for each field.
func decomposeStructPhi(v *Value) {}

// decomposeArrayPhi replaces phi-of-array with arraymake(phi-of-array-element),
// and then recursively decomposes the element phi.
func decomposeArrayPhi(v *Value) {}

const MaxStruct

type namedVal

// deleteNamedVals removes particular values with debugger names from f's naming data structures,
// removes all values with OpInvalid, and re-sorts the list of Names.
func deleteNamedVals(f *Func, toDelete []namedVal) {}