- Sort Score
- Result 10 results
- Languages All
Results 11 - 20 of 106 for Preds (0.03 sec)
-
src/cmd/compile/internal/ssa/tighten.go
for i, a := range v.Args { if !a.rematerializeable() { continue // not a constant we can move around } if a.Block == b.Preds[i].b { continue // already in the right place } // Make a copy of a, put in predecessor block. v.SetArg(i, a.copyInto(b.Preds[i].b)) } } } } // memState computes the memory state at the beginning and end of each block of
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/numberlines.go
v.Pos = firstPos.WithDefaultStmt() // default to default break } } if firstPosIndex == -1 { // Effectively empty block, check block's own Pos, consider preds. line := src.NoXPos for _, p := range b.Preds { pbi := p.Block().ID if !endlines[pbi].SameFileAndLine(line) { if line == src.NoXPos { line = endlines[pbi] continue } else { line = src.NoXPos
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Aug 14 21:26:13 UTC 2023 - 7.8K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/layout.go
} } // Initialize indegree of each block for _, b := range f.Blocks { if exit.contains(b.ID) { // exit blocks are always scheduled last continue } indegree[b.ID] = len(b.Preds) if len(b.Preds) == 0 { // Push an element to the tail of the queue. zerodegree = append(zerodegree, b.ID) } else { posdegree.add(b.ID) } } bid := f.Entry.ID blockloop: for {
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/debug.go
// blocks. Therefore remove unchanged blocks from the // predecessor list. for i := len(preds) - 1; i >= 0; i-- { pred := preds[i] if blockLocs[pred.ID].lastChangedTime > locs.lastCheckedTime { continue // keep this predecessor } preds[i] = preds[len(preds)-1] preds = preds[:len(preds)-1] if state.loggingLevel > 2 {
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Jun 10 19:44:43 UTC 2024 - 58.4K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/dom.go
return order } type linkedBlocks func(*Block) []Edge func dominators(f *Func) []*Block { 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
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Sat Dec 03 17:08:51 UTC 2022 - 7.4K bytes - Viewed (0) -
test/fixedbugs/issue63955.go
// Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package j func f(try func() int, shouldInc func() bool, N func(int) int) { var n int loop: // we want to have 3 preds here, the function entry and both gotos if v := try(); v == 42 || v == 1337 { // the two || are to trick findIndVar if n < 30 { // this aims to be the matched block if shouldInc() { n++ goto loop }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue Nov 07 17:37:47 UTC 2023 - 578 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/ssa/print.go
} func (p stringFuncPrinter) startBlock(b *Block, reachable bool) { if !p.printDead && !reachable { return } fmt.Fprintf(p.w, " b%d:", b.ID) if len(b.Preds) > 0 { io.WriteString(p.w, " <-") for _, e := range b.Preds { pred := e.b fmt.Fprintf(p.w, " b%d", pred.ID) } } if !reachable { fmt.Fprint(p.w, " DEAD") } io.WriteString(p.w, "\n") }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Oct 31 21:41:20 UTC 2022 - 3.9K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/fuse_comparisons.go
// \ // b // / \ // s0 s1 // // where b has the combined control value 'unsigned(x-1) < 4'. // Later passes will then fuse p and b. func fuseIntegerComparisons(b *Block) bool { if len(b.Preds) != 1 { return false } p := b.Preds[0].Block() if b.Kind != BlockIf || p.Kind != BlockIf { return false } // Don't merge control values if b is likely to be bypassed anyway.
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Apr 11 16:34:30 UTC 2022 - 4K 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)