Skip to content

Commit 277f5c4

Browse files
Update with new IL
1 parent cae1501 commit 277f5c4

File tree

4 files changed

+92
-112
lines changed

4 files changed

+92
-112
lines changed

tests/FSharp.Compiler.ComponentTests/EmittedIL/Nullness/ReferenceDU.fs.il.net472.bsl

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -662,8 +662,9 @@
662662
class MyTestModule/MyDu/JustInt V_2,
663663
int32 V_3,
664664
int32 V_4,
665-
class MyTestModule/MyDu/MaybeString V_5,
666-
string V_6)
665+
int32 V_5,
666+
class MyTestModule/MyDu/MaybeString V_6,
667+
string V_7)
667668
IL_0000: ldarg.0
668669
IL_0001: stloc.0
669670
IL_0002: ldloc.0
@@ -677,7 +678,7 @@
677678

678679
IL_000f: ldloc.1
679680
IL_0010: isinst MyTestModule/MyDu/MaybeString
680-
IL_0015: brtrue.s IL_0048
681+
IL_0015: brtrue.s IL_0040
681682

682683
IL_0017: br.s IL_001b
683684

@@ -696,23 +697,22 @@
696697
IL_002b: ldloc.3
697698
IL_002c: stloc.s V_4
698699
IL_002e: ldloc.s V_4
699-
IL_0030: box [runtime]System.Int32
700-
IL_0035: unbox.any [runtime]System.IFormattable
701-
IL_003a: ldnull
702-
IL_003b: call class [netstandard]System.Globalization.CultureInfo [netstandard]System.Globalization.CultureInfo::get_InvariantCulture()
703-
IL_0040: tail.
704-
IL_0042: callvirt instance string [netstandard]System.IFormattable::ToString(string,
705-
class [netstandard]System.IFormatProvider)
706-
IL_0047: ret
707-
708-
IL_0048: ldloc.0
709-
IL_0049: castclass MyTestModule/MyDu/MaybeString
710-
IL_004e: stloc.s V_5
711-
IL_0050: ldloc.s V_5
712-
IL_0052: ldfld string MyTestModule/MyDu/MaybeString::_nullableString
713-
IL_0057: stloc.s V_6
714-
IL_0059: ldloc.s V_6
715-
IL_005b: ret
700+
IL_0030: stloc.s V_5
701+
IL_0032: ldloca.s V_5
702+
IL_0034: ldnull
703+
IL_0035: call class [netstandard]System.Globalization.CultureInfo [netstandard]System.Globalization.CultureInfo::get_InvariantCulture()
704+
IL_003a: call instance string [netstandard]System.Int32::ToString(string,
705+
class [netstandard]System.IFormatProvider)
706+
IL_003f: ret
707+
708+
IL_0040: ldloc.0
709+
IL_0041: castclass MyTestModule/MyDu/MaybeString
710+
IL_0046: stloc.s V_6
711+
IL_0048: ldloc.s V_6
712+
IL_004a: ldfld string MyTestModule/MyDu/MaybeString::_nullableString
713+
IL_004f: stloc.s V_7
714+
IL_0051: ldloc.s V_7
715+
IL_0053: ret
716716
}
717717

718718
}

tests/FSharp.Compiler.ComponentTests/EmittedIL/Nullness/ReferenceDU.fs.il.netcore.bsl

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -662,8 +662,9 @@
662662
class MyTestModule/MyDu/JustInt V_2,
663663
int32 V_3,
664664
int32 V_4,
665-
class MyTestModule/MyDu/MaybeString V_5,
666-
string V_6)
665+
int32 V_5,
666+
class MyTestModule/MyDu/MaybeString V_6,
667+
string V_7)
667668
IL_0000: ldarg.0
668669
IL_0001: stloc.0
669670
IL_0002: ldloc.0
@@ -677,7 +678,7 @@
677678

678679
IL_000f: ldloc.1
679680
IL_0010: isinst MyTestModule/MyDu/MaybeString
680-
IL_0015: brtrue.s IL_0048
681+
IL_0015: brtrue.s IL_0040
681682

682683
IL_0017: br.s IL_001b
683684

@@ -696,23 +697,22 @@
696697
IL_002b: ldloc.3
697698
IL_002c: stloc.s V_4
698699
IL_002e: ldloc.s V_4
699-
IL_0030: box [runtime]System.Int32
700-
IL_0035: unbox.any [runtime]System.IFormattable
701-
IL_003a: ldnull
702-
IL_003b: call class [netstandard]System.Globalization.CultureInfo [netstandard]System.Globalization.CultureInfo::get_InvariantCulture()
703-
IL_0040: tail.
704-
IL_0042: callvirt instance string [netstandard]System.IFormattable::ToString(string,
705-
class [netstandard]System.IFormatProvider)
706-
IL_0047: ret
707-
708-
IL_0048: ldloc.0
709-
IL_0049: castclass MyTestModule/MyDu/MaybeString
710-
IL_004e: stloc.s V_5
711-
IL_0050: ldloc.s V_5
712-
IL_0052: ldfld string MyTestModule/MyDu/MaybeString::_nullableString
713-
IL_0057: stloc.s V_6
714-
IL_0059: ldloc.s V_6
715-
IL_005b: ret
700+
IL_0030: stloc.s V_5
701+
IL_0032: ldloca.s V_5
702+
IL_0034: ldnull
703+
IL_0035: call class [netstandard]System.Globalization.CultureInfo [netstandard]System.Globalization.CultureInfo::get_InvariantCulture()
704+
IL_003a: call instance string [netstandard]System.Int32::ToString(string,
705+
class [netstandard]System.IFormatProvider)
706+
IL_003f: ret
707+
708+
IL_0040: ldloc.0
709+
IL_0041: castclass MyTestModule/MyDu/MaybeString
710+
IL_0046: stloc.s V_6
711+
IL_0048: ldloc.s V_6
712+
IL_004a: ldfld string MyTestModule/MyDu/MaybeString::_nullableString
713+
IL_004f: stloc.s V_7
714+
IL_0051: ldloc.s V_7
715+
IL_0053: ret
716716
}
717717

718718
}

tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticOptimizations/String_Enum.fs.il.bsl

Lines changed: 28 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -130,61 +130,53 @@
130130
.method public static string 'string<SByteEnum>'(valuetype assembly/String/SByteEnum 'enum') cil managed
131131
{
132132

133-
.maxstack 8
133+
.maxstack 3
134+
.locals init (valuetype assembly/String/SByteEnum V_0)
134135
IL_0000: ldarg.0
135-
IL_0001: box assembly/String/SByteEnum
136-
IL_0006: unbox.any [runtime]System.IFormattable
137-
IL_000b: ldnull
138-
IL_000c: call class [netstandard]System.Globalization.CultureInfo [netstandard]System.Globalization.CultureInfo::get_InvariantCulture()
139-
IL_0011: tail.
140-
IL_0013: callvirt instance string [netstandard]System.IFormattable::ToString(string,
141-
class [netstandard]System.IFormatProvider)
142-
IL_0018: ret
136+
IL_0001: stloc.0
137+
IL_0002: ldloca.s V_0
138+
IL_0004: constrained. assembly/String/SByteEnum
139+
IL_000a: callvirt instance string [netstandard]System.Object::ToString()
140+
IL_000f: ret
143141
}
144142

145143
.method public static string 'string<Int16Enum>'(valuetype assembly/String/Int16Enum 'enum') cil managed
146144
{
147145

148-
.maxstack 8
146+
.maxstack 3
147+
.locals init (valuetype assembly/String/Int16Enum V_0)
149148
IL_0000: ldarg.0
150-
IL_0001: box assembly/String/Int16Enum
151-
IL_0006: unbox.any [runtime]System.IFormattable
152-
IL_000b: ldnull
153-
IL_000c: call class [netstandard]System.Globalization.CultureInfo [netstandard]System.Globalization.CultureInfo::get_InvariantCulture()
154-
IL_0011: tail.
155-
IL_0013: callvirt instance string [netstandard]System.IFormattable::ToString(string,
156-
class [netstandard]System.IFormatProvider)
157-
IL_0018: ret
149+
IL_0001: stloc.0
150+
IL_0002: ldloca.s V_0
151+
IL_0004: constrained. assembly/String/Int16Enum
152+
IL_000a: callvirt instance string [netstandard]System.Object::ToString()
153+
IL_000f: ret
158154
}
159155

160156
.method public static string 'string<Int32Enum>'(valuetype assembly/String/Int32Enum 'enum') cil managed
161157
{
162158

163-
.maxstack 8
159+
.maxstack 3
160+
.locals init (valuetype assembly/String/Int32Enum V_0)
164161
IL_0000: ldarg.0
165-
IL_0001: box assembly/String/Int32Enum
166-
IL_0006: unbox.any [runtime]System.IFormattable
167-
IL_000b: ldnull
168-
IL_000c: call class [netstandard]System.Globalization.CultureInfo [netstandard]System.Globalization.CultureInfo::get_InvariantCulture()
169-
IL_0011: tail.
170-
IL_0013: callvirt instance string [netstandard]System.IFormattable::ToString(string,
171-
class [netstandard]System.IFormatProvider)
172-
IL_0018: ret
162+
IL_0001: stloc.0
163+
IL_0002: ldloca.s V_0
164+
IL_0004: constrained. assembly/String/Int32Enum
165+
IL_000a: callvirt instance string [netstandard]System.Object::ToString()
166+
IL_000f: ret
173167
}
174168

175169
.method public static string 'string<Int64Enum>'(valuetype assembly/String/Int64Enum 'enum') cil managed
176170
{
177171

178-
.maxstack 8
172+
.maxstack 3
173+
.locals init (valuetype assembly/String/Int64Enum V_0)
179174
IL_0000: ldarg.0
180-
IL_0001: box assembly/String/Int64Enum
181-
IL_0006: unbox.any [runtime]System.IFormattable
182-
IL_000b: ldnull
183-
IL_000c: call class [netstandard]System.Globalization.CultureInfo [netstandard]System.Globalization.CultureInfo::get_InvariantCulture()
184-
IL_0011: tail.
185-
IL_0013: callvirt instance string [netstandard]System.IFormattable::ToString(string,
186-
class [netstandard]System.IFormatProvider)
187-
IL_0018: ret
175+
IL_0001: stloc.0
176+
IL_0002: ldloca.s V_0
177+
IL_0004: constrained. assembly/String/Int64Enum
178+
IL_000a: callvirt instance string [netstandard]System.Object::ToString()
179+
IL_000f: ret
188180
}
189181

190182
.method public static string 'string<ByteEnum>'(valuetype assembly/String/ByteEnum 'enum') cil managed

tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticOptimizations/String_SignedIntegralTypes.fs.il.bsl

Lines changed: 24 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -46,60 +46,48 @@
4646
{
4747

4848
.maxstack 8
49-
IL_0000: ldarg.0
50-
IL_0001: box [runtime]System.SByte
51-
IL_0006: unbox.any [runtime]System.IFormattable
52-
IL_000b: ldnull
53-
IL_000c: call class [netstandard]System.Globalization.CultureInfo [netstandard]System.Globalization.CultureInfo::get_InvariantCulture()
54-
IL_0011: tail.
55-
IL_0013: callvirt instance string [netstandard]System.IFormattable::ToString(string,
56-
class [netstandard]System.IFormatProvider)
57-
IL_0018: ret
49+
IL_0000: ldarga.s 'value'
50+
IL_0002: ldnull
51+
IL_0003: call class [netstandard]System.Globalization.CultureInfo [netstandard]System.Globalization.CultureInfo::get_InvariantCulture()
52+
IL_0008: call instance string [netstandard]System.SByte::ToString(string,
53+
class [netstandard]System.IFormatProvider)
54+
IL_000d: ret
5855
}
5956

6057
.method public static string 'string int16'(int16 'value') cil managed
6158
{
6259

6360
.maxstack 8
64-
IL_0000: ldarg.0
65-
IL_0001: box [runtime]System.Int16
66-
IL_0006: unbox.any [runtime]System.IFormattable
67-
IL_000b: ldnull
68-
IL_000c: call class [netstandard]System.Globalization.CultureInfo [netstandard]System.Globalization.CultureInfo::get_InvariantCulture()
69-
IL_0011: tail.
70-
IL_0013: callvirt instance string [netstandard]System.IFormattable::ToString(string,
71-
class [netstandard]System.IFormatProvider)
72-
IL_0018: ret
61+
IL_0000: ldarga.s 'value'
62+
IL_0002: ldnull
63+
IL_0003: call class [netstandard]System.Globalization.CultureInfo [netstandard]System.Globalization.CultureInfo::get_InvariantCulture()
64+
IL_0008: call instance string [netstandard]System.Int16::ToString(string,
65+
class [netstandard]System.IFormatProvider)
66+
IL_000d: ret
7367
}
7468

7569
.method public static string 'string int32'(int32 'value') cil managed
7670
{
7771

7872
.maxstack 8
79-
IL_0000: ldarg.0
80-
IL_0001: box [runtime]System.Int32
81-
IL_0006: unbox.any [runtime]System.IFormattable
82-
IL_000b: ldnull
83-
IL_000c: call class [netstandard]System.Globalization.CultureInfo [netstandard]System.Globalization.CultureInfo::get_InvariantCulture()
84-
IL_0011: tail.
85-
IL_0013: callvirt instance string [netstandard]System.IFormattable::ToString(string,
86-
class [netstandard]System.IFormatProvider)
87-
IL_0018: ret
73+
IL_0000: ldarga.s 'value'
74+
IL_0002: ldnull
75+
IL_0003: call class [netstandard]System.Globalization.CultureInfo [netstandard]System.Globalization.CultureInfo::get_InvariantCulture()
76+
IL_0008: call instance string [netstandard]System.Int32::ToString(string,
77+
class [netstandard]System.IFormatProvider)
78+
IL_000d: ret
8879
}
8980

9081
.method public static string 'string int64'(int64 'value') cil managed
9182
{
9283

9384
.maxstack 8
94-
IL_0000: ldarg.0
95-
IL_0001: box [runtime]System.Int64
96-
IL_0006: unbox.any [runtime]System.IFormattable
97-
IL_000b: ldnull
98-
IL_000c: call class [netstandard]System.Globalization.CultureInfo [netstandard]System.Globalization.CultureInfo::get_InvariantCulture()
99-
IL_0011: tail.
100-
IL_0013: callvirt instance string [netstandard]System.IFormattable::ToString(string,
101-
class [netstandard]System.IFormatProvider)
102-
IL_0018: ret
85+
IL_0000: ldarga.s 'value'
86+
IL_0002: ldnull
87+
IL_0003: call class [netstandard]System.Globalization.CultureInfo [netstandard]System.Globalization.CultureInfo::get_InvariantCulture()
88+
IL_0008: call instance string [netstandard]System.Int64::ToString(string,
89+
class [netstandard]System.IFormatProvider)
90+
IL_000d: ret
10391
}
10492

10593
}

0 commit comments

Comments
 (0)