Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 6,192 for phis (0.12 sec)

  1. src/cmd/compile/internal/ssa/stackalloc.go

    			phis = phis[:0]
    			for i := len(b.Values) - 1; i >= 0; i-- {
    				v := b.Values[i]
    				live.remove(v.ID)
    				if v.Op == OpPhi {
    					// Save phi for later.
    					// Note: its args might need a stack slot even though
    					// the phi itself doesn't. So don't use needSlot.
    					if !v.Type.IsMemory() && !v.Type.IsVoid() {
    						phis = append(phis, v)
    					}
    					continue
    				}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Feb 29 21:29:41 UTC 2024
    - 12.6K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/ssa/loopreschedchecks.go

    	}
    }
    
    // newPhiFor inserts a new Phi function into b,
    // with all inputs set to v.
    func newPhiFor(b *Block, v *Value) *Value {
    	phiV := b.NewValue0(b.Pos, OpPhi, v.Type)
    
    	for range b.Preds {
    		phiV.AddArg(v)
    	}
    	return phiV
    }
    
    // rewriteNewPhis updates newphis[h] to record all places where the new phi function inserted
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Aug 22 21:17:10 UTC 2023
    - 16K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssa/shortcircuit.go

    			// to phi to refer to the corresponding phi arg instead.
    			// phi used to be evaluated prior to this block,
    			// and now it is evaluated in this block.
    			for _, v := range phi.Block.Values {
    				if v.Op != OpPhi || v == phi {
    					continue
    				}
    				for j, a := range v.Args {
    					if a == phi {
    						v.SetArg(j, phi.Args[j])
    					}
    				}
    			}
    			if phi.Uses != 0 {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 03 17:47:02 UTC 2022
    - 12.6K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssa/decompose.go

    // 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/types"
    	"sort"
    )
    
    // decompose converts phi ops on compound builtin types into phi
    // ops on simple types, then invokes rewrite rules to decompose
    // other ops on those types.
    func decomposeBuiltIn(f *Func) {
    	// Decompose phis
    	for _, b := range f.Blocks {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Aug 23 21:22:15 UTC 2022
    - 13.4K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssa/branchelim.go

    	case "amd64":
    		const maxcost = 2
    		phi := 0
    		other := 0
    		for _, v := range post.Values {
    			if v.Op == OpPhi {
    				// Each phi results in CondSelect, which lowers into CMOV,
    				// CMOV has latency >1 on most CPUs.
    				phi++
    			}
    			for _, x := range v.Args {
    				if x.Block == no || x.Block == yes {
    					other++
    				}
    			}
    		}
    		cost := phi * 1
    		if phi > 1 {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Nov 30 17:46:51 UTC 2022
    - 12.7K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/ssagen/phi.go

    func (fwdRefAux) CanBeAnSSAAux() {}
    
    // insertPhis finds all the places in the function where a phi is
    // necessary and inserts them.
    // Uses FwdRef ops to find all uses of variables, and s.defvars to find
    // all definitions.
    // Phi values are inserted, and all FwdRefs are changed to a Copy
    // of the appropriate phi or definition.
    // TODO: make this part of cmd/compile/internal/ssa somehow?
    func (s *state) insertPhis() {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Nov 18 17:59:44 UTC 2022
    - 15.2K bytes
    - Viewed (0)
  7. 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)
  8. 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)
  9. 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)
  10. 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)
Back to top