Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 7 of 7 for Succs (0.04 sec)

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

    		break
    	case BlockDefer:
    		// we know nothing about control flow, add all branch destinations
    		t.edges = append(t.edges, block.Succs...)
    	case BlockFirst:
    		fallthrough // always takes the first branch
    	case BlockPlain:
    		t.edges = append(t.edges, block.Succs[0])
    	case BlockIf, BlockJumpTable:
    		cond := block.ControlValues()[0]
    		condLattice := t.getLatticeCell(cond)
    		if condLattice.tag == bottom {
    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/vendor/golang.org/x/tools/go/cfg/builder.go

    		Stmt:  stmt,
    	}
    	block.Succs = block.succs2[:0]
    	g.Blocks = append(g.Blocks, block)
    	return block
    }
    
    func (b *builder) add(n ast.Node) {
    	b.current.Nodes = append(b.current.Nodes, n)
    }
    
    // jump adds an edge from the current block to the target block,
    // and sets b.current to nil.
    func (b *builder) jump(target *Block) {
    	b.current.Succs = append(b.current.Succs, target)
    	b.current = nil
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Apr 02 02:20:05 UTC 2024
    - 11.4K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssa/_gen/genericOps.go

    var genericBlocks = []blockData{
    	{name: "Plain"},                  // a single successor
    	{name: "If", controls: 1},        // if Controls[0] goto Succs[0] else goto Succs[1]
    	{name: "Defer", controls: 1},     // Succs[0]=defer queued, Succs[1]=defer recovered. Controls[0] is call op (of memory type)
    	{name: "Ret", controls: 1},       // no successors, Controls[0] value is memory result
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 23 15:49:20 UTC 2024
    - 42.6K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/liveness/plive.go

    				// A variable is live on output from this block
    				// if it is live on input to some successor.
    				//
    				// out[b] = \bigcup_{s \in succ[b]} in[s]
    				newliveout.Copy(lv.blockEffects(b.Succs[0].Block()).livein)
    				for _, succ := range b.Succs[1:] {
    					newliveout.Or(newliveout, lv.blockEffects(succ.Block()).livein)
    				}
    			}
    
    			if !be.liveout.Eq(newliveout) {
    				change = true
    				be.liveout.Copy(newliveout)
    			}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 15:22:22 UTC 2024
    - 45.2K bytes
    - Viewed (0)
  7. src/cmd/compile/internal/ssa/func.go

    		if int(ID) < len(f.Cache.blocks) {
    			b = &f.Cache.blocks[ID]
    			b.ID = ID
    		} else {
    			b = &Block{ID: ID}
    		}
    	}
    	b.Kind = kind
    	b.Func = f
    	b.Preds = b.predstorage[:0]
    	b.Succs = b.succstorage[:0]
    	b.Values = b.valstorage[:0]
    	f.Blocks = append(f.Blocks, b)
    	f.invalidateCFG()
    	return b
    }
    
    func (f *Func) freeBlock(b *Block) {
    	if b.Func == nil {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jun 10 19:44:43 UTC 2024
    - 25.8K bytes
    - Viewed (0)
Back to top