Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 21 for phi (0.03 sec)

  1. src/cmd/compile/internal/ssa/loopreschedchecks.go

    	// Insert phi functions as necessary for future changes to flow graph.
    	for i, emc := range tofixBackedges {
    		e := emc.e
    		h := e.b
    
    		// find the phi function for the memory input at "h", if there is one.
    		var headerMemPhi *Value // look for header mem phi
    
    		for _, v := range h.Values {
    			if v.Op == OpPhi && v.Type.IsMemory() {
    				headerMemPhi = v
    			}
    		}
    
    		if headerMemPhi == nil {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Aug 22 21:17:10 UTC 2023
    - 16K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/ssa/block.go

    		b.Fatalf("inconsistent state for %v, num predecessors: %d, num phi args: %d", phi, n, numPhiArgs)
    	}
    	phi.Args[i].Uses--
    	phi.Args[i] = phi.Args[n]
    	phi.Args[n] = nil
    	phi.Args = phi.Args[:n]
    	phielimValue(phi)
    }
    
    // LackingPos indicates whether b is a block whose position should be inherited
    // from its successors.  This is true if all the values within it have unreliable positions
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 15 15:44:14 UTC 2024
    - 12.2K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssa/sccp.go

    	for _, use := range t.defUse[val] {
    		if val == use {
    			// Phi may refer to itself as uses, ignore them to avoid re-visiting phi
    			// for performance reason
    			continue
    		}
    		t.uses = append(t.uses, use)
    	}
    	for _, block := range t.defBlock[val] {
    		if t.visitedBlock[block.ID] {
    			t.propagate(block)
    		}
    	}
    }
    
    // meet meets all of phi arguments and computes result lattice
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jan 22 16:54:50 UTC 2024
    - 17.6K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssa/check.go

    	if f.scheduled {
    		for _, b := range f.Blocks {
    			seenNonPhi := false
    			for _, v := range b.Values {
    				switch v.Op {
    				case OpPhi:
    					if seenNonPhi {
    						f.Fatalf("phi after non-phi @ %s: %s", b, v)
    					}
    				default:
    					seenNonPhi = true
    				}
    			}
    		}
    	}
    }
    
    // domCheck reports whether x dominates y (including x==y).
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Apr 09 16:41:23 UTC 2024
    - 17.6K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssa/compile.go

    	// tuple selectors must be tightened to generators and de-duplicated before scheduling
    	{"tighten tuple selectors", "schedule"},
    	// remove critical edges before phi tighten, so that phi args get better placement
    	{"critical", "phi tighten"},
    	// don't layout blocks until critical edges have been removed
    	{"critical", "layout"},
    	// regalloc requires the removal of all critical edges
    	{"critical", "regalloc"},
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Apr 22 14:55:18 UTC 2024
    - 18.6K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/ssa/nilcheck_test.go

    		Bloc("b2",
    			Valu("ptr2", OpAddr, ptrType, 0, nil, "sb"),
    			Goto("checkPtr")),
    		// both ptr1 and ptr2 are guaranteed non-nil here
    		Bloc("checkPtr",
    			Valu("phi", OpPhi, ptrType, 0, nil, "ptr1", "ptr2"),
    			Valu("bool2", OpIsNonNil, c.config.Types.Bool, 0, nil, "phi"),
    			If("bool2", "extra", "exit")),
    		Bloc("extra",
    			Goto("exit")),
    		Bloc("exit",
    			Exit("mem")))
    
    	CheckFunc(fun.f)
    	nilcheckelim(fun.f)
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Nov 17 23:34:11 UTC 2023
    - 12.3K bytes
    - Viewed (0)
  7. src/cmd/compile/internal/ssa/loopbce.go

    //   - the minimum bound
    //   - the increment value
    //   - the "next" value (SSA value that is Phi'd into the induction variable every loop)
    //
    // Currently, we detect induction variables that match (Phi min nxt),
    // with nxt being (Add inc ind).
    // If it can't parse the induction variable correctly, it returns (nil, nil, nil).
    func parseIndVar(ind *Value) (min, inc, nxt *Value) {
    	if ind.Op != OpPhi {
    		return
    	}
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 07 17:37:47 UTC 2023
    - 11.8K bytes
    - Viewed (0)
  8. src/cmd/compile/internal/ssa/stackalloc.go

    			phis = phis[:0]
    			for i := len(b.Values) - 1; i >= 0; i-- {
    				v := b.Values[i]
    				live.remove(v.ID)
    				if v.Op == OpPhi {
    					// Save phi for later.
    					// Note: its args might need a stack slot even though
    					// the phi itself doesn't. So don't use needSlot.
    					if !v.Type.IsMemory() && !v.Type.IsVoid() {
    						phis = append(phis, v)
    					}
    					continue
    				}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Feb 29 21:29:41 UTC 2024
    - 12.6K bytes
    - Viewed (0)
  9. src/cmd/compile/internal/ssa/schedule.go

    				// We also score GetLoweredClosurePtr as early as possible to ensure that the
    				// context register is not stomped. GetLoweredClosurePtr should only appear
    				// in the entry block where there are no phi functions, so there is no
    				// conflict or ambiguity here.
    				if b != f.Entry {
    					f.Fatalf("LoweredGetClosurePtr appeared outside of entry block, b=%s", b.String())
    				}
    				score[v.ID] = ScorePhi
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Apr 08 15:53:17 UTC 2024
    - 16.4K bytes
    - Viewed (0)
  10. src/cmd/compile/internal/ssa/deadstore.go

    				// Extend shadowed region.
    				shadowed.set(ptr.ID, int32(sr.merge(off, off+sz)))
    			}
    		}
    		// walk to previous store
    		if v.Op == OpPhi {
    			// At start of block.  Move on to next block.
    			// The memory phi, if it exists, is always
    			// the first logical store in the block.
    			// (Even if it isn't the first in the current b.Values order.)
    			continue
    		}
    		for _, a := range v.Args {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Apr 25 20:07:26 UTC 2024
    - 11K bytes
    - Viewed (0)
Back to top