Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 9 of 9 for ControlValues (0.21 sec)

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

    		return 0
    	}
    	if b.Controls[1] == nil {
    		return 1
    	}
    	return 2
    }
    
    // ControlValues returns a slice containing the non-nil control
    // values of the block. The index of each control value will be
    // the same as it is in the Controls property and can be used
    // in ReplaceControl calls.
    func (b *Block) ControlValues() []*Value {
    	if b.Controls[0] == nil {
    		return b.Controls[:0]
    	}
    	if b.Controls[1] == nil {
    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/check.go

    		for _, v := range b.Values {
    			for i, a := range v.Args {
    				if !valueMark[a.ID] {
    					f.Fatalf("%v, arg %d of %s, is missing", a, i, v.LongString())
    				}
    			}
    		}
    		for _, c := range b.ControlValues() {
    			if !valueMark[c.ID] {
    				f.Fatalf("control value for %s is missing: %v", b, c)
    			}
    		}
    	}
    	for b := f.freeBlocks; b != nil; b = b.succstorage[0].b {
    		if blockMark[b.ID] {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Apr 09 16:41:23 UTC 2024
    - 17.6K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssa/sccp.go

    					if _, exist := t.defUse[arg]; !exist {
    						t.defUse[arg] = make([]*Value, 0, arg.Uses)
    					}
    					t.defUse[arg] = append(t.defUse[arg], val)
    				}
    			}
    		}
    		for _, ctl := range block.ControlValues() {
    			// for control values that can become constants, find their use blocks
    			if possibleConst(ctl) {
    				t.defBlock[ctl] = append(t.defBlock[ctl], block)
    			}
    		}
    	}
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jan 22 16:54:50 UTC 2024
    - 17.6K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssa/schedule.go

    				for _, a := range v.Args {
    					if a.isFlagOp() {
    						score[v.ID] = ScoreReadFlags
    					}
    				}
    			}
    		}
    		for _, c := range b.ControlValues() {
    			// Force the control values to be scheduled at the end,
    			// unless they have other special priority.
    			if c.Block != b || score[c.ID] < ScoreReadTuple {
    				continue
    			}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Apr 08 15:53:17 UTC 2024
    - 16.4K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssa/deadstore.go

    		changed := false
    		for _, b := range f.Blocks {
    			for _, v := range b.Values {
    				changed = visit(v) || changed
    			}
    			// keep the auto if its address reaches a control value
    			for _, c := range b.ControlValues() {
    				if n, ok := addr[c]; ok && !used.Has(n) {
    					used.Add(n)
    					changed = true
    				}
    			}
    		}
    		if !changed {
    			break
    		}
    	}
    
    	// Eliminate stores to unread autos.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Apr 25 20:07:26 UTC 2024
    - 11K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/ssa/shortcircuit.go

    func (b *Block) replaceUses(old, new *Value) {
    	for _, v := range b.Values {
    		for i, a := range v.Args {
    			if a == old {
    				v.SetArg(i, new)
    			}
    		}
    	}
    	for i, v := range b.ControlValues() {
    		if v == old {
    			b.ReplaceControl(i, new)
    		}
    	}
    }
    
    // moveTo moves v to dst, adjusting the appropriate Block.Values slices.
    // The caller is responsible for ensuring that this is safe.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 03 17:47:02 UTC 2022
    - 12.6K bytes
    - Viewed (0)
  7. src/cmd/compile/internal/ssa/html.go

    	if b.Aux != nil {
    		s += html.EscapeString(fmt.Sprintf(" {%v}", b.Aux))
    	}
    	if t := b.AuxIntString(); t != "" {
    		s += html.EscapeString(fmt.Sprintf(" [%v]", t))
    	}
    	for _, c := range b.ControlValues() {
    		s += fmt.Sprintf(" %s", c.HTML())
    	}
    	if len(b.Succs) > 0 {
    		s += " &#8594;" // right arrow
    		for _, e := range b.Succs {
    			c := e.b
    			s += " " + c.HTML()
    		}
    	}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Oct 04 15:11:40 UTC 2023
    - 34.8K bytes
    - Viewed (0)
  8. src/cmd/compile/internal/s390x/ssa.go

    	"cmd/internal/obj/s390x"
    )
    
    // ssaMarkMoves marks any MOVXconst ops that need to avoid clobbering flags.
    func ssaMarkMoves(s *ssagen.State, b *ssa.Block) {
    	flive := b.FlagsLiveAtEnd
    	for _, c := range b.ControlValues() {
    		flive = c.Type.IsFlags() || flive
    	}
    	for i := len(b.Values) - 1; i >= 0; i-- {
    		v := b.Values[i]
    		if flive && v.Op == ssa.OpS390XMOVDconst {
    			// The "mark" is any non-nil Aux value.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 24 01:26:58 UTC 2023
    - 27.1K bytes
    - Viewed (0)
  9. src/cmd/compile/internal/x86/ssa.go

    	"cmd/internal/obj/x86"
    )
    
    // ssaMarkMoves marks any MOVXconst ops that need to avoid clobbering flags.
    func ssaMarkMoves(s *ssagen.State, b *ssa.Block) {
    	flive := b.FlagsLiveAtEnd
    	for _, c := range b.ControlValues() {
    		flive = c.Type.IsFlags() || flive
    	}
    	for i := len(b.Values) - 1; i >= 0; i-- {
    		v := b.Values[i]
    		if flive && v.Op == ssa.Op386MOVLconst {
    			// The "mark" is any non-nil Aux value.
    			v.Aux = ssa.AuxMark
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 24 01:26:58 UTC 2023
    - 26.7K bytes
    - Viewed (0)
Back to top