@@ -93,8 +93,8 @@ public override MethodBuilder EmitActionImpl(RunnableEmitter runnableEmitter, st
93
93
{
94
94
MethodBuilder actionImpl = actionKind switch
95
95
{
96
- RunnableActionKind . Overhead => EmitWorkloadActionImpl ( runnableEmitter ) ,
97
- RunnableActionKind . Workload => EmitOverheadActionImpl ( runnableEmitter ) ,
96
+ RunnableActionKind . Overhead => EmitOverheadActionImpl ( runnableEmitter ) ,
97
+ RunnableActionKind . Workload => EmitWorkloadActionImpl ( runnableEmitter ) ,
98
98
_ => throw new ArgumentOutOfRangeException ( nameof ( actionKind ) , actionKind , null ) ,
99
99
} ;
100
100
@@ -195,8 +195,6 @@ class Perfolizer.Horology.IClock clock
195
195
ilBuilder . Emit ( OpCodes . Call , runnableEmitter . startClockMethod ) ;
196
196
ilBuilder . Emit ( OpCodes . Stfld , startedClockField ) ;
197
197
198
- var exitExceptionBlockLabel = ilBuilder . DefineLabel ( ) ;
199
-
200
198
// try { ... }
201
199
ilBuilder . BeginExceptionBlock ( ) ;
202
200
{
@@ -217,12 +215,10 @@ class Perfolizer.Horology.IClock clock
217
215
*/
218
216
ilBuilder . Emit ( OpCodes . Ldarg_0 ) ;
219
217
ilBuilder . Emit ( OpCodes . Ldfld , actionDelegateField ) ;
220
- ilBuilder . EmitInstanceCallThisValueOnStack ( null , actionInvokeMethod , argLocals ) ;
221
218
ilBuilder . Emit ( OpCodes . Callvirt , actionInvokeMethod ) ;
219
+ ilBuilder . EmitStloc ( valueLocal ) ;
222
220
}
223
221
ilBuilder . EmitLoopEndFromFldTo0 ( loopStartLabel , loopHeadLabel , repeatsRemainingField , indexLocal ) ;
224
-
225
- ilBuilder . Emit ( OpCodes . Leave_S , exitExceptionBlockLabel ) ;
226
222
}
227
223
// catch (System.Exception) { ... }
228
224
ilBuilder . BeginCatchBlock ( typeof ( Exception ) ) ;
@@ -239,7 +235,6 @@ class Perfolizer.Horology.IClock clock
239
235
ilBuilder . Emit ( OpCodes . Rethrow ) ;
240
236
}
241
237
ilBuilder . EndExceptionBlock ( ) ;
242
- ilBuilder . MarkLabel ( exitExceptionBlockLabel ) ;
243
238
244
239
/*
245
240
// return new System.Threading.Tasks.ValueTask<Perfolizer.Horology.ClockSpan>(startedClock.GetElapsed());
@@ -380,7 +375,6 @@ instance void __RunTask () cil managed
380
375
var indexLocal = ilBuilder . DeclareLocal ( typeof ( long ) ) ;
381
376
var exceptionLocal = ilBuilder . DeclareLocal ( typeof ( Exception ) ) ;
382
377
383
- var exitExceptionBlockLabel = ilBuilder . DefineLabel ( ) ;
384
378
var returnLabel = ilBuilder . DefineLabel ( ) ;
385
379
386
380
// try { ... }
@@ -450,16 +444,14 @@ instance void __RunTask () cil managed
450
444
IL_0046: pop
451
445
*/
452
446
ilBuilder . Emit ( OpCodes . Ldarg_0 ) ;
453
- ilBuilder . Emit ( OpCodes . Ldfld , currentAwaiterField ) ;
447
+ ilBuilder . Emit ( OpCodes . Ldflda , currentAwaiterField ) ;
454
448
ilBuilder . Emit ( OpCodes . Call , getResultMethod ) ;
455
449
if ( getResultMethod . ReturnType != typeof ( void ) )
456
450
{
457
451
ilBuilder . Emit ( OpCodes . Pop ) ;
458
452
}
459
453
}
460
454
ilBuilder . EmitLoopEndFromFldTo0 ( loopStartLabel , loopHeadLabel , repeatsRemainingField , indexLocal ) ;
461
-
462
- ilBuilder . Emit ( OpCodes . Leave_S , exitExceptionBlockLabel ) ;
463
455
}
464
456
// catch (System.Exception) { ... }
465
457
ilBuilder . BeginCatchBlock ( typeof ( Exception ) ) ;
@@ -479,7 +471,6 @@ instance void __RunTask () cil managed
479
471
ilBuilder . Emit ( OpCodes . Leave_S , returnLabel ) ;
480
472
}
481
473
ilBuilder . EndExceptionBlock ( ) ;
482
- ilBuilder . MarkLabel ( exitExceptionBlockLabel ) ;
483
474
484
475
/*
485
476
// var clockspan = startedClock.GetElapsed();
@@ -518,7 +509,7 @@ instance void __RunTask () cil managed
518
509
IL_0094: callvirt instance void class BenchmarkDotNet.Helpers.ManualResetValueTaskSource`1<valuetype Perfolizer.Horology.ClockSpan>::SetResult(!0)
519
510
*/
520
511
ilBuilder . Emit ( OpCodes . Ldarg_0 ) ;
521
- ilBuilder . Emit ( OpCodes . Ldflda , valueTaskSourceField ) ;
512
+ ilBuilder . Emit ( OpCodes . Ldfld , valueTaskSourceField ) ;
522
513
ilBuilder . EmitLdloc ( clockspanLocal ) ;
523
514
ilBuilder . Emit ( OpCodes . Callvirt , valueTaskSourceField . FieldType . GetMethod ( nameof ( Helpers . ManualResetValueTaskSource < ClockSpan > . SetResult ) , BindingFlagsPublicInstance ) ) ;
524
515
@@ -544,7 +535,6 @@ instance void __Continuation () cil managed
544
535
// init locals
545
536
var exceptionLocal = ilBuilder . DeclareLocal ( typeof ( Exception ) ) ;
546
537
547
- var exitExceptionBlockLabel = ilBuilder . DefineLabel ( ) ;
548
538
var returnLabel = ilBuilder . DefineLabel ( ) ;
549
539
550
540
// try { ... }
@@ -558,14 +548,12 @@ instance void __Continuation () cil managed
558
548
IL_000b: pop
559
549
*/
560
550
ilBuilder . Emit ( OpCodes . Ldarg_0 ) ;
561
- ilBuilder . Emit ( OpCodes . Ldfld , currentAwaiterField ) ;
551
+ ilBuilder . Emit ( OpCodes . Ldflda , currentAwaiterField ) ;
562
552
ilBuilder . Emit ( OpCodes . Call , getResultMethod ) ;
563
553
if ( getResultMethod . ReturnType != typeof ( void ) )
564
554
{
565
555
ilBuilder . Emit ( OpCodes . Pop ) ;
566
556
}
567
-
568
- ilBuilder . Emit ( OpCodes . Leave_S , exitExceptionBlockLabel ) ;
569
557
}
570
558
// catch (System.Exception e) { ... }
571
559
ilBuilder . BeginCatchBlock ( typeof ( Exception ) ) ;
@@ -585,7 +573,6 @@ instance void __Continuation () cil managed
585
573
ilBuilder . Emit ( OpCodes . Leave_S , returnLabel ) ;
586
574
}
587
575
ilBuilder . EndExceptionBlock ( ) ;
588
- ilBuilder . MarkLabel ( exitExceptionBlockLabel ) ;
589
576
590
577
/*
591
578
// __RunTask();
0 commit comments