diff --git a/docs/release-notes/.FSharp.Compiler.Service/9.0.100.md b/docs/release-notes/.FSharp.Compiler.Service/9.0.100.md
index 7282b2d0b5..47bdef37a7 100644
--- a/docs/release-notes/.FSharp.Compiler.Service/9.0.100.md
+++ b/docs/release-notes/.FSharp.Compiler.Service/9.0.100.md
@@ -6,5 +6,6 @@
### Changed
* Change compiler default setting realsig+ when building assemblies ([Issue #17384](https://github.com/dotnet/fsharp/issues/17384), [PR #17378](https://github.com/dotnet/fsharp/pull/17385))
* Change compiler default setting for compressedMetadata ([Issue #17379](https://github.com/dotnet/fsharp/issues/17379), [PR #17383](https://github.com/dotnet/fsharp/pull/17383))
+* Enabled by default GraphBasedChecking, ParallelOptimization and ParallelIlxGen optimizations. [PR #17400](https://github.com/dotnet/fsharp/pull/17400)
### Breaking Changes
diff --git a/src/Compiler/Driver/CompilerConfig.fs b/src/Compiler/Driver/CompilerConfig.fs
index ba16b85429..8cf368d72e 100644
--- a/src/Compiler/Driver/CompilerConfig.fs
+++ b/src/Compiler/Driver/CompilerConfig.fs
@@ -524,6 +524,8 @@ type TcConfigBuilder =
mutable emitTailcalls: bool
mutable deterministic: bool
mutable concurrentBuild: bool
+ mutable graphBasedChecking: bool
+ mutable parallelOptimization: bool
mutable parallelIlxGen: bool
mutable emitMetadataAssembly: MetadataAssemblyGeneration
mutable preferredUiLang: string option
@@ -768,7 +770,9 @@ type TcConfigBuilder =
emitTailcalls = true
deterministic = false
concurrentBuild = true
- parallelIlxGen = FSharpExperimentalFeaturesEnabledAutomatically
+ graphBasedChecking = true
+ parallelOptimization = true
+ parallelIlxGen = true
emitMetadataAssembly = MetadataAssemblyGeneration.None
preferredUiLang = None
lcid = None
@@ -814,11 +818,7 @@ type TcConfigBuilder =
captureIdentifiersWhenParsing = false
typeCheckingConfig =
{
- TypeCheckingConfig.Mode =
- if FSharpExperimentalFeaturesEnabledAutomatically then
- TypeCheckingMode.Graph
- else
- TypeCheckingMode.Sequential
+ TypeCheckingConfig.Mode = TypeCheckingMode.Graph
DumpGraph = false
}
dumpSignatureData = false
@@ -1329,6 +1329,8 @@ type TcConfig private (data: TcConfigBuilder, validate: bool) =
member _.emitTailcalls = data.emitTailcalls
member _.deterministic = data.deterministic
member _.concurrentBuild = data.concurrentBuild
+ member _.graphBasedChecking = data.graphBasedChecking
+ member _.parallelOptimization = data.parallelOptimization
member _.parallelIlxGen = data.parallelIlxGen
member _.emitMetadataAssembly = data.emitMetadataAssembly
member _.pathMap = data.pathMap
diff --git a/src/Compiler/Driver/CompilerConfig.fsi b/src/Compiler/Driver/CompilerConfig.fsi
index 89e0039610..5a53a472d7 100644
--- a/src/Compiler/Driver/CompilerConfig.fsi
+++ b/src/Compiler/Driver/CompilerConfig.fsi
@@ -432,6 +432,10 @@ type TcConfigBuilder =
mutable concurrentBuild: bool
+ mutable graphBasedChecking: bool
+
+ mutable parallelOptimization: bool
+
mutable parallelIlxGen: bool
mutable emitMetadataAssembly: MetadataAssemblyGeneration
@@ -764,6 +768,10 @@ type TcConfig =
member concurrentBuild: bool
+ member graphBasedChecking: bool
+
+ member parallelOptimization: bool
+
member parallelIlxGen: bool
member emitMetadataAssembly: MetadataAssemblyGeneration
diff --git a/src/Compiler/Driver/CompilerOptions.fs b/src/Compiler/Driver/CompilerOptions.fs
index e742a20e13..844f0730a6 100644
--- a/src/Compiler/Driver/CompilerOptions.fs
+++ b/src/Compiler/Driver/CompilerOptions.fs
@@ -571,6 +571,15 @@ let SetDeterministicSwitch (tcConfigB: TcConfigBuilder) switch =
let SetRealsig (tcConfigB: TcConfigBuilder) switch =
tcConfigB.realsig <- (switch = OptionSwitch.On)
+let SetGraphTypeCheck (tcConfigB: TcConfigBuilder) switch =
+ tcConfigB.graphBasedChecking <- (switch = OptionSwitch.On)
+
+let SetParallelOptimization (tcConfigB: TcConfigBuilder) switch =
+ tcConfigB.parallelOptimization <- (switch = OptionSwitch.On)
+
+let SetParallelIlxGen (tcConfigB: TcConfigBuilder) switch =
+ tcConfigB.parallelIlxGen <- (switch = OptionSwitch.On)
+
let SetReferenceAssemblyOnlySwitch (tcConfigB: TcConfigBuilder) switch =
match tcConfigB.emitMetadataAssembly with
| MetadataAssemblyGeneration.None when (not tcConfigB.standalone) && tcConfigB.extraStaticLinkRoots.IsEmpty ->
@@ -1048,6 +1057,29 @@ let codeGenerationFlags isFsi (tcConfigB: TcConfigBuilder) =
None,
Some(FSComp.SR.optsReflectionFree ())
)
+
+ CompilerOption(
+ "graphbasedchecking",
+ tagNone,
+ OptionSwitch(SetGraphTypeCheck tcConfigB),
+ None,
+ Some(FSComp.SR.optsGraphBasedChecking ())
+ )
+
+ CompilerOption(
+ "paralleloptimization",
+ tagNone,
+ OptionSwitch(SetParallelOptimization tcConfigB),
+ None,
+ Some(FSComp.SR.optsParallelOptimization ())
+ )
+ CompilerOption(
+ "parallelilxgen",
+ tagNone,
+ OptionSwitch(SetParallelIlxGen tcConfigB),
+ None,
+ Some(FSComp.SR.optsParallelILXGen ())
+ )
]
if isFsi then debug @ codegen else debug @ embed @ codegen
diff --git a/src/Compiler/FSComp.txt b/src/Compiler/FSComp.txt
index 55484591ab..02a3d84b0c 100644
--- a/src/Compiler/FSComp.txt
+++ b/src/Compiler/FSComp.txt
@@ -933,6 +933,9 @@ optsEmitDebugInfoInQuotations,"Emit debug information in quotations"
optsPreferredUiLang,"Specify the preferred output language culture name (e.g. es-ES, ja-JP)"
optsNoCopyFsharpCore,"Don't copy FSharp.Core.dll along the produced binaries"
optsSignatureData,"Include F# interface information, the default is file. Essential for distributing libraries."
+optsGraphBasedChecking,"Use graph-based checking for type inference"
+optsParallelOptimization,"Enable parallel optimization."
+optsParallelILXGen,"Enable parallel ILXGen."
1046,optsUnknownSignatureData,"Invalid value '%s' for --interfacedata, valid value are: none, file, compress."
optsOptimizationData,"Specify included optimization information, the default is file. Important for distributed libraries."
1047,optsUnknownOptimizationData,"Invalid value '%s' for --optimizationdata, valid value are: none, file, compress."
diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf
index 6ff88000aa..e8093723fc 100644
--- a/src/Compiler/xlf/FSComp.txt.cs.xlf
+++ b/src/Compiler/xlf/FSComp.txt.cs.xlf
@@ -847,6 +847,11 @@
Zobrazí povolené hodnoty pro jazykovou verzi.
+
+ Use graph-based checking for type inference
+ Use graph-based checking for type inference
+
+
Invalid use of emitting a reference assembly, do not use '--standalone or --staticlink' with '--refonly or --refout'.
Neplatné použití generování referenčního sestavení, nepoužívejte --standalone ani --staticlink s --refonly nebo --refout.
@@ -862,6 +867,16 @@
Zadejte zahrnuté informace o optimalizaci, výchozí hodnota je soubor. Důležité pro distribuované knihovny.
+
+ Enable parallel ILXGen.
+ Enable parallel ILXGen.
+
+
+
+ Enable parallel optimization.
+ Enable parallel optimization.
+
+
The pdb output file name cannot match the build output filename use --pdb:filename.pdb
Název výstupního souboru pdb se nemůže shodovat s výstupním názvem souboru sestavení pomocí --pdb:filename.pdb.
diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf
index 7eedd1621e..540fe7a015 100644
--- a/src/Compiler/xlf/FSComp.txt.de.xlf
+++ b/src/Compiler/xlf/FSComp.txt.de.xlf
@@ -847,6 +847,11 @@
Anzeigen der zulässigen Werte für die Sprachversion.
+
+ Use graph-based checking for type inference
+ Use graph-based checking for type inference
+
+
Invalid use of emitting a reference assembly, do not use '--standalone or --staticlink' with '--refonly or --refout'.
Ungültige Verwendung der Ausgabe einer Referenzassembly. Verwenden Sie nicht „--standalone“ oder „--staticlink“ mit „--refonly“ oder „--refout“.
@@ -862,6 +867,16 @@
Geben Sie die enthaltenen Optimierungsinformationen an, der Standardwert ist „file“. Wichtig für verteilte Bibliotheken.
+
+ Enable parallel ILXGen.
+ Enable parallel ILXGen.
+
+
+
+ Enable parallel optimization.
+ Enable parallel optimization.
+
+
The pdb output file name cannot match the build output filename use --pdb:filename.pdb
Der Name der PDB-Ausgabedatei kann nicht mit dem Ausgabedateinamen für den Build übereinstimmen, verwenden Sie --pdb:filename.pdb
diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf
index fa499f1cd4..055d07c02b 100644
--- a/src/Compiler/xlf/FSComp.txt.es.xlf
+++ b/src/Compiler/xlf/FSComp.txt.es.xlf
@@ -847,6 +847,11 @@
Muestra los valores permitidos para la versión del lenguaje.
+
+ Use graph-based checking for type inference
+ Use graph-based checking for type inference
+
+
Invalid use of emitting a reference assembly, do not use '--standalone or --staticlink' with '--refonly or --refout'.
Uso no válido de emisión de un ensamblado de referencia, no use '--standalone or --staticlink' con '--refonly or --refout'.
@@ -862,6 +867,16 @@
Especifique la información de optimización incluida, el valor predeterminado es el archivo. Importante para las bibliotecas distribuidas.
+
+ Enable parallel ILXGen.
+ Enable parallel ILXGen.
+
+
+
+ Enable parallel optimization.
+ Enable parallel optimization.
+
+
The pdb output file name cannot match the build output filename use --pdb:filename.pdb
El nombre del archivo de salida pdb no puede coincidir con el nombre de archivo de salida de compilación. Use --pdb:filename.pdb
diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf
index 7ad21f1b38..14c82a3a87 100644
--- a/src/Compiler/xlf/FSComp.txt.fr.xlf
+++ b/src/Compiler/xlf/FSComp.txt.fr.xlf
@@ -847,6 +847,11 @@
Affichez les valeurs autorisées pour la version du langage.
+
+ Use graph-based checking for type inference
+ Use graph-based checking for type inference
+
+
Invalid use of emitting a reference assembly, do not use '--standalone or --staticlink' with '--refonly or --refout'.
Utilisation non valide de l’émission d’un assembly de référence, n’utilisez pas '--standalone ou --staticlink' avec '--refonly ou --refout'.
@@ -862,6 +867,16 @@
Spécifiez les informations d’optimisation incluses, la valeur par défaut est le fichier. Important pour les bibliothèques distribuées.
+
+ Enable parallel ILXGen.
+ Enable parallel ILXGen.
+
+
+
+ Enable parallel optimization.
+ Enable parallel optimization.
+
+
The pdb output file name cannot match the build output filename use --pdb:filename.pdb
Le nom du fichier de sortie pdb ne peut pas correspondre au nom de fichier de sortie de build utilisé --pdb:filename.pdb.
diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf
index 80c600dcfb..f163113608 100644
--- a/src/Compiler/xlf/FSComp.txt.it.xlf
+++ b/src/Compiler/xlf/FSComp.txt.it.xlf
@@ -847,6 +847,11 @@
Visualizzare i valori consentiti per la versione della lingua.
+
+ Use graph-based checking for type inference
+ Use graph-based checking for type inference
+
+
Invalid use of emitting a reference assembly, do not use '--standalone or --staticlink' with '--refonly or --refout'.
Utilizzo non valido della creazione di un assembly di riferimento. Non usare insieme '--standalone o --staticlink' con '--refonly o --refout'..
@@ -862,6 +867,16 @@
Specificare le informazioni di ottimizzazione incluse. Il valore predefinito è file. Important per le librerie distribuite.
+
+ Enable parallel ILXGen.
+ Enable parallel ILXGen.
+
+
+
+ Enable parallel optimization.
+ Enable parallel optimization.
+
+
The pdb output file name cannot match the build output filename use --pdb:filename.pdb
Il nome del file di output pdb non può corrispondere all’uso del nome file di output della compilazione --pdb:filename.pdb
diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf
index 94043ae19d..a3c922c8dd 100644
--- a/src/Compiler/xlf/FSComp.txt.ja.xlf
+++ b/src/Compiler/xlf/FSComp.txt.ja.xlf
@@ -847,6 +847,11 @@
言語バージョンで許可されている値を表示します。
+
+ Use graph-based checking for type inference
+ Use graph-based checking for type inference
+
+
Invalid use of emitting a reference assembly, do not use '--standalone or --staticlink' with '--refonly or --refout'.
参照アセンブリの出力の使用が無効です。'--standalone または --staticlink' を '--relabelly または --refout' と共に使用しないでください。
@@ -862,6 +867,16 @@
含まれる最適化情報を指定します。既定値は file です。分散ライブラリの場合は重要です。
+
+ Enable parallel ILXGen.
+ Enable parallel ILXGen.
+
+
+
+ Enable parallel optimization.
+ Enable parallel optimization.
+
+
The pdb output file name cannot match the build output filename use --pdb:filename.pdb
PDB 出力ファイル名がビルド出力ファイル名と一致しません - --pdb:filename.pdb を使用してください
diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf
index d55738f005..58aaded77e 100644
--- a/src/Compiler/xlf/FSComp.txt.ko.xlf
+++ b/src/Compiler/xlf/FSComp.txt.ko.xlf
@@ -847,6 +847,11 @@
언어 버전에 허용되는 값을 표시합니다.
+
+ Use graph-based checking for type inference
+ Use graph-based checking for type inference
+
+
Invalid use of emitting a reference assembly, do not use '--standalone or --staticlink' with '--refonly or --refout'.
참조 어셈블리 내보내기를 잘못 사용했습니다. '--refonly 또는 --refout'과 함께 '--standalone 또는 --staticlink'를 사용하지 마세요.
@@ -862,6 +867,16 @@
포함된 최적화 정보를 지정합니다. 기본값은 파일입니다. 분산 라이브러리에 중요합니다.
+
+ Enable parallel ILXGen.
+ Enable parallel ILXGen.
+
+
+
+ Enable parallel optimization.
+ Enable parallel optimization.
+
+
The pdb output file name cannot match the build output filename use --pdb:filename.pdb
pdb 출력 파일 이름은 빌드 출력 파일 이름 사용 --pdb:filename.pdb와 일치할 수 없습니다.
diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf
index b054772bc4..cbd60e5426 100644
--- a/src/Compiler/xlf/FSComp.txt.pl.xlf
+++ b/src/Compiler/xlf/FSComp.txt.pl.xlf
@@ -847,6 +847,11 @@
Wyświetl dozwolone wartości dla wersji językowej.
+
+ Use graph-based checking for type inference
+ Use graph-based checking for type inference
+
+
Invalid use of emitting a reference assembly, do not use '--standalone or --staticlink' with '--refonly or --refout'.
Nieprawidłowe użycie emitowania zestawu odwołania. Nie używaj elementu „--standalone ani --staticlink” z elementem „--refonly lub --refout”.
@@ -862,6 +867,16 @@
Określ dołączone informacje o optymalizacji. Wartość domyślna to plik. Ważne dla bibliotek rozproszonych.
+
+ Enable parallel ILXGen.
+ Enable parallel ILXGen.
+
+
+
+ Enable parallel optimization.
+ Enable parallel optimization.
+
+
The pdb output file name cannot match the build output filename use --pdb:filename.pdb
Nazwa pliku wyjściowego pdb nie może być zgodna z nazwą pliku wyjściowego kompilacji, użyj parametru --pdb:filename.pdb
diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf
index ea7eabd09e..2a5e199c9e 100644
--- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf
+++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf
@@ -847,6 +847,11 @@
Exiba os valores permitidos para a versão do idioma.
+
+ Use graph-based checking for type inference
+ Use graph-based checking for type inference
+
+
Invalid use of emitting a reference assembly, do not use '--standalone or --staticlink' with '--refonly or --refout'.
Uso inválido da emissão de um assembly de referência, não use '--standalone ou --staticlink' com '--refonly ou --refout'.
@@ -862,6 +867,16 @@
Especifique as informações de otimização incluídas, o padrão é o file. Importante para bibliotecas distribuídas.
+
+ Enable parallel ILXGen.
+ Enable parallel ILXGen.
+
+
+
+ Enable parallel optimization.
+ Enable parallel optimization.
+
+
The pdb output file name cannot match the build output filename use --pdb:filename.pdb
O nome do arquivo de saída pdb não pode corresponder ao nome do arquivo de saída do build. Use --pdb:filename.pdb
diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf
index 74b19581d7..0c3df79004 100644
--- a/src/Compiler/xlf/FSComp.txt.ru.xlf
+++ b/src/Compiler/xlf/FSComp.txt.ru.xlf
@@ -847,6 +847,11 @@
Отображение допустимых значений для версии языка.
+
+ Use graph-based checking for type inference
+ Use graph-based checking for type inference
+
+
Invalid use of emitting a reference assembly, do not use '--standalone or --staticlink' with '--refonly or --refout'.
Недопустимое использование при создании базовой сборки. Не используйте "--standalone or --staticlink" с "--refonly or --refout".
@@ -862,6 +867,16 @@
Укажите включенные сведения об оптимизации, по умолчанию это файл. Необходимо для распределенных библиотек.
+
+ Enable parallel ILXGen.
+ Enable parallel ILXGen.
+
+
+
+ Enable parallel optimization.
+ Enable parallel optimization.
+
+
The pdb output file name cannot match the build output filename use --pdb:filename.pdb
Имя выходного файла pdb не может совпадать с именем выходного файла сборки. Используйте --pdb:filename.pdb
diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf
index 7bb1622d4a..fbae300a27 100644
--- a/src/Compiler/xlf/FSComp.txt.tr.xlf
+++ b/src/Compiler/xlf/FSComp.txt.tr.xlf
@@ -847,6 +847,11 @@
Dil sürümü için izin verilen değerleri görüntüleyin.
+
+ Use graph-based checking for type inference
+ Use graph-based checking for type inference
+
+
Invalid use of emitting a reference assembly, do not use '--standalone or --staticlink' with '--refonly or --refout'.
Başvuru bütünleştirilmiş kodu oluşturmanın geçersiz kullanımı; '--standalone’ veya ‘--staticlink' seçeneğini '--refonly’ veya ‘--refout' ile birlikte kullanmayın.
@@ -862,6 +867,16 @@
Dahil edilen iyileştirme bilgilerini belirtin; varsayılan değer dosyadır. Dağıtılmış kitaplıklar için önemlidir.
+
+ Enable parallel ILXGen.
+ Enable parallel ILXGen.
+
+
+
+ Enable parallel optimization.
+ Enable parallel optimization.
+
+
The pdb output file name cannot match the build output filename use --pdb:filename.pdb
pdb çıkış dosyası adı, derleme çıkış dosya adı kullanımı --pdb:filename.pdb ile eşleşmiyor
diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf
index 07d149b0f6..a9bb134a91 100644
--- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf
+++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf
@@ -847,6 +847,11 @@
显示语言版本的允许值。
+
+ Use graph-based checking for type inference
+ Use graph-based checking for type inference
+
+
Invalid use of emitting a reference assembly, do not use '--standalone or --staticlink' with '--refonly or --refout'.
发出引用程序集的使用无效,请勿将 '--standalone 或 --staticlink' 与 '--refonly 或 --refout' 一起使用。
@@ -862,6 +867,16 @@
指定包含的优化信息,默认值为文件。对于分发库非常重要。
+
+ Enable parallel ILXGen.
+ Enable parallel ILXGen.
+
+
+
+ Enable parallel optimization.
+ Enable parallel optimization.
+
+
The pdb output file name cannot match the build output filename use --pdb:filename.pdb
pdb 输出文件名不能与生成输出文件名 use --pdb: filename.pdb 匹配
diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf
index 3e5b8d167a..8daac864d6 100644
--- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf
+++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf
@@ -847,6 +847,11 @@
顯示語言版本的允許值。
+
+ Use graph-based checking for type inference
+ Use graph-based checking for type inference
+
+
Invalid use of emitting a reference assembly, do not use '--standalone or --staticlink' with '--refonly or --refout'.
發出參考組件的使用無效,請勿同時使用 '--standalone 或 '--refonly' 和 '--refout'。
@@ -862,6 +867,16 @@
指定包含的最佳化資訊,預設值為檔案。對於分散式文件庫很重要。
+
+ Enable parallel ILXGen.
+ Enable parallel ILXGen.
+
+
+
+ Enable parallel optimization.
+ Enable parallel optimization.
+
+
The pdb output file name cannot match the build output filename use --pdb:filename.pdb
pdb 輸出檔案名與使用 --pdb:filename.pdb 的建置輸出檔案名不相符
diff --git a/src/FSharp.Build/Fsc.fs b/src/FSharp.Build/Fsc.fs
index 6682208c0a..6fbe78c838 100644
--- a/src/FSharp.Build/Fsc.fs
+++ b/src/FSharp.Build/Fsc.fs
@@ -69,6 +69,9 @@ type public Fsc() as this =
let mutable targetProfile: string MaybeNull = null
let mutable targetType: string MaybeNull = null
let mutable toolExe: string = "fsc.exe"
+ let mutable graphBasedChecking: bool = true
+ let mutable parallelOptimization: bool = true
+ let mutable parallelIlxGen: bool = true
let defaultToolPath =
let locationOfThisDll =
@@ -358,6 +361,24 @@ type public Fsc() as this =
if refOnly then
builder.AppendSwitch("--refonly")
+ // graphbasedchecking
+ if graphBasedChecking then
+ builder.AppendSwitch("--graphbasedchecking+")
+ else
+ builder.AppendSwitch("--graphbasedchecking-")
+
+ // paralleloptimization
+ if parallelOptimization then
+ builder.AppendSwitch("--paralleloptimization+")
+ else
+ builder.AppendSwitch("--paralleloptimization-")
+
+ // parallelilxgen
+ if parallelIlxGen then
+ builder.AppendSwitch("--parallelilxgen+")
+ else
+ builder.AppendSwitch("--parallelilxgen-")
+
builder
// --baseaddress
@@ -661,6 +682,21 @@ type public Fsc() as this =
with get () = List.toArray commandLineArgs
and set (p) = commandLineArgs <- (List.ofArray p)
+ // --graphbasedchecking[+-]
+ member _.GraphBasedChecking
+ with get () = graphBasedChecking
+ and set (b) = graphBasedChecking <- b
+
+ // --paralleloptimization[+-]
+ member _.ParallelOptimization
+ with get () = parallelOptimization
+ and set (b) = parallelOptimization <- b
+
+ // --parallelilxgen[+-]
+ member _.ParallelIlxGen
+ with get () = parallelIlxGen
+ and set (b) = parallelIlxGen <- b
+
// ToolTask methods
override _.ToolName = "fsc.exe"
diff --git a/tests/FSharp.Compiler.ComponentTests/CompilerOptions/fsc/misc/compiler_help_output.bsl b/tests/FSharp.Compiler.ComponentTests/CompilerOptions/fsc/misc/compiler_help_output.bsl
index 8e20779911..7623c82b26 100644
--- a/tests/FSharp.Compiler.ComponentTests/CompilerOptions/fsc/misc/compiler_help_output.bsl
+++ b/tests/FSharp.Compiler.ComponentTests/CompilerOptions/fsc/misc/compiler_help_output.bsl
@@ -63,6 +63,9 @@ Copyright (c) Microsoft Corporation. All Rights Reserved.
--pathmap: Maps physical paths to source path names output by the compiler
--crossoptimize[+|-] Enable or disable cross-module optimizations
--reflectionfree Disable implicit generation of constructs using reflection
+--graphbasedchecking[+|-] Use graph-based checking for type inference
+--paralleloptimization[+|-] Enable parallel optimization.
+--parallelilxgen[+|-] Enable parallel ILXGen.
- ERRORS AND WARNINGS -
diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01_RealInternalSignatureOff.fs.il.netcore.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01_RealInternalSignatureOff.fs.il.netcore.release.bsl
index b5b5eadeba..af9fc85a1d 100644
--- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01_RealInternalSignatureOff.fs.il.netcore.release.bsl
+++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01_RealInternalSignatureOff.fs.il.netcore.release.bsl
@@ -17,16 +17,8 @@
.hash algorithm 0x00008004
.ver 0:0:0:0
}
-.mresource public FSharpSignatureCompressedData.assembly
-{
-
-
-}
-.mresource public FSharpOptimizationCompressedData.assembly
-{
-
-
-}
+.mresource public FSharpSignatureCompressedData.assembly { }
+.mresource public FSharpOptimizationCompressedData.assembly { }
.module assembly.exe
.imagebase {value}
@@ -1107,6 +1099,42 @@
}
}
+ .method public static int32 select1(class Match01/Test1 x) cil managed
+ {
+
+ .maxstack 8
+ IL_0000: nop
+ IL_0001: ldarg.0
+ IL_0002: call instance int32 Match01/Test1::get_Tag()
+ IL_0007: switch (
+ IL_001c,
+ IL_0028,
+ IL_002a,
+ IL_002c)
+ IL_001c: ldarg.0
+ IL_001d: castclass Match01/Test1/X11
+ IL_0022: ldfld int32 Match01/Test1/X11::item
+ IL_0027: ret
+
+ IL_0028: ldc.i4.2
+ IL_0029: ret
+
+ IL_002a: ldc.i4.3
+ IL_002b: ret
+
+ IL_002c: ldc.i4.4
+ IL_002d: ret
+ }
+
+ .method public static int32 fm(class Match01/Test1 y) cil managed
+ {
+
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call int32 Match01::select1(class Match01/Test1)
+ IL_0006: ret
+ }
+
.method assembly static int32 CompareTo$cont@4(class Match01/Test1 this,
class Match01/Test1 obj,
class [FSharp.Core]Microsoft.FSharp.Core.Unit unitVar) cil managed
@@ -1376,42 +1404,6 @@
IL_00fc: ret
}
- .method public static int32 select1(class Match01/Test1 x) cil managed
- {
-
- .maxstack 8
- IL_0000: nop
- IL_0001: ldarg.0
- IL_0002: call instance int32 Match01/Test1::get_Tag()
- IL_0007: switch (
- IL_001c,
- IL_0028,
- IL_002a,
- IL_002c)
- IL_001c: ldarg.0
- IL_001d: castclass Match01/Test1/X11
- IL_0022: ldfld int32 Match01/Test1/X11::item
- IL_0027: ret
-
- IL_0028: ldc.i4.2
- IL_0029: ret
-
- IL_002a: ldc.i4.3
- IL_002b: ret
-
- IL_002c: ldc.i4.4
- IL_002d: ret
- }
-
- .method public static int32 fm(class Match01/Test1 y) cil managed
- {
-
- .maxstack 8
- IL_0000: ldarg.0
- IL_0001: call int32 Match01::select1(class Match01/Test1)
- IL_0006: ret
- }
-
}
.class private abstract auto ansi sealed ''.$Match01
@@ -1431,4 +1423,3 @@
-
diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction16.fs.il.netcore.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction16.fs.il.netcore.debug.bsl
index 32456c5443..bfb35df04d 100644
--- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction16.fs.il.netcore.debug.bsl
+++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction16.fs.il.netcore.debug.bsl
@@ -17,16 +17,8 @@
.hash algorithm 0x00008004
.ver 0:0:0:0
}
-.mresource public FSharpSignatureCompressedData.assembly
-{
-
-
-}
-.mresource public FSharpOptimizationCompressedData.assembly
-{
-
-
-}
+.mresource public FSharpSignatureCompressedData.assembly { }
+.mresource public FSharpOptimizationCompressedData.assembly { }
.module assembly.exe
.imagebase {value}
@@ -173,95 +165,77 @@
int32 V_5,
class [runtime]System.Collections.IComparer V_6,
int32 V_7,
- int32 V_8,
- class [runtime]System.Collections.IComparer V_9,
- int32 V_10,
- int32 V_11,
- class [runtime]System.Collections.IComparer V_12,
- int32 V_13,
- int32 V_14)
+ int32 V_8)
IL_0000: ldarg.0
- IL_0001: brfalse IL_007d
+ IL_0001: brfalse.s IL_0063
- IL_0006: ldarg.1
- IL_0007: brfalse.s IL_007b
-
- IL_0009: ldarg.0
- IL_000a: pop
- IL_000b: ldarg.0
- IL_000c: stloc.0
- IL_000d: ldarg.1
- IL_000e: stloc.1
- IL_000f: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer()
- IL_0014: stloc.3
- IL_0015: ldloc.0
- IL_0016: ldfld int32 assembly/U::item1
- IL_001b: stloc.s V_4
- IL_001d: ldloc.1
- IL_001e: ldfld int32 assembly/U::item1
- IL_0023: stloc.s V_5
- IL_0025: ldloc.3
- IL_0026: stloc.s V_6
+ IL_0003: ldarg.1
+ IL_0004: brfalse.s IL_0061
+
+ IL_0006: ldarg.0
+ IL_0007: pop
+ IL_0008: ldarg.0
+ IL_0009: stloc.0
+ IL_000a: ldarg.1
+ IL_000b: stloc.1
+ IL_000c: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer()
+ IL_0011: stloc.3
+ IL_0012: ldloc.0
+ IL_0013: ldfld int32 assembly/U::item1
+ IL_0018: stloc.s V_4
+ IL_001a: ldloc.1
+ IL_001b: ldfld int32 assembly/U::item1
+ IL_0020: stloc.s V_5
+ IL_0022: ldloc.s V_4
+ IL_0024: ldloc.s V_5
+ IL_0026: cgt
IL_0028: ldloc.s V_4
- IL_002a: stloc.s V_7
- IL_002c: ldloc.s V_5
- IL_002e: stloc.s V_8
- IL_0030: ldloc.s V_7
- IL_0032: ldloc.s V_8
- IL_0034: cgt
- IL_0036: ldloc.s V_7
- IL_0038: ldloc.s V_8
- IL_003a: clt
- IL_003c: sub
- IL_003d: stloc.2
- IL_003e: ldloc.2
- IL_003f: ldc.i4.0
- IL_0040: bge.s IL_0044
-
- IL_0042: ldloc.2
- IL_0043: ret
-
- IL_0044: ldloc.2
- IL_0045: ldc.i4.0
- IL_0046: ble.s IL_004a
-
- IL_0048: ldloc.2
- IL_0049: ret
-
- IL_004a: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer()
- IL_004f: stloc.s V_9
- IL_0051: ldloc.0
- IL_0052: ldfld int32 assembly/U::item2
- IL_0057: stloc.s V_10
- IL_0059: ldloc.1
- IL_005a: ldfld int32 assembly/U::item2
- IL_005f: stloc.s V_11
- IL_0061: ldloc.s V_9
- IL_0063: stloc.s V_12
- IL_0065: ldloc.s V_10
- IL_0067: stloc.s V_13
- IL_0069: ldloc.s V_11
- IL_006b: stloc.s V_14
- IL_006d: ldloc.s V_13
- IL_006f: ldloc.s V_14
- IL_0071: cgt
- IL_0073: ldloc.s V_13
- IL_0075: ldloc.s V_14
- IL_0077: clt
- IL_0079: sub
- IL_007a: ret
-
- IL_007b: ldc.i4.1
- IL_007c: ret
-
- IL_007d: ldarg.1
- IL_007e: brfalse.s IL_0082
-
- IL_0080: ldc.i4.m1
- IL_0081: ret
-
- IL_0082: ldc.i4.0
- IL_0083: ret
+ IL_002a: ldloc.s V_5
+ IL_002c: clt
+ IL_002e: sub
+ IL_002f: stloc.2
+ IL_0030: ldloc.2
+ IL_0031: ldc.i4.0
+ IL_0032: bge.s IL_0036
+
+ IL_0034: ldloc.2
+ IL_0035: ret
+
+ IL_0036: ldloc.2
+ IL_0037: ldc.i4.0
+ IL_0038: ble.s IL_003c
+
+ IL_003a: ldloc.2
+ IL_003b: ret
+
+ IL_003c: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer()
+ IL_0041: stloc.s V_6
+ IL_0043: ldloc.0
+ IL_0044: ldfld int32 assembly/U::item2
+ IL_0049: stloc.s V_7
+ IL_004b: ldloc.1
+ IL_004c: ldfld int32 assembly/U::item2
+ IL_0051: stloc.s V_8
+ IL_0053: ldloc.s V_7
+ IL_0055: ldloc.s V_8
+ IL_0057: cgt
+ IL_0059: ldloc.s V_7
+ IL_005b: ldloc.s V_8
+ IL_005d: clt
+ IL_005f: sub
+ IL_0060: ret
+
+ IL_0061: ldc.i4.1
+ IL_0062: ret
+
+ IL_0063: ldarg.1
+ IL_0064: brfalse.s IL_0068
+
+ IL_0066: ldc.i4.m1
+ IL_0067: ret
+
+ IL_0068: ldc.i4.0
+ IL_0069: ret
}
.method public hidebysig virtual final instance int32 CompareTo(object obj) cil managed
@@ -292,22 +266,16 @@
int32 V_6,
class [runtime]System.Collections.IComparer V_7,
int32 V_8,
- int32 V_9,
- class [runtime]System.Collections.IComparer V_10,
- int32 V_11,
- int32 V_12,
- class [runtime]System.Collections.IComparer V_13,
- int32 V_14,
- int32 V_15)
+ int32 V_9)
IL_0000: ldarg.1
IL_0001: unbox.any assembly/U
IL_0006: stloc.0
IL_0007: ldarg.0
- IL_0008: brfalse.s IL_0080
+ IL_0008: brfalse.s IL_0068
IL_000a: ldarg.1
IL_000b: unbox.any assembly/U
- IL_0010: brfalse.s IL_007e
+ IL_0010: brfalse.s IL_0066
IL_0012: ldarg.0
IL_0013: pop
@@ -323,69 +291,57 @@
IL_0023: ldloc.2
IL_0024: ldfld int32 assembly/U::item1
IL_0029: stloc.s V_6
- IL_002b: ldloc.s V_4
- IL_002d: stloc.s V_7
- IL_002f: ldloc.s V_5
- IL_0031: stloc.s V_8
+ IL_002b: ldloc.s V_5
+ IL_002d: ldloc.s V_6
+ IL_002f: cgt
+ IL_0031: ldloc.s V_5
IL_0033: ldloc.s V_6
- IL_0035: stloc.s V_9
- IL_0037: ldloc.s V_8
- IL_0039: ldloc.s V_9
- IL_003b: cgt
- IL_003d: ldloc.s V_8
- IL_003f: ldloc.s V_9
- IL_0041: clt
- IL_0043: sub
- IL_0044: stloc.3
- IL_0045: ldloc.3
- IL_0046: ldc.i4.0
- IL_0047: bge.s IL_004b
-
- IL_0049: ldloc.3
- IL_004a: ret
-
- IL_004b: ldloc.3
- IL_004c: ldc.i4.0
- IL_004d: ble.s IL_0051
-
- IL_004f: ldloc.3
- IL_0050: ret
-
- IL_0051: ldarg.2
- IL_0052: stloc.s V_10
- IL_0054: ldloc.1
- IL_0055: ldfld int32 assembly/U::item2
- IL_005a: stloc.s V_11
- IL_005c: ldloc.2
- IL_005d: ldfld int32 assembly/U::item2
- IL_0062: stloc.s V_12
- IL_0064: ldloc.s V_10
- IL_0066: stloc.s V_13
- IL_0068: ldloc.s V_11
- IL_006a: stloc.s V_14
- IL_006c: ldloc.s V_12
- IL_006e: stloc.s V_15
- IL_0070: ldloc.s V_14
- IL_0072: ldloc.s V_15
- IL_0074: cgt
- IL_0076: ldloc.s V_14
- IL_0078: ldloc.s V_15
- IL_007a: clt
- IL_007c: sub
- IL_007d: ret
-
- IL_007e: ldc.i4.1
- IL_007f: ret
-
- IL_0080: ldarg.1
- IL_0081: unbox.any assembly/U
- IL_0086: brfalse.s IL_008a
-
- IL_0088: ldc.i4.m1
- IL_0089: ret
-
- IL_008a: ldc.i4.0
- IL_008b: ret
+ IL_0035: clt
+ IL_0037: sub
+ IL_0038: stloc.3
+ IL_0039: ldloc.3
+ IL_003a: ldc.i4.0
+ IL_003b: bge.s IL_003f
+
+ IL_003d: ldloc.3
+ IL_003e: ret
+
+ IL_003f: ldloc.3
+ IL_0040: ldc.i4.0
+ IL_0041: ble.s IL_0045
+
+ IL_0043: ldloc.3
+ IL_0044: ret
+
+ IL_0045: ldarg.2
+ IL_0046: stloc.s V_7
+ IL_0048: ldloc.1
+ IL_0049: ldfld int32 assembly/U::item2
+ IL_004e: stloc.s V_8
+ IL_0050: ldloc.2
+ IL_0051: ldfld int32 assembly/U::item2
+ IL_0056: stloc.s V_9
+ IL_0058: ldloc.s V_8
+ IL_005a: ldloc.s V_9
+ IL_005c: cgt
+ IL_005e: ldloc.s V_8
+ IL_0060: ldloc.s V_9
+ IL_0062: clt
+ IL_0064: sub
+ IL_0065: ret
+
+ IL_0066: ldc.i4.1
+ IL_0067: ret
+
+ IL_0068: ldarg.1
+ IL_0069: unbox.any assembly/U
+ IL_006e: brfalse.s IL_0072
+
+ IL_0070: ldc.i4.m1
+ IL_0071: ret
+
+ IL_0072: ldc.i4.0
+ IL_0073: ret
}
.method public hidebysig virtual final instance int32 GetHashCode(class [runtime]System.Collections.IEqualityComparer comp) cil managed
@@ -396,13 +352,9 @@
.locals init (int32 V_0,
class assembly/U V_1,
class [runtime]System.Collections.IEqualityComparer V_2,
- int32 V_3,
- class [runtime]System.Collections.IEqualityComparer V_4,
- class [runtime]System.Collections.IEqualityComparer V_5,
- int32 V_6,
- class [runtime]System.Collections.IEqualityComparer V_7)
+ class [runtime]System.Collections.IEqualityComparer V_3)
IL_0000: ldarg.0
- IL_0001: brfalse.s IL_0049
+ IL_0001: brfalse.s IL_003b
IL_0003: ldc.i4.0
IL_0004: stloc.0
@@ -417,44 +369,36 @@
IL_0011: stloc.2
IL_0012: ldloc.1
IL_0013: ldfld int32 assembly/U::item2
- IL_0018: stloc.3
- IL_0019: ldloc.2
- IL_001a: stloc.s V_4
- IL_001c: ldloc.3
- IL_001d: ldloc.0
- IL_001e: ldc.i4.6
- IL_001f: shl
- IL_0020: ldloc.0
- IL_0021: ldc.i4.2
- IL_0022: shr
- IL_0023: add
- IL_0024: add
- IL_0025: add
- IL_0026: stloc.0
- IL_0027: ldc.i4 0x9e3779b9
- IL_002c: ldarg.1
- IL_002d: stloc.s V_5
- IL_002f: ldloc.1
- IL_0030: ldfld int32 assembly/U::item1
- IL_0035: stloc.s V_6
- IL_0037: ldloc.s V_5
- IL_0039: stloc.s V_7
- IL_003b: ldloc.s V_6
- IL_003d: ldloc.0
- IL_003e: ldc.i4.6
- IL_003f: shl
- IL_0040: ldloc.0
- IL_0041: ldc.i4.2
- IL_0042: shr
- IL_0043: add
- IL_0044: add
- IL_0045: add
- IL_0046: stloc.0
- IL_0047: ldloc.0
- IL_0048: ret
-
- IL_0049: ldc.i4.0
- IL_004a: ret
+ IL_0018: ldloc.0
+ IL_0019: ldc.i4.6
+ IL_001a: shl
+ IL_001b: ldloc.0
+ IL_001c: ldc.i4.2
+ IL_001d: shr
+ IL_001e: add
+ IL_001f: add
+ IL_0020: add
+ IL_0021: stloc.0
+ IL_0022: ldc.i4 0x9e3779b9
+ IL_0027: ldarg.1
+ IL_0028: stloc.3
+ IL_0029: ldloc.1
+ IL_002a: ldfld int32 assembly/U::item1
+ IL_002f: ldloc.0
+ IL_0030: ldc.i4.6
+ IL_0031: shl
+ IL_0032: ldloc.0
+ IL_0033: ldc.i4.2
+ IL_0034: shr
+ IL_0035: add
+ IL_0036: add
+ IL_0037: add
+ IL_0038: stloc.0
+ IL_0039: ldloc.0
+ IL_003a: ret
+
+ IL_003b: ldc.i4.0
+ IL_003c: ret
}
.method public hidebysig virtual final instance int32 GetHashCode() cil managed
@@ -479,18 +423,12 @@
class assembly/U V_1,
class assembly/U V_2,
class [runtime]System.Collections.IEqualityComparer V_3,
- int32 V_4,
- int32 V_5,
- class [runtime]System.Collections.IEqualityComparer V_6,
- class [runtime]System.Collections.IEqualityComparer V_7,
- int32 V_8,
- int32 V_9,
- class [runtime]System.Collections.IEqualityComparer V_10)
+ class [runtime]System.Collections.IEqualityComparer V_4)
IL_0000: ldarg.0
- IL_0001: brfalse.s IL_004d
+ IL_0001: brfalse.s IL_0036
IL_0003: ldarg.1
- IL_0004: brfalse.s IL_004b
+ IL_0004: brfalse.s IL_0034
IL_0006: ldarg.1
IL_0007: stloc.0
@@ -504,44 +442,32 @@
IL_000f: stloc.3
IL_0010: ldloc.1
IL_0011: ldfld int32 assembly/U::item1
- IL_0016: stloc.s V_4
- IL_0018: ldloc.2
- IL_0019: ldfld int32 assembly/U::item1
- IL_001e: stloc.s V_5
- IL_0020: ldloc.3
- IL_0021: stloc.s V_6
- IL_0023: ldloc.s V_4
- IL_0025: ldloc.s V_5
- IL_0027: ceq
- IL_0029: brfalse.s IL_0049
-
- IL_002b: ldarg.2
- IL_002c: stloc.s V_7
- IL_002e: ldloc.1
- IL_002f: ldfld int32 assembly/U::item2
- IL_0034: stloc.s V_8
- IL_0036: ldloc.2
- IL_0037: ldfld int32 assembly/U::item2
- IL_003c: stloc.s V_9
- IL_003e: ldloc.s V_7
- IL_0040: stloc.s V_10
- IL_0042: ldloc.s V_8
- IL_0044: ldloc.s V_9
- IL_0046: ceq
- IL_0048: ret
-
- IL_0049: ldc.i4.0
- IL_004a: ret
-
- IL_004b: ldc.i4.0
- IL_004c: ret
-
- IL_004d: ldarg.1
- IL_004e: ldnull
- IL_004f: cgt.un
- IL_0051: ldc.i4.0
- IL_0052: ceq
- IL_0054: ret
+ IL_0016: ldloc.2
+ IL_0017: ldfld int32 assembly/U::item1
+ IL_001c: ceq
+ IL_001e: brfalse.s IL_0032
+
+ IL_0020: ldarg.2
+ IL_0021: stloc.s V_4
+ IL_0023: ldloc.1
+ IL_0024: ldfld int32 assembly/U::item2
+ IL_0029: ldloc.2
+ IL_002a: ldfld int32 assembly/U::item2
+ IL_002f: ceq
+ IL_0031: ret
+
+ IL_0032: ldc.i4.0
+ IL_0033: ret
+
+ IL_0034: ldc.i4.0
+ IL_0035: ret
+
+ IL_0036: ldarg.1
+ IL_0037: ldnull
+ IL_0038: cgt.un
+ IL_003a: ldc.i4.0
+ IL_003b: ceq
+ IL_003d: ret
}
.method public hidebysig virtual final
@@ -699,4 +625,3 @@
-
diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction17.fs.il.netcore.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction17.fs.il.netcore.debug.bsl
index a65cea31c6..32a7a8142d 100644
--- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction17.fs.il.netcore.debug.bsl
+++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction17.fs.il.netcore.debug.bsl
@@ -17,16 +17,8 @@
.hash algorithm 0x00008004
.ver 0:0:0:0
}
-.mresource public FSharpSignatureCompressedData.assembly
-{
-
-
-}
-.mresource public FSharpOptimizationCompressedData.assembly
-{
-
-
-}
+.mresource public FSharpSignatureCompressedData.assembly { }
+.mresource public FSharpOptimizationCompressedData.assembly { }
.module assembly.exe
.imagebase {value}
@@ -124,18 +116,12 @@
int32 V_3,
class [runtime]System.Collections.IComparer V_4,
int32 V_5,
- int32 V_6,
- class [runtime]System.Collections.IComparer V_7,
- int32 V_8,
- int32 V_9,
- class [runtime]System.Collections.IComparer V_10,
- int32 V_11,
- int32 V_12)
+ int32 V_6)
IL_0000: ldarg.0
- IL_0001: brfalse.s IL_0070
+ IL_0001: brfalse.s IL_0057
IL_0003: ldarg.1
- IL_0004: brfalse.s IL_006e
+ IL_0004: brfalse.s IL_0055
IL_0006: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer()
IL_000b: stloc.1
@@ -145,68 +131,56 @@
IL_0013: ldarg.1
IL_0014: ldfld int32 assembly/R::x@
IL_0019: stloc.3
- IL_001a: ldloc.1
- IL_001b: stloc.s V_4
- IL_001d: ldloc.2
- IL_001e: stloc.s V_5
- IL_0020: ldloc.3
- IL_0021: stloc.s V_6
- IL_0023: ldloc.s V_5
- IL_0025: ldloc.s V_6
- IL_0027: cgt
- IL_0029: ldloc.s V_5
- IL_002b: ldloc.s V_6
- IL_002d: clt
- IL_002f: sub
- IL_0030: stloc.0
- IL_0031: ldloc.0
- IL_0032: ldc.i4.0
- IL_0033: bge.s IL_0037
-
- IL_0035: ldloc.0
- IL_0036: ret
+ IL_001a: ldloc.2
+ IL_001b: ldloc.3
+ IL_001c: cgt
+ IL_001e: ldloc.2
+ IL_001f: ldloc.3
+ IL_0020: clt
+ IL_0022: sub
+ IL_0023: stloc.0
+ IL_0024: ldloc.0
+ IL_0025: ldc.i4.0
+ IL_0026: bge.s IL_002a
+
+ IL_0028: ldloc.0
+ IL_0029: ret
- IL_0037: ldloc.0
- IL_0038: ldc.i4.0
- IL_0039: ble.s IL_003d
-
- IL_003b: ldloc.0
- IL_003c: ret
-
- IL_003d: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer()
- IL_0042: stloc.s V_7
- IL_0044: ldarg.0
- IL_0045: ldfld int32 assembly/R::y@
- IL_004a: stloc.s V_8
- IL_004c: ldarg.1
- IL_004d: ldfld int32 assembly/R::y@
- IL_0052: stloc.s V_9
- IL_0054: ldloc.s V_7
- IL_0056: stloc.s V_10
- IL_0058: ldloc.s V_8
- IL_005a: stloc.s V_11
- IL_005c: ldloc.s V_9
- IL_005e: stloc.s V_12
- IL_0060: ldloc.s V_11
- IL_0062: ldloc.s V_12
- IL_0064: cgt
- IL_0066: ldloc.s V_11
- IL_0068: ldloc.s V_12
- IL_006a: clt
- IL_006c: sub
- IL_006d: ret
-
- IL_006e: ldc.i4.1
- IL_006f: ret
-
- IL_0070: ldarg.1
- IL_0071: brfalse.s IL_0075
-
- IL_0073: ldc.i4.m1
- IL_0074: ret
-
- IL_0075: ldc.i4.0
- IL_0076: ret
+ IL_002a: ldloc.0
+ IL_002b: ldc.i4.0
+ IL_002c: ble.s IL_0030
+
+ IL_002e: ldloc.0
+ IL_002f: ret
+
+ IL_0030: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer()
+ IL_0035: stloc.s V_4
+ IL_0037: ldarg.0
+ IL_0038: ldfld int32 assembly/R::y@
+ IL_003d: stloc.s V_5
+ IL_003f: ldarg.1
+ IL_0040: ldfld int32 assembly/R::y@
+ IL_0045: stloc.s V_6
+ IL_0047: ldloc.s V_5
+ IL_0049: ldloc.s V_6
+ IL_004b: cgt
+ IL_004d: ldloc.s V_5
+ IL_004f: ldloc.s V_6
+ IL_0051: clt
+ IL_0053: sub
+ IL_0054: ret
+
+ IL_0055: ldc.i4.1
+ IL_0056: ret
+
+ IL_0057: ldarg.1
+ IL_0058: brfalse.s IL_005c
+
+ IL_005a: ldc.i4.m1
+ IL_005b: ret
+
+ IL_005c: ldc.i4.0
+ IL_005d: ret
}
.method public hidebysig virtual final instance int32 CompareTo(object obj) cil managed
@@ -236,24 +210,18 @@
int32 V_5,
class [runtime]System.Collections.IComparer V_6,
int32 V_7,
- int32 V_8,
- class [runtime]System.Collections.IComparer V_9,
- int32 V_10,
- int32 V_11,
- class [runtime]System.Collections.IComparer V_12,
- int32 V_13,
- int32 V_14)
+ int32 V_8)
IL_0000: ldarg.1
IL_0001: unbox.any assembly/R
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: stloc.1
IL_0009: ldarg.0
- IL_000a: brfalse.s IL_007a
+ IL_000a: brfalse.s IL_0063
IL_000c: ldarg.1
IL_000d: unbox.any assembly/R
- IL_0012: brfalse.s IL_0078
+ IL_0012: brfalse.s IL_0061
IL_0014: ldarg.2
IL_0015: stloc.3
@@ -263,69 +231,57 @@
IL_001e: ldloc.1
IL_001f: ldfld int32 assembly/R::x@
IL_0024: stloc.s V_5
- IL_0026: ldloc.3
- IL_0027: stloc.s V_6
- IL_0029: ldloc.s V_4
- IL_002b: stloc.s V_7
- IL_002d: ldloc.s V_5
- IL_002f: stloc.s V_8
- IL_0031: ldloc.s V_7
- IL_0033: ldloc.s V_8
- IL_0035: cgt
- IL_0037: ldloc.s V_7
- IL_0039: ldloc.s V_8
- IL_003b: clt
- IL_003d: sub
- IL_003e: stloc.2
- IL_003f: ldloc.2
- IL_0040: ldc.i4.0
- IL_0041: bge.s IL_0045
-
- IL_0043: ldloc.2
- IL_0044: ret
-
- IL_0045: ldloc.2
- IL_0046: ldc.i4.0
- IL_0047: ble.s IL_004b
-
- IL_0049: ldloc.2
- IL_004a: ret
-
- IL_004b: ldarg.2
- IL_004c: stloc.s V_9
- IL_004e: ldarg.0
- IL_004f: ldfld int32 assembly/R::y@
- IL_0054: stloc.s V_10
- IL_0056: ldloc.1
- IL_0057: ldfld int32 assembly/R::y@
- IL_005c: stloc.s V_11
- IL_005e: ldloc.s V_9
- IL_0060: stloc.s V_12
- IL_0062: ldloc.s V_10
- IL_0064: stloc.s V_13
- IL_0066: ldloc.s V_11
- IL_0068: stloc.s V_14
- IL_006a: ldloc.s V_13
- IL_006c: ldloc.s V_14
- IL_006e: cgt
- IL_0070: ldloc.s V_13
- IL_0072: ldloc.s V_14
- IL_0074: clt
- IL_0076: sub
- IL_0077: ret
-
- IL_0078: ldc.i4.1
- IL_0079: ret
-
- IL_007a: ldarg.1
- IL_007b: unbox.any assembly/R
- IL_0080: brfalse.s IL_0084
-
- IL_0082: ldc.i4.m1
- IL_0083: ret
-
- IL_0084: ldc.i4.0
- IL_0085: ret
+ IL_0026: ldloc.s V_4
+ IL_0028: ldloc.s V_5
+ IL_002a: cgt
+ IL_002c: ldloc.s V_4
+ IL_002e: ldloc.s V_5
+ IL_0030: clt
+ IL_0032: sub
+ IL_0033: stloc.2
+ IL_0034: ldloc.2
+ IL_0035: ldc.i4.0
+ IL_0036: bge.s IL_003a
+
+ IL_0038: ldloc.2
+ IL_0039: ret
+
+ IL_003a: ldloc.2
+ IL_003b: ldc.i4.0
+ IL_003c: ble.s IL_0040
+
+ IL_003e: ldloc.2
+ IL_003f: ret
+
+ IL_0040: ldarg.2
+ IL_0041: stloc.s V_6
+ IL_0043: ldarg.0
+ IL_0044: ldfld int32 assembly/R::y@
+ IL_0049: stloc.s V_7
+ IL_004b: ldloc.1
+ IL_004c: ldfld int32 assembly/R::y@
+ IL_0051: stloc.s V_8
+ IL_0053: ldloc.s V_7
+ IL_0055: ldloc.s V_8
+ IL_0057: cgt
+ IL_0059: ldloc.s V_7
+ IL_005b: ldloc.s V_8
+ IL_005d: clt
+ IL_005f: sub
+ IL_0060: ret
+
+ IL_0061: ldc.i4.1
+ IL_0062: ret
+
+ IL_0063: ldarg.1
+ IL_0064: unbox.any assembly/R
+ IL_0069: brfalse.s IL_006d
+
+ IL_006b: ldc.i4.m1
+ IL_006c: ret
+
+ IL_006d: ldc.i4.0
+ IL_006e: ret
}
.method public hidebysig virtual final instance int32 GetHashCode(class [runtime]System.Collections.IEqualityComparer comp) cil managed
@@ -335,13 +291,9 @@
.maxstack 7
.locals init (int32 V_0,
class [runtime]System.Collections.IEqualityComparer V_1,
- int32 V_2,
- class [runtime]System.Collections.IEqualityComparer V_3,
- class [runtime]System.Collections.IEqualityComparer V_4,
- int32 V_5,
- class [runtime]System.Collections.IEqualityComparer V_6)
+ class [runtime]System.Collections.IEqualityComparer V_2)
IL_0000: ldarg.0
- IL_0001: brfalse.s IL_0042
+ IL_0001: brfalse.s IL_0035
IL_0003: ldc.i4.0
IL_0004: stloc.0
@@ -350,44 +302,36 @@
IL_000b: stloc.1
IL_000c: ldarg.0
IL_000d: ldfld int32 assembly/R::y@
- IL_0012: stloc.2
- IL_0013: ldloc.1
- IL_0014: stloc.3
- IL_0015: ldloc.2
- IL_0016: ldloc.0
- IL_0017: ldc.i4.6
- IL_0018: shl
- IL_0019: ldloc.0
- IL_001a: ldc.i4.2
- IL_001b: shr
- IL_001c: add
- IL_001d: add
- IL_001e: add
- IL_001f: stloc.0
- IL_0020: ldc.i4 0x9e3779b9
- IL_0025: ldarg.1
- IL_0026: stloc.s V_4
- IL_0028: ldarg.0
- IL_0029: ldfld int32 assembly/R::x@
- IL_002e: stloc.s V_5
- IL_0030: ldloc.s V_4
- IL_0032: stloc.s V_6
- IL_0034: ldloc.s V_5
- IL_0036: ldloc.0
- IL_0037: ldc.i4.6
- IL_0038: shl
- IL_0039: ldloc.0
- IL_003a: ldc.i4.2
- IL_003b: shr
- IL_003c: add
- IL_003d: add
- IL_003e: add
- IL_003f: stloc.0
- IL_0040: ldloc.0
- IL_0041: ret
-
- IL_0042: ldc.i4.0
- IL_0043: ret
+ IL_0012: ldloc.0
+ IL_0013: ldc.i4.6
+ IL_0014: shl
+ IL_0015: ldloc.0
+ IL_0016: ldc.i4.2
+ IL_0017: shr
+ IL_0018: add
+ IL_0019: add
+ IL_001a: add
+ IL_001b: stloc.0
+ IL_001c: ldc.i4 0x9e3779b9
+ IL_0021: ldarg.1
+ IL_0022: stloc.2
+ IL_0023: ldarg.0
+ IL_0024: ldfld int32 assembly/R::x@
+ IL_0029: ldloc.0
+ IL_002a: ldc.i4.6
+ IL_002b: shl
+ IL_002c: ldloc.0
+ IL_002d: ldc.i4.2
+ IL_002e: shr
+ IL_002f: add
+ IL_0030: add
+ IL_0031: add
+ IL_0032: stloc.0
+ IL_0033: ldloc.0
+ IL_0034: ret
+
+ IL_0035: ldc.i4.0
+ IL_0036: ret
}
.method public hidebysig virtual final instance int32 GetHashCode() cil managed
@@ -410,18 +354,12 @@
.maxstack 4
.locals init (class assembly/R V_0,
class [runtime]System.Collections.IEqualityComparer V_1,
- int32 V_2,
- int32 V_3,
- class [runtime]System.Collections.IEqualityComparer V_4,
- class [runtime]System.Collections.IEqualityComparer V_5,
- int32 V_6,
- int32 V_7,
- class [runtime]System.Collections.IEqualityComparer V_8)
+ class [runtime]System.Collections.IEqualityComparer V_2)
IL_0000: ldarg.0
- IL_0001: brfalse.s IL_0043
+ IL_0001: brfalse.s IL_002f
IL_0003: ldarg.1
- IL_0004: brfalse.s IL_0041
+ IL_0004: brfalse.s IL_002d
IL_0006: ldarg.1
IL_0007: stloc.0
@@ -429,44 +367,32 @@
IL_0009: stloc.1
IL_000a: ldarg.0
IL_000b: ldfld int32 assembly/R::x@
- IL_0010: stloc.2
- IL_0011: ldloc.0
- IL_0012: ldfld int32 assembly/R::x@
- IL_0017: stloc.3
- IL_0018: ldloc.1
- IL_0019: stloc.s V_4
- IL_001b: ldloc.2
- IL_001c: ldloc.3
- IL_001d: ceq
- IL_001f: brfalse.s IL_003f
-
- IL_0021: ldarg.2
- IL_0022: stloc.s V_5
- IL_0024: ldarg.0
- IL_0025: ldfld int32 assembly/R::y@
- IL_002a: stloc.s V_6
- IL_002c: ldloc.0
- IL_002d: ldfld int32 assembly/R::y@
- IL_0032: stloc.s V_7
- IL_0034: ldloc.s V_5
- IL_0036: stloc.s V_8
- IL_0038: ldloc.s V_6
- IL_003a: ldloc.s V_7
- IL_003c: ceq
- IL_003e: ret
-
- IL_003f: ldc.i4.0
- IL_0040: ret
-
- IL_0041: ldc.i4.0
- IL_0042: ret
-
- IL_0043: ldarg.1
- IL_0044: ldnull
- IL_0045: cgt.un
- IL_0047: ldc.i4.0
- IL_0048: ceq
- IL_004a: ret
+ IL_0010: ldloc.0
+ IL_0011: ldfld int32 assembly/R::x@
+ IL_0016: ceq
+ IL_0018: brfalse.s IL_002b
+
+ IL_001a: ldarg.2
+ IL_001b: stloc.2
+ IL_001c: ldarg.0
+ IL_001d: ldfld int32 assembly/R::y@
+ IL_0022: ldloc.0
+ IL_0023: ldfld int32 assembly/R::y@
+ IL_0028: ceq
+ IL_002a: ret
+
+ IL_002b: ldc.i4.0
+ IL_002c: ret
+
+ IL_002d: ldc.i4.0
+ IL_002e: ret
+
+ IL_002f: ldarg.1
+ IL_0030: ldnull
+ IL_0031: cgt.un
+ IL_0033: ldc.i4.0
+ IL_0034: ceq
+ IL_0036: ret
}
.method public hidebysig virtual final
@@ -603,4 +529,3 @@
-
diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction21.fs.il.netcore.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction21.fs.il.netcore.debug.bsl
index 115c16b843..ef672db9ea 100644
--- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction21.fs.il.netcore.debug.bsl
+++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction21.fs.il.netcore.debug.bsl
@@ -17,16 +17,8 @@
.hash algorithm 0x00008004
.ver 0:0:0:0
}
-.mresource public FSharpSignatureCompressedData.assembly
-{
-
-
-}
-.mresource public FSharpOptimizationCompressedData.assembly
-{
-
-
-}
+.mresource public FSharpSignatureCompressedData.assembly { }
+.mresource public FSharpOptimizationCompressedData.assembly { }
.module assembly.exe
.imagebase {value}
@@ -173,95 +165,77 @@
int32 V_5,
class [runtime]System.Collections.IComparer V_6,
int32 V_7,
- int32 V_8,
- class [runtime]System.Collections.IComparer V_9,
- int32 V_10,
- int32 V_11,
- class [runtime]System.Collections.IComparer V_12,
- int32 V_13,
- int32 V_14)
+ int32 V_8)
IL_0000: ldarg.0
- IL_0001: brfalse IL_007d
+ IL_0001: brfalse.s IL_0063
- IL_0006: ldarg.1
- IL_0007: brfalse.s IL_007b
+ IL_0003: ldarg.1
+ IL_0004: brfalse.s IL_0061
- IL_0009: ldarg.0
- IL_000a: pop
- IL_000b: ldarg.0
- IL_000c: stloc.0
- IL_000d: ldarg.1
- IL_000e: stloc.1
- IL_000f: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer()
- IL_0014: stloc.3
- IL_0015: ldloc.0
- IL_0016: ldfld int32 assembly/U::item1
- IL_001b: stloc.s V_4
- IL_001d: ldloc.1
- IL_001e: ldfld int32 assembly/U::item1
- IL_0023: stloc.s V_5
- IL_0025: ldloc.3
- IL_0026: stloc.s V_6
+ IL_0006: ldarg.0
+ IL_0007: pop
+ IL_0008: ldarg.0
+ IL_0009: stloc.0
+ IL_000a: ldarg.1
+ IL_000b: stloc.1
+ IL_000c: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer()
+ IL_0011: stloc.3
+ IL_0012: ldloc.0
+ IL_0013: ldfld int32 assembly/U::item1
+ IL_0018: stloc.s V_4
+ IL_001a: ldloc.1
+ IL_001b: ldfld int32 assembly/U::item1
+ IL_0020: stloc.s V_5
+ IL_0022: ldloc.s V_4
+ IL_0024: ldloc.s V_5
+ IL_0026: cgt
IL_0028: ldloc.s V_4
- IL_002a: stloc.s V_7
- IL_002c: ldloc.s V_5
- IL_002e: stloc.s V_8
- IL_0030: ldloc.s V_7
- IL_0032: ldloc.s V_8
- IL_0034: cgt
- IL_0036: ldloc.s V_7
- IL_0038: ldloc.s V_8
- IL_003a: clt
- IL_003c: sub
- IL_003d: stloc.2
- IL_003e: ldloc.2
- IL_003f: ldc.i4.0
- IL_0040: bge.s IL_0044
-
- IL_0042: ldloc.2
- IL_0043: ret
-
- IL_0044: ldloc.2
- IL_0045: ldc.i4.0
- IL_0046: ble.s IL_004a
-
- IL_0048: ldloc.2
- IL_0049: ret
-
- IL_004a: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer()
- IL_004f: stloc.s V_9
- IL_0051: ldloc.0
- IL_0052: ldfld int32 assembly/U::item2
- IL_0057: stloc.s V_10
- IL_0059: ldloc.1
- IL_005a: ldfld int32 assembly/U::item2
- IL_005f: stloc.s V_11
- IL_0061: ldloc.s V_9
- IL_0063: stloc.s V_12
- IL_0065: ldloc.s V_10
- IL_0067: stloc.s V_13
- IL_0069: ldloc.s V_11
- IL_006b: stloc.s V_14
- IL_006d: ldloc.s V_13
- IL_006f: ldloc.s V_14
- IL_0071: cgt
- IL_0073: ldloc.s V_13
- IL_0075: ldloc.s V_14
- IL_0077: clt
- IL_0079: sub
- IL_007a: ret
-
- IL_007b: ldc.i4.1
- IL_007c: ret
-
- IL_007d: ldarg.1
- IL_007e: brfalse.s IL_0082
-
- IL_0080: ldc.i4.m1
- IL_0081: ret
-
- IL_0082: ldc.i4.0
- IL_0083: ret
+ IL_002a: ldloc.s V_5
+ IL_002c: clt
+ IL_002e: sub
+ IL_002f: stloc.2
+ IL_0030: ldloc.2
+ IL_0031: ldc.i4.0
+ IL_0032: bge.s IL_0036
+
+ IL_0034: ldloc.2
+ IL_0035: ret
+
+ IL_0036: ldloc.2
+ IL_0037: ldc.i4.0
+ IL_0038: ble.s IL_003c
+
+ IL_003a: ldloc.2
+ IL_003b: ret
+
+ IL_003c: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer()
+ IL_0041: stloc.s V_6
+ IL_0043: ldloc.0
+ IL_0044: ldfld int32 assembly/U::item2
+ IL_0049: stloc.s V_7
+ IL_004b: ldloc.1
+ IL_004c: ldfld int32 assembly/U::item2
+ IL_0051: stloc.s V_8
+ IL_0053: ldloc.s V_7
+ IL_0055: ldloc.s V_8
+ IL_0057: cgt
+ IL_0059: ldloc.s V_7
+ IL_005b: ldloc.s V_8
+ IL_005d: clt
+ IL_005f: sub
+ IL_0060: ret
+
+ IL_0061: ldc.i4.1
+ IL_0062: ret
+
+ IL_0063: ldarg.1
+ IL_0064: brfalse.s IL_0068
+
+ IL_0066: ldc.i4.m1
+ IL_0067: ret
+
+ IL_0068: ldc.i4.0
+ IL_0069: ret
}
.method public hidebysig virtual final instance int32 CompareTo(object obj) cil managed
@@ -292,22 +266,16 @@
int32 V_6,
class [runtime]System.Collections.IComparer V_7,
int32 V_8,
- int32 V_9,
- class [runtime]System.Collections.IComparer V_10,
- int32 V_11,
- int32 V_12,
- class [runtime]System.Collections.IComparer V_13,
- int32 V_14,
- int32 V_15)
+ int32 V_9)
IL_0000: ldarg.1
IL_0001: unbox.any assembly/U
IL_0006: stloc.0
IL_0007: ldarg.0
- IL_0008: brfalse.s IL_0080
+ IL_0008: brfalse.s IL_0068
IL_000a: ldarg.1
IL_000b: unbox.any assembly/U
- IL_0010: brfalse.s IL_007e
+ IL_0010: brfalse.s IL_0066
IL_0012: ldarg.0
IL_0013: pop
@@ -323,69 +291,57 @@
IL_0023: ldloc.2
IL_0024: ldfld int32 assembly/U::item1
IL_0029: stloc.s V_6
- IL_002b: ldloc.s V_4
- IL_002d: stloc.s V_7
- IL_002f: ldloc.s V_5
- IL_0031: stloc.s V_8
+ IL_002b: ldloc.s V_5
+ IL_002d: ldloc.s V_6
+ IL_002f: cgt
+ IL_0031: ldloc.s V_5
IL_0033: ldloc.s V_6
- IL_0035: stloc.s V_9
- IL_0037: ldloc.s V_8
- IL_0039: ldloc.s V_9
- IL_003b: cgt
- IL_003d: ldloc.s V_8
- IL_003f: ldloc.s V_9
- IL_0041: clt
- IL_0043: sub
- IL_0044: stloc.3
- IL_0045: ldloc.3
- IL_0046: ldc.i4.0
- IL_0047: bge.s IL_004b
-
- IL_0049: ldloc.3
- IL_004a: ret
-
- IL_004b: ldloc.3
- IL_004c: ldc.i4.0
- IL_004d: ble.s IL_0051
-
- IL_004f: ldloc.3
- IL_0050: ret
-
- IL_0051: ldarg.2
- IL_0052: stloc.s V_10
- IL_0054: ldloc.1
- IL_0055: ldfld int32 assembly/U::item2
- IL_005a: stloc.s V_11
- IL_005c: ldloc.2
- IL_005d: ldfld int32 assembly/U::item2
- IL_0062: stloc.s V_12
- IL_0064: ldloc.s V_10
- IL_0066: stloc.s V_13
- IL_0068: ldloc.s V_11
- IL_006a: stloc.s V_14
- IL_006c: ldloc.s V_12
- IL_006e: stloc.s V_15
- IL_0070: ldloc.s V_14
- IL_0072: ldloc.s V_15
- IL_0074: cgt
- IL_0076: ldloc.s V_14
- IL_0078: ldloc.s V_15
- IL_007a: clt
- IL_007c: sub
- IL_007d: ret
-
- IL_007e: ldc.i4.1
- IL_007f: ret
-
- IL_0080: ldarg.1
- IL_0081: unbox.any assembly/U
- IL_0086: brfalse.s IL_008a
-
- IL_0088: ldc.i4.m1
- IL_0089: ret
-
- IL_008a: ldc.i4.0
- IL_008b: ret
+ IL_0035: clt
+ IL_0037: sub
+ IL_0038: stloc.3
+ IL_0039: ldloc.3
+ IL_003a: ldc.i4.0
+ IL_003b: bge.s IL_003f
+
+ IL_003d: ldloc.3
+ IL_003e: ret
+
+ IL_003f: ldloc.3
+ IL_0040: ldc.i4.0
+ IL_0041: ble.s IL_0045
+
+ IL_0043: ldloc.3
+ IL_0044: ret
+
+ IL_0045: ldarg.2
+ IL_0046: stloc.s V_7
+ IL_0048: ldloc.1
+ IL_0049: ldfld int32 assembly/U::item2
+ IL_004e: stloc.s V_8
+ IL_0050: ldloc.2
+ IL_0051: ldfld int32 assembly/U::item2
+ IL_0056: stloc.s V_9
+ IL_0058: ldloc.s V_8
+ IL_005a: ldloc.s V_9
+ IL_005c: cgt
+ IL_005e: ldloc.s V_8
+ IL_0060: ldloc.s V_9
+ IL_0062: clt
+ IL_0064: sub
+ IL_0065: ret
+
+ IL_0066: ldc.i4.1
+ IL_0067: ret
+
+ IL_0068: ldarg.1
+ IL_0069: unbox.any assembly/U
+ IL_006e: brfalse.s IL_0072
+
+ IL_0070: ldc.i4.m1
+ IL_0071: ret
+
+ IL_0072: ldc.i4.0
+ IL_0073: ret
}
.method public hidebysig virtual final instance int32 GetHashCode(class [runtime]System.Collections.IEqualityComparer comp) cil managed
@@ -396,13 +352,9 @@
.locals init (int32 V_0,
class assembly/U V_1,
class [runtime]System.Collections.IEqualityComparer V_2,
- int32 V_3,
- class [runtime]System.Collections.IEqualityComparer V_4,
- class [runtime]System.Collections.IEqualityComparer V_5,
- int32 V_6,
- class [runtime]System.Collections.IEqualityComparer V_7)
+ class [runtime]System.Collections.IEqualityComparer V_3)
IL_0000: ldarg.0
- IL_0001: brfalse.s IL_0049
+ IL_0001: brfalse.s IL_003b
IL_0003: ldc.i4.0
IL_0004: stloc.0
@@ -417,44 +369,36 @@
IL_0011: stloc.2
IL_0012: ldloc.1
IL_0013: ldfld int32 assembly/U::item2
- IL_0018: stloc.3
- IL_0019: ldloc.2
- IL_001a: stloc.s V_4
- IL_001c: ldloc.3
- IL_001d: ldloc.0
- IL_001e: ldc.i4.6
- IL_001f: shl
- IL_0020: ldloc.0
- IL_0021: ldc.i4.2
- IL_0022: shr
- IL_0023: add
- IL_0024: add
- IL_0025: add
- IL_0026: stloc.0
- IL_0027: ldc.i4 0x9e3779b9
- IL_002c: ldarg.1
- IL_002d: stloc.s V_5
- IL_002f: ldloc.1
- IL_0030: ldfld int32 assembly/U::item1
- IL_0035: stloc.s V_6
- IL_0037: ldloc.s V_5
- IL_0039: stloc.s V_7
- IL_003b: ldloc.s V_6
- IL_003d: ldloc.0
- IL_003e: ldc.i4.6
- IL_003f: shl
- IL_0040: ldloc.0
- IL_0041: ldc.i4.2
- IL_0042: shr
- IL_0043: add
- IL_0044: add
- IL_0045: add
- IL_0046: stloc.0
- IL_0047: ldloc.0
- IL_0048: ret
-
- IL_0049: ldc.i4.0
- IL_004a: ret
+ IL_0018: ldloc.0
+ IL_0019: ldc.i4.6
+ IL_001a: shl
+ IL_001b: ldloc.0
+ IL_001c: ldc.i4.2
+ IL_001d: shr
+ IL_001e: add
+ IL_001f: add
+ IL_0020: add
+ IL_0021: stloc.0
+ IL_0022: ldc.i4 0x9e3779b9
+ IL_0027: ldarg.1
+ IL_0028: stloc.3
+ IL_0029: ldloc.1
+ IL_002a: ldfld int32 assembly/U::item1
+ IL_002f: ldloc.0
+ IL_0030: ldc.i4.6
+ IL_0031: shl
+ IL_0032: ldloc.0
+ IL_0033: ldc.i4.2
+ IL_0034: shr
+ IL_0035: add
+ IL_0036: add
+ IL_0037: add
+ IL_0038: stloc.0
+ IL_0039: ldloc.0
+ IL_003a: ret
+
+ IL_003b: ldc.i4.0
+ IL_003c: ret
}
.method public hidebysig virtual final instance int32 GetHashCode() cil managed
@@ -479,18 +423,12 @@
class assembly/U V_1,
class assembly/U V_2,
class [runtime]System.Collections.IEqualityComparer V_3,
- int32 V_4,
- int32 V_5,
- class [runtime]System.Collections.IEqualityComparer V_6,
- class [runtime]System.Collections.IEqualityComparer V_7,
- int32 V_8,
- int32 V_9,
- class [runtime]System.Collections.IEqualityComparer V_10)
+ class [runtime]System.Collections.IEqualityComparer V_4)
IL_0000: ldarg.0
- IL_0001: brfalse.s IL_004d
+ IL_0001: brfalse.s IL_0036
IL_0003: ldarg.1
- IL_0004: brfalse.s IL_004b
+ IL_0004: brfalse.s IL_0034
IL_0006: ldarg.1
IL_0007: stloc.0
@@ -504,44 +442,32 @@
IL_000f: stloc.3
IL_0010: ldloc.1
IL_0011: ldfld int32 assembly/U::item1
- IL_0016: stloc.s V_4
- IL_0018: ldloc.2
- IL_0019: ldfld int32 assembly/U::item1
- IL_001e: stloc.s V_5
- IL_0020: ldloc.3
- IL_0021: stloc.s V_6
- IL_0023: ldloc.s V_4
- IL_0025: ldloc.s V_5
- IL_0027: ceq
- IL_0029: brfalse.s IL_0049
-
- IL_002b: ldarg.2
- IL_002c: stloc.s V_7
- IL_002e: ldloc.1
- IL_002f: ldfld int32 assembly/U::item2
- IL_0034: stloc.s V_8
- IL_0036: ldloc.2
- IL_0037: ldfld int32 assembly/U::item2
- IL_003c: stloc.s V_9
- IL_003e: ldloc.s V_7
- IL_0040: stloc.s V_10
- IL_0042: ldloc.s V_8
- IL_0044: ldloc.s V_9
- IL_0046: ceq
- IL_0048: ret
-
- IL_0049: ldc.i4.0
- IL_004a: ret
-
- IL_004b: ldc.i4.0
- IL_004c: ret
-
- IL_004d: ldarg.1
- IL_004e: ldnull
- IL_004f: cgt.un
- IL_0051: ldc.i4.0
- IL_0052: ceq
- IL_0054: ret
+ IL_0016: ldloc.2
+ IL_0017: ldfld int32 assembly/U::item1
+ IL_001c: ceq
+ IL_001e: brfalse.s IL_0032
+
+ IL_0020: ldarg.2
+ IL_0021: stloc.s V_4
+ IL_0023: ldloc.1
+ IL_0024: ldfld int32 assembly/U::item2
+ IL_0029: ldloc.2
+ IL_002a: ldfld int32 assembly/U::item2
+ IL_002f: ceq
+ IL_0031: ret
+
+ IL_0032: ldc.i4.0
+ IL_0033: ret
+
+ IL_0034: ldc.i4.0
+ IL_0035: ret
+
+ IL_0036: ldarg.1
+ IL_0037: ldnull
+ IL_0038: cgt.un
+ IL_003a: ldc.i4.0
+ IL_003b: ceq
+ IL_003d: ret
}
.method public hidebysig virtual final
@@ -786,4 +712,3 @@
-
diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.il.netcore.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.il.netcore.debug.bsl
index 8de09a8c9d..08d510bc4e 100644
--- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.il.netcore.debug.bsl
+++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.il.netcore.debug.bsl
@@ -17,16 +17,8 @@
.hash algorithm 0x00008004
.ver 0:0:0:0
}
-.mresource public FSharpSignatureCompressedData.assembly
-{
-
-
-}
-.mresource public FSharpOptimizationCompressedData.assembly
-{
-
-
-}
+.mresource public FSharpSignatureCompressedData.assembly { }
+.mresource public FSharpOptimizationCompressedData.assembly { }
.module assembly.exe
.imagebase {value}
@@ -148,18 +140,12 @@
int32 V_3,
class [runtime]System.Collections.IComparer V_4,
int32 V_5,
- int32 V_6,
- class [runtime]System.Collections.IComparer V_7,
- int32 V_8,
- int32 V_9,
- class [runtime]System.Collections.IComparer V_10,
- int32 V_11,
- int32 V_12)
+ int32 V_6)
IL_0000: ldarg.0
- IL_0001: brfalse.s IL_0070
+ IL_0001: brfalse.s IL_0057
IL_0003: ldarg.1
- IL_0004: brfalse.s IL_006e
+ IL_0004: brfalse.s IL_0055
IL_0006: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer()
IL_000b: stloc.1
@@ -169,68 +155,56 @@
IL_0013: ldarg.1
IL_0014: ldfld int32 assembly/Point::x@
IL_0019: stloc.3
- IL_001a: ldloc.1
- IL_001b: stloc.s V_4
- IL_001d: ldloc.2
- IL_001e: stloc.s V_5
- IL_0020: ldloc.3
- IL_0021: stloc.s V_6
- IL_0023: ldloc.s V_5
- IL_0025: ldloc.s V_6
- IL_0027: cgt
- IL_0029: ldloc.s V_5
- IL_002b: ldloc.s V_6
- IL_002d: clt
- IL_002f: sub
- IL_0030: stloc.0
- IL_0031: ldloc.0
- IL_0032: ldc.i4.0
- IL_0033: bge.s IL_0037
-
- IL_0035: ldloc.0
- IL_0036: ret
+ IL_001a: ldloc.2
+ IL_001b: ldloc.3
+ IL_001c: cgt
+ IL_001e: ldloc.2
+ IL_001f: ldloc.3
+ IL_0020: clt
+ IL_0022: sub
+ IL_0023: stloc.0
+ IL_0024: ldloc.0
+ IL_0025: ldc.i4.0
+ IL_0026: bge.s IL_002a
- IL_0037: ldloc.0
- IL_0038: ldc.i4.0
- IL_0039: ble.s IL_003d
-
- IL_003b: ldloc.0
- IL_003c: ret
-
- IL_003d: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer()
- IL_0042: stloc.s V_7
- IL_0044: ldarg.0
- IL_0045: ldfld int32 assembly/Point::y@
- IL_004a: stloc.s V_8
- IL_004c: ldarg.1
- IL_004d: ldfld int32 assembly/Point::y@
- IL_0052: stloc.s V_9
- IL_0054: ldloc.s V_7
- IL_0056: stloc.s V_10
- IL_0058: ldloc.s V_8
- IL_005a: stloc.s V_11
- IL_005c: ldloc.s V_9
- IL_005e: stloc.s V_12
- IL_0060: ldloc.s V_11
- IL_0062: ldloc.s V_12
- IL_0064: cgt
- IL_0066: ldloc.s V_11
- IL_0068: ldloc.s V_12
- IL_006a: clt
- IL_006c: sub
- IL_006d: ret
-
- IL_006e: ldc.i4.1
- IL_006f: ret
-
- IL_0070: ldarg.1
- IL_0071: brfalse.s IL_0075
-
- IL_0073: ldc.i4.m1
- IL_0074: ret
-
- IL_0075: ldc.i4.0
- IL_0076: ret
+ IL_0028: ldloc.0
+ IL_0029: ret
+
+ IL_002a: ldloc.0
+ IL_002b: ldc.i4.0
+ IL_002c: ble.s IL_0030
+
+ IL_002e: ldloc.0
+ IL_002f: ret
+
+ IL_0030: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer()
+ IL_0035: stloc.s V_4
+ IL_0037: ldarg.0
+ IL_0038: ldfld int32 assembly/Point::y@
+ IL_003d: stloc.s V_5
+ IL_003f: ldarg.1
+ IL_0040: ldfld int32 assembly/Point::y@
+ IL_0045: stloc.s V_6
+ IL_0047: ldloc.s V_5
+ IL_0049: ldloc.s V_6
+ IL_004b: cgt
+ IL_004d: ldloc.s V_5
+ IL_004f: ldloc.s V_6
+ IL_0051: clt
+ IL_0053: sub
+ IL_0054: ret
+
+ IL_0055: ldc.i4.1
+ IL_0056: ret
+
+ IL_0057: ldarg.1
+ IL_0058: brfalse.s IL_005c
+
+ IL_005a: ldc.i4.m1
+ IL_005b: ret
+
+ IL_005c: ldc.i4.0
+ IL_005d: ret
}
.method public hidebysig virtual final instance int32 CompareTo(object obj) cil managed
@@ -260,24 +234,18 @@
int32 V_5,
class [runtime]System.Collections.IComparer V_6,
int32 V_7,
- int32 V_8,
- class [runtime]System.Collections.IComparer V_9,
- int32 V_10,
- int32 V_11,
- class [runtime]System.Collections.IComparer V_12,
- int32 V_13,
- int32 V_14)
+ int32 V_8)
IL_0000: ldarg.1
IL_0001: unbox.any assembly/Point
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: stloc.1
IL_0009: ldarg.0
- IL_000a: brfalse.s IL_007a
+ IL_000a: brfalse.s IL_0063
IL_000c: ldarg.1
IL_000d: unbox.any assembly/Point
- IL_0012: brfalse.s IL_0078
+ IL_0012: brfalse.s IL_0061
IL_0014: ldarg.2
IL_0015: stloc.3
@@ -287,69 +255,57 @@
IL_001e: ldloc.1
IL_001f: ldfld int32 assembly/Point::x@
IL_0024: stloc.s V_5
- IL_0026: ldloc.3
- IL_0027: stloc.s V_6
- IL_0029: ldloc.s V_4
- IL_002b: stloc.s V_7
- IL_002d: ldloc.s V_5
- IL_002f: stloc.s V_8
- IL_0031: ldloc.s V_7
- IL_0033: ldloc.s V_8
- IL_0035: cgt
- IL_0037: ldloc.s V_7
- IL_0039: ldloc.s V_8
- IL_003b: clt
- IL_003d: sub
- IL_003e: stloc.2
- IL_003f: ldloc.2
- IL_0040: ldc.i4.0
- IL_0041: bge.s IL_0045
-
- IL_0043: ldloc.2
- IL_0044: ret
-
- IL_0045: ldloc.2
- IL_0046: ldc.i4.0
- IL_0047: ble.s IL_004b
-
- IL_0049: ldloc.2
- IL_004a: ret
-
- IL_004b: ldarg.2
- IL_004c: stloc.s V_9
- IL_004e: ldarg.0
- IL_004f: ldfld int32 assembly/Point::y@
- IL_0054: stloc.s V_10
- IL_0056: ldloc.1
- IL_0057: ldfld int32 assembly/Point::y@
- IL_005c: stloc.s V_11
- IL_005e: ldloc.s V_9
- IL_0060: stloc.s V_12
- IL_0062: ldloc.s V_10
- IL_0064: stloc.s V_13
- IL_0066: ldloc.s V_11
- IL_0068: stloc.s V_14
- IL_006a: ldloc.s V_13
- IL_006c: ldloc.s V_14
- IL_006e: cgt
- IL_0070: ldloc.s V_13
- IL_0072: ldloc.s V_14
- IL_0074: clt
- IL_0076: sub
- IL_0077: ret
-
- IL_0078: ldc.i4.1
- IL_0079: ret
-
- IL_007a: ldarg.1
- IL_007b: unbox.any assembly/Point
- IL_0080: brfalse.s IL_0084
-
- IL_0082: ldc.i4.m1
- IL_0083: ret
-
- IL_0084: ldc.i4.0
- IL_0085: ret
+ IL_0026: ldloc.s V_4
+ IL_0028: ldloc.s V_5
+ IL_002a: cgt
+ IL_002c: ldloc.s V_4
+ IL_002e: ldloc.s V_5
+ IL_0030: clt
+ IL_0032: sub
+ IL_0033: stloc.2
+ IL_0034: ldloc.2
+ IL_0035: ldc.i4.0
+ IL_0036: bge.s IL_003a
+
+ IL_0038: ldloc.2
+ IL_0039: ret
+
+ IL_003a: ldloc.2
+ IL_003b: ldc.i4.0
+ IL_003c: ble.s IL_0040
+
+ IL_003e: ldloc.2
+ IL_003f: ret
+
+ IL_0040: ldarg.2
+ IL_0041: stloc.s V_6
+ IL_0043: ldarg.0
+ IL_0044: ldfld int32 assembly/Point::y@
+ IL_0049: stloc.s V_7
+ IL_004b: ldloc.1
+ IL_004c: ldfld int32 assembly/Point::y@
+ IL_0051: stloc.s V_8
+ IL_0053: ldloc.s V_7
+ IL_0055: ldloc.s V_8
+ IL_0057: cgt
+ IL_0059: ldloc.s V_7
+ IL_005b: ldloc.s V_8
+ IL_005d: clt
+ IL_005f: sub
+ IL_0060: ret
+
+ IL_0061: ldc.i4.1
+ IL_0062: ret
+
+ IL_0063: ldarg.1
+ IL_0064: unbox.any assembly/Point
+ IL_0069: brfalse.s IL_006d
+
+ IL_006b: ldc.i4.m1
+ IL_006c: ret
+
+ IL_006d: ldc.i4.0
+ IL_006e: ret
}
.method public hidebysig virtual final instance int32 GetHashCode(class [runtime]System.Collections.IEqualityComparer comp) cil managed
@@ -359,13 +315,9 @@
.maxstack 7
.locals init (int32 V_0,
class [runtime]System.Collections.IEqualityComparer V_1,
- int32 V_2,
- class [runtime]System.Collections.IEqualityComparer V_3,
- class [runtime]System.Collections.IEqualityComparer V_4,
- int32 V_5,
- class [runtime]System.Collections.IEqualityComparer V_6)
+ class [runtime]System.Collections.IEqualityComparer V_2)
IL_0000: ldarg.0
- IL_0001: brfalse.s IL_0042
+ IL_0001: brfalse.s IL_0035
IL_0003: ldc.i4.0
IL_0004: stloc.0
@@ -374,44 +326,36 @@
IL_000b: stloc.1
IL_000c: ldarg.0
IL_000d: ldfld int32 assembly/Point::y@
- IL_0012: stloc.2
- IL_0013: ldloc.1
- IL_0014: stloc.3
- IL_0015: ldloc.2
- IL_0016: ldloc.0
- IL_0017: ldc.i4.6
- IL_0018: shl
- IL_0019: ldloc.0
- IL_001a: ldc.i4.2
- IL_001b: shr
- IL_001c: add
- IL_001d: add
- IL_001e: add
- IL_001f: stloc.0
- IL_0020: ldc.i4 0x9e3779b9
- IL_0025: ldarg.1
- IL_0026: stloc.s V_4
- IL_0028: ldarg.0
- IL_0029: ldfld int32 assembly/Point::x@
- IL_002e: stloc.s V_5
- IL_0030: ldloc.s V_4
- IL_0032: stloc.s V_6
- IL_0034: ldloc.s V_5
- IL_0036: ldloc.0
- IL_0037: ldc.i4.6
- IL_0038: shl
- IL_0039: ldloc.0
- IL_003a: ldc.i4.2
- IL_003b: shr
- IL_003c: add
- IL_003d: add
- IL_003e: add
- IL_003f: stloc.0
- IL_0040: ldloc.0
- IL_0041: ret
-
- IL_0042: ldc.i4.0
- IL_0043: ret
+ IL_0012: ldloc.0
+ IL_0013: ldc.i4.6
+ IL_0014: shl
+ IL_0015: ldloc.0
+ IL_0016: ldc.i4.2
+ IL_0017: shr
+ IL_0018: add
+ IL_0019: add
+ IL_001a: add
+ IL_001b: stloc.0
+ IL_001c: ldc.i4 0x9e3779b9
+ IL_0021: ldarg.1
+ IL_0022: stloc.2
+ IL_0023: ldarg.0
+ IL_0024: ldfld int32 assembly/Point::x@
+ IL_0029: ldloc.0
+ IL_002a: ldc.i4.6
+ IL_002b: shl
+ IL_002c: ldloc.0
+ IL_002d: ldc.i4.2
+ IL_002e: shr
+ IL_002f: add
+ IL_0030: add
+ IL_0031: add
+ IL_0032: stloc.0
+ IL_0033: ldloc.0
+ IL_0034: ret
+
+ IL_0035: ldc.i4.0
+ IL_0036: ret
}
.method public hidebysig virtual final instance int32 GetHashCode() cil managed
@@ -434,18 +378,12 @@
.maxstack 4
.locals init (class assembly/Point V_0,
class [runtime]System.Collections.IEqualityComparer V_1,
- int32 V_2,
- int32 V_3,
- class [runtime]System.Collections.IEqualityComparer V_4,
- class [runtime]System.Collections.IEqualityComparer V_5,
- int32 V_6,
- int32 V_7,
- class [runtime]System.Collections.IEqualityComparer V_8)
+ class [runtime]System.Collections.IEqualityComparer V_2)
IL_0000: ldarg.0
- IL_0001: brfalse.s IL_0043
+ IL_0001: brfalse.s IL_002f
IL_0003: ldarg.1
- IL_0004: brfalse.s IL_0041
+ IL_0004: brfalse.s IL_002d
IL_0006: ldarg.1
IL_0007: stloc.0
@@ -453,44 +391,32 @@
IL_0009: stloc.1
IL_000a: ldarg.0
IL_000b: ldfld int32 assembly/Point::x@
- IL_0010: stloc.2
- IL_0011: ldloc.0
- IL_0012: ldfld int32 assembly/Point::x@
- IL_0017: stloc.3
- IL_0018: ldloc.1
- IL_0019: stloc.s V_4
- IL_001b: ldloc.2
- IL_001c: ldloc.3
- IL_001d: ceq
- IL_001f: brfalse.s IL_003f
-
- IL_0021: ldarg.2
- IL_0022: stloc.s V_5
- IL_0024: ldarg.0
- IL_0025: ldfld int32 assembly/Point::y@
- IL_002a: stloc.s V_6
- IL_002c: ldloc.0
- IL_002d: ldfld int32 assembly/Point::y@
- IL_0032: stloc.s V_7
- IL_0034: ldloc.s V_5
- IL_0036: stloc.s V_8
- IL_0038: ldloc.s V_6
- IL_003a: ldloc.s V_7
- IL_003c: ceq
- IL_003e: ret
-
- IL_003f: ldc.i4.0
- IL_0040: ret
-
- IL_0041: ldc.i4.0
- IL_0042: ret
-
- IL_0043: ldarg.1
- IL_0044: ldnull
- IL_0045: cgt.un
- IL_0047: ldc.i4.0
- IL_0048: ceq
- IL_004a: ret
+ IL_0010: ldloc.0
+ IL_0011: ldfld int32 assembly/Point::x@
+ IL_0016: ceq
+ IL_0018: brfalse.s IL_002b
+
+ IL_001a: ldarg.2
+ IL_001b: stloc.2
+ IL_001c: ldarg.0
+ IL_001d: ldfld int32 assembly/Point::y@
+ IL_0022: ldloc.0
+ IL_0023: ldfld int32 assembly/Point::y@
+ IL_0028: ceq
+ IL_002a: ret
+
+ IL_002b: ldc.i4.0
+ IL_002c: ret
+
+ IL_002d: ldc.i4.0
+ IL_002e: ret
+
+ IL_002f: ldarg.1
+ IL_0030: ldnull
+ IL_0031: cgt.un
+ IL_0033: ldc.i4.0
+ IL_0034: ceq
+ IL_0036: ret
}
.method public hidebysig virtual final
@@ -603,11 +529,7 @@
native int V_3,
int32 V_4,
native int V_5,
- int32 V_6,
- native int V_7,
- int32 V_8,
- native int V_9,
- int32 V_10)
+ int32 V_6)
IL_0000: ldc.i4.1
IL_0001: ldc.i4.2
IL_0002: newobj instance void assembly/Point::.ctor(int32,
@@ -624,33 +546,25 @@
IL_0014: ldc.i4.0
IL_0015: stloc.s V_4
IL_0017: ldloc.3
- IL_0018: stloc.s V_5
- IL_001a: ldloc.s V_4
- IL_001c: stloc.s V_6
- IL_001e: ldloc.s V_5
- IL_0020: ldloc.s V_6
- IL_0022: conv.i
- IL_0023: sizeof [runtime]System.Int32
- IL_0029: mul
- IL_002a: add
- IL_002b: ldobj [runtime]System.Int32
- IL_0030: ldloc.1
- IL_0031: stloc.s V_7
- IL_0033: ldc.i4.1
- IL_0034: stloc.s V_8
- IL_0036: ldloc.s V_7
- IL_0038: stloc.s V_9
- IL_003a: ldloc.s V_8
- IL_003c: stloc.s V_10
- IL_003e: ldloc.s V_9
- IL_0040: ldloc.s V_10
- IL_0042: conv.i
- IL_0043: sizeof [runtime]System.Int32
- IL_0049: mul
- IL_004a: add
- IL_004b: ldobj [runtime]System.Int32
- IL_0050: add
- IL_0051: ret
+ IL_0018: ldloc.s V_4
+ IL_001a: conv.i
+ IL_001b: sizeof [runtime]System.Int32
+ IL_0021: mul
+ IL_0022: add
+ IL_0023: ldobj [runtime]System.Int32
+ IL_0028: ldloc.1
+ IL_0029: stloc.s V_5
+ IL_002b: ldc.i4.1
+ IL_002c: stloc.s V_6
+ IL_002e: ldloc.s V_5
+ IL_0030: ldloc.s V_6
+ IL_0032: conv.i
+ IL_0033: sizeof [runtime]System.Int32
+ IL_0039: mul
+ IL_003a: add
+ IL_003b: ldobj [runtime]System.Int32
+ IL_0040: add
+ IL_0041: ret
}
.method public static int32 pinRef() cil managed
@@ -688,11 +602,7 @@
native int V_4,
int32 V_5,
native int V_6,
- int32 V_7,
- native int V_8,
- int32 V_9,
- native int V_10,
- int32 V_11)
+ int32 V_7)
IL_0000: ldc.i4.6
IL_0001: newarr [runtime]System.Double
IL_0006: dup
@@ -752,33 +662,25 @@
IL_008d: ldc.i4.0
IL_008e: stloc.s V_5
IL_0090: ldloc.s V_4
- IL_0092: stloc.s V_6
- IL_0094: ldloc.s V_5
- IL_0096: stloc.s V_7
- IL_0098: ldloc.s V_6
- IL_009a: ldloc.s V_7
- IL_009c: conv.i
- IL_009d: sizeof [runtime]System.Double
- IL_00a3: mul
- IL_00a4: add
- IL_00a5: ldobj [runtime]System.Double
- IL_00aa: ldloc.1
- IL_00ab: stloc.s V_8
- IL_00ad: ldc.i4.1
- IL_00ae: stloc.s V_9
- IL_00b0: ldloc.s V_8
- IL_00b2: stloc.s V_10
- IL_00b4: ldloc.s V_9
- IL_00b6: stloc.s V_11
- IL_00b8: ldloc.s V_10
- IL_00ba: ldloc.s V_11
- IL_00bc: conv.i
- IL_00bd: sizeof [runtime]System.Double
- IL_00c3: mul
- IL_00c4: add
- IL_00c5: ldobj [runtime]System.Double
- IL_00ca: add
- IL_00cb: ret
+ IL_0092: ldloc.s V_5
+ IL_0094: conv.i
+ IL_0095: sizeof [runtime]System.Double
+ IL_009b: mul
+ IL_009c: add
+ IL_009d: ldobj [runtime]System.Double
+ IL_00a2: ldloc.1
+ IL_00a3: stloc.s V_6
+ IL_00a5: ldc.i4.1
+ IL_00a6: stloc.s V_7
+ IL_00a8: ldloc.s V_6
+ IL_00aa: ldloc.s V_7
+ IL_00ac: conv.i
+ IL_00ad: sizeof [runtime]System.Double
+ IL_00b3: mul
+ IL_00b4: add
+ IL_00b5: ldobj [runtime]System.Double
+ IL_00ba: add
+ IL_00bb: ret
}
.method public static float64 pinArray2() cil managed
@@ -791,11 +693,7 @@
native int V_3,
int32 V_4,
native int V_5,
- int32 V_6,
- native int V_7,
- int32 V_8,
- native int V_9,
- int32 V_10)
+ int32 V_6)
IL_0000: ldc.i4.6
IL_0001: newarr [runtime]System.Double
IL_0006: dup
@@ -835,33 +733,25 @@
IL_0074: ldc.i4.0
IL_0075: stloc.s V_4
IL_0077: ldloc.3
- IL_0078: stloc.s V_5
- IL_007a: ldloc.s V_4
- IL_007c: stloc.s V_6
- IL_007e: ldloc.s V_5
- IL_0080: ldloc.s V_6
- IL_0082: conv.i
- IL_0083: sizeof [runtime]System.Double
- IL_0089: mul
- IL_008a: add
- IL_008b: ldobj [runtime]System.Double
- IL_0090: ldloc.1
- IL_0091: stloc.s V_7
- IL_0093: ldc.i4.1
- IL_0094: stloc.s V_8
- IL_0096: ldloc.s V_7
- IL_0098: stloc.s V_9
- IL_009a: ldloc.s V_8
- IL_009c: stloc.s V_10
- IL_009e: ldloc.s V_9
- IL_00a0: ldloc.s V_10
- IL_00a2: conv.i
- IL_00a3: sizeof [runtime]System.Double
- IL_00a9: mul
- IL_00aa: add
- IL_00ab: ldobj [runtime]System.Double
- IL_00b0: add
- IL_00b1: ret
+ IL_0078: ldloc.s V_4
+ IL_007a: conv.i
+ IL_007b: sizeof [runtime]System.Double
+ IL_0081: mul
+ IL_0082: add
+ IL_0083: ldobj [runtime]System.Double
+ IL_0088: ldloc.1
+ IL_0089: stloc.s V_5
+ IL_008b: ldc.i4.1
+ IL_008c: stloc.s V_6
+ IL_008e: ldloc.s V_5
+ IL_0090: ldloc.s V_6
+ IL_0092: conv.i
+ IL_0093: sizeof [runtime]System.Double
+ IL_0099: mul
+ IL_009a: add
+ IL_009b: ldobj [runtime]System.Double
+ IL_00a0: add
+ IL_00a1: ret
}
.method public static class [runtime]System.Tuple`2 pinString() cil managed
@@ -874,11 +764,7 @@
native int V_3,
int32 V_4,
native int V_5,
- int32 V_6,
- native int V_7,
- int32 V_8,
- native int V_9,
- int32 V_10)
+ int32 V_6)
IL_0000: ldstr "Hello World"
IL_0005: stloc.0
IL_0006: ldloc.0
@@ -901,34 +787,26 @@
IL_001b: ldc.i4.0
IL_001c: stloc.s V_4
IL_001e: ldloc.3
- IL_001f: stloc.s V_5
- IL_0021: ldloc.s V_4
- IL_0023: stloc.s V_6
- IL_0025: ldloc.s V_5
- IL_0027: ldloc.s V_6
- IL_0029: conv.i
- IL_002a: sizeof [runtime]System.Char
- IL_0030: mul
- IL_0031: add
- IL_0032: ldobj [runtime]System.Char
- IL_0037: ldloc.1
- IL_0038: stloc.s V_7
- IL_003a: ldc.i4.1
- IL_003b: stloc.s V_8
- IL_003d: ldloc.s V_7
- IL_003f: stloc.s V_9
- IL_0041: ldloc.s V_8
- IL_0043: stloc.s V_10
- IL_0045: ldloc.s V_9
- IL_0047: ldloc.s V_10
- IL_0049: conv.i
- IL_004a: sizeof [runtime]System.Char
- IL_0050: mul
- IL_0051: add
- IL_0052: ldobj [runtime]System.Char
- IL_0057: newobj instance void class [runtime]System.Tuple`2::.ctor(!0,
+ IL_001f: ldloc.s V_4
+ IL_0021: conv.i
+ IL_0022: sizeof [runtime]System.Char
+ IL_0028: mul
+ IL_0029: add
+ IL_002a: ldobj [runtime]System.Char
+ IL_002f: ldloc.1
+ IL_0030: stloc.s V_5
+ IL_0032: ldc.i4.1
+ IL_0033: stloc.s V_6
+ IL_0035: ldloc.s V_5
+ IL_0037: ldloc.s V_6
+ IL_0039: conv.i
+ IL_003a: sizeof [runtime]System.Char
+ IL_0040: mul
+ IL_0041: add
+ IL_0042: ldobj [runtime]System.Char
+ IL_0047: newobj instance void class [runtime]System.Tuple`2::.ctor(!0,
!1)
- IL_005c: ret
+ IL_004c: ret
}
}
@@ -950,4 +828,3 @@
-
diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043_RealInternalSignatureOff.fs.il.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043_RealInternalSignatureOff.fs.il.debug.bsl
index f6fd1e69d1..c19d713617 100644
--- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043_RealInternalSignatureOff.fs.il.debug.bsl
+++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043_RealInternalSignatureOff.fs.il.debug.bsl
@@ -17,16 +17,8 @@
.hash algorithm 0x00008004
.ver 0:0:0:0
}
-.mresource public FSharpSignatureCompressedData.assembly
-{
-
-
-}
-.mresource public FSharpOptimizationCompressedData.assembly
-{
-
-
-}
+.mresource public FSharpSignatureCompressedData.assembly { }
+.mresource public FSharpOptimizationCompressedData.assembly { }
.module assembly.exe
.imagebase {value}
@@ -43,6 +35,76 @@
extends [runtime]System.Object
{
.custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 07 00 00 00 00 00 )
+ .class auto ansi serializable sealed nested assembly beforefieldinit matchResult@38
+ extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2
+ {
+ .field static assembly initonly class Verify13043/matchResult@38 @_instance
+ .method assembly specialname rtspecialname instance void .ctor() cil managed
+ {
+ .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
+ .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
+
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor()
+ IL_0006: ret
+ }
+
+ .method public strict virtual instance bool Invoke(int32 n) cil managed
+ {
+
+ .maxstack 8
+ IL_0000: ldarg.1
+ IL_0001: call bool Verify13043::condition(int32)
+ IL_0006: ret
+ }
+
+ .method private specialname rtspecialname static void .cctor() cil managed
+ {
+
+ .maxstack 10
+ IL_0000: newobj instance void Verify13043/matchResult@38::.ctor()
+ IL_0005: stsfld class Verify13043/matchResult@38 Verify13043/matchResult@38::@_instance
+ IL_000a: ret
+ }
+
+ }
+
+ .class auto ansi serializable sealed nested assembly beforefieldinit functionResult@43
+ extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2
+ {
+ .field static assembly initonly class Verify13043/functionResult@43 @_instance
+ .method assembly specialname rtspecialname instance void .ctor() cil managed
+ {
+ .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
+ .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
+
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor()
+ IL_0006: ret
+ }
+
+ .method public strict virtual instance bool Invoke(int32 n) cil managed
+ {
+
+ .maxstack 8
+ IL_0000: ldarg.1
+ IL_0001: call bool Verify13043::condition(int32)
+ IL_0006: ret
+ }
+
+ .method private specialname rtspecialname static void .cctor() cil managed
+ {
+
+ .maxstack 10
+ IL_0000: newobj instance void Verify13043/functionResult@43::.ctor()
+ IL_0005: stsfld class Verify13043/functionResult@43 Verify13043/functionResult@43::@_instance
+ IL_000a: ret
+ }
+
+ }
+
.class auto ansi serializable sealed nested assembly beforefieldinit f@8
extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1>
{
@@ -173,76 +235,6 @@
}
- .class auto ansi serializable sealed nested assembly beforefieldinit matchResult@38
- extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2
- {
- .field static assembly initonly class Verify13043/matchResult@38 @_instance
- .method assembly specialname rtspecialname instance void .ctor() cil managed
- {
- .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
-
- .maxstack 8
- IL_0000: ldarg.0
- IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor()
- IL_0006: ret
- }
-
- .method public strict virtual instance bool Invoke(int32 n) cil managed
- {
-
- .maxstack 8
- IL_0000: ldarg.1
- IL_0001: call bool Verify13043::condition(int32)
- IL_0006: ret
- }
-
- .method private specialname rtspecialname static void .cctor() cil managed
- {
-
- .maxstack 10
- IL_0000: newobj instance void Verify13043/matchResult@38::.ctor()
- IL_0005: stsfld class Verify13043/matchResult@38 Verify13043/matchResult@38::@_instance
- IL_000a: ret
- }
-
- }
-
- .class auto ansi serializable sealed nested assembly beforefieldinit functionResult@43
- extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2
- {
- .field static assembly initonly class Verify13043/functionResult@43 @_instance
- .method assembly specialname rtspecialname instance void .ctor() cil managed
- {
- .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
-
- .maxstack 8
- IL_0000: ldarg.0
- IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor()
- IL_0006: ret
- }
-
- .method public strict virtual instance bool Invoke(int32 n) cil managed
- {
-
- .maxstack 8
- IL_0000: ldarg.1
- IL_0001: call bool Verify13043::condition(int32)
- IL_0006: ret
- }
-
- .method private specialname rtspecialname static void .cctor() cil managed
- {
-
- .maxstack 10
- IL_0000: newobj instance void Verify13043/functionResult@43::.ctor()
- IL_0005: stsfld class Verify13043/functionResult@43 Verify13043/functionResult@43::@_instance
- IL_000a: ret
- }
-
- }
-
.method public specialname static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 get_list() cil managed
{
@@ -402,4 +394,3 @@
-
diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043_RealInternalSignatureOff.fs.il.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043_RealInternalSignatureOff.fs.il.release.bsl
index f6fd1e69d1..c19d713617 100644
--- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043_RealInternalSignatureOff.fs.il.release.bsl
+++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043_RealInternalSignatureOff.fs.il.release.bsl
@@ -17,16 +17,8 @@
.hash algorithm 0x00008004
.ver 0:0:0:0
}
-.mresource public FSharpSignatureCompressedData.assembly
-{
-
-
-}
-.mresource public FSharpOptimizationCompressedData.assembly
-{
-
-
-}
+.mresource public FSharpSignatureCompressedData.assembly { }
+.mresource public FSharpOptimizationCompressedData.assembly { }
.module assembly.exe
.imagebase {value}
@@ -43,6 +35,76 @@
extends [runtime]System.Object
{
.custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 07 00 00 00 00 00 )
+ .class auto ansi serializable sealed nested assembly beforefieldinit matchResult@38
+ extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2
+ {
+ .field static assembly initonly class Verify13043/matchResult@38 @_instance
+ .method assembly specialname rtspecialname instance void .ctor() cil managed
+ {
+ .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
+ .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
+
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor()
+ IL_0006: ret
+ }
+
+ .method public strict virtual instance bool Invoke(int32 n) cil managed
+ {
+
+ .maxstack 8
+ IL_0000: ldarg.1
+ IL_0001: call bool Verify13043::condition(int32)
+ IL_0006: ret
+ }
+
+ .method private specialname rtspecialname static void .cctor() cil managed
+ {
+
+ .maxstack 10
+ IL_0000: newobj instance void Verify13043/matchResult@38::.ctor()
+ IL_0005: stsfld class Verify13043/matchResult@38 Verify13043/matchResult@38::@_instance
+ IL_000a: ret
+ }
+
+ }
+
+ .class auto ansi serializable sealed nested assembly beforefieldinit functionResult@43
+ extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2
+ {
+ .field static assembly initonly class Verify13043/functionResult@43 @_instance
+ .method assembly specialname rtspecialname instance void .ctor() cil managed
+ {
+ .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
+ .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
+
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor()
+ IL_0006: ret
+ }
+
+ .method public strict virtual instance bool Invoke(int32 n) cil managed
+ {
+
+ .maxstack 8
+ IL_0000: ldarg.1
+ IL_0001: call bool Verify13043::condition(int32)
+ IL_0006: ret
+ }
+
+ .method private specialname rtspecialname static void .cctor() cil managed
+ {
+
+ .maxstack 10
+ IL_0000: newobj instance void Verify13043/functionResult@43::.ctor()
+ IL_0005: stsfld class Verify13043/functionResult@43 Verify13043/functionResult@43::@_instance
+ IL_000a: ret
+ }
+
+ }
+
.class auto ansi serializable sealed nested assembly beforefieldinit f@8
extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1>
{
@@ -173,76 +235,6 @@
}
- .class auto ansi serializable sealed nested assembly beforefieldinit matchResult@38
- extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2
- {
- .field static assembly initonly class Verify13043/matchResult@38 @_instance
- .method assembly specialname rtspecialname instance void .ctor() cil managed
- {
- .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
-
- .maxstack 8
- IL_0000: ldarg.0
- IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor()
- IL_0006: ret
- }
-
- .method public strict virtual instance bool Invoke(int32 n) cil managed
- {
-
- .maxstack 8
- IL_0000: ldarg.1
- IL_0001: call bool Verify13043::condition(int32)
- IL_0006: ret
- }
-
- .method private specialname rtspecialname static void .cctor() cil managed
- {
-
- .maxstack 10
- IL_0000: newobj instance void Verify13043/matchResult@38::.ctor()
- IL_0005: stsfld class Verify13043/matchResult@38 Verify13043/matchResult@38::@_instance
- IL_000a: ret
- }
-
- }
-
- .class auto ansi serializable sealed nested assembly beforefieldinit functionResult@43
- extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2
- {
- .field static assembly initonly class Verify13043/functionResult@43 @_instance
- .method assembly specialname rtspecialname instance void .ctor() cil managed
- {
- .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
-
- .maxstack 8
- IL_0000: ldarg.0
- IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor()
- IL_0006: ret
- }
-
- .method public strict virtual instance bool Invoke(int32 n) cil managed
- {
-
- .maxstack 8
- IL_0000: ldarg.1
- IL_0001: call bool Verify13043::condition(int32)
- IL_0006: ret
- }
-
- .method private specialname rtspecialname static void .cctor() cil managed
- {
-
- .maxstack 10
- IL_0000: newobj instance void Verify13043/functionResult@43::.ctor()
- IL_0005: stsfld class Verify13043/functionResult@43 Verify13043/functionResult@43::@_instance
- IL_000a: ret
- }
-
- }
-
.method public specialname static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 get_list() cil managed
{
@@ -402,4 +394,3 @@
-
diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043_RealInternalSignatureOn.fs.il.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043_RealInternalSignatureOn.fs.il.debug.bsl
index ffb2898dcf..696aecf4ab 100644
--- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043_RealInternalSignatureOn.fs.il.debug.bsl
+++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043_RealInternalSignatureOn.fs.il.debug.bsl
@@ -17,16 +17,8 @@
.hash algorithm 0x00008004
.ver 0:0:0:0
}
-.mresource public FSharpSignatureCompressedData.assembly
-{
-
-
-}
-.mresource public FSharpOptimizationCompressedData.assembly
-{
-
-
-}
+.mresource public FSharpSignatureCompressedData.assembly { }
+.mresource public FSharpOptimizationCompressedData.assembly { }
.module assembly.exe
.imagebase {value}
@@ -43,6 +35,76 @@
extends [runtime]System.Object
{
.custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 07 00 00 00 00 00 )
+ .class auto ansi serializable sealed nested assembly beforefieldinit matchResult@38
+ extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2
+ {
+ .field static assembly initonly class Verify13043/matchResult@38 @_instance
+ .method assembly specialname rtspecialname instance void .ctor() cil managed
+ {
+ .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
+ .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
+
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor()
+ IL_0006: ret
+ }
+
+ .method public strict virtual instance bool Invoke(int32 n) cil managed
+ {
+
+ .maxstack 8
+ IL_0000: ldarg.1
+ IL_0001: call bool Verify13043::condition(int32)
+ IL_0006: ret
+ }
+
+ .method private specialname rtspecialname static void .cctor() cil managed
+ {
+
+ .maxstack 10
+ IL_0000: newobj instance void Verify13043/matchResult@38::.ctor()
+ IL_0005: stsfld class Verify13043/matchResult@38 Verify13043/matchResult@38::@_instance
+ IL_000a: ret
+ }
+
+ }
+
+ .class auto ansi serializable sealed nested assembly beforefieldinit functionResult@43
+ extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2
+ {
+ .field static assembly initonly class Verify13043/functionResult@43 @_instance
+ .method assembly specialname rtspecialname instance void .ctor() cil managed
+ {
+ .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
+ .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
+
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor()
+ IL_0006: ret
+ }
+
+ .method public strict virtual instance bool Invoke(int32 n) cil managed
+ {
+
+ .maxstack 8
+ IL_0000: ldarg.1
+ IL_0001: call bool Verify13043::condition(int32)
+ IL_0006: ret
+ }
+
+ .method private specialname rtspecialname static void .cctor() cil managed
+ {
+
+ .maxstack 10
+ IL_0000: newobj instance void Verify13043/functionResult@43::.ctor()
+ IL_0005: stsfld class Verify13043/functionResult@43 Verify13043/functionResult@43::@_instance
+ IL_000a: ret
+ }
+
+ }
+
.class auto ansi serializable sealed nested assembly beforefieldinit f@8
extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1>
{
@@ -173,76 +235,6 @@
}
- .class auto ansi serializable sealed nested assembly beforefieldinit matchResult@38
- extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2
- {
- .field static assembly initonly class Verify13043/matchResult@38 @_instance
- .method assembly specialname rtspecialname instance void .ctor() cil managed
- {
- .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
-
- .maxstack 8
- IL_0000: ldarg.0
- IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor()
- IL_0006: ret
- }
-
- .method public strict virtual instance bool Invoke(int32 n) cil managed
- {
-
- .maxstack 8
- IL_0000: ldarg.1
- IL_0001: call bool Verify13043::condition(int32)
- IL_0006: ret
- }
-
- .method private specialname rtspecialname static void .cctor() cil managed
- {
-
- .maxstack 10
- IL_0000: newobj instance void Verify13043/matchResult@38::.ctor()
- IL_0005: stsfld class Verify13043/matchResult@38 Verify13043/matchResult@38::@_instance
- IL_000a: ret
- }
-
- }
-
- .class auto ansi serializable sealed nested assembly beforefieldinit functionResult@43
- extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2
- {
- .field static assembly initonly class Verify13043/functionResult@43 @_instance
- .method assembly specialname rtspecialname instance void .ctor() cil managed
- {
- .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
-
- .maxstack 8
- IL_0000: ldarg.0
- IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor()
- IL_0006: ret
- }
-
- .method public strict virtual instance bool Invoke(int32 n) cil managed
- {
-
- .maxstack 8
- IL_0000: ldarg.1
- IL_0001: call bool Verify13043::condition(int32)
- IL_0006: ret
- }
-
- .method private specialname rtspecialname static void .cctor() cil managed
- {
-
- .maxstack 10
- IL_0000: newobj instance void Verify13043/functionResult@43::.ctor()
- IL_0005: stsfld class Verify13043/functionResult@43 Verify13043/functionResult@43::@_instance
- IL_000a: ret
- }
-
- }
-
.field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 list@3
.custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 matchResult@38
@@ -412,4 +404,3 @@
-
diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043_RealInternalSignatureOn.fs.il.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043_RealInternalSignatureOn.fs.il.release.bsl
index ffb2898dcf..696aecf4ab 100644
--- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043_RealInternalSignatureOn.fs.il.release.bsl
+++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043_RealInternalSignatureOn.fs.il.release.bsl
@@ -17,16 +17,8 @@
.hash algorithm 0x00008004
.ver 0:0:0:0
}
-.mresource public FSharpSignatureCompressedData.assembly
-{
-
-
-}
-.mresource public FSharpOptimizationCompressedData.assembly
-{
-
-
-}
+.mresource public FSharpSignatureCompressedData.assembly { }
+.mresource public FSharpOptimizationCompressedData.assembly { }
.module assembly.exe
.imagebase {value}
@@ -43,6 +35,76 @@
extends [runtime]System.Object
{
.custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 07 00 00 00 00 00 )
+ .class auto ansi serializable sealed nested assembly beforefieldinit matchResult@38
+ extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2
+ {
+ .field static assembly initonly class Verify13043/matchResult@38 @_instance
+ .method assembly specialname rtspecialname instance void .ctor() cil managed
+ {
+ .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
+ .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
+
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor()
+ IL_0006: ret
+ }
+
+ .method public strict virtual instance bool Invoke(int32 n) cil managed
+ {
+
+ .maxstack 8
+ IL_0000: ldarg.1
+ IL_0001: call bool Verify13043::condition(int32)
+ IL_0006: ret
+ }
+
+ .method private specialname rtspecialname static void .cctor() cil managed
+ {
+
+ .maxstack 10
+ IL_0000: newobj instance void Verify13043/matchResult@38::.ctor()
+ IL_0005: stsfld class Verify13043/matchResult@38 Verify13043/matchResult@38::@_instance
+ IL_000a: ret
+ }
+
+ }
+
+ .class auto ansi serializable sealed nested assembly beforefieldinit functionResult@43
+ extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2
+ {
+ .field static assembly initonly class Verify13043/functionResult@43 @_instance
+ .method assembly specialname rtspecialname instance void .ctor() cil managed
+ {
+ .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
+ .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
+
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor()
+ IL_0006: ret
+ }
+
+ .method public strict virtual instance bool Invoke(int32 n) cil managed
+ {
+
+ .maxstack 8
+ IL_0000: ldarg.1
+ IL_0001: call bool Verify13043::condition(int32)
+ IL_0006: ret
+ }
+
+ .method private specialname rtspecialname static void .cctor() cil managed
+ {
+
+ .maxstack 10
+ IL_0000: newobj instance void Verify13043/functionResult@43::.ctor()
+ IL_0005: stsfld class Verify13043/functionResult@43 Verify13043/functionResult@43::@_instance
+ IL_000a: ret
+ }
+
+ }
+
.class auto ansi serializable sealed nested assembly beforefieldinit f@8
extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1>
{
@@ -173,76 +235,6 @@
}
- .class auto ansi serializable sealed nested assembly beforefieldinit matchResult@38
- extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2
- {
- .field static assembly initonly class Verify13043/matchResult@38 @_instance
- .method assembly specialname rtspecialname instance void .ctor() cil managed
- {
- .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
-
- .maxstack 8
- IL_0000: ldarg.0
- IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor()
- IL_0006: ret
- }
-
- .method public strict virtual instance bool Invoke(int32 n) cil managed
- {
-
- .maxstack 8
- IL_0000: ldarg.1
- IL_0001: call bool Verify13043::condition(int32)
- IL_0006: ret
- }
-
- .method private specialname rtspecialname static void .cctor() cil managed
- {
-
- .maxstack 10
- IL_0000: newobj instance void Verify13043/matchResult@38::.ctor()
- IL_0005: stsfld class Verify13043/matchResult@38 Verify13043/matchResult@38::@_instance
- IL_000a: ret
- }
-
- }
-
- .class auto ansi serializable sealed nested assembly beforefieldinit functionResult@43
- extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2
- {
- .field static assembly initonly class Verify13043/functionResult@43 @_instance
- .method assembly specialname rtspecialname instance void .ctor() cil managed
- {
- .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 )
- .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 )
-
- .maxstack 8
- IL_0000: ldarg.0
- IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor()
- IL_0006: ret
- }
-
- .method public strict virtual instance bool Invoke(int32 n) cil managed
- {
-
- .maxstack 8
- IL_0000: ldarg.1
- IL_0001: call bool Verify13043::condition(int32)
- IL_0006: ret
- }
-
- .method private specialname rtspecialname static void .cctor() cil managed
- {
-
- .maxstack 10
- IL_0000: newobj instance void Verify13043/functionResult@43::.ctor()
- IL_0005: stsfld class Verify13043/functionResult@43 Verify13043/functionResult@43::@_instance
- IL_000a: ret
- }
-
- }
-
.field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 list@3
.custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 )
.field static assembly class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 matchResult@38
@@ -412,4 +404,3 @@
-
diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/Graph/CompilationTests.fs b/tests/FSharp.Compiler.ComponentTests/TypeChecks/Graph/CompilationTests.fs
index 829810f3ee..033cb71933 100644
--- a/tests/FSharp.Compiler.ComponentTests/TypeChecks/Graph/CompilationTests.fs
+++ b/tests/FSharp.Compiler.ComponentTests/TypeChecks/Graph/CompilationTests.fs
@@ -13,7 +13,7 @@ type Method =
let methodOptions (method: Method) =
match method with
| Method.Sequential -> []
- | Method.Graph -> [ "--test:GraphBasedChecking"; "--test:DumpCheckingGraph" ]
+ | Method.Graph -> [ "GraphBasedChecking"; "--test:DumpCheckingGraph" ]
let withMethod (method: Method) (cu: CompilationUnit) : CompilationUnit =
match cu with
diff --git a/tests/benchmarks/FCSBenchmarks/CompilerServiceBenchmarks/GraphTypeCheckingBenchmarks.fs b/tests/benchmarks/FCSBenchmarks/CompilerServiceBenchmarks/GraphTypeCheckingBenchmarks.fs
index 3f2f170a41..1b950c8323 100644
--- a/tests/benchmarks/FCSBenchmarks/CompilerServiceBenchmarks/GraphTypeCheckingBenchmarks.fs
+++ b/tests/benchmarks/FCSBenchmarks/CompilerServiceBenchmarks/GraphTypeCheckingBenchmarks.fs
@@ -45,7 +45,7 @@ type GraphTypeCheckingBenchmarks() =
OtherOptions =
[
if this.GraphTypeChecking then
- "--test:GraphBasedChecking"
+ "GraphBasedChecking"
]
}
@@ -67,7 +67,7 @@ type GraphTypeCheckingBenchmarks() =
OtherOptions =
[
if this.GraphTypeChecking then
- "--test:GraphBasedChecking"
+ "GraphBasedChecking"
]
}
diff --git a/tests/fsharp/single-test.fs b/tests/fsharp/single-test.fs
index 4bcad9740f..ea87d32876 100644
--- a/tests/fsharp/single-test.fs
+++ b/tests/fsharp/single-test.fs
@@ -335,7 +335,7 @@ let singleTestBuildAndRunCore cfg copyFiles p languageVersion =
let sources = extraSources |> List.filter (fileExists cfg)
fsc cfg "%s --optimize -a -o:test--optimize-lib.dll -g --langversion:preview " cfg.fsc_flags sources
- fsc cfg "%s --realsig- --optimize -r:test--optimize-lib.dll -o:test--optimize-client-of-lib.exe -g --langversion:preview " cfg.fsc_flags sources
+ fsc cfg "%s --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- --optimize -r:test--optimize-lib.dll -o:test--optimize-client-of-lib.exe -g --langversion:preview " cfg.fsc_flags sources
peverify cfg "test--optimize-lib.dll"
peverify cfg "test--optimize-client-of-lib.exe"
diff --git a/tests/fsharp/tests.fs b/tests/fsharp/tests.fs
index 30c2e3b40d..e0ad37545d 100644
--- a/tests/fsharp/tests.fs
+++ b/tests/fsharp/tests.fs
@@ -1423,53 +1423,53 @@ module CoreTests =
let topinit () =
let cfg = testConfig "core/topinit"
- fsc cfg "%s --realsig- --optimize -o both69514.exe -g" cfg.fsc_flags ["lib69514.fs"; "app69514.fs"]
+ fsc cfg "%s --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- --optimize -o both69514.exe -g" cfg.fsc_flags ["lib69514.fs"; "app69514.fs"]
peverify cfg "both69514.exe"
- fsc cfg "%s --realsig- --optimize- -o both69514-noopt.exe -g" cfg.fsc_flags ["lib69514.fs"; "app69514.fs"]
+ fsc cfg "%s --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- --optimize- -o both69514-noopt.exe -g" cfg.fsc_flags ["lib69514.fs"; "app69514.fs"]
peverify cfg "both69514-noopt.exe"
- fsc cfg "%s --realsig- --optimize -a -g" cfg.fsc_flags ["lib69514.fs"]
+ fsc cfg "%s --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- --optimize -a -g" cfg.fsc_flags ["lib69514.fs"]
peverify cfg "lib69514.dll"
- fsc cfg "%s --realsig- --optimize -r:lib69514.dll -g" cfg.fsc_flags ["app69514.fs"]
+ fsc cfg "%s --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- --optimize -r:lib69514.dll -g" cfg.fsc_flags ["app69514.fs"]
peverify cfg "app69514.exe"
- fsc cfg "%s --realsig- --optimize- -o:lib69514-noopt.dll -a -g" cfg.fsc_flags ["lib69514.fs"]
+ fsc cfg "%s --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- --optimize- -o:lib69514-noopt.dll -a -g" cfg.fsc_flags ["lib69514.fs"]
peverify cfg "lib69514-noopt.dll"
- fsc cfg "%s --realsig- --optimize- -r:lib69514-noopt.dll -o:app69514-noopt.exe -g" cfg.fsc_flags ["app69514.fs"]
+ fsc cfg "%s --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- --optimize- -r:lib69514-noopt.dll -o:app69514-noopt.exe -g" cfg.fsc_flags ["app69514.fs"]
peverify cfg "app69514-noopt.exe"
- fsc cfg "%s --realsig- --optimize- -o:lib69514-noopt-withsig.dll -a -g" cfg.fsc_flags ["lib69514.fsi"; "lib69514.fs"]
+ fsc cfg "%s --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- --optimize- -o:lib69514-noopt-withsig.dll -a -g" cfg.fsc_flags ["lib69514.fsi"; "lib69514.fs"]
peverify cfg "lib69514-noopt-withsig.dll"
- fsc cfg "%s --realsig- --optimize- -r:lib69514-noopt-withsig.dll -o:app69514-noopt-withsig.exe -g" cfg.fsc_flags ["app69514.fs"]
+ fsc cfg "%s --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- --optimize- -r:lib69514-noopt-withsig.dll -o:app69514-noopt-withsig.exe -g" cfg.fsc_flags ["app69514.fs"]
peverify cfg "app69514-noopt-withsig.exe"
- fsc cfg "%s --realsig- -o:lib69514-withsig.dll -a -g" cfg.fsc_flags ["lib69514.fsi"; "lib69514.fs"]
+ fsc cfg "%s --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- -o:lib69514-withsig.dll -a -g" cfg.fsc_flags ["lib69514.fsi"; "lib69514.fs"]
peverify cfg "lib69514-withsig.dll"
- fsc cfg "%s -r:lib69514-withsig.dll --realsig- -o:app69514-withsig.exe -g" cfg.fsc_flags ["app69514.fs"]
+ fsc cfg "%s -r:lib69514-withsig.dll --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- -o:app69514-withsig.exe -g" cfg.fsc_flags ["app69514.fs"]
peverify cfg "app69514-withsig.exe"
- fsc cfg "%s -o:lib.dll --realsig- -a --langversion:5.0 --mlcompatibility -g" cfg.fsc_flags ["lib.ml"]
+ fsc cfg "%s -o:lib.dll --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- -a --langversion:5.0 --mlcompatibility -g" cfg.fsc_flags ["lib.ml"]
peverify cfg "lib.dll"
csc cfg """/nologo /r:"%s" /r:lib.dll /out:test.exe """ cfg.FSCOREDLLPATH ["test.cs"]
- fsc cfg "%s --optimize -o:lib--optimize.dll --realsig- -a --langversion:5.0 --mlcompatibility -g" cfg.fsc_flags ["lib.ml"]
+ fsc cfg "%s --optimize -o:lib--optimize.dll --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- -a --langversion:5.0 --mlcompatibility -g" cfg.fsc_flags ["lib.ml"]
peverify cfg "lib--optimize.dll"
@@ -1477,53 +1477,53 @@ module CoreTests =
let dicases = ["flag_deterministic_init1.fs"; "lib_deterministic_init1.fs"; "flag_deterministic_init2.fs"; "lib_deterministic_init2.fs"; "flag_deterministic_init3.fs"; "lib_deterministic_init3.fs"; "flag_deterministic_init4.fs"; "lib_deterministic_init4.fs"; "flag_deterministic_init5.fs"; "lib_deterministic_init5.fs"; "flag_deterministic_init6.fs"; "lib_deterministic_init6.fs"; "flag_deterministic_init7.fs"; "lib_deterministic_init7.fs"; "flag_deterministic_init8.fs"; "lib_deterministic_init8.fs"; "flag_deterministic_init9.fs"; "lib_deterministic_init9.fs"; "flag_deterministic_init10.fs"; "lib_deterministic_init10.fs"; "flag_deterministic_init11.fs"; "lib_deterministic_init11.fs"; "flag_deterministic_init12.fs"; "lib_deterministic_init12.fs"; "flag_deterministic_init13.fs"; "lib_deterministic_init13.fs"; "flag_deterministic_init14.fs"; "lib_deterministic_init14.fs"; "flag_deterministic_init15.fs"; "lib_deterministic_init15.fs"; "flag_deterministic_init16.fs"; "lib_deterministic_init16.fs"; "flag_deterministic_init17.fs"; "lib_deterministic_init17.fs"; "flag_deterministic_init18.fs"; "lib_deterministic_init18.fs"; "flag_deterministic_init19.fs"; "lib_deterministic_init19.fs"; "flag_deterministic_init20.fs"; "lib_deterministic_init20.fs"; "flag_deterministic_init21.fs"; "lib_deterministic_init21.fs"; "flag_deterministic_init22.fs"; "lib_deterministic_init22.fs"; "flag_deterministic_init23.fs"; "lib_deterministic_init23.fs"; "flag_deterministic_init24.fs"; "lib_deterministic_init24.fs"; "flag_deterministic_init25.fs"; "lib_deterministic_init25.fs"; "flag_deterministic_init26.fs"; "lib_deterministic_init26.fs"; "flag_deterministic_init27.fs"; "lib_deterministic_init27.fs"; "flag_deterministic_init28.fs"; "lib_deterministic_init28.fs"; "flag_deterministic_init29.fs"; "lib_deterministic_init29.fs"; "flag_deterministic_init30.fs"; "lib_deterministic_init30.fs"; "flag_deterministic_init31.fs"; "lib_deterministic_init31.fs"; "flag_deterministic_init32.fs"; "lib_deterministic_init32.fs"; "flag_deterministic_init33.fs"; "lib_deterministic_init33.fs"; "flag_deterministic_init34.fs"; "lib_deterministic_init34.fs"; "flag_deterministic_init35.fs"; "lib_deterministic_init35.fs"; "flag_deterministic_init36.fs"; "lib_deterministic_init36.fs"; "flag_deterministic_init37.fs"; "lib_deterministic_init37.fs"; "flag_deterministic_init38.fs"; "lib_deterministic_init38.fs"; "flag_deterministic_init39.fs"; "lib_deterministic_init39.fs"; "flag_deterministic_init40.fs"; "lib_deterministic_init40.fs"; "flag_deterministic_init41.fs"; "lib_deterministic_init41.fs"; "flag_deterministic_init42.fs"; "lib_deterministic_init42.fs"; "flag_deterministic_init43.fs"; "lib_deterministic_init43.fs"; "flag_deterministic_init44.fs"; "lib_deterministic_init44.fs"; "flag_deterministic_init45.fs"; "lib_deterministic_init45.fs"; "flag_deterministic_init46.fs"; "lib_deterministic_init46.fs"; "flag_deterministic_init47.fs"; "lib_deterministic_init47.fs"; "flag_deterministic_init48.fs"; "lib_deterministic_init48.fs"; "flag_deterministic_init49.fs"; "lib_deterministic_init49.fs"; "flag_deterministic_init50.fs"; "lib_deterministic_init50.fs"; "flag_deterministic_init51.fs"; "lib_deterministic_init51.fs"; "flag_deterministic_init52.fs"; "lib_deterministic_init52.fs"; "flag_deterministic_init53.fs"; "lib_deterministic_init53.fs"; "flag_deterministic_init54.fs"; "lib_deterministic_init54.fs"; "flag_deterministic_init55.fs"; "lib_deterministic_init55.fs"; "flag_deterministic_init56.fs"; "lib_deterministic_init56.fs"; "flag_deterministic_init57.fs"; "lib_deterministic_init57.fs"; "flag_deterministic_init58.fs"; "lib_deterministic_init58.fs"; "flag_deterministic_init59.fs"; "lib_deterministic_init59.fs"; "flag_deterministic_init60.fs"; "lib_deterministic_init60.fs"; "flag_deterministic_init61.fs"; "lib_deterministic_init61.fs"; "flag_deterministic_init62.fs"; "lib_deterministic_init62.fs"; "flag_deterministic_init63.fs"; "lib_deterministic_init63.fs"; "flag_deterministic_init64.fs"; "lib_deterministic_init64.fs"; "flag_deterministic_init65.fs"; "lib_deterministic_init65.fs"; "flag_deterministic_init66.fs"; "lib_deterministic_init66.fs"; "flag_deterministic_init67.fs"; "lib_deterministic_init67.fs"; "flag_deterministic_init68.fs"; "lib_deterministic_init68.fs"; "flag_deterministic_init69.fs"; "lib_deterministic_init69.fs"; "flag_deterministic_init70.fs"; "lib_deterministic_init70.fs"; "flag_deterministic_init71.fs"; "lib_deterministic_init71.fs"; "flag_deterministic_init72.fs"; "lib_deterministic_init72.fs"; "flag_deterministic_init73.fs"; "lib_deterministic_init73.fs"; "flag_deterministic_init74.fs"; "lib_deterministic_init74.fs"; "flag_deterministic_init75.fs"; "lib_deterministic_init75.fs"; "flag_deterministic_init76.fs"; "lib_deterministic_init76.fs"; "flag_deterministic_init77.fs"; "lib_deterministic_init77.fs"; "flag_deterministic_init78.fs"; "lib_deterministic_init78.fs"; "flag_deterministic_init79.fs"; "lib_deterministic_init79.fs"; "flag_deterministic_init80.fs"; "lib_deterministic_init80.fs"; "flag_deterministic_init81.fs"; "lib_deterministic_init81.fs"; "flag_deterministic_init82.fs"; "lib_deterministic_init82.fs"; "flag_deterministic_init83.fs"; "lib_deterministic_init83.fs"; "flag_deterministic_init84.fs"; "lib_deterministic_init84.fs"; "flag_deterministic_init85.fs"; "lib_deterministic_init85.fs"]
- fsc cfg "%s --optimize- -o test_deterministic_init.exe --realsig- " cfg.fsc_flags (dicases @ ["test_deterministic_init.fs"])
+ fsc cfg "%s --optimize- -o test_deterministic_init.exe --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- " cfg.fsc_flags (dicases @ ["test_deterministic_init.fs"])
peverify cfg "test_deterministic_init.exe"
- fsc cfg "%s --optimize -o test_deterministic_init--optimize.exe --realsig- " cfg.fsc_flags (dicases @ ["test_deterministic_init.fs"])
+ fsc cfg "%s --optimize -o test_deterministic_init--optimize.exe --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- " cfg.fsc_flags (dicases @ ["test_deterministic_init.fs"])
peverify cfg "test_deterministic_init--optimize.exe"
- fsc cfg "%s --optimize- -a -o test_deterministic_init_lib.dll --realsig- " cfg.fsc_flags dicases
+ fsc cfg "%s --optimize- -a -o test_deterministic_init_lib.dll --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- " cfg.fsc_flags dicases
peverify cfg "test_deterministic_init_lib.dll"
- fsc cfg "%s --optimize- -r test_deterministic_init_lib.dll -o test_deterministic_init_exe.exe --realsig- " cfg.fsc_flags ["test_deterministic_init.fs"]
+ fsc cfg "%s --optimize- -r test_deterministic_init_lib.dll -o test_deterministic_init_exe.exe --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- " cfg.fsc_flags ["test_deterministic_init.fs"]
peverify cfg "test_deterministic_init_exe.exe"
- fsc cfg "%s --realsig- --optimize -a -o test_deterministic_init_lib--optimize.dll --realsig- " cfg.fsc_flags dicases
+ fsc cfg "%s --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- --optimize -a -o test_deterministic_init_lib--optimize.dll --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- " cfg.fsc_flags dicases
peverify cfg "test_deterministic_init_lib--optimize.dll"
- fsc cfg "%s --realsig- --optimize -r test_deterministic_init_lib--optimize.dll -o test_deterministic_init_exe--optimize.exe --realsig- " cfg.fsc_flags ["test_deterministic_init.fs"]
+ fsc cfg "%s --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- --optimize -r test_deterministic_init_lib--optimize.dll -o test_deterministic_init_exe--optimize.exe --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- " cfg.fsc_flags ["test_deterministic_init.fs"]
peverify cfg "test_deterministic_init_exe--optimize.exe"
let static_init_cases = [ "test0.fs"; "test1.fs"; "test2.fs"; "test3.fs"; "test4.fs"; "test5.fs"; "test6.fs" ]
- fsc cfg "%s --optimize- -o test_static_init.exe --realsig- " cfg.fsc_flags (static_init_cases @ ["static-main.fs"])
+ fsc cfg "%s --optimize- -o test_static_init.exe --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- " cfg.fsc_flags (static_init_cases @ ["static-main.fs"])
peverify cfg "test_static_init.exe"
- fsc cfg "%s --optimize -o test_static_init--optimize.exe --realsig- " cfg.fsc_flags (static_init_cases @ [ "static-main.fs" ])
+ fsc cfg "%s --optimize -o test_static_init--optimize.exe --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- " cfg.fsc_flags (static_init_cases @ [ "static-main.fs" ])
peverify cfg "test_static_init--optimize.exe"
- fsc cfg "%s --optimize- -a -o test_static_init_lib.dll --realsig- " cfg.fsc_flags static_init_cases
+ fsc cfg "%s --optimize- -a -o test_static_init_lib.dll --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- " cfg.fsc_flags static_init_cases
peverify cfg "test_static_init_lib.dll"
- fsc cfg "%s --optimize- -r test_static_init_lib.dll -o test_static_init_exe.exe --realsig- " cfg.fsc_flags ["static-main.fs"]
+ fsc cfg "%s --optimize- -r test_static_init_lib.dll -o test_static_init_exe.exe --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- " cfg.fsc_flags ["static-main.fs"]
peverify cfg "test_static_init_exe.exe"
- fsc cfg "%s --optimize -a -o test_static_init_lib--optimize.dll --realsig- " cfg.fsc_flags static_init_cases
+ fsc cfg "%s --optimize -a -o test_static_init_lib--optimize.dll --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- " cfg.fsc_flags static_init_cases
peverify cfg "test_static_init_lib--optimize.dll"
- fsc cfg "%s --realsig- --optimize -r test_static_init_lib--optimize.dll --realsig- -o test_static_init_exe--optimize.exe" cfg.fsc_flags ["static-main.fs"]
+ fsc cfg "%s --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- --optimize -r test_static_init_lib--optimize.dll --realsig- --graphbasedchecking- --paralleloptimization- --parallelilxgen- -o test_static_init_exe--optimize.exe" cfg.fsc_flags ["static-main.fs"]
peverify cfg "test_static_init_exe--optimize.exe"