- Sort Score
- Result 10 results
- Languages All
Results 1 - 10 of 13 for OpPhi (0.03 sec)
-
src/cmd/compile/internal/ssa/schedule.go
// the calculated store chain is good only for this block. for _, v := range b.Values { if v.Op != OpPhi && v.Op != OpInitMem && v.Type.IsMemory() { nextMem[v.MemoryArg().ID] = v } } // Add edges to enforce that any load must come before the following store. for _, v := range b.Values { if v.Op == OpPhi || v.Type.IsMemory() { continue } w := v.MemoryArg() if w == nil { continue
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/check.go
} for i, arg := range v.Args { if arg == nil { f.Fatalf("value %s has nil arg", v.LongString()) } if v.Op != OpPhi { // For non-Phi ops, memory args must be last, if present if arg.Type.IsMemory() && i != len(v.Args)-1 { f.Fatalf("value %s has non-final memory arg (%d < %d)", v.LongString(), i, len(v.Args)-1) }
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/loopreschedchecks.go
e := emc.e h := e.b // find the phi function for the memory input at "h", if there is one. var headerMemPhi *Value // look for header mem phi for _, v := range h.Values { if v.Op == OpPhi && v.Type.IsMemory() { headerMemPhi = v } } if headerMemPhi == nil { // if the header is nil, make a trivial phi from the dominator mem0 := memDefsAtBlockEnds[idom[h.ID].ID]
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue Aug 22 21:17:10 UTC 2023 - 16K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/deadstore.go
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Thu Apr 25 20:07:26 UTC 2024 - 11K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/sccp.go
dest := edge.b destVisited := t.visitedBlock[dest.ID] // mark edge as visited t.visited[edge] = true t.visitedBlock[dest.ID] = true for _, val := range dest.Values { if val.Op == OpPhi || !destVisited { t.visitValue(val) } } // propagates constants facts through CFG, taking condition test // into account if !destVisited { t.propagate(dest) } }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Jan 22 16:54:50 UTC 2024 - 17.6K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/nilcheck_test.go
Goto("checkPtr")), Bloc("b2", Valu("ptr2", OpAddr, ptrType, 0, nil, "sb"), Goto("checkPtr")), // both ptr1 and ptr2 are guaranteed non-nil here Bloc("checkPtr", Valu("phi", OpPhi, ptrType, 0, nil, "ptr1", "ptr2"), Valu("bool2", OpIsNonNil, c.config.Types.Bool, 0, nil, "phi"), If("bool2", "extra", "exit")), Bloc("extra", Goto("exit")), Bloc("exit", Exit("mem")))
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/value.go
// The returned value, if non-nil, will be memory-typed (or a tuple with a memory-typed second part). // Otherwise, nil is returned. func (v *Value) MemoryArg() *Value { if v.Op == OpPhi { v.Fatalf("MemoryArg on Phi") } na := len(v.Args) if na == 0 { return nil } if m := v.Args[na-1]; m.Type.IsMemory() { return m } return nil }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri May 03 16:40:22 UTC 2024 - 16.7K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/nilcheck.go
} } } for changed := true; changed; { changed = false for _, b := range f.Blocks { for _, v := range b.Values { // phis whose arguments are all non-nil // are non-nil if v.Op == OpPhi { argsNonNil := true for _, a := range v.Args { if nonNilValues[a.ID] == nil { argsNonNil = false break } } if argsNonNil { if nonNilValues[v.ID] == nil {
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/loopbce.go
// with nxt being (Add inc ind). // If it can't parse the induction variable correctly, it returns (nil, nil, nil). func parseIndVar(ind *Value) (min, inc, nxt *Value) { if ind.Op != OpPhi { return } if n := ind.Args[0]; (n.Op == OpAdd64 || n.Op == OpAdd32 || n.Op == OpAdd16 || n.Op == OpAdd8) && (n.Args[0] == ind || n.Args[1] == ind) { min, nxt = ind.Args[1], n
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue Nov 07 17:37:47 UTC 2023 - 11.8K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/stackalloc.go
live.addAll(s.live[b.ID]) // Propagate backwards to the start of the block phis = phis[:0] for i := len(b.Values) - 1; i >= 0; i-- { v := b.Values[i] live.remove(v.ID) if v.Op == OpPhi { // Save phi for later. // Note: its args might need a stack slot even though // the phi itself doesn't. So don't use needSlot. if !v.Type.IsMemory() && !v.Type.IsVoid() { phis = append(phis, v)
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Thu Feb 29 21:29:41 UTC 2024 - 12.6K bytes - Viewed (0)