Functions
            
            
               
                  AddKeepRelocations 
                  function
                  
                  #
               
               
               AddKeepRelocations adds a dummy "R_KEEP" relocation from each
global map variable V to its associated outlined init function.
These relocation ensure that if the map var itself is determined to
be reachable at link time, we also mark the init function as
reachable.
               
               func AddKeepRelocations()
            
            
            
               
                  AnySideEffects 
                  function
                  
                  #
               
               
               AnySideEffects reports whether n contains any operations that could have observable side effects.
               
               func AnySideEffects(n ir.Node) bool
            
            
            
               
                  OutlineMapInits 
                  function
                  
                  #
               
               
               OutlineMapInits replaces global map initializers with outlined
calls to separate "map init" functions (where possible and
profitable), to facilitate better dead-code elimination by the
linker.
               
               func OutlineMapInits(fn *ir.Func)
            
            
            
               
                  StaticAssign 
                  method
                  
                  #
               
               
               func (s *Schedule) StaticAssign(l *ir.Name, loff int64, r ir.Node, typ *types.Type) bool
            
            
            
               
                  StaticInit 
                  method
                  
                  #
               
               
               StaticInit adds an initialization statement n to the schedule.
               
               func (s *Schedule) StaticInit(n ir.Node)
            
            
            
               
                  StaticLoc 
                  function
                  
                  #
               
               
               StaticLoc returns the static address of n, if n has one, or else nil.
               
               func StaticLoc(n ir.Node) (name *ir.Name, offset int64, ok bool)
            
            
            
               
                  StaticName 
                  function
                  
                  #
               
               
               StaticName returns a name backed by a (writable) static data symbol.
               
               func StaticName(t *types.Type) *ir.Name
            
            
            
               
                  addStr 
                  function
                  
                  #
               
               
               func addStr(n *ir.AddStringExpr) ir.Node
            
            
            
               
                  addvalue 
                  method
                  
                  #
               
               
               func (s *Schedule) addvalue(p *Plan, xoffset int64, n ir.Node)
            
            
            
               
                  allBlank 
                  function
                  
                  #
               
               
               allBlank reports whether every node in exprs is blank.
               
               func allBlank(exprs []ir.Node) bool
            
            
            
               
                  append 
                  method
                  
                  #
               
               
               func (s *Schedule) append(n ir.Node)
            
            
            
               
                  canRepeat 
                  function
                  
                  #
               
               
               canRepeat reports whether executing n multiple times has the same effect as
assigning n to a single variable and using that variable multiple times.
               
               func canRepeat(n ir.Node) bool
            
            
            
               
                  getlit 
                  function
                  
                  #
               
               
               func getlit(lit ir.Node) int
            
            
            
               
                  initplan 
                  method
                  
                  #
               
               
               func (s *Schedule) initplan(n ir.Node)
            
            
            
               
                  isSideEffect 
                  function
                  
                  #
               
               
               func isSideEffect(n ir.Node) bool
            
            
            
               
                  isvaluelit 
                  function
                  
                  #
               
               
               func isvaluelit(n ir.Node) bool
            
            
            
               
                  mayModifyPkgVar 
                  function
                  
                  #
               
               
               mayModifyPkgVar reports whether expression n may modify any
package-scope variables declared within the current package.
               
               func mayModifyPkgVar(n ir.Node) bool
            
            
            
               
                  recordFuncForVar 
                  function
                  
                  #
               
               
               recordFuncForVar establishes a mapping between global map var "v" and
outlined init function "fn" (and vice versa); so that we can use
the mappings later on to update relocations.
               
               func recordFuncForVar(v *ir.Name, fn *ir.Func)
            
            
            
               
                  staticAssignInlinedCall 
                  method
                  
                  #
               
               
               func (s *Schedule) staticAssignInlinedCall(l *ir.Name, loff int64, call *ir.InlinedCallExpr, typ *types.Type) bool
            
            
            
               
                  staticcopy 
                  method
                  
                  #
               
               
               like staticassign but we are copying an already
initialized value r.
               
               func (s *Schedule) staticcopy(l *ir.Name, loff int64, rn *ir.Name, typ *types.Type) bool
            
            
            
               
                  subst 
                  function
                  
                  #
               
               
               func subst(n ir.Node, m map[*ir.Name]ir.Node) (ir.Node, bool)
            
            
            
               
                  truncate 
                  function
                  
                  #
               
               
               truncate returns the result of force converting c to type t,
truncating its value as needed, like a conversion of a variable.
If the conversion is too difficult, truncate returns nil, false.
               
               func truncate(c ir.Node, t *types.Type) (ir.Node, bool)
            
            
            
               
                  tryStaticInit 
                  method
                  
                  #
               
               
               tryStaticInit attempts to statically execute an initialization
statement and reports whether it succeeded.
               
               func (s *Schedule) tryStaticInit(n ir.Node) bool
            
            
            
               
                  tryWrapGlobalInit 
                  function
                  
                  #
               
               
               tryWrapGlobalInit returns a new outlined function to contain global
initializer statement n, if possible and worthwhile. Otherwise, it
returns nil.
Currently, it outlines map assignment statements with large,
side-effect-free RHS expressions.
               
               func tryWrapGlobalInit(n ir.Node) *ir.Func