Skip to content

Commit 7e7e26b

Browse files
committed
Simplify argField names and remove unused constants.
1 parent 9242a9d commit 7e7e26b

5 files changed

Lines changed: 27 additions & 32 deletions

File tree

src/BenchmarkDotNet/Code/CodeGenerator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ private static string GetArgumentsDefinition(BenchmarkCase benchmarkCase)
150150
private static string GetDeclareFieldsContainer(BenchmarkCase benchmarkCase, BenchmarkId benchmarkId, string[] extraFields)
151151
{
152152
var fields = benchmarkCase.Descriptor.WorkloadMethod.GetParameters()
153-
.Select((parameter, index) => $"public {GetFieldType(parameter.ParameterType, benchmarkCase.Parameters.GetArgument(parameter.Name!)).GetCorrectCSharpTypeName()} __argField{index};")
153+
.Select((parameter, index) => $"public {GetFieldType(parameter.ParameterType, benchmarkCase.Parameters.GetArgument(parameter.Name!)).GetCorrectCSharpTypeName()} argField{index};")
154154
.Concat(extraFields)
155155
.ToArray();
156156

@@ -194,7 +194,7 @@ private static string GetInitializeArgumentFields(BenchmarkCase benchmarkCase)
194194
=> string.Join(
195195
Environment.NewLine,
196196
benchmarkCase.Descriptor.WorkloadMethod.GetParameters()
197-
.Select((parameter, index) => $"this.__fieldsContainer.__argField{index} = {benchmarkCase.Parameters.GetArgument(parameter.Name!).ToSourceCode()};")); // we init the fields in ctor to provoke all possible allocations and overhead of other type
197+
.Select((parameter, index) => $"this.__fieldsContainer.argField{index} = {benchmarkCase.Parameters.GetArgument(parameter.Name!).ToSourceCode()};")); // we init the fields in ctor to provoke all possible allocations and overhead of other type
198198

199199
private static string GetExtraAttributes(Descriptor descriptor)
200200
=> descriptor.WorkloadMethod.GetCustomAttributes(false).OfType<STAThreadAttribute>().Any() ? "[System.STAThreadAttribute]" : string.Empty;

src/BenchmarkDotNet/Code/DeclarationsProvider.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ protected string GetPassArgumentsDirect()
9494
=> string.Join(
9595
", ",
9696
Descriptor.WorkloadMethod.GetParameters()
97-
.Select((parameter, index) => $"{CodeGenerator.GetParameterModifier(parameter)} this.__fieldsContainer.__argField{index}")
97+
.Select((parameter, index) => $"{CodeGenerator.GetParameterModifier(parameter)} this.__fieldsContainer.argField{index}")
9898
);
9999
}
100100

@@ -166,7 +166,7 @@ private string GetLoadArguments()
166166
.Select((parameter, index) =>
167167
{
168168
var refModifier = parameter.ParameterType.IsByRef ? "ref" : string.Empty;
169-
return $"{refModifier} {parameter.ParameterType.GetCorrectCSharpTypeName()} arg{index} = {refModifier} this.__fieldsContainer.__argField{index};";
169+
return $"{refModifier} {parameter.ParameterType.GetCorrectCSharpTypeName()} arg{index} = {refModifier} this.__fieldsContainer.argField{index};";
170170
})
171171
);
172172

src/BenchmarkDotNet/Toolchains/InProcess/Emit/Implementation/Emitters/RunnableEmitter.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -344,34 +344,34 @@ private void EmitCtor()
344344
protected void EmitLoadArgFieldsForCall(ILGenerator ilBuilder, LocalBuilder? runnableLocal)
345345
{
346346
/*
347-
// base.InvokeOnceVoid(__fieldsContainer.__argField0, __fieldsContainer.__argField1);
347+
// base.InvokeOnceVoid(__fieldsContainer.argField0, __fieldsContainer.argField1);
348348
IL_000b: ldarg.0
349349
IL_000c: ldflda valuetype BenchmarkDotNet.Autogenerated.Runnable_1/FieldsContainer BenchmarkDotNet.Autogenerated.Runnable_1::__fieldsContainer
350-
IL_0011: ldfld bool BenchmarkDotNet.Autogenerated.Runnable_1/FieldsContainer::__argField0
350+
IL_0011: ldfld bool BenchmarkDotNet.Autogenerated.Runnable_1/FieldsContainer::argField0
351351
IL_0016: ldarg.0
352352
IL_0017: ldflda valuetype BenchmarkDotNet.Autogenerated.Runnable_1/FieldsContainer BenchmarkDotNet.Autogenerated.Runnable_1::__fieldsContainer
353-
IL_001c: ldfld int32 BenchmarkDotNet.Autogenerated.Runnable_1/FieldsContainer::__argField1
353+
IL_001c: ldfld int32 BenchmarkDotNet.Autogenerated.Runnable_1/FieldsContainer::argField1
354354
355355
// -or-
356356
357-
// base.InvokeOnceVoid(ref __fieldsContainer.__argField0, ref __fieldsContainer.__argField1);
357+
// base.InvokeOnceVoid(ref __fieldsContainer.argField0, ref __fieldsContainer.argField1);
358358
IL_000b: ldarg.0
359359
IL_000c: ldflda valuetype BenchmarkDotNet.Autogenerated.Runnable_2/FieldsContainer BenchmarkDotNet.Autogenerated.Runnable_2::__fieldsContainer
360-
IL_0011: ldflda bool BenchmarkDotNet.Autogenerated.Runnable_2/FieldsContainer::__argField0
360+
IL_0011: ldflda bool BenchmarkDotNet.Autogenerated.Runnable_2/FieldsContainer::argField0
361361
IL_0016: ldarg.0
362362
IL_0017: ldflda valuetype BenchmarkDotNet.Autogenerated.Runnable_2/FieldsContainer BenchmarkDotNet.Autogenerated.Runnable_2::__fieldsContainer
363-
IL_001c: ldflda int32 BenchmarkDotNet.Autogenerated.Runnable_2/FieldsContainer::__argField1
363+
IL_001c: ldflda int32 BenchmarkDotNet.Autogenerated.Runnable_2/FieldsContainer::argField1
364364
365365
// -or- (ref struct arg call)
366366
367-
// base.InvokeOnceVoid((Span<bool>)__fieldsContainer.__argField0, __fieldsContainer.__argField1);
367+
// base.InvokeOnceVoid((Span<bool>)__fieldsContainer.argField0, __fieldsContainer.argField1);
368368
IL_000b: ldarg.0
369369
IL_000c: ldflda valuetype BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer BenchmarkDotNet.Autogenerated.Runnable_0::__fieldsContainer
370-
IL_0011: ldfld bool[] BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer::__argField0
370+
IL_0011: ldfld bool[] BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer::argField0
371371
IL_0016: call valuetype [System.Runtime]System.Span`1<!0> valuetype [System.Runtime]System.Span`1<bool>::op_Implicit(!0[])
372372
IL_001b: ldarg.0
373373
IL_001c: ldflda valuetype BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer BenchmarkDotNet.Autogenerated.Runnable_0::__fieldsContainer
374-
IL_0021: ldfld int32 BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer::__argField1
374+
IL_0021: ldfld int32 BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer::argField1
375375
*/
376376
foreach (var argFieldInfo in argFields)
377377
{
@@ -480,14 +480,14 @@ private MethodBuilder EmitForDisassemblyDiagnoserMethod()
480480
ilBuilder.Emit(OpCodes.Bne_Un, notElevenLabel);
481481
{
482482
/*
483-
// base.Simple(__fieldsContainer.__argField0, __fieldsContainer.__argField1);
483+
// base.Simple(__fieldsContainer.argField0, __fieldsContainer.argField1);
484484
IL_000a: ldarg.0
485485
IL_000b: ldarg.0
486486
IL_000c: ldflda valuetype BenchmarkDotNet.Autogenerated.Runnable_1/FieldsContainer BenchmarkDotNet.Autogenerated.Runnable_1::__fieldsContainer
487-
IL_0011: ldfld bool BenchmarkDotNet.Autogenerated.Runnable_1/FieldsContainer::__argField0
487+
IL_0011: ldfld bool BenchmarkDotNet.Autogenerated.Runnable_1/FieldsContainer::argField0
488488
IL_0016: ldarg.0
489489
IL_0017: ldflda valuetype BenchmarkDotNet.Autogenerated.Runnable_1/FieldsContainer BenchmarkDotNet.Autogenerated.Runnable_1::__fieldsContainer
490-
IL_001c: ldfld int32 BenchmarkDotNet.Autogenerated.Runnable_1/FieldsContainer::__argField1
490+
IL_001c: ldfld int32 BenchmarkDotNet.Autogenerated.Runnable_1/FieldsContainer::argField1
491491
IL_0021: call instance void [BenchmarkDotNet.IntegrationTests]BenchmarkDotNet.IntegrationTests.ArgumentsTests/WithArguments::Simple(bool, int32)
492492
*/
493493
if (!workloadMethod.IsStatic)

src/BenchmarkDotNet/Toolchains/InProcess/Emit/Implementation/Emitters/SyncCoreEmitter.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -112,36 +112,36 @@ class [Perfolizer]Perfolizer.Horology.IClock clock
112112
private void EmitLoadArgFieldsToLocals(ILGenerator ilBuilder, List<LocalBuilder> argLocals)
113113
{
114114
/*
115-
// bool _argField = __fieldsContainer.__argField0;
115+
// bool _argField = __fieldsContainer.argField0;
116116
IL_0000: ldarg.0
117117
IL_0001: ldflda valuetype BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer BenchmarkDotNet.Autogenerated.Runnable_0::__fieldsContainer
118-
IL_0006: ldfld bool BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer::__argField0
118+
IL_0006: ldfld bool BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer::argField0
119119
IL_000b: stloc.0
120-
// int _argField2 = __fieldsContainer.__argField1;
120+
// int _argField2 = __fieldsContainer.argField1;
121121
IL_000c: ldarg.0
122122
IL_000d: ldflda valuetype BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer BenchmarkDotNet.Autogenerated.Runnable_0::__fieldsContainer
123-
IL_0012: ldfld int32 BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer::__argField1
123+
IL_0012: ldfld int32 BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer::argField1
124124
IL_0017: stloc.1
125125
126126
// -or-
127127
128-
// ref bool _argField = ref __fieldsContainer.__argField0;
128+
// ref bool _argField = ref __fieldsContainer.argField0;
129129
IL_0000: ldarg.0
130130
IL_0001: ldflda valuetype BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer BenchmarkDotNet.Autogenerated.Runnable_0::__fieldsContainer
131-
IL_0006: ldflda bool BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer::__argField0
131+
IL_0006: ldflda bool BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer::argField0
132132
IL_000b: stloc.0
133-
// ref int _argField2 = ref __fieldsContainer.__argField1;
133+
// ref int _argField2 = ref __fieldsContainer.argField1;
134134
IL_000c: ldarg.0
135135
IL_000d: ldflda valuetype BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer BenchmarkDotNet.Autogenerated.Runnable_0::__fieldsContainer
136-
IL_0012: ldflda int32 BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer::__argField1
136+
IL_0012: ldflda int32 BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer::argField1
137137
IL_0017: stloc.1
138138
139139
// -or- (ref struct arg call)
140140
141-
// Span<int> arg = __fieldsContainer.__argField0;
141+
// Span<int> arg = __fieldsContainer.argField0;
142142
IL_0000: ldarg.0
143143
IL_0001: ldflda valuetype BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer BenchmarkDotNet.Autogenerated.Runnable_0::__fieldsContainer
144-
IL_0006: ldfld int32[] BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer::__argField0
144+
IL_0006: ldfld int32[] BenchmarkDotNet.Autogenerated.Runnable_0/FieldsContainer::argField0
145145
IL_000b: call valuetype [System.Runtime]System.Span`1<!0> valuetype [System.Runtime]System.Span`1<int32>::op_Implicit(!0[])
146146
IL_0010: stloc.0
147147
*/

src/BenchmarkDotNet/Toolchains/InProcess/Emit/Implementation/Runnable/RunnableConstants.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,13 @@ internal class RunnableConstants
66

77
public const string DynamicAssemblySuffix = "Emitted";
88
public const string EmittedTypePrefix = "BenchmarkDotNet.Autogenerated.Runnable_";
9-
public const string ArgFieldPrefix = "__argField";
9+
public const string ArgFieldPrefix = "argField";
1010
public const string ArgParamPrefix = "arg";
1111
public const string FieldsContainerName = "__fieldsContainer";
1212

1313
public const string NotElevenFieldName = "NotEleven";
1414

1515
public const string TrickTheJitCoreMethodName = "__TrickTheJIT__";
16-
public const string WorkloadImplementationMethodName = "__Workload";
1716
public const string OverheadImplementationMethodName = "__Overhead";
1817
public const string OverheadActionUnrollMethodName = "OverheadActionUnroll";
1918
public const string OverheadActionNoUnrollMethodName = "OverheadActionNoUnroll";
@@ -23,15 +22,11 @@ internal class RunnableConstants
2322
public const string InvokeCountParamName = "invokeCount";
2423
public const string ClockParamName = "clock";
2524

26-
public const string DummyParamName = "_";
27-
2825
public const string GlobalSetupMethodName = "__GlobalSetup";
2926
public const string GlobalCleanupMethodName = "__GlobalCleanup";
3027
public const string IterationSetupMethodName = "__IterationSetup";
3128
public const string IterationCleanupMethodName = "__IterationCleanup";
3229

33-
public const string RunMethodName = "Run";
34-
3530
public const string WorkloadContinuerAndValueTaskSourceFieldName = "workloadContinuerAndValueTaskSource";
3631
public const string ClockFieldName = "clock";
3732
public const string InvokeCountFieldName = "invokeCount";

0 commit comments

Comments
 (0)