Skip to content

Commit a1ce4c5

Browse files
committed
Use AggressiveInlining instead of NoInlining.
1 parent e09268c commit a1ce4c5

File tree

1 file changed

+11
-15
lines changed

1 file changed

+11
-15
lines changed

src/BenchmarkDotNet/Templates/BenchmarkType.txt

+11-15
Original file line numberDiff line numberDiff line change
@@ -103,14 +103,14 @@
103103

104104
#if RETURNS_CONSUMABLE_$ID$
105105

106-
// Prevent inlining the method invoke.
107-
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
106+
// NoOptimization to prevent inlining the method invoke. AggressiveInlining to remove the overhead of the wrapper function.
107+
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
108108
private $OverheadMethodReturnTypeName$ __OverheadWrapper($ArgumentsDefinition$)
109109
{
110110
return __Overhead($PassArguments$);
111111
}
112112

113-
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
113+
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
114114
private $WorkloadMethodReturnType$ __WorkloadWrapper($ArgumentsDefinition$)
115115
{
116116
return $WorkloadMethodCall$;
@@ -172,14 +172,13 @@
172172

173173
#elif RETURNS_NON_CONSUMABLE_STRUCT_$ID$
174174

175-
// Prevent inlining the method invoke.
176-
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
175+
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
177176
private $OverheadMethodReturnTypeName$ __OverheadWrapper($ArgumentsDefinition$)
178177
{
179178
return __Overhead($PassArguments$);
180179
}
181180

182-
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
181+
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
183182
private $WorkloadMethodReturnType$ __WorkloadWrapper($ArgumentsDefinition$)
184183
{
185184
return $WorkloadMethodCall$;
@@ -252,14 +251,13 @@
252251

253252
#elif RETURNS_BYREF_$ID$
254253

255-
// Prevent inlining the method invoke.
256-
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
254+
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
257255
private $OverheadMethodReturnTypeName$ __OverheadWrapper($ArgumentsDefinition$)
258256
{
259257
return __Overhead($PassArguments$);
260258
}
261259

262-
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
260+
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
263261
private ref $WorkloadMethodReturnType$ __WorkloadWrapper($ArgumentsDefinition$)
264262
{
265263
return ref $WorkloadMethodCall$;
@@ -328,14 +326,13 @@
328326
}
329327
#elif RETURNS_BYREF_READONLY_$ID$
330328

331-
// Prevent inlining the method invoke.
332-
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
329+
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
333330
private $OverheadMethodReturnTypeName$ __OverheadWrapper($ArgumentsDefinition$)
334331
{
335332
return __Overhead($PassArguments$);
336333
}
337334

338-
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
335+
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
339336
private ref readonly $WorkloadMethodReturnType$ __WorkloadWrapper($ArgumentsDefinition$)
340337
{
341338
return ref $WorkloadMethodCall$;
@@ -404,14 +401,13 @@
404401
}
405402
#elif RETURNS_VOID_$ID$
406403

407-
// Prevent inlining the method invoke.
408-
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
404+
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
409405
private void __OverheadWrapper($ArgumentsDefinition$)
410406
{
411407
__Overhead($PassArguments$);
412408
}
413409

414-
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
410+
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining | System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
415411
private void __WorkloadWrapper($ArgumentsDefinition$)
416412
{
417413
$WorkloadMethodCall$;

0 commit comments

Comments
 (0)