// cmpstackvarlt reports whether the stack variable a sorts before b. func cmpstackvarlt(a, b *ir.Name, mls *liveness.MergeLocalsState) bool { … } // needAlloc reports whether n is within the current frame, for which we need to // allocate space. In particular, it excludes arguments and results, which are in // the callers frame. func needAlloc(n *ir.Name) bool { … } func (s *ssafn) AllocFrame(f *ssa.Func) { … } const maxStackSize … // Compile builds an SSA backend function, // uses it to generate a plist, // and flushes that plist to machine code. // worker indicates which of the backend workers is doing the processing. func Compile(fn *ir.Func, worker int, profile *pgoir.Profile) { … } var globalMapInitLsyms … // RegisterMapInitLsym records "s" in the set of outlined map initializer // functions. func RegisterMapInitLsym(s *obj.LSym) { … } // weakenGlobalMapInitRelocs walks through all of the relocations on a // given a package init function "fn" and looks for relocs that target // outlined global map initializer functions; if it finds any such // relocs, it flags them as R_WEAK. func weakenGlobalMapInitRelocs(fn *ir.Func) { … } // StackOffset returns the stack location of a LocalSlot relative to the // stack pointer, suitable for use in a DWARF location entry. This has nothing // to do with its offset in the user variable. func StackOffset(slot ssa.LocalSlot) int32 { … } // fieldtrack adds R_USEFIELD relocations to fnsym to record any // struct fields that it used. func fieldtrack(fnsym *obj.LSym, tracked map[*obj.LSym]struct{ … } type largeStack … var largeStackFramesMu … var largeStackFrames … func CheckLargeStacks() { … }