Search Options

Results per page
Sort
Preferred Languages
Advance

Results 31 - 40 of 48 for OpPhi (0.03 sec)

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

    			Valu("sb", OpSB, c.config.Types.Uintptr, 0, nil),
    			Valu("v", OpConstBool, c.config.Types.Bool, 1, nil),
    			Valu("addr", OpAddr, ptrType, 0, nil, "sb"),
    			Goto("loop")),
    		Bloc("loop",
    			Valu("phi", OpPhi, types.TypeMem, 0, nil, "start", "store"),
    			Valu("store", OpStore, types.TypeMem, 0, c.config.Types.Bool, "addr", "v", "phi"),
    			If("v", "loop", "exit")),
    		Bloc("exit",
    			Exit("store")))
    
    	CheckFunc(fun.f)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Apr 25 20:07:26 UTC 2024
    - 5.6K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/ssa/flagalloc.go

    			for _, e := range b.Preds[1:] {
    				p := e.b
    				if end[p.ID] != flag {
    					f.Fatalf("live flag in %s's predecessors not consistent", b)
    				}
    			}
    		}
    		for _, v := range oldSched {
    			if v.Op == OpPhi && v.Type.IsFlags() {
    				f.Fatalf("phi of flags not supported: %s", v.LongString())
    			}
    
    			// If v will be spilled, and v uses memory, then we must split it
    			// into a load + a flag generator.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 31 21:41:20 UTC 2022
    - 6.7K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssa/value.go

    // The returned value, if non-nil, will be memory-typed (or a tuple with a memory-typed second part).
    // Otherwise, nil is returned.
    func (v *Value) MemoryArg() *Value {
    	if v.Op == OpPhi {
    		v.Fatalf("MemoryArg on Phi")
    	}
    	na := len(v.Args)
    	if na == 0 {
    		return nil
    	}
    	if m := v.Args[na-1]; m.Type.IsMemory() {
    		return m
    	}
    	return nil
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 03 16:40:22 UTC 2024
    - 16.7K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssa/fuse.go

    			return false
    		}
    	}
    	ss := ss0
    
    	// s0 and s1 are equal with b if the corresponding block is missing
    	// (2nd, 3rd and 4th case in the figure).
    
    	for _, v := range ss.Values {
    		if v.Op == OpPhi && v.Uses > 0 && v.Args[i0] != v.Args[i1] {
    			return false
    		}
    	}
    
    	// We do not need to redirect the Preds of s0 and s1 to ss,
    	// the following optimization will do this.
    	b.removeEdge(0)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Oct 31 20:45:54 UTC 2023
    - 9K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssa/regalloc.go

    				regValLiveSet.add(v.ID)
    			}
    		}
    		for i := len(b.Values) - 1; i >= 0; i-- {
    			v := b.Values[i]
    			regValLiveSet.remove(v.ID)
    			if v.Op == OpPhi {
    				// Remove v from the live set, but don't add
    				// any inputs. This is the state the len(b.Preds)>1
    				// case below desires; it wants to process phis specially.
    				continue
    			}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 21 17:49:56 UTC 2023
    - 87.2K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/ssa/nilcheck.go

    			}
    		}
    	}
    
    	for changed := true; changed; {
    		changed = false
    		for _, b := range f.Blocks {
    			for _, v := range b.Values {
    				// phis whose arguments are all non-nil
    				// are non-nil
    				if v.Op == OpPhi {
    					argsNonNil := true
    					for _, a := range v.Args {
    						if nonNilValues[a.ID] == nil {
    							argsNonNil = false
    							break
    						}
    					}
    					if argsNonNil {
    						if nonNilValues[v.ID] == nil {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Oct 31 20:45:54 UTC 2023
    - 11.3K bytes
    - Viewed (0)
  7. src/cmd/compile/internal/ssa/loopbce.go

    // 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
    	}
    
    	if n := ind.Args[0]; (n.Op == OpAdd64 || n.Op == OpAdd32 || n.Op == OpAdd16 || n.Op == OpAdd8) && (n.Args[0] == ind || n.Args[1] == ind) {
    		min, nxt = ind.Args[1], n
    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/rewrite.go

    		args = args[:len(args)-1]
    		if target.Block.ID != v.Block.ID {
    			// Since target and load are in the same block
    			// we can stop searching when we leave the block.
    			continue
    		}
    		if v.Op == OpPhi {
    			// A Phi implies we have reached the top of the block.
    			// The memory phi, if it exists, is always
    			// the first logical store in the block.
    			continue
    		}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 19:02:52 UTC 2024
    - 64.2K bytes
    - Viewed (0)
  9. src/cmd/compile/internal/ssa/stackalloc.go

    			live.addAll(s.live[b.ID])
    
    			// Propagate backwards to the start of the block
    			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)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Feb 29 21:29:41 UTC 2024
    - 12.6K bytes
    - Viewed (0)
  10. src/cmd/compile/internal/ssa/block.go

    // It must be called after calling b.removePred(i) to
    // adjust the corresponding phi value of the block:
    //
    // b.removePred(i)
    // for _, v := range b.Values {
    //
    //	if v.Op != OpPhi {
    //	    continue
    //	}
    //	b.removePhiArg(v, i)
    //
    // }
    func (b *Block) removePhiArg(phi *Value, i int) {
    	n := len(b.Preds)
    	if numPhiArgs := len(phi.Args); numPhiArgs-1 != n {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 15 15:44:14 UTC 2024
    - 12.2K bytes
    - Viewed (0)
Back to top