Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 78 for Preds (0.04 sec)

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

    		if bx == c {
    			break
    		}
    		copyTo += len(bx.Values)
    	}
    	c.Values = t
    
    	// replace b->c edge with preds(b) -> c
    	c.predstorage[0] = Edge{}
    	if len(b.Preds) > len(b.predstorage) {
    		c.Preds = b.Preds
    	} else {
    		c.Preds = append(c.predstorage[:0], b.Preds...)
    	}
    	for i, e := range c.Preds {
    		p := e.b
    		p.Succs[e.i] = Edge{c, i}
    	}
    	f := b.Func
    	if f.Entry == b {
    		f.Entry = c
    	}
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Oct 31 20:45:54 UTC 2023
    - 9K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/ssa/block.go

    // phi values by calling b.removePhiArg(v, i).
    func (b *Block) removePred(i int) {
    	n := len(b.Preds) - 1
    	if i != n {
    		e := b.Preds[n]
    		b.Preds[i] = e
    		// Update the other end of the edge we moved.
    		e.b.Succs[e.i].i = i
    	}
    	b.Preds[n] = Edge{}
    	b.Preds = b.Preds[:n]
    	b.Func.invalidateCFG()
    }
    
    // removeSucc removes the ith output edge from b.
    // It is the responsibility of the caller to remove
    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/check.go

    		if b.Func != f {
    			f.Fatalf("%s.Func=%s, want %s", b, b.Func.Name, f.Name)
    		}
    
    		for i, e := range b.Preds {
    			if se := e.b.Succs[e.i]; se.b != b || se.i != i {
    				f.Fatalf("block pred/succ not crosslinked correctly %d:%s %d:%s", i, b, se.i, se.b)
    			}
    		}
    		for i, e := range b.Succs {
    			if pe := e.b.Preds[e.i]; pe.b != b || pe.i != i {
    				f.Fatalf("block succ/pred not crosslinked correctly %d:%s %d:%s", i, b, pe.i, pe.b)
    			}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Apr 09 16:41:23 UTC 2024
    - 17.6K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssa/numberlines.go

    				v.Pos = firstPos.WithDefaultStmt() // default to default
    				break
    			}
    		}
    
    		if firstPosIndex == -1 { // Effectively empty block, check block's own Pos, consider preds.
    			line := src.NoXPos
    			for _, p := range b.Preds {
    				pbi := p.Block().ID
    				if !endlines[pbi].SameFileAndLine(line) {
    					if line == src.NoXPos {
    						line = endlines[pbi]
    						continue
    					} else {
    						line = src.NoXPos
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Aug 14 21:26:13 UTC 2023
    - 7.8K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssa/debug.go

    		// blocks.  Therefore remove unchanged blocks from the
    		// predecessor list.
    		for i := len(preds) - 1; i >= 0; i-- {
    			pred := preds[i]
    			if blockLocs[pred.ID].lastChangedTime > locs.lastCheckedTime {
    				continue // keep this predecessor
    			}
    			preds[i] = preds[len(preds)-1]
    			preds = preds[:len(preds)-1]
    			if state.loggingLevel > 2 {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jun 10 19:44:43 UTC 2024
    - 58.4K bytes
    - Viewed (0)
  6. test/fixedbugs/issue63955.go

    // Use of this source code is governed by a BSD-style
    // license that can be found in the LICENSE file.
    
    package j
    
    func f(try func() int, shouldInc func() bool, N func(int) int) {
    	var n int
    loop: // we want to have 3 preds here, the function entry and both gotos
    	if v := try(); v == 42 || v == 1337 { // the two || are to trick findIndVar
    		if n < 30 { // this aims to be the matched block
    			if shouldInc() {
    				n++
    				goto loop
    			}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 07 17:37:47 UTC 2023
    - 578 bytes
    - Viewed (0)
  7. src/cmd/compile/internal/ssa/loopreschedchecks.go

    		mem1 := sched.NewValue1I(bb.Pos, OpSelectN, types.TypeMem, 0, call)
    		sched.AddEdgeTo(h)
    		headerMemPhi.AddArg(mem1)
    
    		bb.Succs[p.i] = Edge{test, 0}
    		test.Preds = append(test.Preds, Edge{bb, p.i})
    
    		// Must correct all the other phi functions in the header for new incoming edge.
    		// Except for mem phis, it will be the same value seen on the original
    		// backedge at index i.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Aug 22 21:17:10 UTC 2023
    - 16K bytes
    - Viewed (0)
  8. src/cmd/compile/internal/ssa/func_test.go

    				return false
    			}
    			for i := range fb.Succs {
    				if !checkBlk(fb.Succs[i].b, gb.Succs[i].b) {
    					return false
    				}
    			}
    			if len(fb.Preds) != len(gb.Preds) {
    				return false
    			}
    			for i := range fb.Preds {
    				if !checkBlk(fb.Preds[i].b, gb.Preds[i].b) {
    					return false
    				}
    			}
    			return true
    
    		}
    		return blkcor[fb] == gb && blkcor[gb] == fb
    	}
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Sep 08 19:01:04 UTC 2023
    - 13.1K bytes
    - Viewed (0)
  9. src/cmd/compile/internal/liveness/plive.go

    				decisionBlock = c
    			} else if len(c.Preds) == 1 && len(d.Preds) == 1 && c.Preds[0].Block() == d.Preds[0].Block() {
    				decisionBlock = c.Preds[0].Block()
    			} else {
    				lv.f.Fatalf("can't find write barrier pattern %v", v)
    			}
    			if len(decisionBlock.Succs) != 2 {
    				lv.f.Fatalf("common predecessor block the wrong type %s", decisionBlock.Kind)
    			}
    
    			// Flow backwards from the control value to find the
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 15:22:22 UTC 2024
    - 45.2K bytes
    - Viewed (0)
  10. src/cmd/compile/internal/ssa/looprotate.go

    	after := map[ID][]*Block{}
    
    	// Check each loop header and decide if we want to move it.
    	for _, loop := range loopnest.loops {
    		b := loop.header
    		var p *Block // b's in-loop predecessor
    		for _, e := range b.Preds {
    			if e.b.Kind != BlockPlain {
    				continue
    			}
    			if loopnest.b2l[e.b.ID] != loop {
    				continue
    			}
    			p = e.b
    		}
    		if p == nil {
    			continue
    		}
    		p.Hotness |= HotInitial
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 15 15:44:14 UTC 2024
    - 3K bytes
    - Viewed (0)
Back to top