- Sort Score
- Result 10 results
- Languages All
Results 11 - 20 of about 10,000 for phis (0.14 sec)
-
src/cmd/compile/internal/ssa/deadstore.go
// reaching an op, but some ops can take // multiple pointers (e.g. NeqPtr, Phi etc.). // This is rare, so just propagate the first // value to keep things simple. used.Add(n) changed = true } } } if node == nil { return } if addr[v] == nil { // The address of an auto reaches this op. addr[v] = node changed = true return }
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Thu Apr 25 20:07:26 UTC 2024 - 11K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/copyelim.go
} } } // phielim eliminates redundant phi values from f. // A phi is redundant if its arguments are all equal. For // purposes of counting, ignore the phi itself. Both of // these phis are redundant: // // v = phi(x,x,x) // v = phi(x,v,x,v) // // We repeat this process to also catch situations like: // // v = phi(x, phi(x, x), phi(x, v)) // // TODO: Can we also simplify cases like: //
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Apr 22 14:55:18 UTC 2024 - 3.5K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/_gen/dec.rules
// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // This file contains rules to decompose builtin compound types // (complex,string,slice,interface) into their constituent // types. These rules work together with the decomposeBuiltIn // pass which handles phis of these types. (Store {t} _ _ mem) && t.Size() == 0 => mem // complex ops
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Thu Oct 12 00:48:31 UTC 2023 - 6.9K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/tighten.go
// Copyright 2015 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package ssa import "cmd/compile/internal/base" // tighten moves Values closer to the Blocks in which they are used. // This can reduce the amount of register spilling required, // if it doesn't also create more live values. // A Value can be moved to any block that
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/deadcode.go
c.removePhiArg(v, j) // Note: this is trickier than it looks. Replacing // a Phi with a Copy can in general cause problems because // Phi and Copy don't have exactly the same semantics. // Phi arguments always come from a predecessor block, // whereas copies don't. This matters in loops like: // 1: x = (Phi y) // y = (Add x 1) // goto 1 // If we replace Phi->Copy, we get // 1: x = (Copy y)
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/phiopt.go
// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package ssa // phiopt eliminates boolean Phis based on the previous if. // // Main use case is to transform: // // x := false // if b { // x = true // } // // into x = b. // // In SSA code this appears as // // b0 // If b -> b1 b2 // b1
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/nilcheck.go
work = append(work, bp{block: f.Entry}) // map from value ID to known non-nil version of that value ID // (in the current dominator path being walked). This slice is updated by // walkStates to maintain the known non-nil values. // If there is extrinsic information about non-nil-ness, this map // points a value to itself. If a value is known non-nil because we // already did a nil check on it, it points to the nil check operation.
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/nilcheck_test.go
If("bool2", "extra", "exit")), Bloc("extra", // prevent fuse from eliminating this block Valu("store", OpStore, types.TypeMem, 0, ptrType, "ptr1", "nilptr", "mem"), Goto("exit")), Bloc("exit", Valu("phi", OpPhi, types.TypeMem, 0, nil, "mem", "store"), Exit("phi"))) CheckFunc(fun.f) // we need the opt here to rewrite the user nilcheck opt(fun.f) nilcheckelim(fun.f)
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri Nov 17 23:34:11 UTC 2023 - 12.3K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/_gen/dec64.rules
// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // This file contains rules to decompose [u]int64 types on 32-bit // architectures. These rules work together with the decomposeBuiltIn // pass which handles phis of these typ. (Int64Hi (Int64Make hi _)) => hi (Int64Lo (Int64Make _ lo)) => lo
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue Oct 04 19:35:46 UTC 2022 - 14.2K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/schedule.go
// of flag values. score[v.ID] = ScoreReadFlags case v.isFlagOp(): // Schedule flag register generation as late as possible. // This makes sure that we only have one live flags // value at a time. // Note that this case is after the case above, so values // which both read and generate flags are given ScoreReadFlags. score[v.ID] = ScoreFlags default:
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Apr 08 15:53:17 UTC 2024 - 16.4K bytes - Viewed (0)