Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 2,067 for spill (0.67 sec)

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

    	)
    	flagalloc(f.f)
    	regalloc(f.f)
    	checkFunc(f.f)
    	// There should be a spill in loop1, and nowhere else.
    	// TODO: resurrect moving spills out of loops? We could put spills at the start of both exit1 and exit2.
    	if numSpills(f.blocks["loop1"]) != 1 {
    		t.Errorf("spill missing from loop1")
    	}
    	if numSpills(f.blocks["loop2"]) != 0 {
    		t.Errorf("spill present in loop2")
    	}
    	if numSpills(f.blocks["exit1"]) != 0 {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Sep 08 19:09:14 UTC 2023
    - 6.3K bytes
    - Viewed (0)
  2. src/reflect/abi.go

    				stackPtrs.append(1)
    			} else {
    				stackPtrs.append(0)
    			}
    		} else {
    			spill += goarch.PtrSize
    		}
    	}
    	for i, arg := range t.InSlice() {
    		stkStep := in.addArg(arg)
    		if stkStep != nil {
    			addTypeBits(stackPtrs, stkStep.stkOff, arg)
    		} else {
    			spill = align(spill, uintptr(arg.Align()))
    			spill += arg.Size()
    			for _, st := range in.stepsForValue(i) {
    				if st.kind == abiStepPointer {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue May 07 17:08:32 UTC 2024
    - 15K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssa/regalloc.go

    		// Rematerialize instead of loading from the spill location.
    		c = v.copyIntoWithXPos(s.curBlock, pos)
    	} else {
    		// Load v from its spill location.
    		spill := s.makeSpill(v, s.curBlock)
    		if s.f.pass.debug > logSpills {
    			s.f.Warnl(vi.spill.Pos, "load spill for %v from %v", v, spill)
    		}
    		c = s.curBlock.NewValue1(pos, OpLoadReg, v.Type, spill)
    	}
    
    	s.setOrig(c, v)
    
    	if onWasmStack {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 21 17:49:56 UTC 2023
    - 87.2K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssa/flagalloc.go

    			}
    			if v.Type.IsFlags() {
    				flag = v
    			}
    		}
    		for _, v := range b.ControlValues() {
    			if v != flag && v.Type.IsFlags() {
    				spill[v.ID] = true
    			}
    		}
    		if v := end[b.ID]; v != nil && v != flag {
    			spill[v.ID] = true
    		}
    	}
    
    	// Add flag spill and recomputation where they are needed.
    	var remove []*Value // values that should be checked for possible removal
    	var oldSched []*Value
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 31 21:41:20 UTC 2022
    - 6.7K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/test/memcombine_test.go

    func readUint16le(b []byte) uint64 {
    	y := uint64(binary.LittleEndian.Uint16(b))
    	nop() // force spill
    	return y
    }
    
    func readUint16be(b []byte) uint64 {
    	y := uint64(binary.BigEndian.Uint16(b))
    	nop() // force spill
    	return y
    }
    
    func readUint32le(b []byte) uint64 {
    	y := uint64(binary.LittleEndian.Uint32(b))
    	nop() // force spill
    	return y
    }
    
    func readUint32be(b []byte) uint64 {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Nov 30 18:35:50 UTC 2023
    - 4.5K bytes
    - Viewed (0)
  6. test/fixedbugs/issue59367.go

    	_ = b[1]            // bounds check
    	x := *p             // load a byte
    	y := uint16(x)      // zero extend to 16 bits
    	b[0] = byte(y >> 8) // compute ROLW
    	b[1] = byte(y)
    	nop()               // spill/restore ROLW
    	b[0] = byte(y >> 8) // use ROLW
    	b[1] = byte(y)
    }
    
    //go:noinline
    func f32(p *uint8, b []byte) {
    	_ = b[3]             // bounds check
    	x := *p              // load a byte
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Apr 07 21:11:29 UTC 2023
    - 1.7K bytes
    - Viewed (0)
  7. src/internal/trace/reader.go

    )
    
    // Reader reads a byte stream, validates it, and produces trace events.
    type Reader struct {
    	r           *bufio.Reader
    	lastTs      Time
    	gen         *generation
    	spill       *spilledBatch
    	spillErr    error // error from reading spill
    	frontier    []*batchCursor
    	cpuSamples  []cpuSample
    	order       ordering
    	emittedSync bool
    
    	go121Events *oldTraceConverter
    }
    
    // NewReader creates a new trace reader.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 18:48:18 UTC 2024
    - 6.7K bytes
    - Viewed (0)
  8. src/internal/trace/generation.go

    		evTable: &evTable{
    			pcs: make(map[uint64]frame),
    		},
    		batches: make(map[ThreadID][]batch),
    	}
    	// Process the spilled batch.
    	if spill != nil {
    		g.gen = spill.gen
    		if err := processBatch(g, *spill.batch); err != nil {
    			return nil, nil, err
    		}
    		spill = nil
    	}
    	// Read batches one at a time until we either hit EOF or
    	// the next generation.
    	var spillErr error
    	for {
    		b, gen, err := readBatch(r)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 30 22:14:45 UTC 2024
    - 12.1K bytes
    - Viewed (0)
  9. src/runtime/mfinal_test.go

    		// Test case for argument spill slot.
    		// If the spill slot was not counted for the frame size, it will (incorrectly) choose
    		// call32 as the result has (exactly) 32 bytes. When the argument actually spills,
    		// it clobbers the caller's frame (likely the return PC).
    		{func(x *int) any { return x }, func(v any) [4]int64 {
    			print() // force spill
    			finalize(v.(*int))
    			return [4]int64{}
    		}},
    	}
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Jan 19 20:45:58 UTC 2023
    - 5.6K bytes
    - Viewed (0)
  10. test/codegen/stack.go

    // Notes:
    // - 386 fails due to spilling a register
    // amd64:"TEXT\t.*, [$]0-"
    // arm:"TEXT\t.*, [$]0-" (spills return address)
    // arm64:"TEXT\t.*, [$]0-"
    // ppc64x:"TEXT\t.*, [$]0-"
    // s390x:"TEXT\t.*, [$]0-"
    // Note: that 386 currently has to spill a register.
    func KeepWanted(t *T) {
    	*t = T{A: t.A, B: t.B, C: t.C, D: t.D}
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Feb 29 21:29:41 UTC 2024
    - 3.4K bytes
    - Viewed (0)
Back to top