- Sort Score
- Result 10 results
- Languages All
Results 1 - 10 of 47 for nilCheck (0.14 sec)
-
src/cmd/compile/internal/ssa/nilcheck.go
} // This is a redundant explicit nil check. v.reset(OpConstBool) v.AuxInt = 1 // true } case OpNilCheck: ptr := v.Args[0] if nilCheck := nonNilValues[ptr.ID]; nilCheck != nil { // This is a redundant implicit nil check. // Logging in the style of the former compiler -- and omit line 1, // which is usually in generated code.
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue Oct 31 20:45:54 UTC 2023 - 11.3K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/schedule.go
// otherwise v is ordered before s. // Specifically, values are ordered like // // store1 // NilCheck that depends on store1 // other values that depends on store1 // store2 // NilCheck that depends on store2 // other values that depends on store2 // ... // // The order of non-store and non-NilCheck values are undefined // (not necessarily dependency order). This should be cheaper
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Apr 08 15:53:17 UTC 2024 - 16.4K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/nilcheck_test.go
func booln(n int) string { return "c" + strconv.Itoa(n) } func isNilCheck(b *Block) bool { return b.Kind == BlockIf && b.Controls[0].Op == OpIsNonNil } // TestNilcheckSimple verifies that a second repeated nilcheck is removed. func TestNilcheckSimple(t *testing.T) { c := testConfig(t) ptrType := c.config.Types.BytePtr fun := c.Fun("entry", Bloc("entry", Valu("mem", OpInitMem, types.TypeMem, 0, nil),
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri Nov 17 23:34:11 UTC 2023 - 12.3K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/check.go
// void type after scheduling. if f.scheduled { if v.Uses != 0 { f.Fatalf("nilcheck must have 0 uses %s", v.Uses) } if !v.Type.IsVoid() { f.Fatalf("nilcheck must have void type %s", v.Type.String()) } } else { if !v.Type.IsPtrShaped() && !v.Type.IsUintptr() { f.Fatalf("nilcheck must have pointer type %s", v.Type.String()) } }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue Apr 09 16:41:23 UTC 2024 - 17.6K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/compile.go
// checkLower must run after lowering & subsequent dead code elim {"lower", "checkLower"}, {"lowered deadcode", "checkLower"}, {"late lower", "checkLower"}, // late nilcheck needs instructions to be scheduled. {"schedule", "late nilcheck"}, // flagalloc needs instructions to be scheduled. {"schedule", "flagalloc"}, // regalloc needs flags to be allocated first. {"flagalloc", "regalloc"},
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Apr 22 14:55:18 UTC 2024 - 18.6K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/_gen/main.go
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Thu Jan 19 22:42:34 UTC 2023 - 16.9K bytes - Viewed (0) -
test/nilptr3.go
// and the offset is small enough that if x is nil, the address will still be // in the first unmapped page of memory. _ = x[9] // ERROR "generated nil check" // bug: would like to remove this check (but nilcheck and load are in different blocks) for { if x[9] != 0 { // ERROR "removed nil check" break } } x = fx10()
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Thu Oct 19 23:33:25 UTC 2023 - 5.6K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/numberlines.go
// license that can be found in the LICENSE file. package ssa import ( "cmd/internal/src" "fmt" "sort" ) func isPoorStatementOp(op Op) bool { switch op { // Note that Nilcheck often vanishes, but when it doesn't, you'd love to start the statement there // so that a debugger-user sees the stop before the panic, and can examine the value.
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Aug 14 21:26:13 UTC 2023 - 7.8K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/fuse_test.go
Valu("mem", OpInitMem, types.TypeMem, 0, nil), Valu("c1", OpArg, c.config.Types.Bool, 0, nil), Valu("p", OpArg, c.config.Types.IntPtr, 0, nil), If("c1", "z0", "exit")), Bloc("z0", Valu("nilcheck", OpNilCheck, c.config.Types.IntPtr, 0, nil, "p", "mem"), Goto("exit")), Bloc("exit", Exit("mem"), )) CheckFunc(fun.f) fuseLate(fun.f) z0, ok := fun.blocks["z0"]
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue Oct 31 20:45:54 UTC 2023 - 7.4K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/dom.go
// It requires a postorder numbering of all the blocks. func intersect(b, c *Block, postnum []int, idom []*Block) *Block { // TODO: This loop is O(n^2). It used to be used in nilcheck, // see BenchmarkNilCheckDeep*. for b != c { if postnum[b.ID] < postnum[c.ID] { b = idom[b.ID] } else { c = idom[c.ID] } } return b
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Sat Dec 03 17:08:51 UTC 2022 - 7.4K bytes - Viewed (0)