Skip to content
Snippets Groups Projects
  • qmuntal's avatar
    e46e8610
    crypto/internal/boring: use noescape and nocallback cgo directives · e46e8610
    qmuntal authored
    The new noescape and nocallback directives can be used instead of the C
    wrapper functions that are there just to avoid some parameters being
    escaped to the heap.
    
    This CL also helps demonstrate the use of the new directives in real
    code.
    
    I've added some benchmarks to demonstrate that this CL doesn't
    introduce new heap allocations when using boringcrypto:
    
    ```
    goos: linux
    goarch: amd64
    pkg: crypto/aes
    cpu: AMD EPYC 7763 64-Core Processor
    BenchmarkGCMSeal-32    	 8378692	       143.3 ns/op	 111.65 MB/s	       0 B/op	       0 allocs/op
    BenchmarkGCMOpen-32    	 8383038	       142.7 ns/op	 112.11 MB/s	       0 B/op	       0 allocs/op
    ```
    
    Change-Id: Ifd775484eb9a105afc5c3d4e75a6c6655cbadc53
    Reviewed-on: https://go-review.googlesource.com/c/go/+/525035
    
    
    TryBot-Result: Gopher Robot <gobot@golang.org>
    Reviewed-by: default avatarBryan Mills <bcmills@google.com>
    Run-TryBot: Quim Muntal <quimmuntal@gmail.com>
    Reviewed-by: default avatarRoland Shoemaker <roland@golang.org>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    e46e8610
    History
    crypto/internal/boring: use noescape and nocallback cgo directives
    qmuntal authored
    The new noescape and nocallback directives can be used instead of the C
    wrapper functions that are there just to avoid some parameters being
    escaped to the heap.
    
    This CL also helps demonstrate the use of the new directives in real
    code.
    
    I've added some benchmarks to demonstrate that this CL doesn't
    introduce new heap allocations when using boringcrypto:
    
    ```
    goos: linux
    goarch: amd64
    pkg: crypto/aes
    cpu: AMD EPYC 7763 64-Core Processor
    BenchmarkGCMSeal-32    	 8378692	       143.3 ns/op	 111.65 MB/s	       0 B/op	       0 allocs/op
    BenchmarkGCMOpen-32    	 8383038	       142.7 ns/op	 112.11 MB/s	       0 B/op	       0 allocs/op
    ```
    
    Change-Id: Ifd775484eb9a105afc5c3d4e75a6c6655cbadc53
    Reviewed-on: https://go-review.googlesource.com/c/go/+/525035
    
    
    TryBot-Result: Gopher Robot <gobot@golang.org>
    Reviewed-by: default avatarBryan Mills <bcmills@google.com>
    Run-TryBot: Quim Muntal <quimmuntal@gmail.com>
    Reviewed-by: default avatarRoland Shoemaker <roland@golang.org>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Code owners
Assign users and groups as approvers for specific file changes. Learn more.