Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 25 for Dive (0.14 sec)

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

    // 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
    // dominates all blocks in which it is used.
    func tighten(f *Func) {
    	if base.Flag.N != 0 && len(f.Blocks) < 10000 {
    		// Skip the optimization in -N mode, except for huge functions.
    		// Too many values live across blocks can cause pathological
    		// behavior in the register allocator (see issue 52180).
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue May 16 01:01:38 UTC 2023
    - 7.7K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/test/testdata/addressed_test.go

    	x = x*y + y
    	return &x
    }
    
    //go:noinline
    func f3a_ssa(x int) *int {
    	return &x
    }
    
    //go:noinline
    func f3b_ssa(x int) interface{} { // ./foo.go:15: internal error: f3b_ssa ~r1 (type interface {}) recorded as live on entry
    	return &x
    }
    
    //go:noinline
    func f3c_ssa(y int) interface{} {
    	x := y
    	return &x
    }
    
    type V struct {
    	p    *V
    	w, x int64
    }
    
    func args(t *testing.T) {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Apr 05 17:54:15 UTC 2022
    - 4.4K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssa/deadcode.go

    func liveValues(f *Func, reachable []bool) (live []bool, liveOrderStmts []*Value) {
    	live = f.Cache.allocBoolSlice(f.NumValues())
    	liveOrderStmts = f.Cache.allocValueSlice(f.NumValues())[:0]
    
    	// After regalloc, consider all values to be live.
    	// See the comment at the top of regalloc.go and in deadcode for details.
    	if f.RegAlloc != nil {
    		for i := range live {
    			live[i] = true
    		}
    		return
    	}
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Dec 08 00:29:01 UTC 2023
    - 9.2K bytes
    - Viewed (0)
  4. src/cmd/cgo/internal/testplugin/testdata/method/main.go

    // Copyright 2020 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.
    
    // Issue 42579: methods of symbols exported from plugin must be live.
    
    package main
    
    import (
    	"plugin"
    	"reflect"
    )
    
    func main() {
    	p, err := plugin.Open("plugin.so")
    	if err != nil {
    		panic(err)
    	}
    
    	x, err := p.Lookup("X")
    	if err != nil {
    		panic(err)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 12 11:59:56 UTC 2023
    - 478 bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssa/flagalloc.go

    		b.Values = b.Values[:0]
    		// The current live flag value (the pre-flagalloc copy).
    		var flag *Value
    		if len(b.Preds) > 0 {
    			flag = end[b.Preds[0].b.ID]
    			// Note: the following condition depends on the lack of critical edges.
    			for _, e := range b.Preds[1:] {
    				p := e.b
    				if end[p.ID] != flag {
    					f.Fatalf("live flag in %s's predecessors not consistent", b)
    				}
    			}
    		}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 31 21:41:20 UTC 2022
    - 6.7K bytes
    - Viewed (0)
  6. src/cmd/cgo/internal/testplugin/testdata/method2/main.go

    // Use of this source code is governed by a BSD-style
    // license that can be found in the LICENSE file.
    
    // A type can be passed to a plugin and converted to interface
    // there. So its methods need to be live.
    
    package main
    
    import (
    	"plugin"
    
    	"testplugin/method2/p"
    )
    
    var t p.T
    
    type I interface{ M() }
    
    func main() {
    	pl, err := plugin.Open("method2.so")
    	if err != nil {
    		panic(err)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 12 11:59:56 UTC 2023
    - 549 bytes
    - Viewed (0)
  7. src/cmd/cgo/internal/testplugin/testdata/method3/main.go

    // Use of this source code is governed by a BSD-style
    // license that can be found in the LICENSE file.
    
    // An unexported method can be reachable from the plugin via interface
    // when a package is shared. So it need to be live.
    
    package main
    
    import (
    	"plugin"
    
    	"testplugin/method3/p"
    )
    
    var i p.I
    
    func main() {
    	pl, err := plugin.Open("method3.so")
    	if err != nil {
    		panic(err)
    	}
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 12 11:59:56 UTC 2023
    - 533 bytes
    - Viewed (0)
  8. src/cmd/compile/internal/test/zerorange_test.go

    // improve coverage of the compiler's arch-specific "zerorange"
    // function, which is invoked to zero out ambiguously live portions of
    // the stack frame in certain specific circumstances.
    //
    // In the current compiler implementation, for zerorange to be
    // invoked, we need to have an ambiguously live variable that needs
    // zeroing. One way to trigger this is to have a function with an
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Apr 01 18:18:07 UTC 2022
    - 4.1K bytes
    - Viewed (0)
  9. src/cmd/cgo/internal/testplugin/testdata/issue18676/main.go

    //     chain rooted at hash bucket 0x111.
    //  3. The main binary then asks for the itab for *dynamodbstreamsevt.Event /
    //     json.Unmarshaler.  This itab happens to also live in bucket 0x111.
    //     The lookup code goes into an infinite loop searching for this itab.
    //
    // The code is carefully crafted so that the two itabs are both from the
    // same bucket, and so that the second itab doesn't exist in
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 12 11:59:56 UTC 2023
    - 1.1K bytes
    - Viewed (0)
  10. src/cmd/compile/internal/typecheck/dcl.go

    	if n >= len(autotmpnames) {
    		autotmpnames = append(autotmpnames, make([]string, n+1-len(autotmpnames))...)
    		autotmpnames = autotmpnames[:cap(autotmpnames)]
    	}
    
    	s := autotmpnames[n]
    	if s == "" {
    		// Give each tmp a different name so that they can be registerized.
    		// Add a preceding . to avoid clashing with legal names.
    		prefix := ".autotmp_%d"
    
    		s = fmt.Sprintf(prefix, n)
    		autotmpnames[n] = s
    	}
    	return s
    }
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Sep 14 13:15:50 UTC 2023
    - 3.1K bytes
    - Viewed (0)
Back to top