Home | History | Annotate | Download | only in ssa

Lines Matching refs:Phis

41 // Phi values are special, as always. We define two kinds of phis, those
46 // same register. Register phis are spilled similarly to regular ops:
53 // stack location. Stack phis start out life already spilled - each phi
60 // The stack allocator knows that StoreReg args of stack-allocated phis
92 // TODO: maybe we should introduce these extra phis?
709 var phis []*Value
771 // case below desires; it wants to process phis specially.
800 // We make a separate copy for phis and regular values.
808 phis = append(phis[:0], b.Values[:nphi]...)
816 f.Fatalf("phis in entry block")
822 f.Fatalf("phis in single-predecessor block")
838 b.Values = append(b.Values, phis...)
861 for _, v := range phis {
880 for i, v := range phis {
899 // block may have been deallocated. Those are the ones used for Phis. Exclude
917 // Third pass - pick registers for phis whose inputs
919 for i, v := range phis {
937 // Set registers for phis. Add phi spill code.
938 for i, v := range phis {
972 // Skip registers that phis used, we'll handle those
981 fmt.Printf("after phis\n")
1655 // (StoreReg, stack-based phis, inputs, ...)
1928 // Phis need their args to end up in a specific location.
2316 var phis []*Value
2354 phis = phis[:0]
2360 phis = append(phis, v)
2443 // All phis are at distance delta (we consider them
2445 for _, v := range phis {