Search Options

Results per page
Sort
Preferred Languages
Advance

Results 11 - 20 of 115 for Preds (0.11 sec)

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

    			for i, a := range v.Args {
    				if !a.rematerializeable() {
    					continue // not a constant we can move around
    				}
    				if a.Block == b.Preds[i].b {
    					continue // already in the right place
    				}
    				// Make a copy of a, put in predecessor block.
    				v.SetArg(i, a.copyInto(b.Preds[i].b))
    			}
    		}
    	}
    }
    
    // memState computes the memory state at the beginning and end of each block of
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue May 16 01:01:38 UTC 2023
    - 7.7K bytes
    - Viewed (0)
  2. 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)
  3. src/cmd/compile/internal/ssa/layout.go

    		}
    	}
    
    	// Initialize indegree of each block
    	for _, b := range f.Blocks {
    		if exit.contains(b.ID) {
    			// exit blocks are always scheduled last
    			continue
    		}
    		indegree[b.ID] = len(b.Preds)
    		if len(b.Preds) == 0 {
    			// Push an element to the tail of the queue.
    			zerodegree = append(zerodegree, b.ID)
    		} else {
    			posdegree.add(b.ID)
    		}
    	}
    
    	bid := f.Entry.ID
    blockloop:
    	for {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 31 21:41:20 UTC 2022
    - 5K bytes
    - Viewed (0)
  4. 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)
  5. src/cmd/compile/internal/ssa/dom.go

    	return order
    }
    
    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)
  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/print.go

    }
    
    func (p stringFuncPrinter) startBlock(b *Block, reachable bool) {
    	if !p.printDead && !reachable {
    		return
    	}
    	fmt.Fprintf(p.w, "  b%d:", b.ID)
    	if len(b.Preds) > 0 {
    		io.WriteString(p.w, " <-")
    		for _, e := range b.Preds {
    			pred := e.b
    			fmt.Fprintf(p.w, " b%d", pred.ID)
    		}
    	}
    	if !reachable {
    		fmt.Fprint(p.w, " DEAD")
    	}
    	io.WriteString(p.w, "\n")
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 31 21:41:20 UTC 2022
    - 3.9K bytes
    - Viewed (0)
  9. src/cmd/compile/internal/ssa/fuse_comparisons.go

    //	 \
    //	  b
    //	 / \
    //	s0 s1
    //
    // where b has the combined control value 'unsigned(x-1) < 4'.
    // Later passes will then fuse p and b.
    func fuseIntegerComparisons(b *Block) bool {
    	if len(b.Preds) != 1 {
    		return false
    	}
    	p := b.Preds[0].Block()
    	if b.Kind != BlockIf || p.Kind != BlockIf {
    		return false
    	}
    
    	// Don't merge control values if b is likely to be bypassed anyway.
    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/ssagen/phi.go

    		for _, v := range b.Values {
    			if v.Op != ssa.OpFwdRef {
    				continue
    			}
    			var_ := v.Aux.(fwdRefAux).N
    
    			// Optimization: look back 1 block for the definition.
    			if len(b.Preds) == 1 {
    				c := b.Preds[0].Block()
    				if w := s.defvars[c.ID][var_]; w != nil {
    					v.Op = ssa.OpCopy
    					v.Aux = nil
    					v.AddArg(w)
    					continue
    				}
    			}
    
    			if _, ok := s.varnum[var_]; ok {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Nov 18 17:59:44 UTC 2022
    - 15.2K bytes
    - Viewed (0)
Back to top