Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 4 of 4 for calculateDepths (0.22 sec)

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

    			l.outer.children = append(l.outer.children, l)
    		}
    	}
    	ln.initializedChildren = true
    }
    
    // calculateDepths uses the children field of loops
    // to determine the nesting depth (outer=1) of each
    // loop.  This is helpful for finding exit edges.
    func (ln *loopnest) calculateDepths() {
    	if ln.initializedDepth {
    		return
    	}
    	ln.assembleChildren()
    	for _, l := range ln.loops {
    		if l.outer == nil {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 31 21:41:20 UTC 2022
    - 15.4K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/ssa/tighten.go

    	defer f.Cache.freeBlockSlice(target)
    
    	// Grab loop information.
    	// We use this to make sure we don't tighten a value into a (deeper) loop.
    	idom := f.Idom()
    	loops := f.loopnest()
    	loops.calculateDepths()
    
    	changed := true
    	for changed {
    		changed = false
    
    		// Reset target
    		for i := range target {
    			target[i] = nil
    		}
    
    		// Compute target locations (for moveable values only).
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue May 16 01:01:38 UTC 2023
    - 7.7K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssa/rewrite.go

    	// approximate x dying with:
    	//  1) target is x's only use.
    	//  2) target is not in a deeper loop than x.
    	if x.Uses != 1 {
    		return false
    	}
    	loopnest := x.Block.Func.loopnest()
    	loopnest.calculateDepths()
    	if loopnest.depth(target.Block.ID) > loopnest.depth(x.Block.ID) {
    		return false
    	}
    	return canMergeLoad(target, load)
    }
    
    // canMergeLoad reports whether the load can be merged into target without
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 19:02:52 UTC 2024
    - 64.2K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssa/regalloc.go

    	// components as single blocks, duplicated calculated liveness information
    	// out to all of them.
    	po := f.postorder()
    	s.loopnest = f.loopnest()
    	s.loopnest.calculateDepths()
    	for {
    		changed := false
    
    		for _, b := range po {
    			// Start with known live values at the end of the block.
    			// Add len(b.Values) to adjust from end-of-block distance
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 21 17:49:56 UTC 2023
    - 87.2K bytes
    - Viewed (0)
Back to top