- Sort Score
- Result 10 results
- Languages All
Results 1 - 10 of 22 for succFn (0.11 sec)
-
src/cmd/compile/internal/ssa/dom.go
preds := func(b *Block) []Edge { return b.Preds } succs := func(b *Block) []Edge { return b.Succs } //TODO: benchmark and try to find criteria for swapping between // dominatorsSimple and dominatorsLT return f.dominatorsLTOrig(f.Entry, preds, succs) } // dominatorsLTOrig runs Lengauer-Tarjan to compute a dominator tree starting at // entry and using predFn/succFn to find predecessors/successors to allow
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/vendor/golang.org/x/tools/go/cfg/cfg.go
fmt.Fprintf(&buf, ".%d: # %s\n", b.Index, b.comment(fset)) for _, n := range b.Nodes { fmt.Fprintf(&buf, "\t%s\n", formatNode(fset, n)) } if len(b.Succs) > 0 { fmt.Fprintf(&buf, "\tsuccs:") for _, succ := range b.Succs { fmt.Fprintf(&buf, " %d", succ.Index) } buf.WriteByte('\n') } buf.WriteByte('\n') } return buf.String() }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue Apr 02 02:20:05 UTC 2024 - 7.7K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/layout.go
bid = cid continue blockloop } } // Still nothing, pick the unscheduled successor block encountered most recently. for len(succs) > 0 { // Pop an element from the tail of the queue. cid := succs[len(succs)-1] succs = succs[:len(succs)-1] if !scheduled[cid] { bid = cid continue blockloop } } // Still nothing, pick any non-exit block.
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Oct 31 21:41:20 UTC 2022 - 5K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/fuse.go
var ss0, ss1 *Block s0 := b.Succs[0].b i0 := b.Succs[0].i if s0.Kind != BlockPlain || !isEmpty(s0) { s0, ss0 = b, s0 } else { ss0 = s0.Succs[0].b i0 = s0.Succs[0].i } s1 := b.Succs[1].b i1 := b.Succs[1].i if s1.Kind != BlockPlain || !isEmpty(s1) { s1, ss1 = b, s1 } else { ss1 = s1.Succs[0].b i1 = s1.Succs[0].i } if ss0 != ss1 {
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/phiopt.go
// reverse is the predecessor from which the truth value comes. var reverse int if b0.Succs[0].b == pb0 && b0.Succs[1].b == pb1 { reverse = 0 } else if b0.Succs[0].b == pb1 && b0.Succs[1].b == pb0 { reverse = 1 } else { b.Fatalf("invalid predecessors\n") } for _, v := range b.Values { if v.Op != OpPhi { continue } // Look for conversions from bool to 0/1.
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
// order, in which the predecessors edges are merged here. p, i := b.Preds[0].b, b.Preds[0].i s, j := b.Succs[0].b, b.Succs[0].i ns := len(s.Preds) p.Succs[i] = Edge{s, j} s.Preds[j] = Edge{p, i} for _, e := range b.Preds[1:] { p, i := e.b, e.i p.Succs[i] = Edge{s, len(s.Preds)} s.Preds = append(s.Preds, Edge{p, i}) } // Attempt to preserve a statement boundary if bIsStmt {
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/critical.go
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue May 16 21:40:11 UTC 2023 - 3.1K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/fuse_branchredirect.go
ft.restore() if !unsat { continue } // This branch is impossible,so redirect p directly to another branch. out := 1 ^ j child := parent.Succs[out].b if child == b { continue } b.removePred(k) p.Succs[pk.i] = Edge{child, len(child.Preds)} // Fix up Phi value in b to have one less argument. for _, v := range b.Values { if v.Op != OpPhi { continue }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue May 16 21:40:11 UTC 2023 - 3.2K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/deadcode.go
} // removeEdge removes the i'th outgoing edge from b (and // the corresponding incoming edge from b.Succs[i].b). // Note that this potentially reorders successors of b, so it // must be used very carefully. func (b *Block) removeEdge(i int) { e := b.Succs[i] c := e.b j := e.i // Adjust b.Succs b.removeSucc(i) // Adjust c.Preds c.removePred(j) // Remove phi args from c's phis.
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/fuse_comparisons.go
if b.Kind != BlockIf || p.Kind != BlockIf { return false } // Don't merge control values if b is likely to be bypassed anyway. if p.Likely == BranchLikely && p.Succs[0].Block() != b { return false } if p.Likely == BranchUnlikely && p.Succs[1].Block() != b { return false } // Check if the control values combine to make an integer inequality that // can be further optimized later. bc := b.Controls[0]
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Apr 11 16:34:30 UTC 2022 - 4K bytes - Viewed (0)