- Sort Score
- Result 10 results
- Languages All
Results 1 - 9 of 9 for canSSA (0.43 sec)
-
src/cmd/compile/internal/ssa/value.go
} // Assume it is a register, return its spill slot, which needs to be live nameOff := v.Aux.(*AuxNameOffset) return nameOff.Name, nameOff.Offset } // CanSSA reports whether values of type t can be represented as a Value. func CanSSA(t *types.Type) bool { types.CalcSize(t) if t.Size() > int64(4*types.PtrSize) { // 4*Widthptr is an arbitrary constant. We want it
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri May 03 16:40:22 UTC 2024 - 16.7K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/_gen/generic.rules
(StructSelect [3] (StructMake4 _ _ _ x)) => x (Load <t> _ _) && t.IsStruct() && t.NumFields() == 0 && CanSSA(t) => (StructMake0) (Load <t> ptr mem) && t.IsStruct() && t.NumFields() == 1 && CanSSA(t) => (StructMake1 (Load <t.FieldType(0)> (OffPtr <t.FieldType(0).PtrTo()> [0] ptr) mem)) (Load <t> ptr mem) && t.IsStruct() && t.NumFields() == 2 && CanSSA(t) => (StructMake2
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Thu May 16 22:21:05 UTC 2024 - 135.3K bytes - Viewed (0) -
src/cmd/compile/internal/ssagen/ssa.go
if n.Class == ir.PPARAM { if s.canSSA(n) { v := s.newValue0A(ssa.OpArg, n.Type(), n) s.vars[n] = v s.addNamedValue(n, v) // This helps with debugging information, not needed for compilation itself. } else { // address was taken AND/OR too large for SSA paramAssignment := ssa.ParamAssignmentForArgName(s.f, n) if len(paramAssignment.Registers) > 0 {
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Jun 10 19:44:43 UTC 2024 - 284.9K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/decompose.go
if t.NumElem() == 0 { // TODO(khr): Not sure what to do here. Probably nothing. // Names for empty arrays aren't important. return slots } if t.NumElem() != 1 { // shouldn't get here due to CanSSA f.Fatalf("array not of size 1") } elemName := f.SplitArray(name) var keep []*Value for _, v := range f.NamedValues[*name] { if v.Op != OpArrayMake1 { keep = append(keep, v) continue }
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/expand_calls.go
case OpClosureLECall, OpInterLECall, OpStaticLECall, OpTailLECall: calls = append(calls, v) case OpArg: args = append(args, v) case OpStore: if a := v.Args[1]; a.Op == OpSelectN && !CanSSA(a.Type) { if a.Uses > 1 { panic(fmt.Errorf("Saw double use of wide SelectN %s operand of Store %s", a.LongString(), v.LongString())) } x.wideSelects[a] = v } case OpSelectN:
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Tue Nov 28 05:13:40 UTC 2023 - 31.9K bytes - Viewed (0) -
src/cmd/compile/internal/walk/complit.go
// walkCompLit walks a composite literal node: // OARRAYLIT, OSLICELIT, OMAPLIT, OSTRUCTLIT (all CompLitExpr), or OPTRLIT (AddrExpr). func walkCompLit(n ir.Node, init *ir.Nodes) ir.Node { if isStaticCompositeLiteral(n) && !ssa.CanSSA(n.Type()) { n := n.(*ir.CompLitExpr) // not OPTRLIT // n can be directly represented in the read-only data section. // Make direct reference to the static data. See issue 12841. vstat := readonlystaticname(n.Type())
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri Sep 08 19:03:54 UTC 2023 - 19.5K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/func.go
nn.SetNonMergeable(true) return nn } // IsMergeCandidate returns true if variable n could participate in // stack slot merging. For now we're restricting the set to things to // items larger than what CanSSA would allow (approximateky, we disallow things // marked as open defer slots so as to avoid complicating liveness // analysis. func IsMergeCandidate(n *ir.Name) bool { if base.Debug.MergeLocals == 0 ||
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Jun 10 19:44:43 UTC 2024 - 25.8K bytes - Viewed (0) -
src/cmd/compile/internal/ssa/rewritegeneric.go
// match: (Load <t> _ _) // cond: t.IsStruct() && t.NumFields() == 0 && CanSSA(t) // result: (StructMake0) for { t := v.Type if !(t.IsStruct() && t.NumFields() == 0 && CanSSA(t)) { break } v.reset(OpStructMake0) return true } // match: (Load <t> ptr mem) // cond: t.IsStruct() && t.NumFields() == 1 && CanSSA(t)
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Mon Apr 22 18:24:47 UTC 2024 - 812.2K bytes - Viewed (0) -
src/cmd/compile/internal/walk/order.go
// support that (see trybot failures on go.dev/cl/541715, PS1). if ir.IsAddressable(n) { if name, ok := ir.OuterValue(n).(*ir.Name); ok && name.Op() == ir.ONAME { if name.Class == ir.PAUTO && !name.Addrtaken() && ssa.CanSSA(name.Type()) { goto Copy } } return n } Copy: return o.copyExpr(n) } // mapKeyTemp prepares n to be a key in a map runtime call and returns n.
Registered: Wed Jun 12 16:32:35 UTC 2024 - Last Modified: Fri Mar 08 02:00:33 UTC 2024 - 42.7K bytes - Viewed (0)