Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 148 for zeroing (0.2 sec)

  1. src/runtime/HACKING.md

       before they become visible as GC roots. Otherwise, the GC may
       observe stale heap pointers. See "Zero-initialization versus
       zeroing".
    
    Zero-initialization versus zeroing
    ==================================
    
    There are two types of zeroing in the runtime, depending on whether
    the memory is already initialized to a type-safe state.
    
    If memory is not in a type-safe state, meaning it potentially contains
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 13.9K bytes
    - Viewed (0)
  2. src/runtime/slice.go

    	var to unsafe.Pointer
    	if !et.Pointers() {
    		to = mallocgc(tomem, nil, false)
    		if copymem < tomem {
    			memclrNoHeapPointers(add(to, copymem), tomem-copymem)
    		}
    	} else {
    		// Note: can't use rawmem (which avoids zeroing of memory), because then GC can scan uninitialized memory.
    		to = mallocgc(tomem, et, true)
    		if copymem > 0 && writeBarrier.enabled {
    			// Only shade the pointers in old.array since we know the destination slice to
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 16:25:21 UTC 2024
    - 12.2K bytes
    - Viewed (0)
  3. src/runtime/mbarrier.go

    	if goexperiment.CgoCheck2 {
    		cgoCheckMemmove2(typ, dst, src, 0, typ.Size_)
    	}
    }
    
    // wbZero performs the write barrier operations necessary before
    // zeroing a region of memory at address dst of type typ.
    // Does not actually do the zeroing.
    //
    //go:nowritebarrierrec
    //go:nosplit
    func wbZero(typ *_type, dst unsafe.Pointer) {
    	// This always copies a full value of type typ so it's safe
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 17:58:53 UTC 2024
    - 15.7K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/walk/assign.go

    	} else {
    		n.(*ir.AssignStmt).X = left
    	}
    	as := n.(*ir.AssignStmt)
    
    	if oaslit(as, init) {
    		return ir.NewBlockStmt(as.Pos(), nil)
    	}
    
    	if as.Y == nil {
    		// TODO(austin): Check all "implicit zeroing"
    		return as
    	}
    
    	if !base.Flag.Cfg.Instrumenting && ir.IsZero(as.Y) {
    		return as
    	}
    
    	switch as.Y.Op() {
    	default:
    		as.Y = walkExpr(as.Y, init)
    
    	case ir.ORECV:
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 08 17:09:06 UTC 2024
    - 20.3K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssagen/pgen.go

    	// Sort pointer-typed before non-pointer types.
    	// Keeps the stack's GC bitmap compact.
    	ap := a.Type().HasPointers()
    	bp := b.Type().HasPointers()
    	if ap != bp {
    		return ap
    	}
    
    	// Group variables that need zeroing, so we can efficiently zero
    	// them altogether.
    	ap = a.Needzero()
    	bp = b.Needzero()
    	if ap != bp {
    		return ap
    	}
    
    	// Sort variables in descending alignment order, so we can optimally
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 15 15:44:14 UTC 2024
    - 13.1K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/ssa/_gen/RISCV64.rules

    				(MOVDstore ptr (MOVDconst [0]) mem))))
    
    // Medium 8-aligned zeroing uses a Duff's device
    // 8 and 128 are magic constants, see runtime/mkduff.go
    (Zero [s] {t} ptr mem)
    	&& s%8 == 0 && s <= 8*128
    	&& t.Alignment()%8 == 0 && !config.noDuffDevice =>
    	(DUFFZERO [8 * (128 - s/8)] ptr mem)
    
    // Generic zeroing uses a loop
    (Zero [s] {t} ptr mem) =>
    	(LoweredZero [t.Alignment()]
    		ptr
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Mar 07 14:57:07 UTC 2024
    - 40.3K bytes
    - Viewed (0)
  7. src/runtime/arena.go

    	// not Linux decides to back this memory with transparent huge
    	// pages. There's latency involved in this zeroing, but the hugepage
    	// gains are almost always worth it. Note: it's important that we
    	// clear even if it's freshly mapped and we know there's no point
    	// to zeroing as *that* is the critical signal to use huge pages.
    	memclrNoHeapPointers(unsafe.Pointer(s.base()), s.elemsize)
    	s.needzero = 0
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 08 17:44:56 UTC 2024
    - 37.9K bytes
    - Viewed (0)
  8. src/cmd/compile/internal/ssa/block.go

    	b.Kind = kind
    	b.ResetControls()
    	b.Aux = nil
    	b.AuxInt = 0
    	b.Controls[0] = v
    	b.Controls[1] = w
    	v.Uses++
    	w.Uses++
    }
    
    // truncateValues truncates b.Values at the ith element, zeroing subsequent elements.
    // The values in b.Values after i must already have had their args reset,
    // to maintain correct value uses counts.
    func (b *Block) truncateValues(i int) {
    	tail := b.Values[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)
  9. android/guava/src/com/google/common/primitives/UnsignedBytes.java

                 * corresponds to the least significant nonzero byte in lw ^ rw, since lw and rw are
                 * little-endian. Long.numberOfTrailingZeros(diff) tells us the least significant
                 * nonzero bit, and zeroing out the first three bits of L.nTZ gives us the shift to get
                 * that least significant nonzero byte.
                 */
                int n = Long.numberOfTrailingZeros(lw ^ rw) & ~0x7;
    Registered: Wed Jun 12 16:38:11 UTC 2024
    - Last Modified: Fri Jun 07 22:25:23 UTC 2024
    - 18.3K bytes
    - Viewed (0)
  10. guava/src/com/google/common/primitives/UnsignedBytes.java

                 * corresponds to the least significant nonzero byte in lw ^ rw, since lw and rw are
                 * little-endian. Long.numberOfTrailingZeros(diff) tells us the least significant
                 * nonzero bit, and zeroing out the first three bits of L.nTZ gives us the shift to get
                 * that least significant nonzero byte.
                 */
                int n = Long.numberOfTrailingZeros(lw ^ rw) & ~0x7;
    Registered: Wed Jun 12 16:38:11 UTC 2024
    - Last Modified: Fri Jun 07 22:25:23 UTC 2024
    - 18.3K bytes
    - Viewed (0)
Back to top