- Sort Score
- Result 10 results
- Languages All
Results 1 - 7 of 7 for nilCheck (0.15 sec)
-
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) -
src/cmd/compile/internal/ssa/fuse.go
// There may be false positives. func isEmpty(b *Block) bool { for _, v := range b.Values { if v.Uses > 0 || v.Op.IsCall() || v.Op.HasSideEffects() || v.Type.IsVoid() || opcodeTable[v.Op].nilCheck { return false } } return true } // fuseBlockPlain handles a run of blocks with length >= 2, // whose interior has single predecessors and successors,
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue Oct 31 20:45:54 UTC 2023 - 9K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/deadcode.go
liveOrderStmts = append(liveOrderStmts, v) } } } for _, v := range b.Values { if (opcodeTable[v.Op].call || opcodeTable[v.Op].hasSideEffects || opcodeTable[v.Op].nilCheck) && !live[v.ID] { live[v.ID] = true q = append(q, v) if v.Pos.IsStmt() != src.PosNotStmt { liveOrderStmts = append(liveOrderStmts, v) } } if v.Op == OpInlMark {
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri Dec 08 00:29:01 UTC 2023 - 9.2K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/cse.go
} v.SetArg(i, x) rewrites++ } } } for i, v := range b.ControlValues() { if x := rewrite[v.ID]; x != nil { if v.Op == OpNilCheck { // nilcheck pass will remove the nil checks and log // them appropriately, so don't mess with them here. continue } b.ReplaceControl(i, x) } } } if f.pass.stats > 0 {
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Oct 31 21:41:20 UTC 2022 - 9.6K bytes - Viewed (0)