Search Options

Results per page
Sort
Preferred Languages
Advance

Results 11 - 20 of 39 for Succs (0.04 sec)

  1. 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)
  2. src/cmd/compile/internal/ssa/shortcircuit.go

    	// In these cases, we can reconstruct what the value
    	// of any phi in b must be in the successor blocks.
    
    	if len(t.Preds) == 1 && len(t.Succs) == 1 &&
    		len(u.Preds) == 1 && len(u.Succs) == 1 &&
    		t.Succs[0].b == u.Succs[0].b && len(t.Succs[0].b.Preds) == 2 {
    		// p   q
    		//  \ /
    		//   b
    		//  / \
    		// t   u
    		//  \ /
    		//   m
    		//
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 03 17:47:02 UTC 2022
    - 12.6K bytes
    - Viewed (0)
  3. 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)
  4. 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)
  5. 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)
  6. src/cmd/compile/internal/s390x/ssa.go

    	// whether a block has already been emitted. In general forward
    	// branches are assumed 'not taken' and backward branches are
    	// assumed 'taken'.
    	if next == succs[0] {
    		succs[0], succs[1] = succs[1], succs[0]
    		mask = mask.Inverse()
    	}
    
    	p := s.Br(blockAsm(b), succs[0])
    	switch b.Kind {
    	case ssa.BlockS390XBRC:
    		p.From.Type = obj.TYPE_CONST
    		p.From.Offset = int64(mask)
    	case ssa.BlockS390XCGRJ, ssa.BlockS390XCRJ,
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 24 01:26:58 UTC 2023
    - 27.1K bytes
    - Viewed (0)
  7. src/cmd/compile/internal/x86/ssa.go

    		switch next {
    		case b.Succs[0].Block():
    			s.Br(jmp.invasm, b.Succs[1].Block())
    		case b.Succs[1].Block():
    			s.Br(jmp.asm, b.Succs[0].Block())
    		default:
    			if b.Likely != ssa.BranchUnlikely {
    				s.Br(jmp.asm, b.Succs[0].Block())
    				s.Br(obj.AJMP, b.Succs[1].Block())
    			} else {
    				s.Br(jmp.invasm, b.Succs[1].Block())
    				s.Br(obj.AJMP, b.Succs[0].Block())
    			}
    		}
    	default:
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 24 01:26:58 UTC 2023
    - 26.7K 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/compile/internal/ssa/fuse_comparisons.go

    	if b.Kind != BlockIf || p.Kind != BlockIf {
    		return false
    	}
    
    	// Don't merge control values if b is likely to be bypassed anyway.
    	if p.Likely == BranchLikely && p.Succs[0].Block() != b {
    		return false
    	}
    	if p.Likely == BranchUnlikely && p.Succs[1].Block() != b {
    		return false
    	}
    
    	// Check if the control values combine to make an integer inequality that
    	// can be further optimized later.
    	bc := b.Controls[0]
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Apr 11 16:34:30 UTC 2022
    - 4K bytes
    - Viewed (0)
  10. src/cmd/compile/internal/ssa/loopbce.go

    		// is the header block.  This implies that b.Succs[0] is
    		// reached iff ind < limit.
    		if len(b.Succs[0].b.Preds) != 1 {
    			// b.Succs[1] must exit the loop.
    			continue
    		}
    
    		// Second condition: b.Succs[0] dominates nxt so that
    		// nxt is computed when inc < limit.
    		if !sdom.IsAncestorEq(b.Succs[0].b, nxt.Block) {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 07 17:37:47 UTC 2023
    - 11.8K bytes
    - Viewed (0)
Back to top