Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 39 for Succs (0.03 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/likelyadjust.go

    		return
    	}
    	ln.calculateDepths()
    	b2l := ln.b2l
    	for _, b := range ln.po {
    		l := b2l[b.ID]
    		if l != nil && len(b.Succs) == 2 {
    			sl := b2l[b.Succs[0].b.ID]
    			if recordIfExit(l, sl, b.Succs[0].b) {
    				continue
    			}
    			sl = b2l[b.Succs[1].b.ID]
    			if recordIfExit(l, sl, b.Succs[1].b) {
    				continue
    			}
    		}
    	}
    	ln.initializedExits = true
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 31 21:41:20 UTC 2022
    - 15.4K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssa/check.go

    			}
    		case BlockRetJmp:
    			if len(b.Succs) != 0 {
    				f.Fatalf("retjmp block %s len(Succs)==%d, want 0", b, len(b.Succs))
    			}
    			if b.NumControls() != 1 {
    				f.Fatalf("retjmp block %s has nil control", b)
    			}
    			if !b.Controls[0].Type.IsMemory() {
    				f.Fatalf("retjmp block %s has non-memory control value %s", b, b.Controls[0].LongString())
    			}
    		case BlockPlain:
    			if len(b.Succs) != 1 {
    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/block.go

    func (b *Block) removeSucc(i int) {
    	n := len(b.Succs) - 1
    	if i != n {
    		e := b.Succs[n]
    		b.Succs[i] = e
    		// Update the other end of the edge we moved.
    		e.b.Preds[e.i].i = i
    	}
    	b.Succs[n] = Edge{}
    	b.Succs = b.Succs[:n]
    	b.Func.invalidateCFG()
    }
    
    func (b *Block) swapSuccessors() {
    	if len(b.Succs) != 2 {
    		b.Fatalf("swapSuccessors with len(Succs)=%d", len(b.Succs))
    	}
    	e0 := b.Succs[0]
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 15 15:44:14 UTC 2024
    - 12.2K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/wasm/ssa.go

    	case ssa.BlockPlain:
    		if next != b.Succs[0].Block() {
    			s.Br(obj.AJMP, b.Succs[0].Block())
    		}
    
    	case ssa.BlockIf:
    		switch next {
    		case b.Succs[0].Block():
    			// if false, jump to b.Succs[1]
    			getValue32(s, b.Controls[0])
    			s.Prog(wasm.AI32Eqz)
    			s.Prog(wasm.AIf)
    			s.Br(obj.AJMP, b.Succs[1].Block())
    			s.Prog(wasm.AEnd)
    		case b.Succs[1].Block():
    			// if true, jump to b.Succs[0]
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Feb 24 00:21:13 UTC 2023
    - 17.6K bytes
    - Viewed (0)
  7. src/cmd/compile/internal/ssa/phiopt.go

    		// reverse is the predecessor from which the truth value comes.
    		var reverse int
    		if b0.Succs[0].b == pb0 && b0.Succs[1].b == pb1 {
    			reverse = 0
    		} else if b0.Succs[0].b == pb1 && b0.Succs[1].b == pb0 {
    			reverse = 1
    		} else {
    			b.Fatalf("invalid predecessors\n")
    		}
    
    		for _, v := range b.Values {
    			if v.Op != OpPhi {
    				continue
    			}
    
    			// Look for conversions from bool to 0/1.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Apr 11 16:34:30 UTC 2022
    - 8.1K bytes
    - Viewed (0)
  8. src/cmd/compile/internal/ssa/branchelim.go

    		return false
    	}
    	yes, no := b.Succs[0].Block(), b.Succs[1].Block()
    	if !isLeafPlain(yes) || len(yes.Values) > 1 || !canSpeculativelyExecute(yes) {
    		return false
    	}
    	if !isLeafPlain(no) || len(no.Values) > 1 || !canSpeculativelyExecute(no) {
    		return false
    	}
    	if b.Succs[0].Block().Succs[0].Block() != b.Succs[1].Block().Succs[0].Block() {
    		return false
    	}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Nov 30 17:46:51 UTC 2022
    - 12.7K bytes
    - Viewed (0)
  9. src/cmd/compile/internal/test/testdata/flowgraph_generator1.go

    // Z:
    // 	return y
    // }
    
    // {f:BC_CD_BE_BZ_CZ101,
    //  maxin:32, blocks:[]blo{
    //  	blo{inc:0, cond:true, succs:[2]int64{1, 2}},
    //  	blo{inc:1, cond:true, succs:[2]int64{2, 3}},
    //  	blo{inc:0, cond:true, succs:[2]int64{1, 4}},
    //  	blo{inc:10, cond:true, succs:[2]int64{1, 25}},
    //  	blo{inc:0, cond:true, succs:[2]int64{2, 25}},}},
    
    var labels string = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Dec 23 06:40:04 UTC 2020
    - 6.7K bytes
    - Viewed (0)
  10. 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)
Back to top