From ed2fa54799ad513290a71c9433bb713c84ad3c82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Geisend=C3=B6rfer?= Date: Mon, 12 Apr 2021 10:30:54 +0200 Subject: [PATCH] fix unwind tests --- examples/stack-unwind-overhead/README.md | 36 +- examples/stack-unwind-overhead/generated.go | 3079 +++++++++++++++++++ examples/stack-unwind-overhead/main.go | 60 +- examples/stack-unwind-overhead/main_test.go | 624 +--- 4 files changed, 3179 insertions(+), 620 deletions(-) create mode 100644 examples/stack-unwind-overhead/generated.go diff --git a/examples/stack-unwind-overhead/README.md b/examples/stack-unwind-overhead/README.md index 69a6f02..95acfe6 100644 --- a/examples/stack-unwind-overhead/README.md +++ b/examples/stack-unwind-overhead/README.md @@ -7,35 +7,17 @@ This directory contains benchmarks to explore which factors impact stack unwindi The benchmark below shows that stack unwinding has O(N) complexity with regard to the number of call frames on the stack: ``` -BenchmarkStackDepth/8-12 2208600 547.2 ns/op -BenchmarkStackDepth/16-12 1447922 810.8 ns/op -BenchmarkStackDepth/32-12 915291 1338 ns/op -BenchmarkStackDepth/64-12 488719 2366 ns/op -BenchmarkStackDepth/128-12 264735 4462 ns/op -BenchmarkStackDepth/256-12 137575 8643 ns/op -BenchmarkStackDepth/512-12 68355 17316 ns/op -BenchmarkStackDepth/1024-12 34710 34810 ns/op +BenchmarkStackDepth/8-12 1968214 612.2 ns/op +BenchmarkStackDepth/16-12 975457 1184 ns/op +BenchmarkStackDepth/32-12 572706 2101 ns/op +BenchmarkStackDepth/64-12 333598 3596 ns/op +BenchmarkStackDepth/128-12 182450 6561 ns/op +BenchmarkStackDepth/256-12 94783 12548 ns/op +BenchmarkStackDepth/512-12 48439 24471 ns/op +BenchmarkStackDepth/1024-12 24884 48310 ns/op ``` -## Result 2: O(N) Function Size - -Perhaps suprisingly, stack unwinding is also O(N) with regard to the size of the generated machine code for the function: - -``` -BenchmarkFunctionSize/1-12 2562176 462.8 ns/op -BenchmarkFunctionSize/2-12 2509465 484.7 ns/op -BenchmarkFunctionSize/4-12 2356609 504.6 ns/op -BenchmarkFunctionSize/8-12 2095870 568.3 ns/op -BenchmarkFunctionSize/16-12 1778889 669.7 ns/op -BenchmarkFunctionSize/32-12 1396009 856.0 ns/op -BenchmarkFunctionSize/64-12 943807 1269 ns/op -BenchmarkFunctionSize/128-12 516487 2271 ns/op -BenchmarkFunctionSize/256-12 277821 4490 ns/op -``` - -## Disclaimer - -YMMV, and especially the function size also depends on the program counter at which the function is being unwound. All tests were done on my local machine: +Tests were done on my local machine: ``` go test -bench . diff --git a/examples/stack-unwind-overhead/generated.go b/examples/stack-unwind-overhead/generated.go new file mode 100644 index 0000000..980939b --- /dev/null +++ b/examples/stack-unwind-overhead/generated.go @@ -0,0 +1,3079 @@ +// Code generated by go generate; DO NOT EDIT. + +package main + +//go:noinline +func stackdepth1(fn func()) { fn() } +//go:noinline +func stackdepth2(fn func()) { stackdepth1(fn) } +//go:noinline +func stackdepth3(fn func()) { stackdepth2(fn) } +//go:noinline +func stackdepth4(fn func()) { stackdepth3(fn) } +//go:noinline +func stackdepth5(fn func()) { stackdepth4(fn) } +//go:noinline +func stackdepth6(fn func()) { stackdepth5(fn) } +//go:noinline +func stackdepth7(fn func()) { stackdepth6(fn) } +//go:noinline +func stackdepth8(fn func()) { stackdepth7(fn) } +//go:noinline +func stackdepth9(fn func()) { stackdepth8(fn) } +//go:noinline +func stackdepth10(fn func()) { stackdepth9(fn) } +//go:noinline +func stackdepth11(fn func()) { stackdepth10(fn) } +//go:noinline +func stackdepth12(fn func()) { stackdepth11(fn) } +//go:noinline +func stackdepth13(fn func()) { stackdepth12(fn) } +//go:noinline +func stackdepth14(fn func()) { stackdepth13(fn) } +//go:noinline +func stackdepth15(fn func()) { stackdepth14(fn) } +//go:noinline +func stackdepth16(fn func()) { stackdepth15(fn) } +//go:noinline +func stackdepth17(fn func()) { stackdepth16(fn) } +//go:noinline +func stackdepth18(fn func()) { stackdepth17(fn) } +//go:noinline +func stackdepth19(fn func()) { stackdepth18(fn) } +//go:noinline +func stackdepth20(fn func()) { stackdepth19(fn) } +//go:noinline +func stackdepth21(fn func()) { stackdepth20(fn) } +//go:noinline +func stackdepth22(fn func()) { stackdepth21(fn) } +//go:noinline +func stackdepth23(fn func()) { stackdepth22(fn) } +//go:noinline +func stackdepth24(fn func()) { stackdepth23(fn) } +//go:noinline +func stackdepth25(fn func()) { stackdepth24(fn) } +//go:noinline +func stackdepth26(fn func()) { stackdepth25(fn) } +//go:noinline +func stackdepth27(fn func()) { stackdepth26(fn) } +//go:noinline +func stackdepth28(fn func()) { stackdepth27(fn) } +//go:noinline +func stackdepth29(fn func()) { stackdepth28(fn) } +//go:noinline +func stackdepth30(fn func()) { stackdepth29(fn) } +//go:noinline +func stackdepth31(fn func()) { stackdepth30(fn) } +//go:noinline +func stackdepth32(fn func()) { stackdepth31(fn) } +//go:noinline +func stackdepth33(fn func()) { stackdepth32(fn) } +//go:noinline +func stackdepth34(fn func()) { stackdepth33(fn) } +//go:noinline +func stackdepth35(fn func()) { stackdepth34(fn) } +//go:noinline +func stackdepth36(fn func()) { stackdepth35(fn) } +//go:noinline +func stackdepth37(fn func()) { stackdepth36(fn) } +//go:noinline +func stackdepth38(fn func()) { stackdepth37(fn) } +//go:noinline +func stackdepth39(fn func()) { stackdepth38(fn) } +//go:noinline +func stackdepth40(fn func()) { stackdepth39(fn) } +//go:noinline +func stackdepth41(fn func()) { stackdepth40(fn) } +//go:noinline +func stackdepth42(fn func()) { stackdepth41(fn) } +//go:noinline +func stackdepth43(fn func()) { stackdepth42(fn) } +//go:noinline +func stackdepth44(fn func()) { stackdepth43(fn) } +//go:noinline +func stackdepth45(fn func()) { stackdepth44(fn) } +//go:noinline +func stackdepth46(fn func()) { stackdepth45(fn) } +//go:noinline +func stackdepth47(fn func()) { stackdepth46(fn) } +//go:noinline +func stackdepth48(fn func()) { stackdepth47(fn) } +//go:noinline +func stackdepth49(fn func()) { stackdepth48(fn) } +//go:noinline +func stackdepth50(fn func()) { stackdepth49(fn) } +//go:noinline +func stackdepth51(fn func()) { stackdepth50(fn) } +//go:noinline +func stackdepth52(fn func()) { stackdepth51(fn) } +//go:noinline +func stackdepth53(fn func()) { stackdepth52(fn) } +//go:noinline +func stackdepth54(fn func()) { stackdepth53(fn) } +//go:noinline +func stackdepth55(fn func()) { stackdepth54(fn) } +//go:noinline +func stackdepth56(fn func()) { stackdepth55(fn) } +//go:noinline +func stackdepth57(fn func()) { stackdepth56(fn) } +//go:noinline +func stackdepth58(fn func()) { stackdepth57(fn) } +//go:noinline +func stackdepth59(fn func()) { stackdepth58(fn) } +//go:noinline +func stackdepth60(fn func()) { stackdepth59(fn) } +//go:noinline +func stackdepth61(fn func()) { stackdepth60(fn) } +//go:noinline +func stackdepth62(fn func()) { stackdepth61(fn) } +//go:noinline +func stackdepth63(fn func()) { stackdepth62(fn) } +//go:noinline +func stackdepth64(fn func()) { stackdepth63(fn) } +//go:noinline +func stackdepth65(fn func()) { stackdepth64(fn) } +//go:noinline +func stackdepth66(fn func()) { stackdepth65(fn) } +//go:noinline +func stackdepth67(fn func()) { stackdepth66(fn) } +//go:noinline +func stackdepth68(fn func()) { stackdepth67(fn) } +//go:noinline +func stackdepth69(fn func()) { stackdepth68(fn) } +//go:noinline +func stackdepth70(fn func()) { stackdepth69(fn) } +//go:noinline +func stackdepth71(fn func()) { stackdepth70(fn) } +//go:noinline +func stackdepth72(fn func()) { stackdepth71(fn) } +//go:noinline +func stackdepth73(fn func()) { stackdepth72(fn) } +//go:noinline +func stackdepth74(fn func()) { stackdepth73(fn) } +//go:noinline +func stackdepth75(fn func()) { stackdepth74(fn) } +//go:noinline +func stackdepth76(fn func()) { stackdepth75(fn) } +//go:noinline +func stackdepth77(fn func()) { stackdepth76(fn) } +//go:noinline +func stackdepth78(fn func()) { stackdepth77(fn) } +//go:noinline +func stackdepth79(fn func()) { stackdepth78(fn) } +//go:noinline +func stackdepth80(fn func()) { stackdepth79(fn) } +//go:noinline +func stackdepth81(fn func()) { stackdepth80(fn) } +//go:noinline +func stackdepth82(fn func()) { stackdepth81(fn) } +//go:noinline +func stackdepth83(fn func()) { stackdepth82(fn) } +//go:noinline +func stackdepth84(fn func()) { stackdepth83(fn) } +//go:noinline +func stackdepth85(fn func()) { stackdepth84(fn) } +//go:noinline +func stackdepth86(fn func()) { stackdepth85(fn) } +//go:noinline +func stackdepth87(fn func()) { stackdepth86(fn) } +//go:noinline +func stackdepth88(fn func()) { stackdepth87(fn) } +//go:noinline +func stackdepth89(fn func()) { stackdepth88(fn) } +//go:noinline +func stackdepth90(fn func()) { stackdepth89(fn) } +//go:noinline +func stackdepth91(fn func()) { stackdepth90(fn) } +//go:noinline +func stackdepth92(fn func()) { stackdepth91(fn) } +//go:noinline +func stackdepth93(fn func()) { stackdepth92(fn) } +//go:noinline +func stackdepth94(fn func()) { stackdepth93(fn) } +//go:noinline +func stackdepth95(fn func()) { stackdepth94(fn) } +//go:noinline +func stackdepth96(fn func()) { stackdepth95(fn) } +//go:noinline +func stackdepth97(fn func()) { stackdepth96(fn) } +//go:noinline +func stackdepth98(fn func()) { stackdepth97(fn) } +//go:noinline +func stackdepth99(fn func()) { stackdepth98(fn) } +//go:noinline +func stackdepth100(fn func()) { stackdepth99(fn) } +//go:noinline +func stackdepth101(fn func()) { stackdepth100(fn) } +//go:noinline +func stackdepth102(fn func()) { stackdepth101(fn) } +//go:noinline +func stackdepth103(fn func()) { stackdepth102(fn) } +//go:noinline +func stackdepth104(fn func()) { stackdepth103(fn) } +//go:noinline +func stackdepth105(fn func()) { stackdepth104(fn) } +//go:noinline +func stackdepth106(fn func()) { stackdepth105(fn) } +//go:noinline +func stackdepth107(fn func()) { stackdepth106(fn) } +//go:noinline +func stackdepth108(fn func()) { stackdepth107(fn) } +//go:noinline +func stackdepth109(fn func()) { stackdepth108(fn) } +//go:noinline +func stackdepth110(fn func()) { stackdepth109(fn) } +//go:noinline +func stackdepth111(fn func()) { stackdepth110(fn) } +//go:noinline +func stackdepth112(fn func()) { stackdepth111(fn) } +//go:noinline +func stackdepth113(fn func()) { stackdepth112(fn) } +//go:noinline +func stackdepth114(fn func()) { stackdepth113(fn) } +//go:noinline +func stackdepth115(fn func()) { stackdepth114(fn) } +//go:noinline +func stackdepth116(fn func()) { stackdepth115(fn) } +//go:noinline +func stackdepth117(fn func()) { stackdepth116(fn) } +//go:noinline +func stackdepth118(fn func()) { stackdepth117(fn) } +//go:noinline +func stackdepth119(fn func()) { stackdepth118(fn) } +//go:noinline +func stackdepth120(fn func()) { stackdepth119(fn) } +//go:noinline +func stackdepth121(fn func()) { stackdepth120(fn) } +//go:noinline +func stackdepth122(fn func()) { stackdepth121(fn) } +//go:noinline +func stackdepth123(fn func()) { stackdepth122(fn) } +//go:noinline +func stackdepth124(fn func()) { stackdepth123(fn) } +//go:noinline +func stackdepth125(fn func()) { stackdepth124(fn) } +//go:noinline +func stackdepth126(fn func()) { stackdepth125(fn) } +//go:noinline +func stackdepth127(fn func()) { stackdepth126(fn) } +//go:noinline +func stackdepth128(fn func()) { stackdepth127(fn) } +//go:noinline +func stackdepth129(fn func()) { stackdepth128(fn) } +//go:noinline +func stackdepth130(fn func()) { stackdepth129(fn) } +//go:noinline +func stackdepth131(fn func()) { stackdepth130(fn) } +//go:noinline +func stackdepth132(fn func()) { stackdepth131(fn) } +//go:noinline +func stackdepth133(fn func()) { stackdepth132(fn) } +//go:noinline +func stackdepth134(fn func()) { stackdepth133(fn) } +//go:noinline +func stackdepth135(fn func()) { stackdepth134(fn) } +//go:noinline +func stackdepth136(fn func()) { stackdepth135(fn) } +//go:noinline +func stackdepth137(fn func()) { stackdepth136(fn) } +//go:noinline +func stackdepth138(fn func()) { stackdepth137(fn) } +//go:noinline +func stackdepth139(fn func()) { stackdepth138(fn) } +//go:noinline +func stackdepth140(fn func()) { stackdepth139(fn) } +//go:noinline +func stackdepth141(fn func()) { stackdepth140(fn) } +//go:noinline +func stackdepth142(fn func()) { stackdepth141(fn) } +//go:noinline +func stackdepth143(fn func()) { stackdepth142(fn) } +//go:noinline +func stackdepth144(fn func()) { stackdepth143(fn) } +//go:noinline +func stackdepth145(fn func()) { stackdepth144(fn) } +//go:noinline +func stackdepth146(fn func()) { stackdepth145(fn) } +//go:noinline +func stackdepth147(fn func()) { stackdepth146(fn) } +//go:noinline +func stackdepth148(fn func()) { stackdepth147(fn) } +//go:noinline +func stackdepth149(fn func()) { stackdepth148(fn) } +//go:noinline +func stackdepth150(fn func()) { stackdepth149(fn) } +//go:noinline +func stackdepth151(fn func()) { stackdepth150(fn) } +//go:noinline +func stackdepth152(fn func()) { stackdepth151(fn) } +//go:noinline +func stackdepth153(fn func()) { stackdepth152(fn) } +//go:noinline +func stackdepth154(fn func()) { stackdepth153(fn) } +//go:noinline +func stackdepth155(fn func()) { stackdepth154(fn) } +//go:noinline +func stackdepth156(fn func()) { stackdepth155(fn) } +//go:noinline +func stackdepth157(fn func()) { stackdepth156(fn) } +//go:noinline +func stackdepth158(fn func()) { stackdepth157(fn) } +//go:noinline +func stackdepth159(fn func()) { stackdepth158(fn) } +//go:noinline +func stackdepth160(fn func()) { stackdepth159(fn) } +//go:noinline +func stackdepth161(fn func()) { stackdepth160(fn) } +//go:noinline +func stackdepth162(fn func()) { stackdepth161(fn) } +//go:noinline +func stackdepth163(fn func()) { stackdepth162(fn) } +//go:noinline +func stackdepth164(fn func()) { stackdepth163(fn) } +//go:noinline +func stackdepth165(fn func()) { stackdepth164(fn) } +//go:noinline +func stackdepth166(fn func()) { stackdepth165(fn) } +//go:noinline +func stackdepth167(fn func()) { stackdepth166(fn) } +//go:noinline +func stackdepth168(fn func()) { stackdepth167(fn) } +//go:noinline +func stackdepth169(fn func()) { stackdepth168(fn) } +//go:noinline +func stackdepth170(fn func()) { stackdepth169(fn) } +//go:noinline +func stackdepth171(fn func()) { stackdepth170(fn) } +//go:noinline +func stackdepth172(fn func()) { stackdepth171(fn) } +//go:noinline +func stackdepth173(fn func()) { stackdepth172(fn) } +//go:noinline +func stackdepth174(fn func()) { stackdepth173(fn) } +//go:noinline +func stackdepth175(fn func()) { stackdepth174(fn) } +//go:noinline +func stackdepth176(fn func()) { stackdepth175(fn) } +//go:noinline +func stackdepth177(fn func()) { stackdepth176(fn) } +//go:noinline +func stackdepth178(fn func()) { stackdepth177(fn) } +//go:noinline +func stackdepth179(fn func()) { stackdepth178(fn) } +//go:noinline +func stackdepth180(fn func()) { stackdepth179(fn) } +//go:noinline +func stackdepth181(fn func()) { stackdepth180(fn) } +//go:noinline +func stackdepth182(fn func()) { stackdepth181(fn) } +//go:noinline +func stackdepth183(fn func()) { stackdepth182(fn) } +//go:noinline +func stackdepth184(fn func()) { stackdepth183(fn) } +//go:noinline +func stackdepth185(fn func()) { stackdepth184(fn) } +//go:noinline +func stackdepth186(fn func()) { stackdepth185(fn) } +//go:noinline +func stackdepth187(fn func()) { stackdepth186(fn) } +//go:noinline +func stackdepth188(fn func()) { stackdepth187(fn) } +//go:noinline +func stackdepth189(fn func()) { stackdepth188(fn) } +//go:noinline +func stackdepth190(fn func()) { stackdepth189(fn) } +//go:noinline +func stackdepth191(fn func()) { stackdepth190(fn) } +//go:noinline +func stackdepth192(fn func()) { stackdepth191(fn) } +//go:noinline +func stackdepth193(fn func()) { stackdepth192(fn) } +//go:noinline +func stackdepth194(fn func()) { stackdepth193(fn) } +//go:noinline +func stackdepth195(fn func()) { stackdepth194(fn) } +//go:noinline +func stackdepth196(fn func()) { stackdepth195(fn) } +//go:noinline +func stackdepth197(fn func()) { stackdepth196(fn) } +//go:noinline +func stackdepth198(fn func()) { stackdepth197(fn) } +//go:noinline +func stackdepth199(fn func()) { stackdepth198(fn) } +//go:noinline +func stackdepth200(fn func()) { stackdepth199(fn) } +//go:noinline +func stackdepth201(fn func()) { stackdepth200(fn) } +//go:noinline +func stackdepth202(fn func()) { stackdepth201(fn) } +//go:noinline +func stackdepth203(fn func()) { stackdepth202(fn) } +//go:noinline +func stackdepth204(fn func()) { stackdepth203(fn) } +//go:noinline +func stackdepth205(fn func()) { stackdepth204(fn) } +//go:noinline +func stackdepth206(fn func()) { stackdepth205(fn) } +//go:noinline +func stackdepth207(fn func()) { stackdepth206(fn) } +//go:noinline +func stackdepth208(fn func()) { stackdepth207(fn) } +//go:noinline +func stackdepth209(fn func()) { stackdepth208(fn) } +//go:noinline +func stackdepth210(fn func()) { stackdepth209(fn) } +//go:noinline +func stackdepth211(fn func()) { stackdepth210(fn) } +//go:noinline +func stackdepth212(fn func()) { stackdepth211(fn) } +//go:noinline +func stackdepth213(fn func()) { stackdepth212(fn) } +//go:noinline +func stackdepth214(fn func()) { stackdepth213(fn) } +//go:noinline +func stackdepth215(fn func()) { stackdepth214(fn) } +//go:noinline +func stackdepth216(fn func()) { stackdepth215(fn) } +//go:noinline +func stackdepth217(fn func()) { stackdepth216(fn) } +//go:noinline +func stackdepth218(fn func()) { stackdepth217(fn) } +//go:noinline +func stackdepth219(fn func()) { stackdepth218(fn) } +//go:noinline +func stackdepth220(fn func()) { stackdepth219(fn) } +//go:noinline +func stackdepth221(fn func()) { stackdepth220(fn) } +//go:noinline +func stackdepth222(fn func()) { stackdepth221(fn) } +//go:noinline +func stackdepth223(fn func()) { stackdepth222(fn) } +//go:noinline +func stackdepth224(fn func()) { stackdepth223(fn) } +//go:noinline +func stackdepth225(fn func()) { stackdepth224(fn) } +//go:noinline +func stackdepth226(fn func()) { stackdepth225(fn) } +//go:noinline +func stackdepth227(fn func()) { stackdepth226(fn) } +//go:noinline +func stackdepth228(fn func()) { stackdepth227(fn) } +//go:noinline +func stackdepth229(fn func()) { stackdepth228(fn) } +//go:noinline +func stackdepth230(fn func()) { stackdepth229(fn) } +//go:noinline +func stackdepth231(fn func()) { stackdepth230(fn) } +//go:noinline +func stackdepth232(fn func()) { stackdepth231(fn) } +//go:noinline +func stackdepth233(fn func()) { stackdepth232(fn) } +//go:noinline +func stackdepth234(fn func()) { stackdepth233(fn) } +//go:noinline +func stackdepth235(fn func()) { stackdepth234(fn) } +//go:noinline +func stackdepth236(fn func()) { stackdepth235(fn) } +//go:noinline +func stackdepth237(fn func()) { stackdepth236(fn) } +//go:noinline +func stackdepth238(fn func()) { stackdepth237(fn) } +//go:noinline +func stackdepth239(fn func()) { stackdepth238(fn) } +//go:noinline +func stackdepth240(fn func()) { stackdepth239(fn) } +//go:noinline +func stackdepth241(fn func()) { stackdepth240(fn) } +//go:noinline +func stackdepth242(fn func()) { stackdepth241(fn) } +//go:noinline +func stackdepth243(fn func()) { stackdepth242(fn) } +//go:noinline +func stackdepth244(fn func()) { stackdepth243(fn) } +//go:noinline +func stackdepth245(fn func()) { stackdepth244(fn) } +//go:noinline +func stackdepth246(fn func()) { stackdepth245(fn) } +//go:noinline +func stackdepth247(fn func()) { stackdepth246(fn) } +//go:noinline +func stackdepth248(fn func()) { stackdepth247(fn) } +//go:noinline +func stackdepth249(fn func()) { stackdepth248(fn) } +//go:noinline +func stackdepth250(fn func()) { stackdepth249(fn) } +//go:noinline +func stackdepth251(fn func()) { stackdepth250(fn) } +//go:noinline +func stackdepth252(fn func()) { stackdepth251(fn) } +//go:noinline +func stackdepth253(fn func()) { stackdepth252(fn) } +//go:noinline +func stackdepth254(fn func()) { stackdepth253(fn) } +//go:noinline +func stackdepth255(fn func()) { stackdepth254(fn) } +//go:noinline +func stackdepth256(fn func()) { stackdepth255(fn) } +//go:noinline +func stackdepth257(fn func()) { stackdepth256(fn) } +//go:noinline +func stackdepth258(fn func()) { stackdepth257(fn) } +//go:noinline +func stackdepth259(fn func()) { stackdepth258(fn) } +//go:noinline +func stackdepth260(fn func()) { stackdepth259(fn) } +//go:noinline +func stackdepth261(fn func()) { stackdepth260(fn) } +//go:noinline +func stackdepth262(fn func()) { stackdepth261(fn) } +//go:noinline +func stackdepth263(fn func()) { stackdepth262(fn) } +//go:noinline +func stackdepth264(fn func()) { stackdepth263(fn) } +//go:noinline +func stackdepth265(fn func()) { stackdepth264(fn) } +//go:noinline +func stackdepth266(fn func()) { stackdepth265(fn) } +//go:noinline +func stackdepth267(fn func()) { stackdepth266(fn) } +//go:noinline +func stackdepth268(fn func()) { stackdepth267(fn) } +//go:noinline +func stackdepth269(fn func()) { stackdepth268(fn) } +//go:noinline +func stackdepth270(fn func()) { stackdepth269(fn) } +//go:noinline +func stackdepth271(fn func()) { stackdepth270(fn) } +//go:noinline +func stackdepth272(fn func()) { stackdepth271(fn) } +//go:noinline +func stackdepth273(fn func()) { stackdepth272(fn) } +//go:noinline +func stackdepth274(fn func()) { stackdepth273(fn) } +//go:noinline +func stackdepth275(fn func()) { stackdepth274(fn) } +//go:noinline +func stackdepth276(fn func()) { stackdepth275(fn) } +//go:noinline +func stackdepth277(fn func()) { stackdepth276(fn) } +//go:noinline +func stackdepth278(fn func()) { stackdepth277(fn) } +//go:noinline +func stackdepth279(fn func()) { stackdepth278(fn) } +//go:noinline +func stackdepth280(fn func()) { stackdepth279(fn) } +//go:noinline +func stackdepth281(fn func()) { stackdepth280(fn) } +//go:noinline +func stackdepth282(fn func()) { stackdepth281(fn) } +//go:noinline +func stackdepth283(fn func()) { stackdepth282(fn) } +//go:noinline +func stackdepth284(fn func()) { stackdepth283(fn) } +//go:noinline +func stackdepth285(fn func()) { stackdepth284(fn) } +//go:noinline +func stackdepth286(fn func()) { stackdepth285(fn) } +//go:noinline +func stackdepth287(fn func()) { stackdepth286(fn) } +//go:noinline +func stackdepth288(fn func()) { stackdepth287(fn) } +//go:noinline +func stackdepth289(fn func()) { stackdepth288(fn) } +//go:noinline +func stackdepth290(fn func()) { stackdepth289(fn) } +//go:noinline +func stackdepth291(fn func()) { stackdepth290(fn) } +//go:noinline +func stackdepth292(fn func()) { stackdepth291(fn) } +//go:noinline +func stackdepth293(fn func()) { stackdepth292(fn) } +//go:noinline +func stackdepth294(fn func()) { stackdepth293(fn) } +//go:noinline +func stackdepth295(fn func()) { stackdepth294(fn) } +//go:noinline +func stackdepth296(fn func()) { stackdepth295(fn) } +//go:noinline +func stackdepth297(fn func()) { stackdepth296(fn) } +//go:noinline +func stackdepth298(fn func()) { stackdepth297(fn) } +//go:noinline +func stackdepth299(fn func()) { stackdepth298(fn) } +//go:noinline +func stackdepth300(fn func()) { stackdepth299(fn) } +//go:noinline +func stackdepth301(fn func()) { stackdepth300(fn) } +//go:noinline +func stackdepth302(fn func()) { stackdepth301(fn) } +//go:noinline +func stackdepth303(fn func()) { stackdepth302(fn) } +//go:noinline +func stackdepth304(fn func()) { stackdepth303(fn) } +//go:noinline +func stackdepth305(fn func()) { stackdepth304(fn) } +//go:noinline +func stackdepth306(fn func()) { stackdepth305(fn) } +//go:noinline +func stackdepth307(fn func()) { stackdepth306(fn) } +//go:noinline +func stackdepth308(fn func()) { stackdepth307(fn) } +//go:noinline +func stackdepth309(fn func()) { stackdepth308(fn) } +//go:noinline +func stackdepth310(fn func()) { stackdepth309(fn) } +//go:noinline +func stackdepth311(fn func()) { stackdepth310(fn) } +//go:noinline +func stackdepth312(fn func()) { stackdepth311(fn) } +//go:noinline +func stackdepth313(fn func()) { stackdepth312(fn) } +//go:noinline +func stackdepth314(fn func()) { stackdepth313(fn) } +//go:noinline +func stackdepth315(fn func()) { stackdepth314(fn) } +//go:noinline +func stackdepth316(fn func()) { stackdepth315(fn) } +//go:noinline +func stackdepth317(fn func()) { stackdepth316(fn) } +//go:noinline +func stackdepth318(fn func()) { stackdepth317(fn) } +//go:noinline +func stackdepth319(fn func()) { stackdepth318(fn) } +//go:noinline +func stackdepth320(fn func()) { stackdepth319(fn) } +//go:noinline +func stackdepth321(fn func()) { stackdepth320(fn) } +//go:noinline +func stackdepth322(fn func()) { stackdepth321(fn) } +//go:noinline +func stackdepth323(fn func()) { stackdepth322(fn) } +//go:noinline +func stackdepth324(fn func()) { stackdepth323(fn) } +//go:noinline +func stackdepth325(fn func()) { stackdepth324(fn) } +//go:noinline +func stackdepth326(fn func()) { stackdepth325(fn) } +//go:noinline +func stackdepth327(fn func()) { stackdepth326(fn) } +//go:noinline +func stackdepth328(fn func()) { stackdepth327(fn) } +//go:noinline +func stackdepth329(fn func()) { stackdepth328(fn) } +//go:noinline +func stackdepth330(fn func()) { stackdepth329(fn) } +//go:noinline +func stackdepth331(fn func()) { stackdepth330(fn) } +//go:noinline +func stackdepth332(fn func()) { stackdepth331(fn) } +//go:noinline +func stackdepth333(fn func()) { stackdepth332(fn) } +//go:noinline +func stackdepth334(fn func()) { stackdepth333(fn) } +//go:noinline +func stackdepth335(fn func()) { stackdepth334(fn) } +//go:noinline +func stackdepth336(fn func()) { stackdepth335(fn) } +//go:noinline +func stackdepth337(fn func()) { stackdepth336(fn) } +//go:noinline +func stackdepth338(fn func()) { stackdepth337(fn) } +//go:noinline +func stackdepth339(fn func()) { stackdepth338(fn) } +//go:noinline +func stackdepth340(fn func()) { stackdepth339(fn) } +//go:noinline +func stackdepth341(fn func()) { stackdepth340(fn) } +//go:noinline +func stackdepth342(fn func()) { stackdepth341(fn) } +//go:noinline +func stackdepth343(fn func()) { stackdepth342(fn) } +//go:noinline +func stackdepth344(fn func()) { stackdepth343(fn) } +//go:noinline +func stackdepth345(fn func()) { stackdepth344(fn) } +//go:noinline +func stackdepth346(fn func()) { stackdepth345(fn) } +//go:noinline +func stackdepth347(fn func()) { stackdepth346(fn) } +//go:noinline +func stackdepth348(fn func()) { stackdepth347(fn) } +//go:noinline +func stackdepth349(fn func()) { stackdepth348(fn) } +//go:noinline +func stackdepth350(fn func()) { stackdepth349(fn) } +//go:noinline +func stackdepth351(fn func()) { stackdepth350(fn) } +//go:noinline +func stackdepth352(fn func()) { stackdepth351(fn) } +//go:noinline +func stackdepth353(fn func()) { stackdepth352(fn) } +//go:noinline +func stackdepth354(fn func()) { stackdepth353(fn) } +//go:noinline +func stackdepth355(fn func()) { stackdepth354(fn) } +//go:noinline +func stackdepth356(fn func()) { stackdepth355(fn) } +//go:noinline +func stackdepth357(fn func()) { stackdepth356(fn) } +//go:noinline +func stackdepth358(fn func()) { stackdepth357(fn) } +//go:noinline +func stackdepth359(fn func()) { stackdepth358(fn) } +//go:noinline +func stackdepth360(fn func()) { stackdepth359(fn) } +//go:noinline +func stackdepth361(fn func()) { stackdepth360(fn) } +//go:noinline +func stackdepth362(fn func()) { stackdepth361(fn) } +//go:noinline +func stackdepth363(fn func()) { stackdepth362(fn) } +//go:noinline +func stackdepth364(fn func()) { stackdepth363(fn) } +//go:noinline +func stackdepth365(fn func()) { stackdepth364(fn) } +//go:noinline +func stackdepth366(fn func()) { stackdepth365(fn) } +//go:noinline +func stackdepth367(fn func()) { stackdepth366(fn) } +//go:noinline +func stackdepth368(fn func()) { stackdepth367(fn) } +//go:noinline +func stackdepth369(fn func()) { stackdepth368(fn) } +//go:noinline +func stackdepth370(fn func()) { stackdepth369(fn) } +//go:noinline +func stackdepth371(fn func()) { stackdepth370(fn) } +//go:noinline +func stackdepth372(fn func()) { stackdepth371(fn) } +//go:noinline +func stackdepth373(fn func()) { stackdepth372(fn) } +//go:noinline +func stackdepth374(fn func()) { stackdepth373(fn) } +//go:noinline +func stackdepth375(fn func()) { stackdepth374(fn) } +//go:noinline +func stackdepth376(fn func()) { stackdepth375(fn) } +//go:noinline +func stackdepth377(fn func()) { stackdepth376(fn) } +//go:noinline +func stackdepth378(fn func()) { stackdepth377(fn) } +//go:noinline +func stackdepth379(fn func()) { stackdepth378(fn) } +//go:noinline +func stackdepth380(fn func()) { stackdepth379(fn) } +//go:noinline +func stackdepth381(fn func()) { stackdepth380(fn) } +//go:noinline +func stackdepth382(fn func()) { stackdepth381(fn) } +//go:noinline +func stackdepth383(fn func()) { stackdepth382(fn) } +//go:noinline +func stackdepth384(fn func()) { stackdepth383(fn) } +//go:noinline +func stackdepth385(fn func()) { stackdepth384(fn) } +//go:noinline +func stackdepth386(fn func()) { stackdepth385(fn) } +//go:noinline +func stackdepth387(fn func()) { stackdepth386(fn) } +//go:noinline +func stackdepth388(fn func()) { stackdepth387(fn) } +//go:noinline +func stackdepth389(fn func()) { stackdepth388(fn) } +//go:noinline +func stackdepth390(fn func()) { stackdepth389(fn) } +//go:noinline +func stackdepth391(fn func()) { stackdepth390(fn) } +//go:noinline +func stackdepth392(fn func()) { stackdepth391(fn) } +//go:noinline +func stackdepth393(fn func()) { stackdepth392(fn) } +//go:noinline +func stackdepth394(fn func()) { stackdepth393(fn) } +//go:noinline +func stackdepth395(fn func()) { stackdepth394(fn) } +//go:noinline +func stackdepth396(fn func()) { stackdepth395(fn) } +//go:noinline +func stackdepth397(fn func()) { stackdepth396(fn) } +//go:noinline +func stackdepth398(fn func()) { stackdepth397(fn) } +//go:noinline +func stackdepth399(fn func()) { stackdepth398(fn) } +//go:noinline +func stackdepth400(fn func()) { stackdepth399(fn) } +//go:noinline +func stackdepth401(fn func()) { stackdepth400(fn) } +//go:noinline +func stackdepth402(fn func()) { stackdepth401(fn) } +//go:noinline +func stackdepth403(fn func()) { stackdepth402(fn) } +//go:noinline +func stackdepth404(fn func()) { stackdepth403(fn) } +//go:noinline +func stackdepth405(fn func()) { stackdepth404(fn) } +//go:noinline +func stackdepth406(fn func()) { stackdepth405(fn) } +//go:noinline +func stackdepth407(fn func()) { stackdepth406(fn) } +//go:noinline +func stackdepth408(fn func()) { stackdepth407(fn) } +//go:noinline +func stackdepth409(fn func()) { stackdepth408(fn) } +//go:noinline +func stackdepth410(fn func()) { stackdepth409(fn) } +//go:noinline +func stackdepth411(fn func()) { stackdepth410(fn) } +//go:noinline +func stackdepth412(fn func()) { stackdepth411(fn) } +//go:noinline +func stackdepth413(fn func()) { stackdepth412(fn) } +//go:noinline +func stackdepth414(fn func()) { stackdepth413(fn) } +//go:noinline +func stackdepth415(fn func()) { stackdepth414(fn) } +//go:noinline +func stackdepth416(fn func()) { stackdepth415(fn) } +//go:noinline +func stackdepth417(fn func()) { stackdepth416(fn) } +//go:noinline +func stackdepth418(fn func()) { stackdepth417(fn) } +//go:noinline +func stackdepth419(fn func()) { stackdepth418(fn) } +//go:noinline +func stackdepth420(fn func()) { stackdepth419(fn) } +//go:noinline +func stackdepth421(fn func()) { stackdepth420(fn) } +//go:noinline +func stackdepth422(fn func()) { stackdepth421(fn) } +//go:noinline +func stackdepth423(fn func()) { stackdepth422(fn) } +//go:noinline +func stackdepth424(fn func()) { stackdepth423(fn) } +//go:noinline +func stackdepth425(fn func()) { stackdepth424(fn) } +//go:noinline +func stackdepth426(fn func()) { stackdepth425(fn) } +//go:noinline +func stackdepth427(fn func()) { stackdepth426(fn) } +//go:noinline +func stackdepth428(fn func()) { stackdepth427(fn) } +//go:noinline +func stackdepth429(fn func()) { stackdepth428(fn) } +//go:noinline +func stackdepth430(fn func()) { stackdepth429(fn) } +//go:noinline +func stackdepth431(fn func()) { stackdepth430(fn) } +//go:noinline +func stackdepth432(fn func()) { stackdepth431(fn) } +//go:noinline +func stackdepth433(fn func()) { stackdepth432(fn) } +//go:noinline +func stackdepth434(fn func()) { stackdepth433(fn) } +//go:noinline +func stackdepth435(fn func()) { stackdepth434(fn) } +//go:noinline +func stackdepth436(fn func()) { stackdepth435(fn) } +//go:noinline +func stackdepth437(fn func()) { stackdepth436(fn) } +//go:noinline +func stackdepth438(fn func()) { stackdepth437(fn) } +//go:noinline +func stackdepth439(fn func()) { stackdepth438(fn) } +//go:noinline +func stackdepth440(fn func()) { stackdepth439(fn) } +//go:noinline +func stackdepth441(fn func()) { stackdepth440(fn) } +//go:noinline +func stackdepth442(fn func()) { stackdepth441(fn) } +//go:noinline +func stackdepth443(fn func()) { stackdepth442(fn) } +//go:noinline +func stackdepth444(fn func()) { stackdepth443(fn) } +//go:noinline +func stackdepth445(fn func()) { stackdepth444(fn) } +//go:noinline +func stackdepth446(fn func()) { stackdepth445(fn) } +//go:noinline +func stackdepth447(fn func()) { stackdepth446(fn) } +//go:noinline +func stackdepth448(fn func()) { stackdepth447(fn) } +//go:noinline +func stackdepth449(fn func()) { stackdepth448(fn) } +//go:noinline +func stackdepth450(fn func()) { stackdepth449(fn) } +//go:noinline +func stackdepth451(fn func()) { stackdepth450(fn) } +//go:noinline +func stackdepth452(fn func()) { stackdepth451(fn) } +//go:noinline +func stackdepth453(fn func()) { stackdepth452(fn) } +//go:noinline +func stackdepth454(fn func()) { stackdepth453(fn) } +//go:noinline +func stackdepth455(fn func()) { stackdepth454(fn) } +//go:noinline +func stackdepth456(fn func()) { stackdepth455(fn) } +//go:noinline +func stackdepth457(fn func()) { stackdepth456(fn) } +//go:noinline +func stackdepth458(fn func()) { stackdepth457(fn) } +//go:noinline +func stackdepth459(fn func()) { stackdepth458(fn) } +//go:noinline +func stackdepth460(fn func()) { stackdepth459(fn) } +//go:noinline +func stackdepth461(fn func()) { stackdepth460(fn) } +//go:noinline +func stackdepth462(fn func()) { stackdepth461(fn) } +//go:noinline +func stackdepth463(fn func()) { stackdepth462(fn) } +//go:noinline +func stackdepth464(fn func()) { stackdepth463(fn) } +//go:noinline +func stackdepth465(fn func()) { stackdepth464(fn) } +//go:noinline +func stackdepth466(fn func()) { stackdepth465(fn) } +//go:noinline +func stackdepth467(fn func()) { stackdepth466(fn) } +//go:noinline +func stackdepth468(fn func()) { stackdepth467(fn) } +//go:noinline +func stackdepth469(fn func()) { stackdepth468(fn) } +//go:noinline +func stackdepth470(fn func()) { stackdepth469(fn) } +//go:noinline +func stackdepth471(fn func()) { stackdepth470(fn) } +//go:noinline +func stackdepth472(fn func()) { stackdepth471(fn) } +//go:noinline +func stackdepth473(fn func()) { stackdepth472(fn) } +//go:noinline +func stackdepth474(fn func()) { stackdepth473(fn) } +//go:noinline +func stackdepth475(fn func()) { stackdepth474(fn) } +//go:noinline +func stackdepth476(fn func()) { stackdepth475(fn) } +//go:noinline +func stackdepth477(fn func()) { stackdepth476(fn) } +//go:noinline +func stackdepth478(fn func()) { stackdepth477(fn) } +//go:noinline +func stackdepth479(fn func()) { stackdepth478(fn) } +//go:noinline +func stackdepth480(fn func()) { stackdepth479(fn) } +//go:noinline +func stackdepth481(fn func()) { stackdepth480(fn) } +//go:noinline +func stackdepth482(fn func()) { stackdepth481(fn) } +//go:noinline +func stackdepth483(fn func()) { stackdepth482(fn) } +//go:noinline +func stackdepth484(fn func()) { stackdepth483(fn) } +//go:noinline +func stackdepth485(fn func()) { stackdepth484(fn) } +//go:noinline +func stackdepth486(fn func()) { stackdepth485(fn) } +//go:noinline +func stackdepth487(fn func()) { stackdepth486(fn) } +//go:noinline +func stackdepth488(fn func()) { stackdepth487(fn) } +//go:noinline +func stackdepth489(fn func()) { stackdepth488(fn) } +//go:noinline +func stackdepth490(fn func()) { stackdepth489(fn) } +//go:noinline +func stackdepth491(fn func()) { stackdepth490(fn) } +//go:noinline +func stackdepth492(fn func()) { stackdepth491(fn) } +//go:noinline +func stackdepth493(fn func()) { stackdepth492(fn) } +//go:noinline +func stackdepth494(fn func()) { stackdepth493(fn) } +//go:noinline +func stackdepth495(fn func()) { stackdepth494(fn) } +//go:noinline +func stackdepth496(fn func()) { stackdepth495(fn) } +//go:noinline +func stackdepth497(fn func()) { stackdepth496(fn) } +//go:noinline +func stackdepth498(fn func()) { stackdepth497(fn) } +//go:noinline +func stackdepth499(fn func()) { stackdepth498(fn) } +//go:noinline +func stackdepth500(fn func()) { stackdepth499(fn) } +//go:noinline +func stackdepth501(fn func()) { stackdepth500(fn) } +//go:noinline +func stackdepth502(fn func()) { stackdepth501(fn) } +//go:noinline +func stackdepth503(fn func()) { stackdepth502(fn) } +//go:noinline +func stackdepth504(fn func()) { stackdepth503(fn) } +//go:noinline +func stackdepth505(fn func()) { stackdepth504(fn) } +//go:noinline +func stackdepth506(fn func()) { stackdepth505(fn) } +//go:noinline +func stackdepth507(fn func()) { stackdepth506(fn) } +//go:noinline +func stackdepth508(fn func()) { stackdepth507(fn) } +//go:noinline +func stackdepth509(fn func()) { stackdepth508(fn) } +//go:noinline +func stackdepth510(fn func()) { stackdepth509(fn) } +//go:noinline +func stackdepth511(fn func()) { stackdepth510(fn) } +//go:noinline +func stackdepth512(fn func()) { stackdepth511(fn) } +//go:noinline +func stackdepth513(fn func()) { stackdepth512(fn) } +//go:noinline +func stackdepth514(fn func()) { stackdepth513(fn) } +//go:noinline +func stackdepth515(fn func()) { stackdepth514(fn) } +//go:noinline +func stackdepth516(fn func()) { stackdepth515(fn) } +//go:noinline +func stackdepth517(fn func()) { stackdepth516(fn) } +//go:noinline +func stackdepth518(fn func()) { stackdepth517(fn) } +//go:noinline +func stackdepth519(fn func()) { stackdepth518(fn) } +//go:noinline +func stackdepth520(fn func()) { stackdepth519(fn) } +//go:noinline +func stackdepth521(fn func()) { stackdepth520(fn) } +//go:noinline +func stackdepth522(fn func()) { stackdepth521(fn) } +//go:noinline +func stackdepth523(fn func()) { stackdepth522(fn) } +//go:noinline +func stackdepth524(fn func()) { stackdepth523(fn) } +//go:noinline +func stackdepth525(fn func()) { stackdepth524(fn) } +//go:noinline +func stackdepth526(fn func()) { stackdepth525(fn) } +//go:noinline +func stackdepth527(fn func()) { stackdepth526(fn) } +//go:noinline +func stackdepth528(fn func()) { stackdepth527(fn) } +//go:noinline +func stackdepth529(fn func()) { stackdepth528(fn) } +//go:noinline +func stackdepth530(fn func()) { stackdepth529(fn) } +//go:noinline +func stackdepth531(fn func()) { stackdepth530(fn) } +//go:noinline +func stackdepth532(fn func()) { stackdepth531(fn) } +//go:noinline +func stackdepth533(fn func()) { stackdepth532(fn) } +//go:noinline +func stackdepth534(fn func()) { stackdepth533(fn) } +//go:noinline +func stackdepth535(fn func()) { stackdepth534(fn) } +//go:noinline +func stackdepth536(fn func()) { stackdepth535(fn) } +//go:noinline +func stackdepth537(fn func()) { stackdepth536(fn) } +//go:noinline +func stackdepth538(fn func()) { stackdepth537(fn) } +//go:noinline +func stackdepth539(fn func()) { stackdepth538(fn) } +//go:noinline +func stackdepth540(fn func()) { stackdepth539(fn) } +//go:noinline +func stackdepth541(fn func()) { stackdepth540(fn) } +//go:noinline +func stackdepth542(fn func()) { stackdepth541(fn) } +//go:noinline +func stackdepth543(fn func()) { stackdepth542(fn) } +//go:noinline +func stackdepth544(fn func()) { stackdepth543(fn) } +//go:noinline +func stackdepth545(fn func()) { stackdepth544(fn) } +//go:noinline +func stackdepth546(fn func()) { stackdepth545(fn) } +//go:noinline +func stackdepth547(fn func()) { stackdepth546(fn) } +//go:noinline +func stackdepth548(fn func()) { stackdepth547(fn) } +//go:noinline +func stackdepth549(fn func()) { stackdepth548(fn) } +//go:noinline +func stackdepth550(fn func()) { stackdepth549(fn) } +//go:noinline +func stackdepth551(fn func()) { stackdepth550(fn) } +//go:noinline +func stackdepth552(fn func()) { stackdepth551(fn) } +//go:noinline +func stackdepth553(fn func()) { stackdepth552(fn) } +//go:noinline +func stackdepth554(fn func()) { stackdepth553(fn) } +//go:noinline +func stackdepth555(fn func()) { stackdepth554(fn) } +//go:noinline +func stackdepth556(fn func()) { stackdepth555(fn) } +//go:noinline +func stackdepth557(fn func()) { stackdepth556(fn) } +//go:noinline +func stackdepth558(fn func()) { stackdepth557(fn) } +//go:noinline +func stackdepth559(fn func()) { stackdepth558(fn) } +//go:noinline +func stackdepth560(fn func()) { stackdepth559(fn) } +//go:noinline +func stackdepth561(fn func()) { stackdepth560(fn) } +//go:noinline +func stackdepth562(fn func()) { stackdepth561(fn) } +//go:noinline +func stackdepth563(fn func()) { stackdepth562(fn) } +//go:noinline +func stackdepth564(fn func()) { stackdepth563(fn) } +//go:noinline +func stackdepth565(fn func()) { stackdepth564(fn) } +//go:noinline +func stackdepth566(fn func()) { stackdepth565(fn) } +//go:noinline +func stackdepth567(fn func()) { stackdepth566(fn) } +//go:noinline +func stackdepth568(fn func()) { stackdepth567(fn) } +//go:noinline +func stackdepth569(fn func()) { stackdepth568(fn) } +//go:noinline +func stackdepth570(fn func()) { stackdepth569(fn) } +//go:noinline +func stackdepth571(fn func()) { stackdepth570(fn) } +//go:noinline +func stackdepth572(fn func()) { stackdepth571(fn) } +//go:noinline +func stackdepth573(fn func()) { stackdepth572(fn) } +//go:noinline +func stackdepth574(fn func()) { stackdepth573(fn) } +//go:noinline +func stackdepth575(fn func()) { stackdepth574(fn) } +//go:noinline +func stackdepth576(fn func()) { stackdepth575(fn) } +//go:noinline +func stackdepth577(fn func()) { stackdepth576(fn) } +//go:noinline +func stackdepth578(fn func()) { stackdepth577(fn) } +//go:noinline +func stackdepth579(fn func()) { stackdepth578(fn) } +//go:noinline +func stackdepth580(fn func()) { stackdepth579(fn) } +//go:noinline +func stackdepth581(fn func()) { stackdepth580(fn) } +//go:noinline +func stackdepth582(fn func()) { stackdepth581(fn) } +//go:noinline +func stackdepth583(fn func()) { stackdepth582(fn) } +//go:noinline +func stackdepth584(fn func()) { stackdepth583(fn) } +//go:noinline +func stackdepth585(fn func()) { stackdepth584(fn) } +//go:noinline +func stackdepth586(fn func()) { stackdepth585(fn) } +//go:noinline +func stackdepth587(fn func()) { stackdepth586(fn) } +//go:noinline +func stackdepth588(fn func()) { stackdepth587(fn) } +//go:noinline +func stackdepth589(fn func()) { stackdepth588(fn) } +//go:noinline +func stackdepth590(fn func()) { stackdepth589(fn) } +//go:noinline +func stackdepth591(fn func()) { stackdepth590(fn) } +//go:noinline +func stackdepth592(fn func()) { stackdepth591(fn) } +//go:noinline +func stackdepth593(fn func()) { stackdepth592(fn) } +//go:noinline +func stackdepth594(fn func()) { stackdepth593(fn) } +//go:noinline +func stackdepth595(fn func()) { stackdepth594(fn) } +//go:noinline +func stackdepth596(fn func()) { stackdepth595(fn) } +//go:noinline +func stackdepth597(fn func()) { stackdepth596(fn) } +//go:noinline +func stackdepth598(fn func()) { stackdepth597(fn) } +//go:noinline +func stackdepth599(fn func()) { stackdepth598(fn) } +//go:noinline +func stackdepth600(fn func()) { stackdepth599(fn) } +//go:noinline +func stackdepth601(fn func()) { stackdepth600(fn) } +//go:noinline +func stackdepth602(fn func()) { stackdepth601(fn) } +//go:noinline +func stackdepth603(fn func()) { stackdepth602(fn) } +//go:noinline +func stackdepth604(fn func()) { stackdepth603(fn) } +//go:noinline +func stackdepth605(fn func()) { stackdepth604(fn) } +//go:noinline +func stackdepth606(fn func()) { stackdepth605(fn) } +//go:noinline +func stackdepth607(fn func()) { stackdepth606(fn) } +//go:noinline +func stackdepth608(fn func()) { stackdepth607(fn) } +//go:noinline +func stackdepth609(fn func()) { stackdepth608(fn) } +//go:noinline +func stackdepth610(fn func()) { stackdepth609(fn) } +//go:noinline +func stackdepth611(fn func()) { stackdepth610(fn) } +//go:noinline +func stackdepth612(fn func()) { stackdepth611(fn) } +//go:noinline +func stackdepth613(fn func()) { stackdepth612(fn) } +//go:noinline +func stackdepth614(fn func()) { stackdepth613(fn) } +//go:noinline +func stackdepth615(fn func()) { stackdepth614(fn) } +//go:noinline +func stackdepth616(fn func()) { stackdepth615(fn) } +//go:noinline +func stackdepth617(fn func()) { stackdepth616(fn) } +//go:noinline +func stackdepth618(fn func()) { stackdepth617(fn) } +//go:noinline +func stackdepth619(fn func()) { stackdepth618(fn) } +//go:noinline +func stackdepth620(fn func()) { stackdepth619(fn) } +//go:noinline +func stackdepth621(fn func()) { stackdepth620(fn) } +//go:noinline +func stackdepth622(fn func()) { stackdepth621(fn) } +//go:noinline +func stackdepth623(fn func()) { stackdepth622(fn) } +//go:noinline +func stackdepth624(fn func()) { stackdepth623(fn) } +//go:noinline +func stackdepth625(fn func()) { stackdepth624(fn) } +//go:noinline +func stackdepth626(fn func()) { stackdepth625(fn) } +//go:noinline +func stackdepth627(fn func()) { stackdepth626(fn) } +//go:noinline +func stackdepth628(fn func()) { stackdepth627(fn) } +//go:noinline +func stackdepth629(fn func()) { stackdepth628(fn) } +//go:noinline +func stackdepth630(fn func()) { stackdepth629(fn) } +//go:noinline +func stackdepth631(fn func()) { stackdepth630(fn) } +//go:noinline +func stackdepth632(fn func()) { stackdepth631(fn) } +//go:noinline +func stackdepth633(fn func()) { stackdepth632(fn) } +//go:noinline +func stackdepth634(fn func()) { stackdepth633(fn) } +//go:noinline +func stackdepth635(fn func()) { stackdepth634(fn) } +//go:noinline +func stackdepth636(fn func()) { stackdepth635(fn) } +//go:noinline +func stackdepth637(fn func()) { stackdepth636(fn) } +//go:noinline +func stackdepth638(fn func()) { stackdepth637(fn) } +//go:noinline +func stackdepth639(fn func()) { stackdepth638(fn) } +//go:noinline +func stackdepth640(fn func()) { stackdepth639(fn) } +//go:noinline +func stackdepth641(fn func()) { stackdepth640(fn) } +//go:noinline +func stackdepth642(fn func()) { stackdepth641(fn) } +//go:noinline +func stackdepth643(fn func()) { stackdepth642(fn) } +//go:noinline +func stackdepth644(fn func()) { stackdepth643(fn) } +//go:noinline +func stackdepth645(fn func()) { stackdepth644(fn) } +//go:noinline +func stackdepth646(fn func()) { stackdepth645(fn) } +//go:noinline +func stackdepth647(fn func()) { stackdepth646(fn) } +//go:noinline +func stackdepth648(fn func()) { stackdepth647(fn) } +//go:noinline +func stackdepth649(fn func()) { stackdepth648(fn) } +//go:noinline +func stackdepth650(fn func()) { stackdepth649(fn) } +//go:noinline +func stackdepth651(fn func()) { stackdepth650(fn) } +//go:noinline +func stackdepth652(fn func()) { stackdepth651(fn) } +//go:noinline +func stackdepth653(fn func()) { stackdepth652(fn) } +//go:noinline +func stackdepth654(fn func()) { stackdepth653(fn) } +//go:noinline +func stackdepth655(fn func()) { stackdepth654(fn) } +//go:noinline +func stackdepth656(fn func()) { stackdepth655(fn) } +//go:noinline +func stackdepth657(fn func()) { stackdepth656(fn) } +//go:noinline +func stackdepth658(fn func()) { stackdepth657(fn) } +//go:noinline +func stackdepth659(fn func()) { stackdepth658(fn) } +//go:noinline +func stackdepth660(fn func()) { stackdepth659(fn) } +//go:noinline +func stackdepth661(fn func()) { stackdepth660(fn) } +//go:noinline +func stackdepth662(fn func()) { stackdepth661(fn) } +//go:noinline +func stackdepth663(fn func()) { stackdepth662(fn) } +//go:noinline +func stackdepth664(fn func()) { stackdepth663(fn) } +//go:noinline +func stackdepth665(fn func()) { stackdepth664(fn) } +//go:noinline +func stackdepth666(fn func()) { stackdepth665(fn) } +//go:noinline +func stackdepth667(fn func()) { stackdepth666(fn) } +//go:noinline +func stackdepth668(fn func()) { stackdepth667(fn) } +//go:noinline +func stackdepth669(fn func()) { stackdepth668(fn) } +//go:noinline +func stackdepth670(fn func()) { stackdepth669(fn) } +//go:noinline +func stackdepth671(fn func()) { stackdepth670(fn) } +//go:noinline +func stackdepth672(fn func()) { stackdepth671(fn) } +//go:noinline +func stackdepth673(fn func()) { stackdepth672(fn) } +//go:noinline +func stackdepth674(fn func()) { stackdepth673(fn) } +//go:noinline +func stackdepth675(fn func()) { stackdepth674(fn) } +//go:noinline +func stackdepth676(fn func()) { stackdepth675(fn) } +//go:noinline +func stackdepth677(fn func()) { stackdepth676(fn) } +//go:noinline +func stackdepth678(fn func()) { stackdepth677(fn) } +//go:noinline +func stackdepth679(fn func()) { stackdepth678(fn) } +//go:noinline +func stackdepth680(fn func()) { stackdepth679(fn) } +//go:noinline +func stackdepth681(fn func()) { stackdepth680(fn) } +//go:noinline +func stackdepth682(fn func()) { stackdepth681(fn) } +//go:noinline +func stackdepth683(fn func()) { stackdepth682(fn) } +//go:noinline +func stackdepth684(fn func()) { stackdepth683(fn) } +//go:noinline +func stackdepth685(fn func()) { stackdepth684(fn) } +//go:noinline +func stackdepth686(fn func()) { stackdepth685(fn) } +//go:noinline +func stackdepth687(fn func()) { stackdepth686(fn) } +//go:noinline +func stackdepth688(fn func()) { stackdepth687(fn) } +//go:noinline +func stackdepth689(fn func()) { stackdepth688(fn) } +//go:noinline +func stackdepth690(fn func()) { stackdepth689(fn) } +//go:noinline +func stackdepth691(fn func()) { stackdepth690(fn) } +//go:noinline +func stackdepth692(fn func()) { stackdepth691(fn) } +//go:noinline +func stackdepth693(fn func()) { stackdepth692(fn) } +//go:noinline +func stackdepth694(fn func()) { stackdepth693(fn) } +//go:noinline +func stackdepth695(fn func()) { stackdepth694(fn) } +//go:noinline +func stackdepth696(fn func()) { stackdepth695(fn) } +//go:noinline +func stackdepth697(fn func()) { stackdepth696(fn) } +//go:noinline +func stackdepth698(fn func()) { stackdepth697(fn) } +//go:noinline +func stackdepth699(fn func()) { stackdepth698(fn) } +//go:noinline +func stackdepth700(fn func()) { stackdepth699(fn) } +//go:noinline +func stackdepth701(fn func()) { stackdepth700(fn) } +//go:noinline +func stackdepth702(fn func()) { stackdepth701(fn) } +//go:noinline +func stackdepth703(fn func()) { stackdepth702(fn) } +//go:noinline +func stackdepth704(fn func()) { stackdepth703(fn) } +//go:noinline +func stackdepth705(fn func()) { stackdepth704(fn) } +//go:noinline +func stackdepth706(fn func()) { stackdepth705(fn) } +//go:noinline +func stackdepth707(fn func()) { stackdepth706(fn) } +//go:noinline +func stackdepth708(fn func()) { stackdepth707(fn) } +//go:noinline +func stackdepth709(fn func()) { stackdepth708(fn) } +//go:noinline +func stackdepth710(fn func()) { stackdepth709(fn) } +//go:noinline +func stackdepth711(fn func()) { stackdepth710(fn) } +//go:noinline +func stackdepth712(fn func()) { stackdepth711(fn) } +//go:noinline +func stackdepth713(fn func()) { stackdepth712(fn) } +//go:noinline +func stackdepth714(fn func()) { stackdepth713(fn) } +//go:noinline +func stackdepth715(fn func()) { stackdepth714(fn) } +//go:noinline +func stackdepth716(fn func()) { stackdepth715(fn) } +//go:noinline +func stackdepth717(fn func()) { stackdepth716(fn) } +//go:noinline +func stackdepth718(fn func()) { stackdepth717(fn) } +//go:noinline +func stackdepth719(fn func()) { stackdepth718(fn) } +//go:noinline +func stackdepth720(fn func()) { stackdepth719(fn) } +//go:noinline +func stackdepth721(fn func()) { stackdepth720(fn) } +//go:noinline +func stackdepth722(fn func()) { stackdepth721(fn) } +//go:noinline +func stackdepth723(fn func()) { stackdepth722(fn) } +//go:noinline +func stackdepth724(fn func()) { stackdepth723(fn) } +//go:noinline +func stackdepth725(fn func()) { stackdepth724(fn) } +//go:noinline +func stackdepth726(fn func()) { stackdepth725(fn) } +//go:noinline +func stackdepth727(fn func()) { stackdepth726(fn) } +//go:noinline +func stackdepth728(fn func()) { stackdepth727(fn) } +//go:noinline +func stackdepth729(fn func()) { stackdepth728(fn) } +//go:noinline +func stackdepth730(fn func()) { stackdepth729(fn) } +//go:noinline +func stackdepth731(fn func()) { stackdepth730(fn) } +//go:noinline +func stackdepth732(fn func()) { stackdepth731(fn) } +//go:noinline +func stackdepth733(fn func()) { stackdepth732(fn) } +//go:noinline +func stackdepth734(fn func()) { stackdepth733(fn) } +//go:noinline +func stackdepth735(fn func()) { stackdepth734(fn) } +//go:noinline +func stackdepth736(fn func()) { stackdepth735(fn) } +//go:noinline +func stackdepth737(fn func()) { stackdepth736(fn) } +//go:noinline +func stackdepth738(fn func()) { stackdepth737(fn) } +//go:noinline +func stackdepth739(fn func()) { stackdepth738(fn) } +//go:noinline +func stackdepth740(fn func()) { stackdepth739(fn) } +//go:noinline +func stackdepth741(fn func()) { stackdepth740(fn) } +//go:noinline +func stackdepth742(fn func()) { stackdepth741(fn) } +//go:noinline +func stackdepth743(fn func()) { stackdepth742(fn) } +//go:noinline +func stackdepth744(fn func()) { stackdepth743(fn) } +//go:noinline +func stackdepth745(fn func()) { stackdepth744(fn) } +//go:noinline +func stackdepth746(fn func()) { stackdepth745(fn) } +//go:noinline +func stackdepth747(fn func()) { stackdepth746(fn) } +//go:noinline +func stackdepth748(fn func()) { stackdepth747(fn) } +//go:noinline +func stackdepth749(fn func()) { stackdepth748(fn) } +//go:noinline +func stackdepth750(fn func()) { stackdepth749(fn) } +//go:noinline +func stackdepth751(fn func()) { stackdepth750(fn) } +//go:noinline +func stackdepth752(fn func()) { stackdepth751(fn) } +//go:noinline +func stackdepth753(fn func()) { stackdepth752(fn) } +//go:noinline +func stackdepth754(fn func()) { stackdepth753(fn) } +//go:noinline +func stackdepth755(fn func()) { stackdepth754(fn) } +//go:noinline +func stackdepth756(fn func()) { stackdepth755(fn) } +//go:noinline +func stackdepth757(fn func()) { stackdepth756(fn) } +//go:noinline +func stackdepth758(fn func()) { stackdepth757(fn) } +//go:noinline +func stackdepth759(fn func()) { stackdepth758(fn) } +//go:noinline +func stackdepth760(fn func()) { stackdepth759(fn) } +//go:noinline +func stackdepth761(fn func()) { stackdepth760(fn) } +//go:noinline +func stackdepth762(fn func()) { stackdepth761(fn) } +//go:noinline +func stackdepth763(fn func()) { stackdepth762(fn) } +//go:noinline +func stackdepth764(fn func()) { stackdepth763(fn) } +//go:noinline +func stackdepth765(fn func()) { stackdepth764(fn) } +//go:noinline +func stackdepth766(fn func()) { stackdepth765(fn) } +//go:noinline +func stackdepth767(fn func()) { stackdepth766(fn) } +//go:noinline +func stackdepth768(fn func()) { stackdepth767(fn) } +//go:noinline +func stackdepth769(fn func()) { stackdepth768(fn) } +//go:noinline +func stackdepth770(fn func()) { stackdepth769(fn) } +//go:noinline +func stackdepth771(fn func()) { stackdepth770(fn) } +//go:noinline +func stackdepth772(fn func()) { stackdepth771(fn) } +//go:noinline +func stackdepth773(fn func()) { stackdepth772(fn) } +//go:noinline +func stackdepth774(fn func()) { stackdepth773(fn) } +//go:noinline +func stackdepth775(fn func()) { stackdepth774(fn) } +//go:noinline +func stackdepth776(fn func()) { stackdepth775(fn) } +//go:noinline +func stackdepth777(fn func()) { stackdepth776(fn) } +//go:noinline +func stackdepth778(fn func()) { stackdepth777(fn) } +//go:noinline +func stackdepth779(fn func()) { stackdepth778(fn) } +//go:noinline +func stackdepth780(fn func()) { stackdepth779(fn) } +//go:noinline +func stackdepth781(fn func()) { stackdepth780(fn) } +//go:noinline +func stackdepth782(fn func()) { stackdepth781(fn) } +//go:noinline +func stackdepth783(fn func()) { stackdepth782(fn) } +//go:noinline +func stackdepth784(fn func()) { stackdepth783(fn) } +//go:noinline +func stackdepth785(fn func()) { stackdepth784(fn) } +//go:noinline +func stackdepth786(fn func()) { stackdepth785(fn) } +//go:noinline +func stackdepth787(fn func()) { stackdepth786(fn) } +//go:noinline +func stackdepth788(fn func()) { stackdepth787(fn) } +//go:noinline +func stackdepth789(fn func()) { stackdepth788(fn) } +//go:noinline +func stackdepth790(fn func()) { stackdepth789(fn) } +//go:noinline +func stackdepth791(fn func()) { stackdepth790(fn) } +//go:noinline +func stackdepth792(fn func()) { stackdepth791(fn) } +//go:noinline +func stackdepth793(fn func()) { stackdepth792(fn) } +//go:noinline +func stackdepth794(fn func()) { stackdepth793(fn) } +//go:noinline +func stackdepth795(fn func()) { stackdepth794(fn) } +//go:noinline +func stackdepth796(fn func()) { stackdepth795(fn) } +//go:noinline +func stackdepth797(fn func()) { stackdepth796(fn) } +//go:noinline +func stackdepth798(fn func()) { stackdepth797(fn) } +//go:noinline +func stackdepth799(fn func()) { stackdepth798(fn) } +//go:noinline +func stackdepth800(fn func()) { stackdepth799(fn) } +//go:noinline +func stackdepth801(fn func()) { stackdepth800(fn) } +//go:noinline +func stackdepth802(fn func()) { stackdepth801(fn) } +//go:noinline +func stackdepth803(fn func()) { stackdepth802(fn) } +//go:noinline +func stackdepth804(fn func()) { stackdepth803(fn) } +//go:noinline +func stackdepth805(fn func()) { stackdepth804(fn) } +//go:noinline +func stackdepth806(fn func()) { stackdepth805(fn) } +//go:noinline +func stackdepth807(fn func()) { stackdepth806(fn) } +//go:noinline +func stackdepth808(fn func()) { stackdepth807(fn) } +//go:noinline +func stackdepth809(fn func()) { stackdepth808(fn) } +//go:noinline +func stackdepth810(fn func()) { stackdepth809(fn) } +//go:noinline +func stackdepth811(fn func()) { stackdepth810(fn) } +//go:noinline +func stackdepth812(fn func()) { stackdepth811(fn) } +//go:noinline +func stackdepth813(fn func()) { stackdepth812(fn) } +//go:noinline +func stackdepth814(fn func()) { stackdepth813(fn) } +//go:noinline +func stackdepth815(fn func()) { stackdepth814(fn) } +//go:noinline +func stackdepth816(fn func()) { stackdepth815(fn) } +//go:noinline +func stackdepth817(fn func()) { stackdepth816(fn) } +//go:noinline +func stackdepth818(fn func()) { stackdepth817(fn) } +//go:noinline +func stackdepth819(fn func()) { stackdepth818(fn) } +//go:noinline +func stackdepth820(fn func()) { stackdepth819(fn) } +//go:noinline +func stackdepth821(fn func()) { stackdepth820(fn) } +//go:noinline +func stackdepth822(fn func()) { stackdepth821(fn) } +//go:noinline +func stackdepth823(fn func()) { stackdepth822(fn) } +//go:noinline +func stackdepth824(fn func()) { stackdepth823(fn) } +//go:noinline +func stackdepth825(fn func()) { stackdepth824(fn) } +//go:noinline +func stackdepth826(fn func()) { stackdepth825(fn) } +//go:noinline +func stackdepth827(fn func()) { stackdepth826(fn) } +//go:noinline +func stackdepth828(fn func()) { stackdepth827(fn) } +//go:noinline +func stackdepth829(fn func()) { stackdepth828(fn) } +//go:noinline +func stackdepth830(fn func()) { stackdepth829(fn) } +//go:noinline +func stackdepth831(fn func()) { stackdepth830(fn) } +//go:noinline +func stackdepth832(fn func()) { stackdepth831(fn) } +//go:noinline +func stackdepth833(fn func()) { stackdepth832(fn) } +//go:noinline +func stackdepth834(fn func()) { stackdepth833(fn) } +//go:noinline +func stackdepth835(fn func()) { stackdepth834(fn) } +//go:noinline +func stackdepth836(fn func()) { stackdepth835(fn) } +//go:noinline +func stackdepth837(fn func()) { stackdepth836(fn) } +//go:noinline +func stackdepth838(fn func()) { stackdepth837(fn) } +//go:noinline +func stackdepth839(fn func()) { stackdepth838(fn) } +//go:noinline +func stackdepth840(fn func()) { stackdepth839(fn) } +//go:noinline +func stackdepth841(fn func()) { stackdepth840(fn) } +//go:noinline +func stackdepth842(fn func()) { stackdepth841(fn) } +//go:noinline +func stackdepth843(fn func()) { stackdepth842(fn) } +//go:noinline +func stackdepth844(fn func()) { stackdepth843(fn) } +//go:noinline +func stackdepth845(fn func()) { stackdepth844(fn) } +//go:noinline +func stackdepth846(fn func()) { stackdepth845(fn) } +//go:noinline +func stackdepth847(fn func()) { stackdepth846(fn) } +//go:noinline +func stackdepth848(fn func()) { stackdepth847(fn) } +//go:noinline +func stackdepth849(fn func()) { stackdepth848(fn) } +//go:noinline +func stackdepth850(fn func()) { stackdepth849(fn) } +//go:noinline +func stackdepth851(fn func()) { stackdepth850(fn) } +//go:noinline +func stackdepth852(fn func()) { stackdepth851(fn) } +//go:noinline +func stackdepth853(fn func()) { stackdepth852(fn) } +//go:noinline +func stackdepth854(fn func()) { stackdepth853(fn) } +//go:noinline +func stackdepth855(fn func()) { stackdepth854(fn) } +//go:noinline +func stackdepth856(fn func()) { stackdepth855(fn) } +//go:noinline +func stackdepth857(fn func()) { stackdepth856(fn) } +//go:noinline +func stackdepth858(fn func()) { stackdepth857(fn) } +//go:noinline +func stackdepth859(fn func()) { stackdepth858(fn) } +//go:noinline +func stackdepth860(fn func()) { stackdepth859(fn) } +//go:noinline +func stackdepth861(fn func()) { stackdepth860(fn) } +//go:noinline +func stackdepth862(fn func()) { stackdepth861(fn) } +//go:noinline +func stackdepth863(fn func()) { stackdepth862(fn) } +//go:noinline +func stackdepth864(fn func()) { stackdepth863(fn) } +//go:noinline +func stackdepth865(fn func()) { stackdepth864(fn) } +//go:noinline +func stackdepth866(fn func()) { stackdepth865(fn) } +//go:noinline +func stackdepth867(fn func()) { stackdepth866(fn) } +//go:noinline +func stackdepth868(fn func()) { stackdepth867(fn) } +//go:noinline +func stackdepth869(fn func()) { stackdepth868(fn) } +//go:noinline +func stackdepth870(fn func()) { stackdepth869(fn) } +//go:noinline +func stackdepth871(fn func()) { stackdepth870(fn) } +//go:noinline +func stackdepth872(fn func()) { stackdepth871(fn) } +//go:noinline +func stackdepth873(fn func()) { stackdepth872(fn) } +//go:noinline +func stackdepth874(fn func()) { stackdepth873(fn) } +//go:noinline +func stackdepth875(fn func()) { stackdepth874(fn) } +//go:noinline +func stackdepth876(fn func()) { stackdepth875(fn) } +//go:noinline +func stackdepth877(fn func()) { stackdepth876(fn) } +//go:noinline +func stackdepth878(fn func()) { stackdepth877(fn) } +//go:noinline +func stackdepth879(fn func()) { stackdepth878(fn) } +//go:noinline +func stackdepth880(fn func()) { stackdepth879(fn) } +//go:noinline +func stackdepth881(fn func()) { stackdepth880(fn) } +//go:noinline +func stackdepth882(fn func()) { stackdepth881(fn) } +//go:noinline +func stackdepth883(fn func()) { stackdepth882(fn) } +//go:noinline +func stackdepth884(fn func()) { stackdepth883(fn) } +//go:noinline +func stackdepth885(fn func()) { stackdepth884(fn) } +//go:noinline +func stackdepth886(fn func()) { stackdepth885(fn) } +//go:noinline +func stackdepth887(fn func()) { stackdepth886(fn) } +//go:noinline +func stackdepth888(fn func()) { stackdepth887(fn) } +//go:noinline +func stackdepth889(fn func()) { stackdepth888(fn) } +//go:noinline +func stackdepth890(fn func()) { stackdepth889(fn) } +//go:noinline +func stackdepth891(fn func()) { stackdepth890(fn) } +//go:noinline +func stackdepth892(fn func()) { stackdepth891(fn) } +//go:noinline +func stackdepth893(fn func()) { stackdepth892(fn) } +//go:noinline +func stackdepth894(fn func()) { stackdepth893(fn) } +//go:noinline +func stackdepth895(fn func()) { stackdepth894(fn) } +//go:noinline +func stackdepth896(fn func()) { stackdepth895(fn) } +//go:noinline +func stackdepth897(fn func()) { stackdepth896(fn) } +//go:noinline +func stackdepth898(fn func()) { stackdepth897(fn) } +//go:noinline +func stackdepth899(fn func()) { stackdepth898(fn) } +//go:noinline +func stackdepth900(fn func()) { stackdepth899(fn) } +//go:noinline +func stackdepth901(fn func()) { stackdepth900(fn) } +//go:noinline +func stackdepth902(fn func()) { stackdepth901(fn) } +//go:noinline +func stackdepth903(fn func()) { stackdepth902(fn) } +//go:noinline +func stackdepth904(fn func()) { stackdepth903(fn) } +//go:noinline +func stackdepth905(fn func()) { stackdepth904(fn) } +//go:noinline +func stackdepth906(fn func()) { stackdepth905(fn) } +//go:noinline +func stackdepth907(fn func()) { stackdepth906(fn) } +//go:noinline +func stackdepth908(fn func()) { stackdepth907(fn) } +//go:noinline +func stackdepth909(fn func()) { stackdepth908(fn) } +//go:noinline +func stackdepth910(fn func()) { stackdepth909(fn) } +//go:noinline +func stackdepth911(fn func()) { stackdepth910(fn) } +//go:noinline +func stackdepth912(fn func()) { stackdepth911(fn) } +//go:noinline +func stackdepth913(fn func()) { stackdepth912(fn) } +//go:noinline +func stackdepth914(fn func()) { stackdepth913(fn) } +//go:noinline +func stackdepth915(fn func()) { stackdepth914(fn) } +//go:noinline +func stackdepth916(fn func()) { stackdepth915(fn) } +//go:noinline +func stackdepth917(fn func()) { stackdepth916(fn) } +//go:noinline +func stackdepth918(fn func()) { stackdepth917(fn) } +//go:noinline +func stackdepth919(fn func()) { stackdepth918(fn) } +//go:noinline +func stackdepth920(fn func()) { stackdepth919(fn) } +//go:noinline +func stackdepth921(fn func()) { stackdepth920(fn) } +//go:noinline +func stackdepth922(fn func()) { stackdepth921(fn) } +//go:noinline +func stackdepth923(fn func()) { stackdepth922(fn) } +//go:noinline +func stackdepth924(fn func()) { stackdepth923(fn) } +//go:noinline +func stackdepth925(fn func()) { stackdepth924(fn) } +//go:noinline +func stackdepth926(fn func()) { stackdepth925(fn) } +//go:noinline +func stackdepth927(fn func()) { stackdepth926(fn) } +//go:noinline +func stackdepth928(fn func()) { stackdepth927(fn) } +//go:noinline +func stackdepth929(fn func()) { stackdepth928(fn) } +//go:noinline +func stackdepth930(fn func()) { stackdepth929(fn) } +//go:noinline +func stackdepth931(fn func()) { stackdepth930(fn) } +//go:noinline +func stackdepth932(fn func()) { stackdepth931(fn) } +//go:noinline +func stackdepth933(fn func()) { stackdepth932(fn) } +//go:noinline +func stackdepth934(fn func()) { stackdepth933(fn) } +//go:noinline +func stackdepth935(fn func()) { stackdepth934(fn) } +//go:noinline +func stackdepth936(fn func()) { stackdepth935(fn) } +//go:noinline +func stackdepth937(fn func()) { stackdepth936(fn) } +//go:noinline +func stackdepth938(fn func()) { stackdepth937(fn) } +//go:noinline +func stackdepth939(fn func()) { stackdepth938(fn) } +//go:noinline +func stackdepth940(fn func()) { stackdepth939(fn) } +//go:noinline +func stackdepth941(fn func()) { stackdepth940(fn) } +//go:noinline +func stackdepth942(fn func()) { stackdepth941(fn) } +//go:noinline +func stackdepth943(fn func()) { stackdepth942(fn) } +//go:noinline +func stackdepth944(fn func()) { stackdepth943(fn) } +//go:noinline +func stackdepth945(fn func()) { stackdepth944(fn) } +//go:noinline +func stackdepth946(fn func()) { stackdepth945(fn) } +//go:noinline +func stackdepth947(fn func()) { stackdepth946(fn) } +//go:noinline +func stackdepth948(fn func()) { stackdepth947(fn) } +//go:noinline +func stackdepth949(fn func()) { stackdepth948(fn) } +//go:noinline +func stackdepth950(fn func()) { stackdepth949(fn) } +//go:noinline +func stackdepth951(fn func()) { stackdepth950(fn) } +//go:noinline +func stackdepth952(fn func()) { stackdepth951(fn) } +//go:noinline +func stackdepth953(fn func()) { stackdepth952(fn) } +//go:noinline +func stackdepth954(fn func()) { stackdepth953(fn) } +//go:noinline +func stackdepth955(fn func()) { stackdepth954(fn) } +//go:noinline +func stackdepth956(fn func()) { stackdepth955(fn) } +//go:noinline +func stackdepth957(fn func()) { stackdepth956(fn) } +//go:noinline +func stackdepth958(fn func()) { stackdepth957(fn) } +//go:noinline +func stackdepth959(fn func()) { stackdepth958(fn) } +//go:noinline +func stackdepth960(fn func()) { stackdepth959(fn) } +//go:noinline +func stackdepth961(fn func()) { stackdepth960(fn) } +//go:noinline +func stackdepth962(fn func()) { stackdepth961(fn) } +//go:noinline +func stackdepth963(fn func()) { stackdepth962(fn) } +//go:noinline +func stackdepth964(fn func()) { stackdepth963(fn) } +//go:noinline +func stackdepth965(fn func()) { stackdepth964(fn) } +//go:noinline +func stackdepth966(fn func()) { stackdepth965(fn) } +//go:noinline +func stackdepth967(fn func()) { stackdepth966(fn) } +//go:noinline +func stackdepth968(fn func()) { stackdepth967(fn) } +//go:noinline +func stackdepth969(fn func()) { stackdepth968(fn) } +//go:noinline +func stackdepth970(fn func()) { stackdepth969(fn) } +//go:noinline +func stackdepth971(fn func()) { stackdepth970(fn) } +//go:noinline +func stackdepth972(fn func()) { stackdepth971(fn) } +//go:noinline +func stackdepth973(fn func()) { stackdepth972(fn) } +//go:noinline +func stackdepth974(fn func()) { stackdepth973(fn) } +//go:noinline +func stackdepth975(fn func()) { stackdepth974(fn) } +//go:noinline +func stackdepth976(fn func()) { stackdepth975(fn) } +//go:noinline +func stackdepth977(fn func()) { stackdepth976(fn) } +//go:noinline +func stackdepth978(fn func()) { stackdepth977(fn) } +//go:noinline +func stackdepth979(fn func()) { stackdepth978(fn) } +//go:noinline +func stackdepth980(fn func()) { stackdepth979(fn) } +//go:noinline +func stackdepth981(fn func()) { stackdepth980(fn) } +//go:noinline +func stackdepth982(fn func()) { stackdepth981(fn) } +//go:noinline +func stackdepth983(fn func()) { stackdepth982(fn) } +//go:noinline +func stackdepth984(fn func()) { stackdepth983(fn) } +//go:noinline +func stackdepth985(fn func()) { stackdepth984(fn) } +//go:noinline +func stackdepth986(fn func()) { stackdepth985(fn) } +//go:noinline +func stackdepth987(fn func()) { stackdepth986(fn) } +//go:noinline +func stackdepth988(fn func()) { stackdepth987(fn) } +//go:noinline +func stackdepth989(fn func()) { stackdepth988(fn) } +//go:noinline +func stackdepth990(fn func()) { stackdepth989(fn) } +//go:noinline +func stackdepth991(fn func()) { stackdepth990(fn) } +//go:noinline +func stackdepth992(fn func()) { stackdepth991(fn) } +//go:noinline +func stackdepth993(fn func()) { stackdepth992(fn) } +//go:noinline +func stackdepth994(fn func()) { stackdepth993(fn) } +//go:noinline +func stackdepth995(fn func()) { stackdepth994(fn) } +//go:noinline +func stackdepth996(fn func()) { stackdepth995(fn) } +//go:noinline +func stackdepth997(fn func()) { stackdepth996(fn) } +//go:noinline +func stackdepth998(fn func()) { stackdepth997(fn) } +//go:noinline +func stackdepth999(fn func()) { stackdepth998(fn) } +//go:noinline +func stackdepth1000(fn func()) { stackdepth999(fn) } +//go:noinline +func stackdepth1001(fn func()) { stackdepth1000(fn) } +//go:noinline +func stackdepth1002(fn func()) { stackdepth1001(fn) } +//go:noinline +func stackdepth1003(fn func()) { stackdepth1002(fn) } +//go:noinline +func stackdepth1004(fn func()) { stackdepth1003(fn) } +//go:noinline +func stackdepth1005(fn func()) { stackdepth1004(fn) } +//go:noinline +func stackdepth1006(fn func()) { stackdepth1005(fn) } +//go:noinline +func stackdepth1007(fn func()) { stackdepth1006(fn) } +//go:noinline +func stackdepth1008(fn func()) { stackdepth1007(fn) } +//go:noinline +func stackdepth1009(fn func()) { stackdepth1008(fn) } +//go:noinline +func stackdepth1010(fn func()) { stackdepth1009(fn) } +//go:noinline +func stackdepth1011(fn func()) { stackdepth1010(fn) } +//go:noinline +func stackdepth1012(fn func()) { stackdepth1011(fn) } +//go:noinline +func stackdepth1013(fn func()) { stackdepth1012(fn) } +//go:noinline +func stackdepth1014(fn func()) { stackdepth1013(fn) } +//go:noinline +func stackdepth1015(fn func()) { stackdepth1014(fn) } +//go:noinline +func stackdepth1016(fn func()) { stackdepth1015(fn) } +//go:noinline +func stackdepth1017(fn func()) { stackdepth1016(fn) } +//go:noinline +func stackdepth1018(fn func()) { stackdepth1017(fn) } +//go:noinline +func stackdepth1019(fn func()) { stackdepth1018(fn) } +//go:noinline +func stackdepth1020(fn func()) { stackdepth1019(fn) } +//go:noinline +func stackdepth1021(fn func()) { stackdepth1020(fn) } +//go:noinline +func stackdepth1022(fn func()) { stackdepth1021(fn) } +//go:noinline +func stackdepth1023(fn func()) { stackdepth1022(fn) } +//go:noinline +func stackdepth1024(fn func()) { stackdepth1023(fn) } + +var stackdepth = map[int]func(func()) { + 1: stackdepth1, + 2: stackdepth2, + 3: stackdepth3, + 4: stackdepth4, + 5: stackdepth5, + 6: stackdepth6, + 7: stackdepth7, + 8: stackdepth8, + 9: stackdepth9, + 10: stackdepth10, + 11: stackdepth11, + 12: stackdepth12, + 13: stackdepth13, + 14: stackdepth14, + 15: stackdepth15, + 16: stackdepth16, + 17: stackdepth17, + 18: stackdepth18, + 19: stackdepth19, + 20: stackdepth20, + 21: stackdepth21, + 22: stackdepth22, + 23: stackdepth23, + 24: stackdepth24, + 25: stackdepth25, + 26: stackdepth26, + 27: stackdepth27, + 28: stackdepth28, + 29: stackdepth29, + 30: stackdepth30, + 31: stackdepth31, + 32: stackdepth32, + 33: stackdepth33, + 34: stackdepth34, + 35: stackdepth35, + 36: stackdepth36, + 37: stackdepth37, + 38: stackdepth38, + 39: stackdepth39, + 40: stackdepth40, + 41: stackdepth41, + 42: stackdepth42, + 43: stackdepth43, + 44: stackdepth44, + 45: stackdepth45, + 46: stackdepth46, + 47: stackdepth47, + 48: stackdepth48, + 49: stackdepth49, + 50: stackdepth50, + 51: stackdepth51, + 52: stackdepth52, + 53: stackdepth53, + 54: stackdepth54, + 55: stackdepth55, + 56: stackdepth56, + 57: stackdepth57, + 58: stackdepth58, + 59: stackdepth59, + 60: stackdepth60, + 61: stackdepth61, + 62: stackdepth62, + 63: stackdepth63, + 64: stackdepth64, + 65: stackdepth65, + 66: stackdepth66, + 67: stackdepth67, + 68: stackdepth68, + 69: stackdepth69, + 70: stackdepth70, + 71: stackdepth71, + 72: stackdepth72, + 73: stackdepth73, + 74: stackdepth74, + 75: stackdepth75, + 76: stackdepth76, + 77: stackdepth77, + 78: stackdepth78, + 79: stackdepth79, + 80: stackdepth80, + 81: stackdepth81, + 82: stackdepth82, + 83: stackdepth83, + 84: stackdepth84, + 85: stackdepth85, + 86: stackdepth86, + 87: stackdepth87, + 88: stackdepth88, + 89: stackdepth89, + 90: stackdepth90, + 91: stackdepth91, + 92: stackdepth92, + 93: stackdepth93, + 94: stackdepth94, + 95: stackdepth95, + 96: stackdepth96, + 97: stackdepth97, + 98: stackdepth98, + 99: stackdepth99, + 100: stackdepth100, + 101: stackdepth101, + 102: stackdepth102, + 103: stackdepth103, + 104: stackdepth104, + 105: stackdepth105, + 106: stackdepth106, + 107: stackdepth107, + 108: stackdepth108, + 109: stackdepth109, + 110: stackdepth110, + 111: stackdepth111, + 112: stackdepth112, + 113: stackdepth113, + 114: stackdepth114, + 115: stackdepth115, + 116: stackdepth116, + 117: stackdepth117, + 118: stackdepth118, + 119: stackdepth119, + 120: stackdepth120, + 121: stackdepth121, + 122: stackdepth122, + 123: stackdepth123, + 124: stackdepth124, + 125: stackdepth125, + 126: stackdepth126, + 127: stackdepth127, + 128: stackdepth128, + 129: stackdepth129, + 130: stackdepth130, + 131: stackdepth131, + 132: stackdepth132, + 133: stackdepth133, + 134: stackdepth134, + 135: stackdepth135, + 136: stackdepth136, + 137: stackdepth137, + 138: stackdepth138, + 139: stackdepth139, + 140: stackdepth140, + 141: stackdepth141, + 142: stackdepth142, + 143: stackdepth143, + 144: stackdepth144, + 145: stackdepth145, + 146: stackdepth146, + 147: stackdepth147, + 148: stackdepth148, + 149: stackdepth149, + 150: stackdepth150, + 151: stackdepth151, + 152: stackdepth152, + 153: stackdepth153, + 154: stackdepth154, + 155: stackdepth155, + 156: stackdepth156, + 157: stackdepth157, + 158: stackdepth158, + 159: stackdepth159, + 160: stackdepth160, + 161: stackdepth161, + 162: stackdepth162, + 163: stackdepth163, + 164: stackdepth164, + 165: stackdepth165, + 166: stackdepth166, + 167: stackdepth167, + 168: stackdepth168, + 169: stackdepth169, + 170: stackdepth170, + 171: stackdepth171, + 172: stackdepth172, + 173: stackdepth173, + 174: stackdepth174, + 175: stackdepth175, + 176: stackdepth176, + 177: stackdepth177, + 178: stackdepth178, + 179: stackdepth179, + 180: stackdepth180, + 181: stackdepth181, + 182: stackdepth182, + 183: stackdepth183, + 184: stackdepth184, + 185: stackdepth185, + 186: stackdepth186, + 187: stackdepth187, + 188: stackdepth188, + 189: stackdepth189, + 190: stackdepth190, + 191: stackdepth191, + 192: stackdepth192, + 193: stackdepth193, + 194: stackdepth194, + 195: stackdepth195, + 196: stackdepth196, + 197: stackdepth197, + 198: stackdepth198, + 199: stackdepth199, + 200: stackdepth200, + 201: stackdepth201, + 202: stackdepth202, + 203: stackdepth203, + 204: stackdepth204, + 205: stackdepth205, + 206: stackdepth206, + 207: stackdepth207, + 208: stackdepth208, + 209: stackdepth209, + 210: stackdepth210, + 211: stackdepth211, + 212: stackdepth212, + 213: stackdepth213, + 214: stackdepth214, + 215: stackdepth215, + 216: stackdepth216, + 217: stackdepth217, + 218: stackdepth218, + 219: stackdepth219, + 220: stackdepth220, + 221: stackdepth221, + 222: stackdepth222, + 223: stackdepth223, + 224: stackdepth224, + 225: stackdepth225, + 226: stackdepth226, + 227: stackdepth227, + 228: stackdepth228, + 229: stackdepth229, + 230: stackdepth230, + 231: stackdepth231, + 232: stackdepth232, + 233: stackdepth233, + 234: stackdepth234, + 235: stackdepth235, + 236: stackdepth236, + 237: stackdepth237, + 238: stackdepth238, + 239: stackdepth239, + 240: stackdepth240, + 241: stackdepth241, + 242: stackdepth242, + 243: stackdepth243, + 244: stackdepth244, + 245: stackdepth245, + 246: stackdepth246, + 247: stackdepth247, + 248: stackdepth248, + 249: stackdepth249, + 250: stackdepth250, + 251: stackdepth251, + 252: stackdepth252, + 253: stackdepth253, + 254: stackdepth254, + 255: stackdepth255, + 256: stackdepth256, + 257: stackdepth257, + 258: stackdepth258, + 259: stackdepth259, + 260: stackdepth260, + 261: stackdepth261, + 262: stackdepth262, + 263: stackdepth263, + 264: stackdepth264, + 265: stackdepth265, + 266: stackdepth266, + 267: stackdepth267, + 268: stackdepth268, + 269: stackdepth269, + 270: stackdepth270, + 271: stackdepth271, + 272: stackdepth272, + 273: stackdepth273, + 274: stackdepth274, + 275: stackdepth275, + 276: stackdepth276, + 277: stackdepth277, + 278: stackdepth278, + 279: stackdepth279, + 280: stackdepth280, + 281: stackdepth281, + 282: stackdepth282, + 283: stackdepth283, + 284: stackdepth284, + 285: stackdepth285, + 286: stackdepth286, + 287: stackdepth287, + 288: stackdepth288, + 289: stackdepth289, + 290: stackdepth290, + 291: stackdepth291, + 292: stackdepth292, + 293: stackdepth293, + 294: stackdepth294, + 295: stackdepth295, + 296: stackdepth296, + 297: stackdepth297, + 298: stackdepth298, + 299: stackdepth299, + 300: stackdepth300, + 301: stackdepth301, + 302: stackdepth302, + 303: stackdepth303, + 304: stackdepth304, + 305: stackdepth305, + 306: stackdepth306, + 307: stackdepth307, + 308: stackdepth308, + 309: stackdepth309, + 310: stackdepth310, + 311: stackdepth311, + 312: stackdepth312, + 313: stackdepth313, + 314: stackdepth314, + 315: stackdepth315, + 316: stackdepth316, + 317: stackdepth317, + 318: stackdepth318, + 319: stackdepth319, + 320: stackdepth320, + 321: stackdepth321, + 322: stackdepth322, + 323: stackdepth323, + 324: stackdepth324, + 325: stackdepth325, + 326: stackdepth326, + 327: stackdepth327, + 328: stackdepth328, + 329: stackdepth329, + 330: stackdepth330, + 331: stackdepth331, + 332: stackdepth332, + 333: stackdepth333, + 334: stackdepth334, + 335: stackdepth335, + 336: stackdepth336, + 337: stackdepth337, + 338: stackdepth338, + 339: stackdepth339, + 340: stackdepth340, + 341: stackdepth341, + 342: stackdepth342, + 343: stackdepth343, + 344: stackdepth344, + 345: stackdepth345, + 346: stackdepth346, + 347: stackdepth347, + 348: stackdepth348, + 349: stackdepth349, + 350: stackdepth350, + 351: stackdepth351, + 352: stackdepth352, + 353: stackdepth353, + 354: stackdepth354, + 355: stackdepth355, + 356: stackdepth356, + 357: stackdepth357, + 358: stackdepth358, + 359: stackdepth359, + 360: stackdepth360, + 361: stackdepth361, + 362: stackdepth362, + 363: stackdepth363, + 364: stackdepth364, + 365: stackdepth365, + 366: stackdepth366, + 367: stackdepth367, + 368: stackdepth368, + 369: stackdepth369, + 370: stackdepth370, + 371: stackdepth371, + 372: stackdepth372, + 373: stackdepth373, + 374: stackdepth374, + 375: stackdepth375, + 376: stackdepth376, + 377: stackdepth377, + 378: stackdepth378, + 379: stackdepth379, + 380: stackdepth380, + 381: stackdepth381, + 382: stackdepth382, + 383: stackdepth383, + 384: stackdepth384, + 385: stackdepth385, + 386: stackdepth386, + 387: stackdepth387, + 388: stackdepth388, + 389: stackdepth389, + 390: stackdepth390, + 391: stackdepth391, + 392: stackdepth392, + 393: stackdepth393, + 394: stackdepth394, + 395: stackdepth395, + 396: stackdepth396, + 397: stackdepth397, + 398: stackdepth398, + 399: stackdepth399, + 400: stackdepth400, + 401: stackdepth401, + 402: stackdepth402, + 403: stackdepth403, + 404: stackdepth404, + 405: stackdepth405, + 406: stackdepth406, + 407: stackdepth407, + 408: stackdepth408, + 409: stackdepth409, + 410: stackdepth410, + 411: stackdepth411, + 412: stackdepth412, + 413: stackdepth413, + 414: stackdepth414, + 415: stackdepth415, + 416: stackdepth416, + 417: stackdepth417, + 418: stackdepth418, + 419: stackdepth419, + 420: stackdepth420, + 421: stackdepth421, + 422: stackdepth422, + 423: stackdepth423, + 424: stackdepth424, + 425: stackdepth425, + 426: stackdepth426, + 427: stackdepth427, + 428: stackdepth428, + 429: stackdepth429, + 430: stackdepth430, + 431: stackdepth431, + 432: stackdepth432, + 433: stackdepth433, + 434: stackdepth434, + 435: stackdepth435, + 436: stackdepth436, + 437: stackdepth437, + 438: stackdepth438, + 439: stackdepth439, + 440: stackdepth440, + 441: stackdepth441, + 442: stackdepth442, + 443: stackdepth443, + 444: stackdepth444, + 445: stackdepth445, + 446: stackdepth446, + 447: stackdepth447, + 448: stackdepth448, + 449: stackdepth449, + 450: stackdepth450, + 451: stackdepth451, + 452: stackdepth452, + 453: stackdepth453, + 454: stackdepth454, + 455: stackdepth455, + 456: stackdepth456, + 457: stackdepth457, + 458: stackdepth458, + 459: stackdepth459, + 460: stackdepth460, + 461: stackdepth461, + 462: stackdepth462, + 463: stackdepth463, + 464: stackdepth464, + 465: stackdepth465, + 466: stackdepth466, + 467: stackdepth467, + 468: stackdepth468, + 469: stackdepth469, + 470: stackdepth470, + 471: stackdepth471, + 472: stackdepth472, + 473: stackdepth473, + 474: stackdepth474, + 475: stackdepth475, + 476: stackdepth476, + 477: stackdepth477, + 478: stackdepth478, + 479: stackdepth479, + 480: stackdepth480, + 481: stackdepth481, + 482: stackdepth482, + 483: stackdepth483, + 484: stackdepth484, + 485: stackdepth485, + 486: stackdepth486, + 487: stackdepth487, + 488: stackdepth488, + 489: stackdepth489, + 490: stackdepth490, + 491: stackdepth491, + 492: stackdepth492, + 493: stackdepth493, + 494: stackdepth494, + 495: stackdepth495, + 496: stackdepth496, + 497: stackdepth497, + 498: stackdepth498, + 499: stackdepth499, + 500: stackdepth500, + 501: stackdepth501, + 502: stackdepth502, + 503: stackdepth503, + 504: stackdepth504, + 505: stackdepth505, + 506: stackdepth506, + 507: stackdepth507, + 508: stackdepth508, + 509: stackdepth509, + 510: stackdepth510, + 511: stackdepth511, + 512: stackdepth512, + 513: stackdepth513, + 514: stackdepth514, + 515: stackdepth515, + 516: stackdepth516, + 517: stackdepth517, + 518: stackdepth518, + 519: stackdepth519, + 520: stackdepth520, + 521: stackdepth521, + 522: stackdepth522, + 523: stackdepth523, + 524: stackdepth524, + 525: stackdepth525, + 526: stackdepth526, + 527: stackdepth527, + 528: stackdepth528, + 529: stackdepth529, + 530: stackdepth530, + 531: stackdepth531, + 532: stackdepth532, + 533: stackdepth533, + 534: stackdepth534, + 535: stackdepth535, + 536: stackdepth536, + 537: stackdepth537, + 538: stackdepth538, + 539: stackdepth539, + 540: stackdepth540, + 541: stackdepth541, + 542: stackdepth542, + 543: stackdepth543, + 544: stackdepth544, + 545: stackdepth545, + 546: stackdepth546, + 547: stackdepth547, + 548: stackdepth548, + 549: stackdepth549, + 550: stackdepth550, + 551: stackdepth551, + 552: stackdepth552, + 553: stackdepth553, + 554: stackdepth554, + 555: stackdepth555, + 556: stackdepth556, + 557: stackdepth557, + 558: stackdepth558, + 559: stackdepth559, + 560: stackdepth560, + 561: stackdepth561, + 562: stackdepth562, + 563: stackdepth563, + 564: stackdepth564, + 565: stackdepth565, + 566: stackdepth566, + 567: stackdepth567, + 568: stackdepth568, + 569: stackdepth569, + 570: stackdepth570, + 571: stackdepth571, + 572: stackdepth572, + 573: stackdepth573, + 574: stackdepth574, + 575: stackdepth575, + 576: stackdepth576, + 577: stackdepth577, + 578: stackdepth578, + 579: stackdepth579, + 580: stackdepth580, + 581: stackdepth581, + 582: stackdepth582, + 583: stackdepth583, + 584: stackdepth584, + 585: stackdepth585, + 586: stackdepth586, + 587: stackdepth587, + 588: stackdepth588, + 589: stackdepth589, + 590: stackdepth590, + 591: stackdepth591, + 592: stackdepth592, + 593: stackdepth593, + 594: stackdepth594, + 595: stackdepth595, + 596: stackdepth596, + 597: stackdepth597, + 598: stackdepth598, + 599: stackdepth599, + 600: stackdepth600, + 601: stackdepth601, + 602: stackdepth602, + 603: stackdepth603, + 604: stackdepth604, + 605: stackdepth605, + 606: stackdepth606, + 607: stackdepth607, + 608: stackdepth608, + 609: stackdepth609, + 610: stackdepth610, + 611: stackdepth611, + 612: stackdepth612, + 613: stackdepth613, + 614: stackdepth614, + 615: stackdepth615, + 616: stackdepth616, + 617: stackdepth617, + 618: stackdepth618, + 619: stackdepth619, + 620: stackdepth620, + 621: stackdepth621, + 622: stackdepth622, + 623: stackdepth623, + 624: stackdepth624, + 625: stackdepth625, + 626: stackdepth626, + 627: stackdepth627, + 628: stackdepth628, + 629: stackdepth629, + 630: stackdepth630, + 631: stackdepth631, + 632: stackdepth632, + 633: stackdepth633, + 634: stackdepth634, + 635: stackdepth635, + 636: stackdepth636, + 637: stackdepth637, + 638: stackdepth638, + 639: stackdepth639, + 640: stackdepth640, + 641: stackdepth641, + 642: stackdepth642, + 643: stackdepth643, + 644: stackdepth644, + 645: stackdepth645, + 646: stackdepth646, + 647: stackdepth647, + 648: stackdepth648, + 649: stackdepth649, + 650: stackdepth650, + 651: stackdepth651, + 652: stackdepth652, + 653: stackdepth653, + 654: stackdepth654, + 655: stackdepth655, + 656: stackdepth656, + 657: stackdepth657, + 658: stackdepth658, + 659: stackdepth659, + 660: stackdepth660, + 661: stackdepth661, + 662: stackdepth662, + 663: stackdepth663, + 664: stackdepth664, + 665: stackdepth665, + 666: stackdepth666, + 667: stackdepth667, + 668: stackdepth668, + 669: stackdepth669, + 670: stackdepth670, + 671: stackdepth671, + 672: stackdepth672, + 673: stackdepth673, + 674: stackdepth674, + 675: stackdepth675, + 676: stackdepth676, + 677: stackdepth677, + 678: stackdepth678, + 679: stackdepth679, + 680: stackdepth680, + 681: stackdepth681, + 682: stackdepth682, + 683: stackdepth683, + 684: stackdepth684, + 685: stackdepth685, + 686: stackdepth686, + 687: stackdepth687, + 688: stackdepth688, + 689: stackdepth689, + 690: stackdepth690, + 691: stackdepth691, + 692: stackdepth692, + 693: stackdepth693, + 694: stackdepth694, + 695: stackdepth695, + 696: stackdepth696, + 697: stackdepth697, + 698: stackdepth698, + 699: stackdepth699, + 700: stackdepth700, + 701: stackdepth701, + 702: stackdepth702, + 703: stackdepth703, + 704: stackdepth704, + 705: stackdepth705, + 706: stackdepth706, + 707: stackdepth707, + 708: stackdepth708, + 709: stackdepth709, + 710: stackdepth710, + 711: stackdepth711, + 712: stackdepth712, + 713: stackdepth713, + 714: stackdepth714, + 715: stackdepth715, + 716: stackdepth716, + 717: stackdepth717, + 718: stackdepth718, + 719: stackdepth719, + 720: stackdepth720, + 721: stackdepth721, + 722: stackdepth722, + 723: stackdepth723, + 724: stackdepth724, + 725: stackdepth725, + 726: stackdepth726, + 727: stackdepth727, + 728: stackdepth728, + 729: stackdepth729, + 730: stackdepth730, + 731: stackdepth731, + 732: stackdepth732, + 733: stackdepth733, + 734: stackdepth734, + 735: stackdepth735, + 736: stackdepth736, + 737: stackdepth737, + 738: stackdepth738, + 739: stackdepth739, + 740: stackdepth740, + 741: stackdepth741, + 742: stackdepth742, + 743: stackdepth743, + 744: stackdepth744, + 745: stackdepth745, + 746: stackdepth746, + 747: stackdepth747, + 748: stackdepth748, + 749: stackdepth749, + 750: stackdepth750, + 751: stackdepth751, + 752: stackdepth752, + 753: stackdepth753, + 754: stackdepth754, + 755: stackdepth755, + 756: stackdepth756, + 757: stackdepth757, + 758: stackdepth758, + 759: stackdepth759, + 760: stackdepth760, + 761: stackdepth761, + 762: stackdepth762, + 763: stackdepth763, + 764: stackdepth764, + 765: stackdepth765, + 766: stackdepth766, + 767: stackdepth767, + 768: stackdepth768, + 769: stackdepth769, + 770: stackdepth770, + 771: stackdepth771, + 772: stackdepth772, + 773: stackdepth773, + 774: stackdepth774, + 775: stackdepth775, + 776: stackdepth776, + 777: stackdepth777, + 778: stackdepth778, + 779: stackdepth779, + 780: stackdepth780, + 781: stackdepth781, + 782: stackdepth782, + 783: stackdepth783, + 784: stackdepth784, + 785: stackdepth785, + 786: stackdepth786, + 787: stackdepth787, + 788: stackdepth788, + 789: stackdepth789, + 790: stackdepth790, + 791: stackdepth791, + 792: stackdepth792, + 793: stackdepth793, + 794: stackdepth794, + 795: stackdepth795, + 796: stackdepth796, + 797: stackdepth797, + 798: stackdepth798, + 799: stackdepth799, + 800: stackdepth800, + 801: stackdepth801, + 802: stackdepth802, + 803: stackdepth803, + 804: stackdepth804, + 805: stackdepth805, + 806: stackdepth806, + 807: stackdepth807, + 808: stackdepth808, + 809: stackdepth809, + 810: stackdepth810, + 811: stackdepth811, + 812: stackdepth812, + 813: stackdepth813, + 814: stackdepth814, + 815: stackdepth815, + 816: stackdepth816, + 817: stackdepth817, + 818: stackdepth818, + 819: stackdepth819, + 820: stackdepth820, + 821: stackdepth821, + 822: stackdepth822, + 823: stackdepth823, + 824: stackdepth824, + 825: stackdepth825, + 826: stackdepth826, + 827: stackdepth827, + 828: stackdepth828, + 829: stackdepth829, + 830: stackdepth830, + 831: stackdepth831, + 832: stackdepth832, + 833: stackdepth833, + 834: stackdepth834, + 835: stackdepth835, + 836: stackdepth836, + 837: stackdepth837, + 838: stackdepth838, + 839: stackdepth839, + 840: stackdepth840, + 841: stackdepth841, + 842: stackdepth842, + 843: stackdepth843, + 844: stackdepth844, + 845: stackdepth845, + 846: stackdepth846, + 847: stackdepth847, + 848: stackdepth848, + 849: stackdepth849, + 850: stackdepth850, + 851: stackdepth851, + 852: stackdepth852, + 853: stackdepth853, + 854: stackdepth854, + 855: stackdepth855, + 856: stackdepth856, + 857: stackdepth857, + 858: stackdepth858, + 859: stackdepth859, + 860: stackdepth860, + 861: stackdepth861, + 862: stackdepth862, + 863: stackdepth863, + 864: stackdepth864, + 865: stackdepth865, + 866: stackdepth866, + 867: stackdepth867, + 868: stackdepth868, + 869: stackdepth869, + 870: stackdepth870, + 871: stackdepth871, + 872: stackdepth872, + 873: stackdepth873, + 874: stackdepth874, + 875: stackdepth875, + 876: stackdepth876, + 877: stackdepth877, + 878: stackdepth878, + 879: stackdepth879, + 880: stackdepth880, + 881: stackdepth881, + 882: stackdepth882, + 883: stackdepth883, + 884: stackdepth884, + 885: stackdepth885, + 886: stackdepth886, + 887: stackdepth887, + 888: stackdepth888, + 889: stackdepth889, + 890: stackdepth890, + 891: stackdepth891, + 892: stackdepth892, + 893: stackdepth893, + 894: stackdepth894, + 895: stackdepth895, + 896: stackdepth896, + 897: stackdepth897, + 898: stackdepth898, + 899: stackdepth899, + 900: stackdepth900, + 901: stackdepth901, + 902: stackdepth902, + 903: stackdepth903, + 904: stackdepth904, + 905: stackdepth905, + 906: stackdepth906, + 907: stackdepth907, + 908: stackdepth908, + 909: stackdepth909, + 910: stackdepth910, + 911: stackdepth911, + 912: stackdepth912, + 913: stackdepth913, + 914: stackdepth914, + 915: stackdepth915, + 916: stackdepth916, + 917: stackdepth917, + 918: stackdepth918, + 919: stackdepth919, + 920: stackdepth920, + 921: stackdepth921, + 922: stackdepth922, + 923: stackdepth923, + 924: stackdepth924, + 925: stackdepth925, + 926: stackdepth926, + 927: stackdepth927, + 928: stackdepth928, + 929: stackdepth929, + 930: stackdepth930, + 931: stackdepth931, + 932: stackdepth932, + 933: stackdepth933, + 934: stackdepth934, + 935: stackdepth935, + 936: stackdepth936, + 937: stackdepth937, + 938: stackdepth938, + 939: stackdepth939, + 940: stackdepth940, + 941: stackdepth941, + 942: stackdepth942, + 943: stackdepth943, + 944: stackdepth944, + 945: stackdepth945, + 946: stackdepth946, + 947: stackdepth947, + 948: stackdepth948, + 949: stackdepth949, + 950: stackdepth950, + 951: stackdepth951, + 952: stackdepth952, + 953: stackdepth953, + 954: stackdepth954, + 955: stackdepth955, + 956: stackdepth956, + 957: stackdepth957, + 958: stackdepth958, + 959: stackdepth959, + 960: stackdepth960, + 961: stackdepth961, + 962: stackdepth962, + 963: stackdepth963, + 964: stackdepth964, + 965: stackdepth965, + 966: stackdepth966, + 967: stackdepth967, + 968: stackdepth968, + 969: stackdepth969, + 970: stackdepth970, + 971: stackdepth971, + 972: stackdepth972, + 973: stackdepth973, + 974: stackdepth974, + 975: stackdepth975, + 976: stackdepth976, + 977: stackdepth977, + 978: stackdepth978, + 979: stackdepth979, + 980: stackdepth980, + 981: stackdepth981, + 982: stackdepth982, + 983: stackdepth983, + 984: stackdepth984, + 985: stackdepth985, + 986: stackdepth986, + 987: stackdepth987, + 988: stackdepth988, + 989: stackdepth989, + 990: stackdepth990, + 991: stackdepth991, + 992: stackdepth992, + 993: stackdepth993, + 994: stackdepth994, + 995: stackdepth995, + 996: stackdepth996, + 997: stackdepth997, + 998: stackdepth998, + 999: stackdepth999, + 1000: stackdepth1000, + 1001: stackdepth1001, + 1002: stackdepth1002, + 1003: stackdepth1003, + 1004: stackdepth1004, + 1005: stackdepth1005, + 1006: stackdepth1006, + 1007: stackdepth1007, + 1008: stackdepth1008, + 1009: stackdepth1009, + 1010: stackdepth1010, + 1011: stackdepth1011, + 1012: stackdepth1012, + 1013: stackdepth1013, + 1014: stackdepth1014, + 1015: stackdepth1015, + 1016: stackdepth1016, + 1017: stackdepth1017, + 1018: stackdepth1018, + 1019: stackdepth1019, + 1020: stackdepth1020, + 1021: stackdepth1021, + 1022: stackdepth1022, + 1023: stackdepth1023, + 1024: stackdepth1024, +} diff --git a/examples/stack-unwind-overhead/main.go b/examples/stack-unwind-overhead/main.go index d8dc63c..afb7e26 100644 --- a/examples/stack-unwind-overhead/main.go +++ b/examples/stack-unwind-overhead/main.go @@ -6,6 +6,8 @@ import ( "os" ) +//go:generate go run . + func main() { if err := run(); err != nil { fmt.Fprintln(os.Stderr, err) @@ -14,5 +16,61 @@ func main() { } func run() error { - return nil + file, err := os.Create("generated.go") + if err != nil { + return err + } + defer file.Close() + + fmt.Fprint(file, `// Code generated by go generate; DO NOT EDIT. + +package main + +//go:noinline +func stackdepth1(fn func()) { fn() } +`) + + max := 1024 + for i := 2; i <= max; i++ { + fmt.Fprintf( + file, + "//go:noinline\nfunc stackdepth%d(fn func()) { stackdepth%d(fn) }\n", + i, + i-1, + ) + } + + fmt.Fprint(file, "\nvar stackdepth = map[int]func(func()) {\n") + for i := 1; i <= max; i++ { + fmt.Fprintf(file, "\t%d: stackdepth%d,\n", i, i) + } + fmt.Fprint(file, "}\n") + + // Disabled: Turned out to be a deadend + //for i := 1; i <= max; i *= 2 { + //fmt.Fprintf(file, "//go:noinline\n") + //fmt.Fprintf(file, "func funcsize%d(v0, n int, fn func()) int {\n", i) + //for n := 1; n <= i; n++ { + //fmt.Fprintf(file, "\tv%d := v%d\n", n, n-1) + //fmt.Fprintf(file, "\tv%d = (^v%d + %d)\n", n, n, n) + //fmt.Fprintf(file, "\tif v%d == 23 {\n", n) + //sum := []string{} + //for j := 0; j <= n; j++ { + //sum = append(sum, fmt.Sprintf("v%d", j)) + //} + //fmt.Fprintf(file, "\t\treturn %s\n", strings.Join(sum, " + ")) + //fmt.Fprintf(file, "\t}\n") + //} + //fmt.Fprintf(file, "\tfn()\n") + //fmt.Fprintf(file, "\treturn -1\n") + //fmt.Fprintf(file, "}\n\n") + //} + + //fmt.Fprint(file, "\nvar funcsize = map[int]func(int, int, func()) int {\n") + //for i := 1; i <= max; i *= 2 { + //fmt.Fprintf(file, "\t%d: funcsize%d,\n", i, i) + //} + //fmt.Fprint(file, "}\n") + + return file.Close() } diff --git a/examples/stack-unwind-overhead/main_test.go b/examples/stack-unwind-overhead/main_test.go index 977cade..7a690a2 100644 --- a/examples/stack-unwind-overhead/main_test.go +++ b/examples/stack-unwind-overhead/main_test.go @@ -11,10 +11,10 @@ import ( func BenchmarkStackDepth(b *testing.B) { for d := 8; d <= 1024; d = d * 2 { b.Run(fmt.Sprintf("%d", d), func(b *testing.B) { - callers := make([]uintptr, d) + callers := make([]uintptr, d*2) atStackDepth(d, func() { for i := 0; i < b.N; i++ { - if n := runtime.Callers(0, callers); n != d { + if n := runtime.Callers(1, callers); n != d { b.Fatalf("got=%d want=%d", n, d) } } @@ -23,598 +23,38 @@ func BenchmarkStackDepth(b *testing.B) { } } -// atStackDepth recursively calls itself until the number of stack frames -// reaches the desired depth, and then calls fn. +// atStackDepth calls functions that call each other until there are depth-1 +// functions on the stack and then calls fn. +//go:noinline func atStackDepth(depth int, fn func()) { pcs := make([]uintptr, depth+10) - n := runtime.Callers(1, pcs) - if n > depth { - panic("depth exceeded") - } else if n < depth { - atStackDepth(depth, fn) - return - } - - fn() -} - -func BenchmarkFunctionSize(b *testing.B) { - m := map[int]func(func()){ - 1: dostuff1, - 2: dostuff2, - 4: dostuff4, - 8: dostuff8, - 16: dostuff16, - 32: dostuff32, - 64: dostuff64, - 128: dostuff128, - 256: dostuff256, - } - - var callers = make([]uintptr, 32) - for s := 1; s <= 256; s = s * 2 { - b.Run(fmt.Sprintf("%d", s), func(b *testing.B) { - m[s](func() { - for i := 0; i < b.N; i++ { - runtime.Callers(0, callers) - } - }) - }) + remaining := depth - runtime.Callers(1, pcs) - 1 + if remaining < 1 { + panic("can't simulate desired stack depth: too low") + } else if remaining == 1 { + fn() + } else if f, ok := stackdepth[remaining]; !ok { + panic("can't simulate desired stack depth: no map entry") + } else { + f(fn) } } -// dostuff is supposed to generate a bunch of machine code that will hopefully -// be inlined into its callers. -func dostuff() int { - m := map[int]string{} - m[0] = "foo" - m[100] = "bar" - return len(m) -} - -func dostuff1(fn func()) { - dostuff() - fn() -} - -func dostuff2(fn func()) { - dostuff() - dostuff() - fn() -} - -func dostuff4(fn func()) { - dostuff() - dostuff() - dostuff() - dostuff() - fn() -} - -func dostuff8(fn func()) { - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - fn() -} - -func dostuff16(fn func()) { - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - fn() -} - -func dostuff32(fn func()) { - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - fn() -} - -func dostuff64(fn func()) { - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - fn() -} - -func dostuff128(fn func()) { - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - fn() -} - -func dostuff256(fn func()) { - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - dostuff() - fn() -} +// disabled: turned out to be a deadend +//func BenchmarkFunctionSize(b *testing.B) { +//var callers = make([]uintptr, 32) +//for s := 1; s <= 1024; s = s * 2 { +//b.Run(fmt.Sprintf("%d", s), func(b *testing.B) { +//called := false +//funcsize[s](0, 0, func() { +//for i := 0; i < b.N; i++ { +//runtime.Callers(0, callers) +//} +//called = true +//}) +//if !called { +//b.Fatal("not called") +//} +//}) +//} +//}