- Sort Score
- Result 10 results
- Languages All
Results 31 - 40 of 48 for OpPhi (0.03 sec)
-
src/cmd/compile/internal/ssa/deadstore_test.go
Valu("sb", OpSB, c.config.Types.Uintptr, 0, nil), Valu("v", OpConstBool, c.config.Types.Bool, 1, nil), Valu("addr", OpAddr, ptrType, 0, nil, "sb"), Goto("loop")), Bloc("loop", Valu("phi", OpPhi, types.TypeMem, 0, nil, "start", "store"), Valu("store", OpStore, types.TypeMem, 0, c.config.Types.Bool, "addr", "v", "phi"), If("v", "loop", "exit")), Bloc("exit", Exit("store"))) CheckFunc(fun.f)
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Thu Apr 25 20:07:26 UTC 2024 - 5.6K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/flagalloc.go
for _, e := range b.Preds[1:] { p := e.b if end[p.ID] != flag { f.Fatalf("live flag in %s's predecessors not consistent", b) } } } for _, v := range oldSched { if v.Op == OpPhi && v.Type.IsFlags() { f.Fatalf("phi of flags not supported: %s", v.LongString()) } // If v will be spilled, and v uses memory, then we must split it // into a load + a flag generator.
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Oct 31 21:41:20 UTC 2022 - 6.7K 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/fuse.go
return false } } ss := ss0 // s0 and s1 are equal with b if the corresponding block is missing // (2nd, 3rd and 4th case in the figure). for _, v := range ss.Values { if v.Op == OpPhi && v.Uses > 0 && v.Args[i0] != v.Args[i1] { return false } } // We do not need to redirect the Preds of s0 and s1 to ss, // the following optimization will do this. b.removeEdge(0)
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/regalloc.go
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue Nov 21 17:49:56 UTC 2023 - 87.2K 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/rewrite.go
args = args[:len(args)-1] if target.Block.ID != v.Block.ID { // Since target and load are in the same block // we can stop searching when we leave the block. continue } if v.Op == OpPhi { // A Phi implies we have reached the top of the block. // The memory phi, if it exists, is always // the first logical store in the block. continue }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri Jun 07 19:02:52 UTC 2024 - 64.2K 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) -
src/cmd/compile/internal/ssa/block.go
// It must be called after calling b.removePred(i) to // adjust the corresponding phi value of the block: // // b.removePred(i) // for _, v := range b.Values { // // if v.Op != OpPhi { // continue // } // b.removePhiArg(v, i) // // } func (b *Block) removePhiArg(phi *Value, i int) { n := len(b.Preds) if numPhiArgs := len(phi.Args); numPhiArgs-1 != n {
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Wed May 15 15:44:14 UTC 2024 - 12.2K bytes - Viewed (0)