- Sort Score
- Result 10 results
- Languages All
Results 1 - 10 of 48 for OpPhi (0.04 sec)
-
test/phiopt.go
} else { x = false } return x // ERROR "converted OpPhi to Copy$" } //go:noinline func f1(a bool) bool { x := false if a { x = false } else { x = true } return x // ERROR "converted OpPhi to Not$" } //go:noinline func f2(a, b int) bool { x := true if a == b { x = false } return x // ERROR "converted OpPhi to Not$" } //go:noinline func f3(a, b int) bool {
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Thu Oct 19 23:33:25 UTC 2023 - 2K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/decompose.go
func decomposeSlicePhi(v *Value) { types := &v.Block.Func.Config.Types ptrType := v.Type.Elem().PtrTo() lenType := types.Int ptr := v.Block.NewValue0(v.Pos, OpPhi, ptrType) len := v.Block.NewValue0(v.Pos, OpPhi, lenType) cap := v.Block.NewValue0(v.Pos, OpPhi, lenType) for _, a := range v.Args { ptr.AddArg(a.Block.NewValue1(v.Pos, OpSlicePtr, ptrType, a)) len.AddArg(a.Block.NewValue1(v.Pos, OpSliceLen, lenType, a))
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue Aug 23 21:22:15 UTC 2022 - 13.4K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/shortcircuit_test.go
Valu("cmp2", OpLess64, c.config.Types.Bool, 0, nil, "arg2", "arg3"), Goto("b3")), Bloc("b3", Valu("phi2", OpPhi, c.config.Types.Bool, 0, nil, "cmp1", "cmp2"), If("phi2", "b4", "b5")), Bloc("b4", Valu("cmp3", OpLess64, c.config.Types.Bool, 0, nil, "arg3", "arg1"), Goto("b5")), Bloc("b5", Valu("phi3", OpPhi, c.config.Types.Bool, 0, nil, "phi2", "cmp3"), If("phi3", "b6", "b7")), Bloc("b6", Exit("mem")),
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue May 09 23:01:51 UTC 2017 - 1.3K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/phiopt.go
// TODO: handle more than 2 predecessors, e.g. a || b || c. continue } for _, v := range b.Values { // find a phi value v = OpPhi (ConstBool [true]) (ConstBool [false]). // TODO: v = OpPhi (ConstBool [true]) (Arg <bool> {value}) if v.Op != OpPhi { continue } if v.Args[0].Op != OpConstBool || v.Args[1].Op != OpConstBool { continue } if v.Args[0].AuxInt == v.Args[1].AuxInt {
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Apr 11 16:34:30 UTC 2022 - 8.1K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/trim.go
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri Nov 18 17:59:44 UTC 2022 - 4.2K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/tighten.go
memState(f, startMem, endMem) for _, b := range f.Blocks { for _, v := range b.Values { if v.Op.isLoweredGetClosurePtr() { // Must stay in the entry block. continue } switch v.Op { case OpPhi, OpArg, OpArgIntReg, OpArgFloatReg, OpSelect0, OpSelect1, OpSelectN: // Phis need to stay in their block. // Arg must stay in the entry block. // Tuple selectors must stay with the tuple generator.
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue May 16 01:01:38 UTC 2023 - 7.7K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/shortcircuit.go
if ctl.Op == OpNot { swap = 1 ^ swap } ctl = ctl.Args[0] nval++ // wrapper around control value } if ctl.Op != OpPhi || ctl.Block != b || ctl.Uses != 1 { return false } nOtherPhi := 0 for _, w := range b.Values { if w.Op == OpPhi && w != ctl { nOtherPhi++ } } if nOtherPhi > 0 && len(b.Preds) != 2 { // We rely on b having exactly two preds in shortcircuitPhiPlan
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Oct 03 17:47:02 UTC 2022 - 12.6K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/branchelim_test.go
Valu("addr", OpAddr, boolType.PtrTo(), 0, nil, "sb"), Valu("cond", OpLoad, boolType, 0, nil, "addr", "start"), If("cond", "b2", "b3")), Bloc("b2", Goto("b3")), Bloc("b3", Valu("phi", OpPhi, intType, 0, nil, "const1", "const2"), Valu("retstore", OpStore, types.TypeMem, 0, nil, "phi", "sb", "start"), Exit("retstore"))) CheckFunc(fun.f) branchelim(fun.f) CheckFunc(fun.f)
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue Apr 24 15:51:15 UTC 2018 - 5.2K bytes - Viewed (0) -
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/fuse_branchredirect.go
for _, v := range b.Values { if v.Op != OpPhi { continue } b.removePhiArg(v, k) } // Fix up child to have one more predecessor. child.Preds = append(child.Preds, Edge{p, pk.i}) ai := b.Succs[out].i for _, v := range child.Values { if v.Op != OpPhi { continue } v.AddArg(v.Args[ai]) } if b.Func.pass.debug > 0 {
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue May 16 21:40:11 UTC 2023 - 3.2K bytes - Viewed (0)