- Sort Score
- Result 10 results
- Languages All
Results 1 - 10 of 45 for Preds (0.06 sec)
-
src/cmd/compile/internal/ssa/shortcircuit.go
// in which the outbound paths from b merge, // with no other preds joining them. // In these cases, we can reconstruct what the value // of any phi in b must be in the successor blocks. if len(t.Preds) == 1 && len(t.Succs) == 1 && len(u.Preds) == 1 && len(u.Succs) == 1 && t.Succs[0].b == u.Succs[0].b && len(t.Succs[0].b.Preds) == 2 { // p q // \ / // b // / \ // t u // \ /
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/block.go
// phi values by calling b.removePhiArg(v, i). func (b *Block) removePred(i int) { n := len(b.Preds) - 1 if i != n { e := b.Preds[n] b.Preds[i] = e // Update the other end of the edge we moved. e.b.Succs[e.i].i = i } b.Preds[n] = Edge{} b.Preds = b.Preds[:n] b.Func.invalidateCFG() } // removeSucc removes the ith output edge from b. // It is the responsibility of the caller to remove
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Wed May 15 15:44:14 UTC 2024 - 12.2K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/check.go
if b.Func != f { f.Fatalf("%s.Func=%s, want %s", b, b.Func.Name, f.Name) } for i, e := range b.Preds { if se := e.b.Succs[e.i]; se.b != b || se.i != i { f.Fatalf("block pred/succ not crosslinked correctly %d:%s %d:%s", i, b, se.i, se.b) } } for i, e := range b.Succs { if pe := e.b.Preds[e.i]; pe.b != b || pe.i != i { f.Fatalf("block succ/pred not crosslinked correctly %d:%s %d:%s", i, b, pe.i, pe.b) }
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/branchelim.go
f.invalidateCFG() return true } // is this a BlockPlain with one predecessor? func isLeafPlain(b *Block) bool { return b.Kind == BlockPlain && len(b.Preds) == 1 } func clobberBlock(b *Block) { b.Values = nil b.Preds = nil b.Succs = nil b.Aux = nil b.ResetControls() b.Likely = BranchUnknown b.Kind = BlockInvalid }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Wed Nov 30 17:46:51 UTC 2022 - 12.7K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/loopreschedchecks.go
mem1 := sched.NewValue1I(bb.Pos, OpSelectN, types.TypeMem, 0, call) sched.AddEdgeTo(h) headerMemPhi.AddArg(mem1) bb.Succs[p.i] = Edge{test, 0} test.Preds = append(test.Preds, Edge{bb, p.i}) // Must correct all the other phi functions in the header for new incoming edge. // Except for mem phis, it will be the same value seen on the original // backedge at index i.
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/ssagen/phi.go
for _, v := range b.Values { if v.Op != ssa.OpFwdRef { continue } var_ := v.Aux.(fwdRefAux).N // Optimization: look back 1 block for the definition. if len(b.Preds) == 1 { c := b.Preds[0].Block() if w := s.defvars[c.ID][var_]; w != nil { v.Op = ssa.OpCopy v.Aux = nil v.AddArg(w) continue } } if _, ok := s.varnum[var_]; ok {
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri Nov 18 17:59:44 UTC 2022 - 15.2K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/func_test.go
return false } for i := range fb.Succs { if !checkBlk(fb.Succs[i].b, gb.Succs[i].b) { return false } } if len(fb.Preds) != len(gb.Preds) { return false } for i := range fb.Preds { if !checkBlk(fb.Preds[i].b, gb.Preds[i].b) { return false } } return true } return blkcor[fb] == gb && blkcor[gb] == fb }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri Sep 08 19:01:04 UTC 2023 - 13.1K bytes - Viewed (0) -
src/cmd/compile/internal/liveness/plive.go
decisionBlock = c } else if len(c.Preds) == 1 && len(d.Preds) == 1 && c.Preds[0].Block() == d.Preds[0].Block() { decisionBlock = c.Preds[0].Block() } else { lv.f.Fatalf("can't find write barrier pattern %v", v) } if len(decisionBlock.Succs) != 2 { lv.f.Fatalf("common predecessor block the wrong type %s", decisionBlock.Kind) } // Flow backwards from the control value to find the
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri Jun 07 15:22:22 UTC 2024 - 45.2K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/nilcheck.go
node := work[len(work)-1] work = work[:len(work)-1] switch node.op { case Work: b := node.block // First, see if we're dominated by an explicit nil check. if len(b.Preds) == 1 { p := b.Preds[0].b if p.Kind == BlockIf && p.Controls[0].Op == OpIsNonNil && p.Succs[0].b == b { if ptr := p.Controls[0].Args[0]; nonNilValues[ptr.ID] == nil { nonNilValues[ptr.ID] = ptr
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
// do something // nxt = inc + ind // goto loop // // exit_loop: func findIndVar(f *Func) []indVar { var iv []indVar sdom := f.Sdom() for _, b := range f.Blocks { if b.Kind != BlockIf || len(b.Preds) != 2 { continue } var ind *Value // induction variable var init *Value // starting value var limit *Value // ending value // Check that the control if it either ind </<= limit or limit </<= ind.
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue Nov 07 17:37:47 UTC 2023 - 11.8K bytes - Viewed (0)