Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 120 for move (0.13 sec)

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

    import "cmd/compile/internal/base"
    
    // tighten moves Values closer to the Blocks in which they are used.
    // This can reduce the amount of register spilling required,
    // if it doesn't also create more live values.
    // A Value can be moved to any block that
    // dominates all blocks in which it is used.
    func tighten(f *Func) {
    	if base.Flag.N != 0 && len(f.Blocks) < 10000 {
    		// Skip the optimization in -N mode, except for huge functions.
    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/zcse.go

    			v := b.Values[i]
    			if opcodeTable[v.Op].argLen == 0 {
    				key := vkey{v.Op, keyFor(v), v.Aux, v.Type}
    				if vals[key] == nil {
    					vals[key] = v
    					if b != f.Entry {
    						// Move v to the entry block so it will dominate every block
    						// where we might use it. This prevents the need for any dominator
    						// calculations in this pass.
    						v.Block = f.Entry
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Dec 08 01:46:31 UTC 2020
    - 2.1K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/typecheck/dcl.go

    // return function type, receiver as first argument (or not).
    func NewMethodType(sig *types.Type, recv *types.Type) *types.Type {
    	nrecvs := 0
    	if recv != nil {
    		nrecvs++
    	}
    
    	// TODO(mdempsky): Move this function to types.
    	// TODO(mdempsky): Preserve positions, names, and package from sig+recv.
    
    	params := make([]*types.Field, nrecvs+sig.NumParams())
    	if recv != nil {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Sep 14 13:15:50 UTC 2023
    - 3.1K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/types/alg.go

    	ANOALG         // implies ANOEQ, and in addition has a part that is marked Noalg
    	AMEM           // Type can be compared/hashed as regular memory.
    	AMEM0          // Specific subvariants of AMEM (TODO: move to ../reflectdata?)
    	AMEM8
    	AMEM16
    	AMEM32
    	AMEM64
    	AMEM128
    	ASTRING
    	AINTER
    	ANILINTER
    	AFLOAT32
    	AFLOAT64
    	ACPLX64
    	ACPLX128
    	ASPECIAL // Type needs special comparison/hashing functions.
    )
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 18 15:30:00 UTC 2024
    - 2.4K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssa/xposmap.go

    // An xposmap is a map from fileindex and line of src.XPos to int32,
    // implemented sparsely to save space (column and statement status are ignored).
    // The sparse skeleton is constructed once, and then reused by ssa phases
    // that (re)move values with statements attached.
    type xposmap struct {
    	// A map from file index to maps from line range to integers (block numbers)
    	maps map[int32]*biasedSparseMap
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue May 14 18:48:16 UTC 2019
    - 3.3K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/inline/inlheur/function_properties.go

    	// Parameter value feeds unmodified into a top level "switch"
    	// statement or "if" statement simple expressions (see more on
    	// "simple" expression classification below).
    	ParamFeedsIfOrSwitch
    
    	// Parameter value feeds unmodified into a "switch" or "if"
    	// statement simple expressions (see more on "simple" expression
    	// classification below), where the if/switch is
    	// conditional/nested.
    	ParamMayFeedIfOrSwitch
    )
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Aug 10 18:52:53 UTC 2023
    - 3.7K bytes
    - Viewed (0)
  7. src/cmd/compile/internal/s390x/ggen.go

    		}
    
    		switch n {
    		// Handle very small clears with move instructions.
    		case 8, 4, 2, 1:
    			ins := s390x.AMOVB
    			switch n {
    			case 8:
    				ins = s390x.AMOVD
    			case 4:
    				ins = s390x.AMOVW
    			case 2:
    				ins = s390x.AMOVH
    			}
    			p = pp.Append(p, ins, obj.TYPE_CONST, 0, 0, obj.TYPE_MEM, reg, off)
    
    		// Handle clears that would require multiple move instructions with CLEAR (assembled as XC).
    		default:
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Apr 19 15:59:22 UTC 2022
    - 2.5K bytes
    - Viewed (0)
  8. src/cmd/compile/internal/ssa/looprotate.go

    	for i, b := range f.Blocks {
    		idToIdx[b.ID] = i
    	}
    
    	// Set of blocks we're moving, by ID.
    	move := map[ID]struct{}{}
    
    	// Map from block ID to the moving blocks that should
    	// come right after it.
    	after := map[ID][]*Block{}
    
    	// 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
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 15 15:44:14 UTC 2024
    - 3K bytes
    - Viewed (0)
  9. src/cmd/compile/internal/ssa/fuse.go

    			break
    		} // no other incoming edge
    		c = cNext
    	}
    
    	// Try to preserve any statement marks on the ends of blocks; move values to C
    	var b_next *Block
    	for bx := b; bx != c; bx = b_next {
    		// For each bx with an end-of-block statement marker,
    		// try to move it to a value in the next block,
    		// or to the next block's end, if possible.
    		b_next = bx.Succs[0].b
    		if bx.Pos.IsStmt() == src.PosIsStmt {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Oct 31 20:45:54 UTC 2023
    - 9K bytes
    - Viewed (0)
  10. src/cmd/compile/internal/syntax/source.go

    		goto redo
    	}
    }
    
    // fill reads more source bytes into s.buf.
    // It returns with at least one more byte in the buffer, or with s.ioerr != nil.
    func (s *source) fill() {
    	// determine content to preserve
    	b := s.r
    	if s.b >= 0 {
    		b = s.b
    		s.b = 0 // after buffer has grown or content has been moved down
    	}
    	content := s.buf[b:s.e]
    
    	// grow buffer or move content down
    	if len(content)*2 > len(s.buf) {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Mar 05 19:25:46 UTC 2020
    - 5.7K bytes
    - Viewed (0)
Back to top