package gc
import (
+ "cmd/compile/internal/ssa"
"cmd/internal/obj"
"crypto/md5"
"fmt"
var nam *Node
var gcargs *Sym
var gclocals *Sym
+ var ssafn *ssa.Func
if fn.Nbody == nil {
if pure_go != 0 || strings.HasPrefix(fn.Func.Nname.Sym.Name, "init.") {
Yyerror("missing function body for %q", fn.Func.Nname.Sym.Name)
goto ret
}
+ // Build an SSA backend function
+ {
+ name := Curfn.Func.Nname.Sym.Name
+ if len(name) > 4 && name[len(name)-4:] == "_ssa" {
+ ssafn = buildssa(Curfn)
+ }
+ }
+
continpc = nil
breakpc = nil
}
}
+ if ssafn != nil {
+ genssa(ssafn, ptxt, gcargs, gclocals)
+ return
+ }
Genlist(Curfn.Func.Enter)
Genlist(Curfn.Nbody)
gclean()