Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 10 for Succs (0.05 sec)

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

    				bid = cid
    				continue blockloop
    			}
    		}
    
    		// Still nothing, pick the unscheduled successor block encountered most recently.
    		for len(succs) > 0 {
    			// Pop an element from the tail of the queue.
    			cid := succs[len(succs)-1]
    			succs = succs[:len(succs)-1]
    			if !scheduled[cid] {
    				bid = cid
    				continue blockloop
    			}
    		}
    
    		// Still nothing, pick any non-exit block.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 31 21:41:20 UTC 2022
    - 5K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/ssa/fuse.go

    	var ss0, ss1 *Block
    	s0 := b.Succs[0].b
    	i0 := b.Succs[0].i
    	if s0.Kind != BlockPlain || !isEmpty(s0) {
    		s0, ss0 = b, s0
    	} else {
    		ss0 = s0.Succs[0].b
    		i0 = s0.Succs[0].i
    	}
    	s1 := b.Succs[1].b
    	i1 := b.Succs[1].i
    	if s1.Kind != BlockPlain || !isEmpty(s1) {
    		s1, ss1 = b, s1
    	} else {
    		ss1 = s1.Succs[0].b
    		i1 = s1.Succs[0].i
    	}
    	if ss0 != ss1 {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Oct 31 20:45:54 UTC 2023
    - 9K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssa/trim.go

    		// order, in which the predecessors edges are merged here.
    		p, i := b.Preds[0].b, b.Preds[0].i
    		s, j := b.Succs[0].b, b.Succs[0].i
    		ns := len(s.Preds)
    		p.Succs[i] = Edge{s, j}
    		s.Preds[j] = Edge{p, i}
    
    		for _, e := range b.Preds[1:] {
    			p, i := e.b, e.i
    			p.Succs[i] = Edge{s, len(s.Preds)}
    			s.Preds = append(s.Preds, Edge{p, i})
    		}
    
    		// Attempt to preserve a statement boundary
    		if bIsStmt {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Nov 18 17:59:44 UTC 2022
    - 4.2K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssa/critical.go

    				// Don't increment i in this case because we moved
    				// an unprocessed predecessor down into slot i.
    			} else {
    				// splice it in
    				p.Succs[pi] = Edge{d, 0}
    				b.Preds[i] = Edge{d, 0}
    				d.Preds = append(d.Preds, Edge{p, pi})
    				d.Succs = append(d.Succs, Edge{b, i})
    				i++
    			}
    		}
    	}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue May 16 21:40:11 UTC 2023
    - 3.1K bytes
    - Viewed (0)
  5. src/cmd/vendor/golang.org/x/tools/go/cfg/cfg.go

    //
    //	if x := f(); x != nil {
    //		T()
    //	} else {
    //		F()
    //	}
    //
    // produces this CFG:
    //
    //	1:  x := f()		Body
    //	    x != nil
    //	    succs: 2, 3
    //	2:  T()			IfThen
    //	    succs: 4
    //	3:  F()			IfElse
    //	    succs: 4
    //	4:			IfDone
    //
    // The CFG does contain Return statements; even implicit returns are
    // materialized (at the position of the function's closing brace).
    //
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Apr 02 02:20:05 UTC 2024
    - 7.7K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/ssa/fuse_branchredirect.go

    				ft.restore()
    				if !unsat {
    					continue
    				}
    				// This branch is impossible,so redirect p directly to another branch.
    				out := 1 ^ j
    				child := parent.Succs[out].b
    				if child == b {
    					continue
    				}
    				b.removePred(k)
    				p.Succs[pk.i] = Edge{child, len(child.Preds)}
    				// Fix up Phi value in b to have one less argument.
    				for _, v := range b.Values {
    					if v.Op != OpPhi {
    						continue
    					}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue May 16 21:40:11 UTC 2023
    - 3.2K bytes
    - Viewed (0)
  7. src/cmd/compile/internal/ssa/deadcode.go

    }
    
    // removeEdge removes the i'th outgoing edge from b (and
    // the corresponding incoming edge from b.Succs[i].b).
    // Note that this potentially reorders successors of b, so it
    // must be used very carefully.
    func (b *Block) removeEdge(i int) {
    	e := b.Succs[i]
    	c := e.b
    	j := e.i
    
    	// Adjust b.Succs
    	b.removeSucc(i)
    
    	// Adjust c.Preds
    	c.removePred(j)
    
    	// Remove phi args from c's phis.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Dec 08 00:29:01 UTC 2023
    - 9.2K bytes
    - Viewed (0)
  8. src/cmd/compile/internal/ssa/dom.go

    type linkedBlocks func(*Block) []Edge
    
    func dominators(f *Func) []*Block {
    	preds := func(b *Block) []Edge { return b.Preds }
    	succs := func(b *Block) []Edge { return b.Succs }
    
    	//TODO: benchmark and try to find criteria for swapping between
    	// dominatorsSimple and dominatorsLT
    	return f.dominatorsLTOrig(f.Entry, preds, succs)
    }
    
    // dominatorsLTOrig runs Lengauer-Tarjan to compute a dominator tree starting at
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Sat Dec 03 17:08:51 UTC 2022
    - 7.4K bytes
    - Viewed (0)
  9. src/cmd/vendor/golang.org/x/tools/go/analysis/passes/lostcancel/lostcancel.go

    				}
    				return ret // found
    			}
    
    			// Recur
    			if ret := search(b.Succs); ret != nil {
    				if debug {
    					fmt.Printf(" from block %s\n", b)
    				}
    				return ret
    			}
    		}
    		return nil
    	}
    	return search(defblock.Succs)
    }
    
    func tupleContains(tuple *types.Tuple, v *types.Var) bool {
    	for i := 0; i < tuple.Len(); i++ {
    		if tuple.At(i) == v {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jan 22 19:00:13 UTC 2024
    - 9K bytes
    - Viewed (0)
  10. src/cmd/compile/internal/ssa/sparsetree.go

    func (t SparseTree) treestructure(b *Block) string {
    	return t.treestructure1(b, 0)
    }
    func (t SparseTree) treestructure1(b *Block, i int) string {
    	s := "\n" + strings.Repeat("\t", i) + b.String() + "->["
    	for i, e := range b.Succs {
    		if i > 0 {
    			s += ","
    		}
    		s += e.b.String()
    	}
    	s += "]"
    	if c0 := t[b.ID].child; c0 != nil {
    		s += "("
    		for c := c0; c != nil; c = t[c.ID].sibling {
    			if c != c0 {
    				s += " "
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Nov 18 17:59:44 UTC 2022
    - 8.1K bytes
    - Viewed (0)
Back to top