OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgo/] [go/] [runtime/] [closure_test.go] - Rev 858

Go to most recent revision | Compare with Previous | Blame | View Log

// Copyright 2011 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 runtime_test

import "testing"

var s int

func BenchmarkCallClosure(b *testing.B) {
        for i := 0; i < b.N; i++ {
                s += func(ii int) int { return 2 * ii }(i)
        }
}

func BenchmarkCallClosure1(b *testing.B) {
        for i := 0; i < b.N; i++ {
                j := i
                s += func(ii int) int { return 2*ii + j }(i)
        }
}

var ss *int

func BenchmarkCallClosure2(b *testing.B) {
        for i := 0; i < b.N; i++ {
                j := i
                s += func() int {
                        ss = &j
                        return 2
                }()
        }
}

func addr1(x int) *int {
        return func() *int { return &x }()
}

func BenchmarkCallClosure3(b *testing.B) {
        for i := 0; i < b.N; i++ {
                ss = addr1(i)
        }
}

func addr2() (x int, p *int) {
        return 0, func() *int { return &x }()
}

func BenchmarkCallClosure4(b *testing.B) {
        for i := 0; i < b.N; i++ {
                _, ss = addr2()
        }
}

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.