Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 21 for BlockPlain (0.14 sec)

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

    	s0 := b.Succs[0].b
    	i0 := b.Succs[0].i
    	if s0.Kind != BlockPlain || !isEmpty(s0) {
    		s0, ss0 = b, s0
    	} else {
    		ss0 = s0.Succs[0].b
    		i0 = s0.Succs[0].i
    	}
    	s1 := b.Succs[1].b
    	i1 := b.Succs[1].i
    	if s1.Kind != BlockPlain || !isEmpty(s1) {
    		s1, ss1 = b, s1
    	} else {
    		ss1 = s1.Succs[0].b
    		i1 = s1.Succs[0].i
    	}
    	if ss0 != ss1 {
    		if s0.Kind == BlockPlain && isEmpty(s0) && s1.Kind == BlockPlain && isEmpty(s1) {
    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/critical.go

    					// the new blocks to be re-examined.
    					d = f.NewBlock(BlockPlain)
    					d.Pos = p.Pos
    					blocks[argID] = d
    					if f.pass.debug > 0 {
    						f.Warnl(p.Pos, "split critical edge")
    					}
    				} else {
    					reusedBlock = true
    				}
    			} else {
    				// no existing block, so allocate a new block
    				// to place on the edge
    				d = f.NewBlock(BlockPlain)
    				d.Pos = p.Pos
    				if f.pass.debug > 0 {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue May 16 21:40:11 UTC 2023
    - 3.1K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssa/deadcode_test.go

    		Bloc("then",
    			Goto("exit")),
    		Bloc("else",
    			Goto("exit")),
    		Bloc("exit",
    			Exit("mem")))
    
    	CheckFunc(fun.f)
    	Opt(fun.f)
    	Deadcode(fun.f)
    	CheckFunc(fun.f)
    
    	if fun.blocks["entry"].Kind != BlockPlain {
    		t.Errorf("if(false) not simplified")
    	}
    	for _, b := range fun.f.Blocks {
    		if b == fun.blocks["then"] {
    			t.Errorf("then block still present")
    		}
    		for _, v := range b.Values {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue May 09 23:01:51 UTC 2017
    - 3.5K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssagen/ssa.go

    				s.Fatalf("atomic load not available")
    			}
    			merge = s.f.NewBlock(ssa.BlockPlain)
    			cacheHit := s.f.NewBlock(ssa.BlockPlain)
    			cacheMiss := s.f.NewBlock(ssa.BlockPlain)
    			loopHead := s.f.NewBlock(ssa.BlockPlain)
    			loopBody := s.f.NewBlock(ssa.BlockPlain)
    
    			// Pick right size ops.
    			var mul, and, add, zext ssa.Op
    			if s.config.PtrSize == 4 {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jun 10 19:44:43 UTC 2024
    - 284.9K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssa/trim.go

    // subject to the following criteria:
    //   - it should not be the first block.
    //   - it should be BlockPlain.
    //   - it should not loop back to itself.
    //   - it either is the single predecessor of the successor block or
    //     contains no actual instructions.
    func trimmableBlock(b *Block) bool {
    	if b.Kind != BlockPlain || b == b.Func.Entry {
    		return false
    	}
    	s := b.Succs[0].b
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Nov 18 17:59:44 UTC 2022
    - 4.2K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/ssa/looprotate.go

    	// 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
    		if f.IsPgoHot {
    			p.Hotness |= HotPgo
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 15 15:44:14 UTC 2024
    - 3K bytes
    - Viewed (0)
  7. src/cmd/compile/internal/ssa/branchelim.go

    	// 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) {
    	b.Values = nil
    	b.Preds = nil
    	b.Succs = nil
    	b.Aux = nil
    	b.ResetControls()
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Nov 30 17:46:51 UTC 2022
    - 12.7K bytes
    - Viewed (0)
  8. 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)
  9. src/cmd/compile/internal/ssa/fuse_comparisons.go

    		v.AddArg(pc)
    		v.AddArg(bc)
    
    		// Set the combined control value as the control value for b.
    		b.SetControl(v)
    
    		// Modify p so that it jumps directly to b.
    		p.removeEdge(i)
    		p.Kind = BlockPlain
    		p.Likely = BranchUnknown
    		p.ResetControls()
    
    		return true
    	}
    
    	// TODO: could negate condition(s) to merge controls.
    	return false
    }
    
    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/ssa/func_test.go

    	return valu{name, op, t, auxint, aux, args}
    }
    
    // Goto specifies that this is a BlockPlain and names the single successor.
    // TODO(matloob): choose a better name.
    func Goto(succ string) ctrl {
    	return ctrl{BlockPlain, "", []string{succ}}
    }
    
    // If specifies a BlockIf.
    func If(cond, sub, alt string) ctrl {
    	return ctrl{BlockIf, cond, []string{sub, alt}}
    }
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Sep 08 19:01:04 UTC 2023
    - 13.1K bytes
    - Viewed (0)
Back to top