Search Options

Results per page
Sort
Preferred Languages
Advance

Results 11 - 20 of about 10,000 for phis (0.14 sec)

  1. 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)
  2. 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)
  3. 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)
  4. 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)
  5. 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)
  6. 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)
  7. 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)
  8. 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)
  9. 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)
  10. 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)
Back to top