Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 6 of 6 for invalidateCFG (0.16 sec)

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

    // AddEdgeTo adds an edge from block b to block c.
    func (b *Block) AddEdgeTo(c *Block) {
    	i := len(b.Succs)
    	j := len(c.Preds)
    	b.Succs = append(b.Succs, Edge{c, j})
    	c.Preds = append(c.Preds, Edge{b, i})
    	b.Func.invalidateCFG()
    }
    
    // removePred removes the ith input edge from b.
    // It is the responsibility of the caller to remove
    // the corresponding successor edge, and adjust any
    // phi values by calling b.removePhiArg(v, i).
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 15 15:44:14 UTC 2024
    - 12.2K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/ssa/trim.go

    		m := len(s.Values)
    		for i := 0; i < k; i++ {
    			s.Values = append(s.Values, nil)
    		}
    		copy(s.Values[k:], s.Values[:m])
    		copy(s.Values, b.Values)
    	}
    	if n < len(f.Blocks) {
    		f.invalidateCFG()
    		tail := f.Blocks[n:]
    		for i := range tail {
    			tail[i] = nil
    		}
    		f.Blocks = f.Blocks[:n]
    	}
    }
    
    // emptyBlock reports whether the block does not contain actual
    // instructions.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Nov 18 17:59:44 UTC 2022
    - 4.2K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssa/branchelim.go

    		}
    	}
    
    	dom.Values = append(dom.Values, simple.Values...)
    	dom.Values = append(dom.Values, post.Values...)
    
    	// Trash 'post' and 'simple'
    	clobberBlock(post)
    	clobberBlock(simple)
    
    	f.invalidateCFG()
    	return true
    }
    
    // is this a BlockPlain with one predecessor?
    func isLeafPlain(b *Block) bool {
    	return b.Kind == BlockPlain && len(b.Preds) == 1
    }
    
    func clobberBlock(b *Block) {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Nov 30 17:46:51 UTC 2022
    - 12.7K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssa/func.go

    func (f *Func) loopnest() *loopnest {
    	if f.cachedLoopnest == nil {
    		f.cachedLoopnest = loopnestfor(f)
    	}
    	return f.cachedLoopnest
    }
    
    // invalidateCFG tells f that its CFG has changed.
    func (f *Func) invalidateCFG() {
    	f.cachedPostorder = nil
    	f.cachedIdom = nil
    	f.cachedSdom = nil
    	f.cachedLoopnest = nil
    }
    
    // DebugHashMatch returns
    //
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jun 10 19:44:43 UTC 2024
    - 25.8K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssa/fuse.go

    			if typ&fuseTypeShortCircuit != 0 {
    				changed = shortcircuitBlock(b) || changed
    			}
    		}
    
    		if typ&fuseTypeBranchRedirect != 0 {
    			changed = fuseBranchRedirect(f) || changed
    		}
    		if changed {
    			f.invalidateCFG()
    		}
    	}
    }
    
    // fuseBlockIf handles the following cases where s0 and s1 are empty blocks.
    //
    //	   b        b           b       b
    //	\ / \ /    | \  /    \ / |     | |
    //	 s0  s1    |  s1      s0 |     | |
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Oct 31 20:45:54 UTC 2023
    - 9K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/ssa/loopreschedchecks.go

    		// backedge at index i.
    		for _, v := range h.Values {
    			if v.Op == OpPhi && v != headerMemPhi {
    				v.AddArg(v.Args[i])
    			}
    		}
    	}
    
    	f.invalidateCFG()
    
    	if f.pass.debug > 1 {
    		sdom = newSparseTree(f, f.Idom())
    		fmt.Printf("after %s = %s\n", f.Name, sdom.treestructure(f.Entry))
    	}
    }
    
    // newPhiFor inserts a new Phi function into b,
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Aug 22 21:17:10 UTC 2023
    - 16K bytes
    - Viewed (0)
Back to top