diff --git a/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md b/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md index 965957dbc0c..13c18561c00 100644 --- a/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md +++ b/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md @@ -82,6 +82,8 @@ * Symbols: add ObsoleteDiagnosticInfo ([PR #19359](https://github.com/dotnet/fsharp/pull/19359)) * Add `#version;;` directive to F# Interactive to display version and environment information. ([Issue #13307](https://github.com/dotnet/fsharp/issues/13307), [PR #19332](https://github.com/dotnet/fsharp/pull/19332)) * Debug: rework for expressions stepping ([PR #19894](https://github.com/dotnet/fsharp/pull/19894)) +* Debug: rework conditional erasure, fix stepping over literals ([PR #19897](https://github.com/dotnet/fsharp/pull/19897)) +* Debug: fix if and match condition sequence points ([PR #19932](https://github.com/dotnet/fsharp/pull/19932)) ### Changed diff --git a/src/Compiler/Checking/CheckIncrementalClasses.fs b/src/Compiler/Checking/CheckIncrementalClasses.fs index 846aa5f9085..1d094bbf874 100644 --- a/src/Compiler/Checking/CheckIncrementalClasses.fs +++ b/src/Compiler/Checking/CheckIncrementalClasses.fs @@ -802,7 +802,7 @@ let MakeCtorForIncrClassConstructionPhase2C( // Extend the range of any immediate debug point to include the 'do' let doExpr = match doExpr with - | Expr.DebugPoint(_, innerExpr) -> Expr.DebugPoint(DebugPointAtLeafExpr.Yes mFull, innerExpr) + | Expr.DebugPoint(_, innerExpr) -> Expr.DebugPoint(DebugPointAtLeafExpr.Yes(false, mFull), innerExpr) | e -> e let binder = (fun e -> mkSequential mFull doExpr e) let isPriorToSuperInit = false @@ -940,7 +940,7 @@ let MakeCtorForIncrClassConstructionPhase2C( // Add the debug point let inheritsExpr = if inheritsIsVisible then - Expr.DebugPoint(DebugPointAtLeafExpr.Yes inheritsExpr.Range, inheritsExpr) + Expr.DebugPoint(DebugPointAtLeafExpr.Yes(false, inheritsExpr.Range), inheritsExpr) else inheritsExpr diff --git a/src/Compiler/Checking/Expressions/CheckComputationExpressions.fs b/src/Compiler/Checking/Expressions/CheckComputationExpressions.fs index 3ab446a6687..b05df442d36 100644 --- a/src/Compiler/Checking/Expressions/CheckComputationExpressions.fs +++ b/src/Compiler/Checking/Expressions/CheckComputationExpressions.fs @@ -81,7 +81,7 @@ let inline arbKeySelectors m = // Flag that a debug point should get emitted prior to both the evaluation of 'rhsExpr' and the call to Using let inline addBindDebugPoint spBind e = match spBind with - | DebugPointAtBinding.Yes m -> SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes m, false, e) + | DebugPointAtBinding.Yes m -> SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes(false, m), false, e) | _ -> e let inline mkSynDelay2 (e: SynExpr) = mkSynDelay (e.Range.MakeSynthetic()) e @@ -1345,7 +1345,7 @@ let rec TryTranslateComputationExpression let forCall = match spFor with - | DebugPointAtFor.Yes _ -> SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes mFor, false, forCall) + | DebugPointAtFor.Yes _ -> SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes(false, mFor), false, forCall) | DebugPointAtFor.No -> forCall translatedCtxt forCall) @@ -1389,7 +1389,7 @@ let rec TryTranslateComputationExpression // 'while' is hit just before each time the guard is called let guardExpr = match spWhile with - | DebugPointAtWhile.Yes _ -> SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes mWhile, false, guardExpr) + | DebugPointAtWhile.Yes _ -> SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes(false, mWhile), false, guardExpr) | DebugPointAtWhile.No -> guardExpr Some( @@ -1419,7 +1419,7 @@ let rec TryTranslateComputationExpression // 'while!' is hit just before each time the guard is called let guardExpr = match spWhile with - | DebugPointAtWhile.Yes _ -> SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes mWhile, false, guardExpr) + | DebugPointAtWhile.Yes _ -> SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes(false, mWhile), false, guardExpr) | DebugPointAtWhile.No -> guardExpr let rewrittenWhileExpr = @@ -1557,7 +1557,7 @@ let rec TryTranslateComputationExpression // Put down a debug point for the 'finally' let unwindExpr2 = match spFinally with - | DebugPointAtFinally.Yes _ -> SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes mFinally, true, unwindExpr) + | DebugPointAtFinally.Yes _ -> SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes(false, mFinally), true, unwindExpr) | DebugPointAtFinally.No -> unwindExpr if ceenv.isQuery then @@ -1571,7 +1571,7 @@ let rec TryTranslateComputationExpression let innerExpr = match spTry with - | DebugPointAtTry.Yes _ -> SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes mTry, true, innerExpr) + | DebugPointAtTry.Yes _ -> SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes(false, mTry), true, innerExpr) | _ -> innerExpr Some( @@ -2308,7 +2308,7 @@ let rec TryTranslateComputationExpression let innerExpr = match spTry with - | DebugPointAtTry.Yes _ -> SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes mTry, true, innerExpr) + | DebugPointAtTry.Yes _ -> SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes(false, mTry), true, innerExpr) | _ -> innerExpr let callExpr = @@ -2345,7 +2345,7 @@ let rec TryTranslateComputationExpression if IsControlFlowExpression synYieldExpr then yieldFromCall else - SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes mFull, false, yieldFromCall) + SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes(false, mFull), false, yieldFromCall) Some(translatedCtxt yieldFromCall) @@ -2374,7 +2374,7 @@ let rec TryTranslateComputationExpression if IsControlFlowExpression synReturnExpr then returnFromCall else - SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes mFull, false, returnFromCall) + SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes(false, mFull), false, returnFromCall) Some(translatedCtxt returnFromCall) @@ -2393,7 +2393,7 @@ let rec TryTranslateComputationExpression if IsControlFlowExpression synYieldOrReturnExpr then yieldOrReturnCall else - SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes mFull, false, yieldOrReturnCall) + SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes(false, mFull), false, yieldOrReturnCall) Some(translatedCtxt yieldOrReturnCall) @@ -2704,7 +2704,9 @@ and TranslateComputationExpressionBind and convertSimpleReturnToExpr (ceenv: ComputationExpressionContext<'a>) comp varSpace innerComp = match innerComp with | SynExpr.YieldOrReturn((false, _), returnExpr, m, _) -> - let returnExpr = SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes m, false, returnExpr) + let returnExpr = + SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes(false, m), false, returnExpr) + Some(returnExpr, None) | SynExpr.Match(spMatch, expr, clauses, m, trivia) -> diff --git a/src/Compiler/Checking/Expressions/CheckExpressions.fs b/src/Compiler/Checking/Expressions/CheckExpressions.fs index 4932830a352..e1322bf1db7 100644 --- a/src/Compiler/Checking/Expressions/CheckExpressions.fs +++ b/src/Compiler/Checking/Expressions/CheckExpressions.fs @@ -3103,7 +3103,7 @@ let BuildPossiblyConditionalMethodCall (cenv: cenv) env isMutable m isProp minfo if shouldEraseCall then // Methods marked with 'Conditional' must return 'unit' UnifyTypes cenv env m g.unit_ty (minfo.GetFSharpReturnType(cenv.amap, m, minst)) - mkUnit g m, g.unit_ty + Expr.DebugPoint(DebugPointAtLeafExpr.Yes(isHidden = true, range = m), mkUnit g m), g.unit_ty else #if !NO_TYPEPROVIDERS match minfo with @@ -5903,6 +5903,7 @@ and TcNonControlFlowExpr (env: TcEnv) f = let res2 = match res with | IfThenElseExpr _ -> res + | Expr.DebugPoint(DebugPointAtLeafExpr.Yes(isHidden = true), _) -> res | _ -> mkDebugPoint res.Range res res2, tpenv else diff --git a/src/Compiler/CodeGen/IlxGen.fs b/src/Compiler/CodeGen/IlxGen.fs index 46959e56b22..7f3c8e88315 100644 --- a/src/Compiler/CodeGen/IlxGen.fs +++ b/src/Compiler/CodeGen/IlxGen.fs @@ -3171,8 +3171,8 @@ and GenExprAux (cenv: cenv) (cgbuf: CodeGenBuffer) eenv expr (sequel: sequel) = | LinearOpExpr _ | Expr.Match _ -> GenLinearExpr cenv cgbuf eenv expr sequel false id |> ignore - | Expr.DebugPoint(DebugPointAtLeafExpr.Yes m, innerExpr) -> - if equals m range0 then + | Expr.DebugPoint(DebugPointAtLeafExpr.Yes(isHidden, m), innerExpr) -> + if isHidden then cgbuf.EmitStartOfHiddenCode() else CG.EmitDebugPoint cgbuf m @@ -3720,24 +3720,11 @@ and GenLinearExpr cenv cgbuf eenv expr sequel preSteps (contf: FakeUnit -> FakeU //assert(cgbuf.GetCurrentStack() = stackAfterJoin) // REVIEW: Since gen_dtree* now sets stack, stack should be stackAfterJoin at this point... CG.SetStack cgbuf stackAfterJoin - // If any values are left on the stack after the join then we're certainly going to do something with them - // For example, we may be about to execute a 'stloc' for - // - // let y2 = if System.DateTime.Now.Year < 2000 then 1 else 2 - // - // or a 'stelem' for - // - // arr.[0] <- if System.DateTime.Now.Year > 2000 then 1 else 2 - // - // In both cases, any instructions that come after this point will be falsely associated with the last branch of the control - // prior to the join point. This is base, e.g. see FSharp 1.0 bug 5155 - cgbuf.EmitStartOfHiddenCode() - GenSequel cenv eenv.cloc cgbuf sequelAfterJoin Fake)) - | Expr.DebugPoint(DebugPointAtLeafExpr.Yes m, innerExpr) -> - if equals m range0 then + | Expr.DebugPoint(DebugPointAtLeafExpr.Yes(isHidden, m), innerExpr) -> + if isHidden then cgbuf.EmitStartOfHiddenCode() else CG.EmitDebugPoint cgbuf m @@ -7949,8 +7936,6 @@ and GenDecisionTreeSwitch let m = e.Range cgbuf.SetMarkToHereIfNecessary inplabOpt - cgbuf.EmitStartOfHiddenCode() - match cases with // optimize a test against a boolean value, i.e. the all-important if-then-else | TCase(DecisionTreeTest.Const(Const.Bool b), successTree) :: _ -> @@ -10641,10 +10626,21 @@ and CodeGenInitMethod cenv (cgbuf: CodeGenBuffer) eenv tref (codeGenInitFunc: Co let _, body = CodeGenMethod cenv cgbuf.mgbuf ([], eenv.staticInitializationName, eenv, 0, None, codeGenInitFunc, m) - if CheckCodeDoesSomething body.Code then + let codeDoesSomething = CheckCodeDoesSomething body.Code + + // Keep the init method if it carries a visible debug point, so steppable bindings like 'let i = ()' survive. + let hasVisibleDebugPoint = + not cenv.options.localOptimizationsEnabled + && body.Code.Instrs + |> Array.exists (function + | I_seqpoint sp -> sp.Line <> FeeFee cenv + | _ -> false) + + if codeDoesSomething || hasVisibleDebugPoint then // We are here because the module we just grabbed has an interesting static initializer let feefee, seqpt = - if body.Code.Instrs.Length > 0 then + // Without real init code, the .cctor's FeeFee marker would just add a stray hidden sequence point. + if codeDoesSomething && body.Code.Instrs.Length > 0 then match body.Code.Instrs[0] with | I_seqpoint sp as i -> [ FeeFeeInstr cenv sp.Document ], [ i ] | _ -> [], [] diff --git a/src/Compiler/Optimize/LowerComputedCollections.fs b/src/Compiler/Optimize/LowerComputedCollections.fs index 896540b0ae6..1dabf4fb142 100644 --- a/src/Compiler/Optimize/LowerComputedCollections.fs +++ b/src/Compiler/Optimize/LowerComputedCollections.fs @@ -114,7 +114,7 @@ let LowerComputedListOrArraySeqExpr tcVal g amap m collectorTy overallSeqExpr = let cleanupE = BuildDisposableCleanup tcVal g infoReader m enumv // A debug point should get emitted prior to both the evaluation of 'inp' and the call to GetEnumerator - let addForDebugPoint e = Expr.DebugPoint(DebugPointAtLeafExpr.Yes mFor, e) + let addForDebugPoint e = Expr.DebugPoint(DebugPointAtLeafExpr.Yes(false, mFor), e) let spInAsWhile = match spIn with DebugPointAtInOrTo.Yes m -> DebugPointAtWhile.Yes m | DebugPointAtInOrTo.No -> DebugPointAtWhile.No @@ -289,7 +289,7 @@ module List = match body with | Expr.Let(TBind(v, rhs, DebugPointAtBinding.Yes spBind), innerBody, m, flags) -> let bodyForAdd = Expr.Let(TBind(v, rhs, DebugPointAtBinding.NoneAtInvisible), innerBody, m, flags) - Expr.DebugPoint(DebugPointAtLeafExpr.Yes spBind, mkCallCollectorAdd tcVal g reader mBody collector bodyForAdd) + Expr.DebugPoint(DebugPointAtLeafExpr.Yes(false, spBind), mkCallCollectorAdd tcVal g reader mBody collector bodyForAdd) | _ -> mkCallCollectorAdd tcVal g reader mIn collector body @@ -342,7 +342,7 @@ module List = match body with | Some (loopVal, body) -> mkInvisibleLet m loopVal loopVar - (Expr.DebugPoint (DebugPointAtLeafExpr.Yes mFor, mkCallCollectorAdd tcVal g reader mBody collector body)) + (Expr.DebugPoint (DebugPointAtLeafExpr.Yes(false, mFor), mkCallCollectorAdd tcVal g reader mBody collector body)) | None -> mkCallCollectorAdd tcVal g reader mBody collector loopVar) @@ -447,7 +447,7 @@ module Array = ) // Add a debug point at the `for`, before anything gets evaluated. - Expr.DebugPoint (DebugPointAtLeafExpr.Yes mFor, mapping) + Expr.DebugPoint (DebugPointAtLeafExpr.Yes(false, mFor), mapping) ) /// Whether to check for overflow when converting a value to a native int. @@ -508,7 +508,7 @@ module Array = match body with | Some (loopVal, body) -> - mkInvisibleLet mBody loopVal loopVar (Expr.DebugPoint (DebugPointAtLeafExpr.Yes mFor, mkStore body)) + mkInvisibleLet mBody loopVal loopVar (Expr.DebugPoint (DebugPointAtLeafExpr.Yes(false, mFor), mkStore body)) | None -> mkStore loopVar) diff --git a/src/Compiler/Optimize/LowerSequences.fs b/src/Compiler/Optimize/LowerSequences.fs index 3b7b4a51181..02c9f33373e 100644 --- a/src/Compiler/Optimize/LowerSequences.fs +++ b/src/Compiler/Optimize/LowerSequences.fs @@ -118,7 +118,7 @@ let ConvertSequenceExprToObject g amap overallExpr = let (TBind(v, e, sp)) = bind let addDebugPoint e = match sp with - | DebugPointAtBinding.Yes m -> Expr.DebugPoint(DebugPointAtLeafExpr.Yes m, e) + | DebugPointAtBinding.Yes m -> Expr.DebugPoint(DebugPointAtLeafExpr.Yes(false, m), e) | _ -> e let vref = mkLocalValRef v { resBody with @@ -262,7 +262,7 @@ let ConvertSequenceExprToObject g amap overallExpr = // body ]] // A debug point should get emitted prior to both the evaluation of 'inp' and the call to GetEnumerator - let addForDebugPoint e = Expr.DebugPoint(DebugPointAtLeafExpr.Yes mFor, e) + let addForDebugPoint e = Expr.DebugPoint(DebugPointAtLeafExpr.Yes(false, mFor), e) // The 'in' debug point is put back into the TypedTree at the right place for SeqWhile let mIn = match spIn with DebugPointAtInOrTo.Yes m -> m.NoteSourceConstruct(NotedSourceConstruct.While) | DebugPointAtInOrTo.No -> mIn @@ -293,11 +293,11 @@ let ConvertSequenceExprToObject g amap overallExpr = let asyncVars = unionFreeVars res1.asyncVars (freeInExpr CollectLocals compensation) let addTryDebugPoint e = match spTry with - | DebugPointAtTry.Yes m -> Expr.DebugPoint(DebugPointAtLeafExpr.Yes m, e) + | DebugPointAtTry.Yes m -> Expr.DebugPoint(DebugPointAtLeafExpr.Yes(false, m), e) | _ -> e let addFinallyDebugPoint e = match spFinally with - | DebugPointAtFinally.Yes m -> Expr.DebugPoint(DebugPointAtLeafExpr.Yes m, e) + | DebugPointAtFinally.Yes m -> Expr.DebugPoint(DebugPointAtLeafExpr.Yes(false, m), e) | _ -> e Some { phase2 = (fun (pcVar, _currv, _, pcMap as ctxt) -> let generate1, dispose1, checkDispose1 = res1.phase2 ctxt diff --git a/src/Compiler/Optimize/LowerStateMachines.fs b/src/Compiler/Optimize/LowerStateMachines.fs index cb9453d3177..a82d57d0789 100644 --- a/src/Compiler/Optimize/LowerStateMachines.fs +++ b/src/Compiler/Optimize/LowerStateMachines.fs @@ -76,7 +76,7 @@ let RepresentBindingAsStateVar g (bind: Binding) (resBody: StateMachineConversio let (TBind(v, e, sp)) = bind let addDebugPoint innerExpr = match sp with - | DebugPointAtBinding.Yes m -> Expr.DebugPoint(DebugPointAtLeafExpr.Yes m, innerExpr) + | DebugPointAtBinding.Yes m -> Expr.DebugPoint(DebugPointAtLeafExpr.Yes(false, m), innerExpr) | _ -> innerExpr let vref = mkLocalValRef v { resBody with diff --git a/src/Compiler/Optimize/Optimizer.fs b/src/Compiler/Optimize/Optimizer.fs index a6fa90d1e3a..eee8052bd04 100644 --- a/src/Compiler/Optimize/Optimizer.fs +++ b/src/Compiler/Optimize/Optimizer.fs @@ -383,9 +383,6 @@ type OptimizationSettings = /// This optimization is off by default, given tiny overhead of including try/with. See https://github.com/dotnet/fsharp/pull/376 member _.EliminateTryWithAndTryFinally = false - /// Determines if we should eliminate first part of sequential expression if it has no effect - member x.EliminateSequential = x.LocalOptimizationsEnabled - /// Determines if we should determine branches in pattern matching based on known information, e.g. /// eliminate a "if true then .. else ... " member x.EliminateSwitch = x.LocalOptimizationsEnabled @@ -2874,12 +2871,8 @@ and OptimizeLinearExpr cenv env expr contf = OptimizeLinearExpr cenv env e2 (contf << (fun (e2R, e2info) -> if (flag = NormalSeq) && - // Drop bare (compiler-generated) units always; keep a debug-pointed unit in debug code so - // it stays steppable (a unit without one must go, else a dangling breakpoint - FSharp 1.0 bug 6034). - (cenv.settings.EliminateSequential || - (match e1R with - | Expr.DebugPoint(DebugPointAtLeafExpr.Yes _, _) -> false - | _ -> match stripDebugPoints e1R with Expr.Const (Const.Unit, _, _) -> true | _ -> false)) && + (cenv.settings.LocalOptimizationsEnabled || + (match e1R with | Expr.DebugPoint(DebugPointAtLeafExpr.Yes(isHidden, _), _) -> isHidden | _ -> false)) && not e1info.HasEffect then e2R, e2info else @@ -2942,9 +2935,11 @@ and OptimizeLinearExpr cenv env expr contf = OptimizeLinearExpr cenv env argLast (contf << (fun (argLastR, argLastInfo) -> OptimizeExprOpReductionsAfter cenv env (op, tyargs, argsHeadR @ [argLastR], argsHeadInfosR @ [argLastInfo], m))) - | Expr.DebugPoint (m, innerExpr) when not (IsDebugPipeRightExpr cenv innerExpr)-> + | Expr.DebugPoint (m, innerExpr) when not (IsDebugPipeRightExpr cenv innerExpr)-> OptimizeLinearExpr cenv env innerExpr (contf << (fun (innerExprR, einfo) -> - Expr.DebugPoint (m, innerExprR), einfo)) + match m with + | DebugPointAtLeafExpr.Yes(isHidden = true) when not einfo.HasEffect -> innerExprR, einfo + | _ -> Expr.DebugPoint (m, innerExprR), einfo)) | _ -> contf (OptimizeExpr cenv env expr) @@ -2966,7 +2961,7 @@ and OptimizeTryFinally cenv env (spTry, spFinally, e1, e2, m, ty) = if cenv.settings.EliminateTryWithAndTryFinally && not e1info.HasEffect then let e1R2 = match spTry with - | DebugPointAtTry.Yes m -> Expr.DebugPoint(DebugPointAtLeafExpr.Yes m, e1R) + | DebugPointAtTry.Yes m -> Expr.DebugPoint(DebugPointAtLeafExpr.Yes(false, m), e1R) | DebugPointAtTry.No -> e1R Expr.Sequential (e1R2, e2R, ThenDoSeq, m), info else @@ -4220,7 +4215,14 @@ and OptimizeBinding cenv isRec env (TBind(vref, expr, spBind)) = if vref.ShouldInline && IsPartialExprVal einfo.Info then errorR(InternalError("the inline value '"+vref.LogicalName+"' was not inferred to have a known value", vref.Range)) - let env = BindInternalLocalVal cenv vref (mkValInfo einfo vref) env + let env = BindInternalLocalVal cenv vref (mkValInfo einfo vref) env + + // The hidden debug point on the r.h.s. is dropped above, so suppress the binding's debug point too. + let spBind = + match expr with + | Expr.DebugPoint(DebugPointAtLeafExpr.Yes(isHidden = true), _) when not einfo.HasEffect -> DebugPointAtBinding.NoneAtLet + | _ -> spBind + (TBind(vref, exprOptimized, spBind), einfo), env with RecoverableException exn -> errorRecovery exn vref.Range diff --git a/src/Compiler/Service/FSharpParseFileResults.fs b/src/Compiler/Service/FSharpParseFileResults.fs index 434974de754..119669f22d9 100644 --- a/src/Compiler/Service/FSharpParseFileResults.fs +++ b/src/Compiler/Service/FSharpParseFileResults.fs @@ -568,7 +568,7 @@ type FSharpParseFileResults(diagnostics: FSharpDiagnostic[], input: ParsedInput, | SynInterpolatedStringPart.FillExpr(fillExpr, _) -> yield fillExpr ] - | SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes m, isControlFlow, innerExpr) -> + | SynExpr.DebugPoint(DebugPointAtLeafExpr.Yes(_, m), isControlFlow, innerExpr) -> yield! checkRange m yield! walkExpr isControlFlow innerExpr diff --git a/src/Compiler/SyntaxTree/SyntaxTree.fs b/src/Compiler/SyntaxTree/SyntaxTree.fs index 7c0030e4f3a..f35bb3297de 100644 --- a/src/Compiler/SyntaxTree/SyntaxTree.fs +++ b/src/Compiler/SyntaxTree/SyntaxTree.fs @@ -270,7 +270,7 @@ type DebugPointAtTry = | No [] -type DebugPointAtLeafExpr = Yes of range +type DebugPointAtLeafExpr = Yes of isHidden: bool * range: range [] type DebugPointAtWith = diff --git a/src/Compiler/SyntaxTree/SyntaxTree.fsi b/src/Compiler/SyntaxTree/SyntaxTree.fsi index 2206d199c39..8b152ba2d69 100644 --- a/src/Compiler/SyntaxTree/SyntaxTree.fsi +++ b/src/Compiler/SyntaxTree/SyntaxTree.fsi @@ -258,7 +258,7 @@ type DebugPointAtTarget = /// Represents a debug point at a leaf expression (e.g. an application or constant). [] -type DebugPointAtLeafExpr = Yes of range +type DebugPointAtLeafExpr = Yes of isHidden: bool * range: range /// Represents whether a debug point should be suppressed for either the /// first or second part of a sequential execution, that is whether the diff --git a/src/Compiler/TypedTree/TypedTree.fs b/src/Compiler/TypedTree/TypedTree.fs index 733b269b588..dac2e23c10c 100644 --- a/src/Compiler/TypedTree/TypedTree.fs +++ b/src/Compiler/TypedTree/TypedTree.fs @@ -5274,7 +5274,7 @@ type Expr = | WitnessArg _ -> "WitnessArg(..)" | TyChoose _ -> "TyChoose(..)" | Link e -> "Link(" + e.Value.ToDebugString(depth) + ")" - | DebugPoint (DebugPointAtLeafExpr.Yes m, e) -> sprintf "DebugPoint(%s, " (m.ToString()) + e.ToDebugString(depth) + ")" + | DebugPoint (DebugPointAtLeafExpr.Yes(_, m), e) -> sprintf "DebugPoint(%s, " (m.ToString()) + e.ToDebugString(depth) + ")" /// Get the mark/range/position information from an expression member expr.Range = diff --git a/src/Compiler/TypedTree/TypedTreeOps.Attributes.fs b/src/Compiler/TypedTree/TypedTreeOps.Attributes.fs index a57c6e23804..d011c2d231f 100644 --- a/src/Compiler/TypedTree/TypedTreeOps.Attributes.fs +++ b/src/Compiler/TypedTree/TypedTreeOps.Attributes.fs @@ -2075,7 +2075,7 @@ module internal DebugPrint = | Expr.Link rX -> exprL rX.Value |> wrap - | Expr.DebugPoint(DebugPointAtLeafExpr.Yes m, rX) -> + | Expr.DebugPoint(DebugPointAtLeafExpr.Yes(_, m), rX) -> aboveListL [ wordL (tagText "__debugPoint(") ^^ rangeL m ^^ wordL (tagText ")"); exprL rX ] |> wrap diff --git a/src/Compiler/TypedTree/TypedTreeOps.ExprConstruction.fs b/src/Compiler/TypedTree/TypedTreeOps.ExprConstruction.fs index 00761538123..1151c53fca5 100644 --- a/src/Compiler/TypedTree/TypedTreeOps.ExprConstruction.fs +++ b/src/Compiler/TypedTree/TypedTreeOps.ExprConstruction.fs @@ -512,7 +512,7 @@ module internal ExprConstruction = let valsOfBinds (binds: Bindings) = binds |> List.map (fun b -> b.Var) let mkDebugPoint m expr = - Expr.DebugPoint(DebugPointAtLeafExpr.Yes m, expr) + Expr.DebugPoint(DebugPointAtLeafExpr.Yes(false, m), expr) // Used to remove Expr.Link for inner expressions in pattern matches let (|InnerExprPat|) expr = stripExpr expr diff --git a/src/Compiler/TypedTree/TypedTreeOps.Remapping.fs b/src/Compiler/TypedTree/TypedTreeOps.Remapping.fs index de28bc34138..7401ed40b14 100644 --- a/src/Compiler/TypedTree/TypedTreeOps.Remapping.fs +++ b/src/Compiler/TypedTree/TypedTreeOps.Remapping.fs @@ -2873,7 +2873,7 @@ module internal ExprAnalysis = // Incorporate spBind as a note if present let res = match spBind with - | DebugPointAtBinding.Yes dp -> Expr.DebugPoint(DebugPointAtLeafExpr.Yes dp, res) + | DebugPointAtBinding.Yes dp -> Expr.DebugPoint(DebugPointAtLeafExpr.Yes(false, dp), res) | _ -> res res diff --git a/src/Compiler/TypedTree/TypedTreeOps.Transforms.fs b/src/Compiler/TypedTree/TypedTreeOps.Transforms.fs index a676cc3e6dd..83ff0d3baca 100644 --- a/src/Compiler/TypedTree/TypedTreeOps.Transforms.fs +++ b/src/Compiler/TypedTree/TypedTreeOps.Transforms.fs @@ -2230,7 +2230,7 @@ module internal TupleCompilation = (mkValSet mIn (mkLocalValRef nextVar) tailOrNullExpr) let bodyAndStep = - mkSequential mIn bodyExpr (Expr.DebugPoint(DebugPointAtLeafExpr.Yes range0, loopStep)) + mkSequential mIn bodyExpr (Expr.DebugPoint(DebugPointAtLeafExpr.Yes(true, mIn), loopStep)) let bodyExpr = mkLet spElem mFor elemVar headOrDefaultExpr bodyAndStep diff --git a/tests/AheadOfTime/Trimming/check.ps1 b/tests/AheadOfTime/Trimming/check.ps1 index 1695a3684f0..d8373acc215 100644 --- a/tests/AheadOfTime/Trimming/check.ps1 +++ b/tests/AheadOfTime/Trimming/check.ps1 @@ -63,10 +63,10 @@ function CheckTrim($root, $tfm, $outputfile, $expected_len, $callerLineNumber) { $allErrors = @() # Check net9.0 trimmed assemblies -$allErrors += CheckTrim -root "SelfContained_Trimming_Test" -tfm "net9.0" -outputfile "FSharp.Core.dll" -expected_len 311808 -callerLineNumber 66 +$allErrors += CheckTrim -root "SelfContained_Trimming_Test" -tfm "net9.0" -outputfile "FSharp.Core.dll" -expected_len 310272 -callerLineNumber 66 # Check net9.0 trimmed assemblies with static linked FSharpCore -$allErrors += CheckTrim -root "StaticLinkedFSharpCore_Trimming_Test" -tfm "net9.0" -outputfile "StaticLinkedFSharpCore_Trimming_Test.dll" -expected_len 9169408 -callerLineNumber 69 +$allErrors += CheckTrim -root "StaticLinkedFSharpCore_Trimming_Test" -tfm "net9.0" -outputfile "StaticLinkedFSharpCore_Trimming_Test.dll" -expected_len 9168896 -callerLineNumber 69 # Check net9.0 trimmed assemblies with F# metadata resources removed $allErrors += CheckTrim -root "FSharpMetadataResource_Trimming_Test" -tfm "net9.0" -outputfile "FSharpMetadataResource_Trimming_Test.dll" -expected_len 7609344 -callerLineNumber 72 diff --git a/tests/FSharp.Compiler.ComponentTests/Debugger/MatchEndSequencePoint.fs b/tests/FSharp.Compiler.ComponentTests/Debugger/MatchEndSequencePoint.fs index ceaf6438569..fe325ce456e 100644 --- a/tests/FSharp.Compiler.ComponentTests/Debugger/MatchEndSequencePoint.fs +++ b/tests/FSharp.Compiler.ComponentTests/Debugger/MatchEndSequencePoint.fs @@ -181,26 +181,3 @@ let dispatch (cmd: Cmd) (active: bool) (count: int) = (Line 29) // ---- Instrumentation: verify FeeFee IS emitted at match join points ---- - - [] - let ``Match in statement position emits hidden point at join`` () = - // #12052: The fix emits EmitStartOfHiddenCode unconditionally. - // Verify hidden (FeeFee) points are present — proving the fix emits them. - verifyAllSequencePoints - " -module TestModuleHidden - -let funcE (x: int) = - match x with - | 1 -> System.Console.WriteLine(\"one\") - | _ -> System.Console.WriteLine(\"other\") - System.Console.WriteLine(\"done\") - " [ - (Line 5, Col 5, Line 5, Col 17) - (Line 6, Col 12, Line 6, Col 43) - (Line 7, Col 12, Line 7, Col 45) - (Line 8, Col 5, Line 8, Col 37) - (Line 16707566, Col 0, Line 16707566, Col 0) - (Line 16707566, Col 0, Line 16707566, Col 0) - (Line 16707566, Col 0, Line 16707566, Col 0) - ] diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/CCtorDUWithMember/CCtorDUWithMember01a.fs.RealInternalSignatureOn.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/CCtorDUWithMember/CCtorDUWithMember01a.fs.RealInternalSignatureOn.il.net472.bsl index 0d32a2de1dd..7ab998bc870 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/CCtorDUWithMember/CCtorDUWithMember01a.fs.RealInternalSignatureOn.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/CCtorDUWithMember/CCtorDUWithMember01a.fs.RealInternalSignatureOn.il.net472.bsl @@ -517,6 +517,24 @@ IL_0005: ret } + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 ''.$assembly::init@ + IL_0006: ldsfld int32 ''.$assembly::init@ + IL_000b: pop + IL_000c: ret + } + + .method assembly static void staticInitialization@() cil managed + { + + .maxstack 8 + IL_0000: ret + } + .property class assembly/C e2() { .get class assembly/C assembly::get_e2() @@ -526,6 +544,18 @@ .class private abstract auto ansi sealed ''.$assembly extends [runtime]System.Object { + .field static assembly int32 init@ + .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .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 ) + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 8 + IL_0000: call void assembly::staticInitialization@() + IL_0005: ret + } + } .class private auto ansi serializable sealed System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/CCtorDUWithMember/CCtorDUWithMember01a.fs.RealInternalSignatureOn.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/CCtorDUWithMember/CCtorDUWithMember01a.fs.RealInternalSignatureOn.il.netcore.bsl index 5178c62e41d..ee6ecc8e060 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/CCtorDUWithMember/CCtorDUWithMember01a.fs.RealInternalSignatureOn.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/CCtorDUWithMember/CCtorDUWithMember01a.fs.RealInternalSignatureOn.il.netcore.bsl @@ -517,6 +517,24 @@ IL_0005: ret } + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 ''.$assembly::init@ + IL_0006: ldsfld int32 ''.$assembly::init@ + IL_000b: pop + IL_000c: ret + } + + .method assembly static void staticInitialization@() cil managed + { + + .maxstack 8 + IL_0000: ret + } + .property class assembly/C e2() { .get class assembly/C assembly::get_e2() @@ -526,8 +544,19 @@ .class private abstract auto ansi sealed ''.$assembly extends [runtime]System.Object { -} + .field static assembly int32 init@ + .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .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 ) + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 8 + IL_0000: call void assembly::staticInitialization@() + IL_0005: ret + } +} diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/CCtorDUWithMember/CCtorDUWithMember04a.fs.RealInternalSignatureOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/CCtorDUWithMember/CCtorDUWithMember04a.fs.RealInternalSignatureOn.il.bsl index 87d3e2bfa45..98f8426f18b 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/CCtorDUWithMember/CCtorDUWithMember04a.fs.RealInternalSignatureOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/CCtorDUWithMember/CCtorDUWithMember04a.fs.RealInternalSignatureOn.il.bsl @@ -91,6 +91,24 @@ IL_0001: ret } + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 ''.$assembly::init@ + IL_0006: ldsfld int32 ''.$assembly::init@ + IL_000b: pop + IL_000c: ret + } + + .method assembly static void staticInitialization@() cil managed + { + + .maxstack 8 + IL_0000: ret + } + .property int32 x() { .get int32 assembly::get_x() @@ -100,8 +118,19 @@ .class private abstract auto ansi sealed ''.$assembly extends [runtime]System.Object { -} + .field static assembly int32 init@ + .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .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 ) + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 8 + IL_0000: call void assembly::staticInitialization@() + IL_0005: ret + } +} diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeArrays.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeArrays.fs.il.bsl index 89c764be9d5..8fec7a334b0 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeArrays.fs.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeArrays.fs.il.bsl @@ -1388,70 +1388,69 @@ int32 V_5, native int V_6, int32[] V_7) - IL_0000: nop - IL_0001: ldc.i4.s 10 - IL_0003: ldarg.0 - IL_0004: bge.s IL_000b - - IL_0006: ldc.i4.0 - IL_0007: conv.i8 - IL_0008: nop - IL_0009: br.s IL_0014 - - IL_000b: ldc.i4.s 10 - IL_000d: ldarg.0 - IL_000e: sub - IL_000f: conv.i8 - IL_0010: ldc.i4.1 - IL_0011: conv.i8 - IL_0012: add - IL_0013: nop - IL_0014: stloc.0 - IL_0015: ldloc.0 - IL_0016: stloc.1 - IL_0017: ldloc.1 - IL_0018: brtrue.s IL_0020 - - IL_001a: call !!0[] [runtime]System.Array::Empty() - IL_001f: ret - - IL_0020: ldloc.1 - IL_0021: conv.ovf.i.un - IL_0022: newarr [runtime]System.Int32 - IL_0027: stloc.2 - IL_0028: ldc.i4.0 - IL_0029: conv.i8 - IL_002a: stloc.3 - IL_002b: ldarg.0 - IL_002c: stloc.s V_4 - IL_002e: br.s IL_004d + IL_0000: ldc.i4.s 10 + IL_0002: ldarg.0 + IL_0003: bge.s IL_000a - IL_0030: ldloc.s V_4 - IL_0032: stloc.s V_5 - IL_0034: ldloc.2 - IL_0035: ldloc.3 - IL_0036: conv.i - IL_0037: stloc.s V_6 - IL_0039: stloc.s V_7 - IL_003b: ldloc.s V_7 - IL_003d: ldloc.s V_6 - IL_003f: ldloc.s V_5 - IL_0041: stelem.i4 - IL_0042: ldloc.s V_4 - IL_0044: ldc.i4.1 - IL_0045: add - IL_0046: stloc.s V_4 - IL_0048: ldloc.3 - IL_0049: ldc.i4.1 - IL_004a: conv.i8 - IL_004b: add - IL_004c: stloc.3 - IL_004d: ldloc.3 - IL_004e: ldloc.0 - IL_004f: blt.un.s IL_0030 - - IL_0051: ldloc.2 - IL_0052: ret + IL_0005: ldc.i4.0 + IL_0006: conv.i8 + IL_0007: nop + IL_0008: br.s IL_0013 + + IL_000a: ldc.i4.s 10 + IL_000c: ldarg.0 + IL_000d: sub + IL_000e: conv.i8 + IL_000f: ldc.i4.1 + IL_0010: conv.i8 + IL_0011: add + IL_0012: nop + IL_0013: stloc.0 + IL_0014: ldloc.0 + IL_0015: stloc.1 + IL_0016: ldloc.1 + IL_0017: brtrue.s IL_001f + + IL_0019: call !!0[] [runtime]System.Array::Empty() + IL_001e: ret + + IL_001f: ldloc.1 + IL_0020: conv.ovf.i.un + IL_0021: newarr [runtime]System.Int32 + IL_0026: stloc.2 + IL_0027: ldc.i4.0 + IL_0028: conv.i8 + IL_0029: stloc.3 + IL_002a: ldarg.0 + IL_002b: stloc.s V_4 + IL_002d: br.s IL_004c + + IL_002f: ldloc.s V_4 + IL_0031: stloc.s V_5 + IL_0033: ldloc.2 + IL_0034: ldloc.3 + IL_0035: conv.i + IL_0036: stloc.s V_6 + IL_0038: stloc.s V_7 + IL_003a: ldloc.s V_7 + IL_003c: ldloc.s V_6 + IL_003e: ldloc.s V_5 + IL_0040: stelem.i4 + IL_0041: ldloc.s V_4 + IL_0043: ldc.i4.1 + IL_0044: add + IL_0045: stloc.s V_4 + IL_0047: ldloc.3 + IL_0048: ldc.i4.1 + IL_0049: conv.i8 + IL_004a: add + IL_004b: stloc.3 + IL_004c: ldloc.3 + IL_004d: ldloc.0 + IL_004e: blt.un.s IL_002f + + IL_0050: ldloc.2 + IL_0051: ret } .method public static int32[] f10(int32 finish) cil managed @@ -1466,70 +1465,69 @@ int32 V_5, native int V_6, int32[] V_7) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: ldc.i4.1 - IL_0003: bge.s IL_000a + IL_0000: ldarg.0 + IL_0001: ldc.i4.1 + IL_0002: bge.s IL_0009 - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_0012 + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_0011 - IL_000a: ldarg.0 - IL_000b: ldc.i4.1 - IL_000c: sub - IL_000d: conv.i8 - IL_000e: ldc.i4.1 - IL_000f: conv.i8 - IL_0010: add - IL_0011: nop - IL_0012: stloc.0 - IL_0013: ldloc.0 - IL_0014: stloc.1 - IL_0015: ldloc.1 - IL_0016: brtrue.s IL_001e + IL_0009: ldarg.0 + IL_000a: ldc.i4.1 + IL_000b: sub + IL_000c: conv.i8 + IL_000d: ldc.i4.1 + IL_000e: conv.i8 + IL_000f: add + IL_0010: nop + IL_0011: stloc.0 + IL_0012: ldloc.0 + IL_0013: stloc.1 + IL_0014: ldloc.1 + IL_0015: brtrue.s IL_001d - IL_0018: call !!0[] [runtime]System.Array::Empty() - IL_001d: ret + IL_0017: call !!0[] [runtime]System.Array::Empty() + IL_001c: ret - IL_001e: ldloc.1 - IL_001f: conv.ovf.i.un - IL_0020: newarr [runtime]System.Int32 - IL_0025: stloc.2 - IL_0026: ldc.i4.0 - IL_0027: conv.i8 - IL_0028: stloc.3 - IL_0029: ldc.i4.1 - IL_002a: stloc.s V_4 - IL_002c: br.s IL_004b - - IL_002e: ldloc.s V_4 - IL_0030: stloc.s V_5 - IL_0032: ldloc.2 - IL_0033: ldloc.3 - IL_0034: conv.i - IL_0035: stloc.s V_6 - IL_0037: stloc.s V_7 - IL_0039: ldloc.s V_7 - IL_003b: ldloc.s V_6 - IL_003d: ldloc.s V_5 - IL_003f: stelem.i4 - IL_0040: ldloc.s V_4 - IL_0042: ldc.i4.1 - IL_0043: add - IL_0044: stloc.s V_4 - IL_0046: ldloc.3 - IL_0047: ldc.i4.1 - IL_0048: conv.i8 - IL_0049: add - IL_004a: stloc.3 - IL_004b: ldloc.3 - IL_004c: ldloc.0 - IL_004d: blt.un.s IL_002e + IL_001d: ldloc.1 + IL_001e: conv.ovf.i.un + IL_001f: newarr [runtime]System.Int32 + IL_0024: stloc.2 + IL_0025: ldc.i4.0 + IL_0026: conv.i8 + IL_0027: stloc.3 + IL_0028: ldc.i4.1 + IL_0029: stloc.s V_4 + IL_002b: br.s IL_004a + + IL_002d: ldloc.s V_4 + IL_002f: stloc.s V_5 + IL_0031: ldloc.2 + IL_0032: ldloc.3 + IL_0033: conv.i + IL_0034: stloc.s V_6 + IL_0036: stloc.s V_7 + IL_0038: ldloc.s V_7 + IL_003a: ldloc.s V_6 + IL_003c: ldloc.s V_5 + IL_003e: stelem.i4 + IL_003f: ldloc.s V_4 + IL_0041: ldc.i4.1 + IL_0042: add + IL_0043: stloc.s V_4 + IL_0045: ldloc.3 + IL_0046: ldc.i4.1 + IL_0047: conv.i8 + IL_0048: add + IL_0049: stloc.3 + IL_004a: ldloc.3 + IL_004b: ldloc.0 + IL_004c: blt.un.s IL_002d - IL_004f: ldloc.2 - IL_0050: ret + IL_004e: ldloc.2 + IL_004f: ret } .method public static int32[] f11(int32 start, @@ -1546,70 +1544,69 @@ int32 V_5, native int V_6, int32[] V_7) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: ldarg.0 - IL_0003: bge.s IL_000a + IL_0000: ldarg.1 + IL_0001: ldarg.0 + IL_0002: bge.s IL_0009 - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_0012 + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_0011 - IL_000a: ldarg.1 - IL_000b: ldarg.0 - IL_000c: sub - IL_000d: conv.i8 - IL_000e: ldc.i4.1 - IL_000f: conv.i8 - IL_0010: add - IL_0011: nop - IL_0012: stloc.0 - IL_0013: ldloc.0 - IL_0014: stloc.1 - IL_0015: ldloc.1 - IL_0016: brtrue.s IL_001e + IL_0009: ldarg.1 + IL_000a: ldarg.0 + IL_000b: sub + IL_000c: conv.i8 + IL_000d: ldc.i4.1 + IL_000e: conv.i8 + IL_000f: add + IL_0010: nop + IL_0011: stloc.0 + IL_0012: ldloc.0 + IL_0013: stloc.1 + IL_0014: ldloc.1 + IL_0015: brtrue.s IL_001d - IL_0018: call !!0[] [runtime]System.Array::Empty() - IL_001d: ret + IL_0017: call !!0[] [runtime]System.Array::Empty() + IL_001c: ret - IL_001e: ldloc.1 - IL_001f: conv.ovf.i.un - IL_0020: newarr [runtime]System.Int32 - IL_0025: stloc.2 - IL_0026: ldc.i4.0 - IL_0027: conv.i8 - IL_0028: stloc.3 - IL_0029: ldarg.0 - IL_002a: stloc.s V_4 - IL_002c: br.s IL_004b - - IL_002e: ldloc.s V_4 - IL_0030: stloc.s V_5 - IL_0032: ldloc.2 - IL_0033: ldloc.3 - IL_0034: conv.i - IL_0035: stloc.s V_6 - IL_0037: stloc.s V_7 - IL_0039: ldloc.s V_7 - IL_003b: ldloc.s V_6 - IL_003d: ldloc.s V_5 - IL_003f: stelem.i4 - IL_0040: ldloc.s V_4 - IL_0042: ldc.i4.1 - IL_0043: add - IL_0044: stloc.s V_4 - IL_0046: ldloc.3 - IL_0047: ldc.i4.1 - IL_0048: conv.i8 - IL_0049: add - IL_004a: stloc.3 - IL_004b: ldloc.3 - IL_004c: ldloc.0 - IL_004d: blt.un.s IL_002e + IL_001d: ldloc.1 + IL_001e: conv.ovf.i.un + IL_001f: newarr [runtime]System.Int32 + IL_0024: stloc.2 + IL_0025: ldc.i4.0 + IL_0026: conv.i8 + IL_0027: stloc.3 + IL_0028: ldarg.0 + IL_0029: stloc.s V_4 + IL_002b: br.s IL_004a + + IL_002d: ldloc.s V_4 + IL_002f: stloc.s V_5 + IL_0031: ldloc.2 + IL_0032: ldloc.3 + IL_0033: conv.i + IL_0034: stloc.s V_6 + IL_0036: stloc.s V_7 + IL_0038: ldloc.s V_7 + IL_003a: ldloc.s V_6 + IL_003c: ldloc.s V_5 + IL_003e: stelem.i4 + IL_003f: ldloc.s V_4 + IL_0041: ldc.i4.1 + IL_0042: add + IL_0043: stloc.s V_4 + IL_0045: ldloc.3 + IL_0046: ldc.i4.1 + IL_0047: conv.i8 + IL_0048: add + IL_0049: stloc.3 + IL_004a: ldloc.3 + IL_004b: ldloc.0 + IL_004c: blt.un.s IL_002d - IL_004f: ldloc.2 - IL_0050: ret + IL_004e: ldloc.2 + IL_004f: ret } .method public static int32[] f12(int32 start) cil managed @@ -1624,70 +1621,69 @@ int32 V_5, native int V_6, int32[] V_7) - IL_0000: nop - IL_0001: ldc.i4.s 10 - IL_0003: ldarg.0 - IL_0004: bge.s IL_000b - - IL_0006: ldc.i4.0 - IL_0007: conv.i8 - IL_0008: nop - IL_0009: br.s IL_0014 - - IL_000b: ldc.i4.s 10 - IL_000d: ldarg.0 - IL_000e: sub - IL_000f: conv.i8 - IL_0010: ldc.i4.1 - IL_0011: conv.i8 - IL_0012: add - IL_0013: nop - IL_0014: stloc.0 - IL_0015: ldloc.0 - IL_0016: stloc.1 - IL_0017: ldloc.1 - IL_0018: brtrue.s IL_0020 - - IL_001a: call !!0[] [runtime]System.Array::Empty() - IL_001f: ret - - IL_0020: ldloc.1 - IL_0021: conv.ovf.i.un - IL_0022: newarr [runtime]System.Int32 - IL_0027: stloc.2 - IL_0028: ldc.i4.0 - IL_0029: conv.i8 - IL_002a: stloc.3 - IL_002b: ldarg.0 - IL_002c: stloc.s V_4 - IL_002e: br.s IL_004d + IL_0000: ldc.i4.s 10 + IL_0002: ldarg.0 + IL_0003: bge.s IL_000a - IL_0030: ldloc.s V_4 - IL_0032: stloc.s V_5 - IL_0034: ldloc.2 - IL_0035: ldloc.3 - IL_0036: conv.i - IL_0037: stloc.s V_6 - IL_0039: stloc.s V_7 - IL_003b: ldloc.s V_7 - IL_003d: ldloc.s V_6 - IL_003f: ldloc.s V_5 - IL_0041: stelem.i4 - IL_0042: ldloc.s V_4 - IL_0044: ldc.i4.1 - IL_0045: add - IL_0046: stloc.s V_4 - IL_0048: ldloc.3 - IL_0049: ldc.i4.1 - IL_004a: conv.i8 - IL_004b: add - IL_004c: stloc.3 - IL_004d: ldloc.3 - IL_004e: ldloc.0 - IL_004f: blt.un.s IL_0030 - - IL_0051: ldloc.2 - IL_0052: ret + IL_0005: ldc.i4.0 + IL_0006: conv.i8 + IL_0007: nop + IL_0008: br.s IL_0013 + + IL_000a: ldc.i4.s 10 + IL_000c: ldarg.0 + IL_000d: sub + IL_000e: conv.i8 + IL_000f: ldc.i4.1 + IL_0010: conv.i8 + IL_0011: add + IL_0012: nop + IL_0013: stloc.0 + IL_0014: ldloc.0 + IL_0015: stloc.1 + IL_0016: ldloc.1 + IL_0017: brtrue.s IL_001f + + IL_0019: call !!0[] [runtime]System.Array::Empty() + IL_001e: ret + + IL_001f: ldloc.1 + IL_0020: conv.ovf.i.un + IL_0021: newarr [runtime]System.Int32 + IL_0026: stloc.2 + IL_0027: ldc.i4.0 + IL_0028: conv.i8 + IL_0029: stloc.3 + IL_002a: ldarg.0 + IL_002b: stloc.s V_4 + IL_002d: br.s IL_004c + + IL_002f: ldloc.s V_4 + IL_0031: stloc.s V_5 + IL_0033: ldloc.2 + IL_0034: ldloc.3 + IL_0035: conv.i + IL_0036: stloc.s V_6 + IL_0038: stloc.s V_7 + IL_003a: ldloc.s V_7 + IL_003c: ldloc.s V_6 + IL_003e: ldloc.s V_5 + IL_0040: stelem.i4 + IL_0041: ldloc.s V_4 + IL_0043: ldc.i4.1 + IL_0044: add + IL_0045: stloc.s V_4 + IL_0047: ldloc.3 + IL_0048: ldc.i4.1 + IL_0049: conv.i8 + IL_004a: add + IL_004b: stloc.3 + IL_004c: ldloc.3 + IL_004d: ldloc.0 + IL_004e: blt.un.s IL_002f + + IL_0050: ldloc.2 + IL_0051: ret } .method public static int32[] f13(int32 step) cil managed @@ -1702,116 +1698,113 @@ int32 V_5, native int V_6, int32[] V_7) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: brtrue.s IL_0011 + IL_0000: ldarg.0 + IL_0001: brtrue.s IL_0010 - IL_0004: ldc.i4.1 - IL_0005: ldarg.0 - IL_0006: ldc.i4.s 10 - IL_0008: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldc.i4.1 + IL_0004: ldarg.0 + IL_0005: ldc.i4.s 10 + IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000d: pop - IL_000e: nop - IL_000f: br.s IL_0012 - - IL_0011: nop - IL_0012: ldc.i4.0 - IL_0013: ldarg.0 - IL_0014: bge.s IL_002d - - IL_0016: ldc.i4.s 10 - IL_0018: ldc.i4.1 - IL_0019: bge.s IL_0020 - - IL_001b: ldc.i4.0 - IL_001c: conv.i8 - IL_001d: nop - IL_001e: br.s IL_0047 - - IL_0020: ldc.i4.s 10 - IL_0022: ldc.i4.1 - IL_0023: sub - IL_0024: ldarg.0 - IL_0025: div.un - IL_0026: conv.i8 - IL_0027: ldc.i4.1 - IL_0028: conv.i8 - IL_0029: add - IL_002a: nop - IL_002b: br.s IL_0047 + IL_000c: pop + IL_000d: nop + IL_000e: br.s IL_0011 - IL_002d: ldc.i4.1 - IL_002e: ldc.i4.s 10 - IL_0030: bge.s IL_0037 + IL_0010: nop + IL_0011: ldc.i4.0 + IL_0012: ldarg.0 + IL_0013: bge.s IL_002c - IL_0032: ldc.i4.0 - IL_0033: conv.i8 - IL_0034: nop - IL_0035: br.s IL_0047 + IL_0015: ldc.i4.s 10 + IL_0017: ldc.i4.1 + IL_0018: bge.s IL_001f - IL_0037: ldc.i4.1 - IL_0038: ldc.i4.s 10 - IL_003a: sub - IL_003b: ldarg.0 - IL_003c: not - IL_003d: ldc.i4.1 - IL_003e: add - IL_003f: div.un - IL_0040: conv.i8 - IL_0041: ldc.i4.1 - IL_0042: conv.i8 - IL_0043: add - IL_0044: nop - IL_0045: br.s IL_0047 - - IL_0047: stloc.0 - IL_0048: ldloc.0 - IL_0049: stloc.1 - IL_004a: ldloc.1 - IL_004b: brtrue.s IL_0053 - - IL_004d: call !!0[] [runtime]System.Array::Empty() - IL_0052: ret - - IL_0053: ldloc.1 - IL_0054: conv.ovf.i.un - IL_0055: newarr [runtime]System.Int32 - IL_005a: stloc.2 - IL_005b: ldc.i4.0 - IL_005c: conv.i8 - IL_005d: stloc.3 - IL_005e: ldc.i4.1 - IL_005f: stloc.s V_4 - IL_0061: br.s IL_0080 + IL_001a: ldc.i4.0 + IL_001b: conv.i8 + IL_001c: nop + IL_001d: br.s IL_0044 - IL_0063: ldloc.s V_4 - IL_0065: stloc.s V_5 - IL_0067: ldloc.2 - IL_0068: ldloc.3 - IL_0069: conv.i - IL_006a: stloc.s V_6 - IL_006c: stloc.s V_7 - IL_006e: ldloc.s V_7 - IL_0070: ldloc.s V_6 - IL_0072: ldloc.s V_5 - IL_0074: stelem.i4 - IL_0075: ldloc.s V_4 - IL_0077: ldarg.0 - IL_0078: add - IL_0079: stloc.s V_4 - IL_007b: ldloc.3 - IL_007c: ldc.i4.1 - IL_007d: conv.i8 - IL_007e: add - IL_007f: stloc.3 - IL_0080: ldloc.3 - IL_0081: ldloc.0 - IL_0082: blt.un.s IL_0063 - - IL_0084: ldloc.2 - IL_0085: ret + IL_001f: ldc.i4.s 10 + IL_0021: ldc.i4.1 + IL_0022: sub + IL_0023: ldarg.0 + IL_0024: div.un + IL_0025: conv.i8 + IL_0026: ldc.i4.1 + IL_0027: conv.i8 + IL_0028: add + IL_0029: nop + IL_002a: br.s IL_0044 + + IL_002c: ldc.i4.1 + IL_002d: ldc.i4.s 10 + IL_002f: bge.s IL_0036 + + IL_0031: ldc.i4.0 + IL_0032: conv.i8 + IL_0033: nop + IL_0034: br.s IL_0044 + + IL_0036: ldc.i4.1 + IL_0037: ldc.i4.s 10 + IL_0039: sub + IL_003a: ldarg.0 + IL_003b: not + IL_003c: ldc.i4.1 + IL_003d: add + IL_003e: div.un + IL_003f: conv.i8 + IL_0040: ldc.i4.1 + IL_0041: conv.i8 + IL_0042: add + IL_0043: nop + IL_0044: stloc.0 + IL_0045: ldloc.0 + IL_0046: stloc.1 + IL_0047: ldloc.1 + IL_0048: brtrue.s IL_0050 + + IL_004a: call !!0[] [runtime]System.Array::Empty() + IL_004f: ret + + IL_0050: ldloc.1 + IL_0051: conv.ovf.i.un + IL_0052: newarr [runtime]System.Int32 + IL_0057: stloc.2 + IL_0058: ldc.i4.0 + IL_0059: conv.i8 + IL_005a: stloc.3 + IL_005b: ldc.i4.1 + IL_005c: stloc.s V_4 + IL_005e: br.s IL_007d + + IL_0060: ldloc.s V_4 + IL_0062: stloc.s V_5 + IL_0064: ldloc.2 + IL_0065: ldloc.3 + IL_0066: conv.i + IL_0067: stloc.s V_6 + IL_0069: stloc.s V_7 + IL_006b: ldloc.s V_7 + IL_006d: ldloc.s V_6 + IL_006f: ldloc.s V_5 + IL_0071: stelem.i4 + IL_0072: ldloc.s V_4 + IL_0074: ldarg.0 + IL_0075: add + IL_0076: stloc.s V_4 + IL_0078: ldloc.3 + IL_0079: ldc.i4.1 + IL_007a: conv.i8 + IL_007b: add + IL_007c: stloc.3 + IL_007d: ldloc.3 + IL_007e: ldloc.0 + IL_007f: blt.un.s IL_0060 + + IL_0081: ldloc.2 + IL_0082: ret } .method public static int32[] f14(int32 finish) cil managed @@ -1826,70 +1819,69 @@ int32 V_5, native int V_6, int32[] V_7) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: ldc.i4.1 - IL_0003: bge.s IL_000a + IL_0000: ldarg.0 + IL_0001: ldc.i4.1 + IL_0002: bge.s IL_0009 - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_0012 + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_0011 - IL_000a: ldarg.0 - IL_000b: ldc.i4.1 - IL_000c: sub - IL_000d: conv.i8 - IL_000e: ldc.i4.1 - IL_000f: conv.i8 - IL_0010: add - IL_0011: nop - IL_0012: stloc.0 - IL_0013: ldloc.0 - IL_0014: stloc.1 - IL_0015: ldloc.1 - IL_0016: brtrue.s IL_001e + IL_0009: ldarg.0 + IL_000a: ldc.i4.1 + IL_000b: sub + IL_000c: conv.i8 + IL_000d: ldc.i4.1 + IL_000e: conv.i8 + IL_000f: add + IL_0010: nop + IL_0011: stloc.0 + IL_0012: ldloc.0 + IL_0013: stloc.1 + IL_0014: ldloc.1 + IL_0015: brtrue.s IL_001d - IL_0018: call !!0[] [runtime]System.Array::Empty() - IL_001d: ret + IL_0017: call !!0[] [runtime]System.Array::Empty() + IL_001c: ret - IL_001e: ldloc.1 - IL_001f: conv.ovf.i.un - IL_0020: newarr [runtime]System.Int32 - IL_0025: stloc.2 - IL_0026: ldc.i4.0 - IL_0027: conv.i8 - IL_0028: stloc.3 - IL_0029: ldc.i4.1 - IL_002a: stloc.s V_4 - IL_002c: br.s IL_004b - - IL_002e: ldloc.s V_4 - IL_0030: stloc.s V_5 - IL_0032: ldloc.2 - IL_0033: ldloc.3 - IL_0034: conv.i - IL_0035: stloc.s V_6 - IL_0037: stloc.s V_7 - IL_0039: ldloc.s V_7 - IL_003b: ldloc.s V_6 - IL_003d: ldloc.s V_5 - IL_003f: stelem.i4 - IL_0040: ldloc.s V_4 - IL_0042: ldc.i4.1 - IL_0043: add - IL_0044: stloc.s V_4 - IL_0046: ldloc.3 - IL_0047: ldc.i4.1 - IL_0048: conv.i8 - IL_0049: add - IL_004a: stloc.3 - IL_004b: ldloc.3 - IL_004c: ldloc.0 - IL_004d: blt.un.s IL_002e + IL_001d: ldloc.1 + IL_001e: conv.ovf.i.un + IL_001f: newarr [runtime]System.Int32 + IL_0024: stloc.2 + IL_0025: ldc.i4.0 + IL_0026: conv.i8 + IL_0027: stloc.3 + IL_0028: ldc.i4.1 + IL_0029: stloc.s V_4 + IL_002b: br.s IL_004a + + IL_002d: ldloc.s V_4 + IL_002f: stloc.s V_5 + IL_0031: ldloc.2 + IL_0032: ldloc.3 + IL_0033: conv.i + IL_0034: stloc.s V_6 + IL_0036: stloc.s V_7 + IL_0038: ldloc.s V_7 + IL_003a: ldloc.s V_6 + IL_003c: ldloc.s V_5 + IL_003e: stelem.i4 + IL_003f: ldloc.s V_4 + IL_0041: ldc.i4.1 + IL_0042: add + IL_0043: stloc.s V_4 + IL_0045: ldloc.3 + IL_0046: ldc.i4.1 + IL_0047: conv.i8 + IL_0048: add + IL_0049: stloc.3 + IL_004a: ldloc.3 + IL_004b: ldloc.0 + IL_004c: blt.un.s IL_002d - IL_004f: ldloc.2 - IL_0050: ret + IL_004e: ldloc.2 + IL_004f: ret } .method public static int32[] f15(int32 start, @@ -1906,116 +1898,113 @@ int32 V_5, native int V_6, int32[] V_7) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: brtrue.s IL_0011 + IL_0000: ldarg.1 + IL_0001: brtrue.s IL_0010 - IL_0004: ldarg.0 - IL_0005: ldarg.1 - IL_0006: ldc.i4.s 10 - IL_0008: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldarg.0 + IL_0004: ldarg.1 + IL_0005: ldc.i4.s 10 + IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000d: pop - IL_000e: nop - IL_000f: br.s IL_0012 + IL_000c: pop + IL_000d: nop + IL_000e: br.s IL_0011 - IL_0011: nop - IL_0012: ldc.i4.0 - IL_0013: ldarg.1 - IL_0014: bge.s IL_002d + IL_0010: nop + IL_0011: ldc.i4.0 + IL_0012: ldarg.1 + IL_0013: bge.s IL_002c - IL_0016: ldc.i4.s 10 - IL_0018: ldarg.0 - IL_0019: bge.s IL_0020 + IL_0015: ldc.i4.s 10 + IL_0017: ldarg.0 + IL_0018: bge.s IL_001f - IL_001b: ldc.i4.0 - IL_001c: conv.i8 - IL_001d: nop - IL_001e: br.s IL_0047 - - IL_0020: ldc.i4.s 10 - IL_0022: ldarg.0 - IL_0023: sub - IL_0024: ldarg.1 - IL_0025: div.un - IL_0026: conv.i8 - IL_0027: ldc.i4.1 - IL_0028: conv.i8 - IL_0029: add - IL_002a: nop - IL_002b: br.s IL_0047 - - IL_002d: ldarg.0 - IL_002e: ldc.i4.s 10 - IL_0030: bge.s IL_0037 - - IL_0032: ldc.i4.0 - IL_0033: conv.i8 - IL_0034: nop - IL_0035: br.s IL_0047 - - IL_0037: ldarg.0 - IL_0038: ldc.i4.s 10 - IL_003a: sub - IL_003b: ldarg.1 - IL_003c: not - IL_003d: ldc.i4.1 - IL_003e: add - IL_003f: div.un - IL_0040: conv.i8 - IL_0041: ldc.i4.1 - IL_0042: conv.i8 - IL_0043: add - IL_0044: nop - IL_0045: br.s IL_0047 - - IL_0047: stloc.0 - IL_0048: ldloc.0 - IL_0049: stloc.1 - IL_004a: ldloc.1 - IL_004b: brtrue.s IL_0053 - - IL_004d: call !!0[] [runtime]System.Array::Empty() - IL_0052: ret - - IL_0053: ldloc.1 - IL_0054: conv.ovf.i.un - IL_0055: newarr [runtime]System.Int32 - IL_005a: stloc.2 - IL_005b: ldc.i4.0 - IL_005c: conv.i8 - IL_005d: stloc.3 - IL_005e: ldarg.0 - IL_005f: stloc.s V_4 - IL_0061: br.s IL_0080 + IL_001a: ldc.i4.0 + IL_001b: conv.i8 + IL_001c: nop + IL_001d: br.s IL_0044 - IL_0063: ldloc.s V_4 - IL_0065: stloc.s V_5 - IL_0067: ldloc.2 - IL_0068: ldloc.3 - IL_0069: conv.i - IL_006a: stloc.s V_6 - IL_006c: stloc.s V_7 - IL_006e: ldloc.s V_7 - IL_0070: ldloc.s V_6 - IL_0072: ldloc.s V_5 - IL_0074: stelem.i4 - IL_0075: ldloc.s V_4 - IL_0077: ldarg.1 - IL_0078: add - IL_0079: stloc.s V_4 - IL_007b: ldloc.3 - IL_007c: ldc.i4.1 - IL_007d: conv.i8 - IL_007e: add - IL_007f: stloc.3 - IL_0080: ldloc.3 - IL_0081: ldloc.0 - IL_0082: blt.un.s IL_0063 - - IL_0084: ldloc.2 - IL_0085: ret + IL_001f: ldc.i4.s 10 + IL_0021: ldarg.0 + IL_0022: sub + IL_0023: ldarg.1 + IL_0024: div.un + IL_0025: conv.i8 + IL_0026: ldc.i4.1 + IL_0027: conv.i8 + IL_0028: add + IL_0029: nop + IL_002a: br.s IL_0044 + + IL_002c: ldarg.0 + IL_002d: ldc.i4.s 10 + IL_002f: bge.s IL_0036 + + IL_0031: ldc.i4.0 + IL_0032: conv.i8 + IL_0033: nop + IL_0034: br.s IL_0044 + + IL_0036: ldarg.0 + IL_0037: ldc.i4.s 10 + IL_0039: sub + IL_003a: ldarg.1 + IL_003b: not + IL_003c: ldc.i4.1 + IL_003d: add + IL_003e: div.un + IL_003f: conv.i8 + IL_0040: ldc.i4.1 + IL_0041: conv.i8 + IL_0042: add + IL_0043: nop + IL_0044: stloc.0 + IL_0045: ldloc.0 + IL_0046: stloc.1 + IL_0047: ldloc.1 + IL_0048: brtrue.s IL_0050 + + IL_004a: call !!0[] [runtime]System.Array::Empty() + IL_004f: ret + + IL_0050: ldloc.1 + IL_0051: conv.ovf.i.un + IL_0052: newarr [runtime]System.Int32 + IL_0057: stloc.2 + IL_0058: ldc.i4.0 + IL_0059: conv.i8 + IL_005a: stloc.3 + IL_005b: ldarg.0 + IL_005c: stloc.s V_4 + IL_005e: br.s IL_007d + + IL_0060: ldloc.s V_4 + IL_0062: stloc.s V_5 + IL_0064: ldloc.2 + IL_0065: ldloc.3 + IL_0066: conv.i + IL_0067: stloc.s V_6 + IL_0069: stloc.s V_7 + IL_006b: ldloc.s V_7 + IL_006d: ldloc.s V_6 + IL_006f: ldloc.s V_5 + IL_0071: stelem.i4 + IL_0072: ldloc.s V_4 + IL_0074: ldarg.1 + IL_0075: add + IL_0076: stloc.s V_4 + IL_0078: ldloc.3 + IL_0079: ldc.i4.1 + IL_007a: conv.i8 + IL_007b: add + IL_007c: stloc.3 + IL_007d: ldloc.3 + IL_007e: ldloc.0 + IL_007f: blt.un.s IL_0060 + + IL_0081: ldloc.2 + IL_0082: ret } .method public static int32[] f16(int32 start, @@ -2032,70 +2021,69 @@ int32 V_5, native int V_6, int32[] V_7) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: ldarg.0 - IL_0003: bge.s IL_000a + IL_0000: ldarg.1 + IL_0001: ldarg.0 + IL_0002: bge.s IL_0009 - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_0012 + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_0011 - IL_000a: ldarg.1 - IL_000b: ldarg.0 - IL_000c: sub - IL_000d: conv.i8 - IL_000e: ldc.i4.1 - IL_000f: conv.i8 - IL_0010: add - IL_0011: nop - IL_0012: stloc.0 - IL_0013: ldloc.0 - IL_0014: stloc.1 - IL_0015: ldloc.1 - IL_0016: brtrue.s IL_001e + IL_0009: ldarg.1 + IL_000a: ldarg.0 + IL_000b: sub + IL_000c: conv.i8 + IL_000d: ldc.i4.1 + IL_000e: conv.i8 + IL_000f: add + IL_0010: nop + IL_0011: stloc.0 + IL_0012: ldloc.0 + IL_0013: stloc.1 + IL_0014: ldloc.1 + IL_0015: brtrue.s IL_001d - IL_0018: call !!0[] [runtime]System.Array::Empty() - IL_001d: ret + IL_0017: call !!0[] [runtime]System.Array::Empty() + IL_001c: ret - IL_001e: ldloc.1 - IL_001f: conv.ovf.i.un - IL_0020: newarr [runtime]System.Int32 - IL_0025: stloc.2 - IL_0026: ldc.i4.0 - IL_0027: conv.i8 - IL_0028: stloc.3 - IL_0029: ldarg.0 - IL_002a: stloc.s V_4 - IL_002c: br.s IL_004b - - IL_002e: ldloc.s V_4 - IL_0030: stloc.s V_5 - IL_0032: ldloc.2 - IL_0033: ldloc.3 - IL_0034: conv.i - IL_0035: stloc.s V_6 - IL_0037: stloc.s V_7 - IL_0039: ldloc.s V_7 - IL_003b: ldloc.s V_6 - IL_003d: ldloc.s V_5 - IL_003f: stelem.i4 - IL_0040: ldloc.s V_4 - IL_0042: ldc.i4.1 - IL_0043: add - IL_0044: stloc.s V_4 - IL_0046: ldloc.3 - IL_0047: ldc.i4.1 - IL_0048: conv.i8 - IL_0049: add - IL_004a: stloc.3 - IL_004b: ldloc.3 - IL_004c: ldloc.0 - IL_004d: blt.un.s IL_002e + IL_001d: ldloc.1 + IL_001e: conv.ovf.i.un + IL_001f: newarr [runtime]System.Int32 + IL_0024: stloc.2 + IL_0025: ldc.i4.0 + IL_0026: conv.i8 + IL_0027: stloc.3 + IL_0028: ldarg.0 + IL_0029: stloc.s V_4 + IL_002b: br.s IL_004a + + IL_002d: ldloc.s V_4 + IL_002f: stloc.s V_5 + IL_0031: ldloc.2 + IL_0032: ldloc.3 + IL_0033: conv.i + IL_0034: stloc.s V_6 + IL_0036: stloc.s V_7 + IL_0038: ldloc.s V_7 + IL_003a: ldloc.s V_6 + IL_003c: ldloc.s V_5 + IL_003e: stelem.i4 + IL_003f: ldloc.s V_4 + IL_0041: ldc.i4.1 + IL_0042: add + IL_0043: stloc.s V_4 + IL_0045: ldloc.3 + IL_0046: ldc.i4.1 + IL_0047: conv.i8 + IL_0048: add + IL_0049: stloc.3 + IL_004a: ldloc.3 + IL_004b: ldloc.0 + IL_004c: blt.un.s IL_002d - IL_004f: ldloc.2 - IL_0050: ret + IL_004e: ldloc.2 + IL_004f: ret } .method public static int32[] f17(int32 step, @@ -2112,116 +2100,113 @@ int32 V_5, native int V_6, int32[] V_7) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: brtrue.s IL_0010 + IL_0000: ldarg.0 + IL_0001: brtrue.s IL_000f - IL_0004: ldc.i4.1 - IL_0005: ldarg.0 - IL_0006: ldarg.1 - IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldc.i4.1 + IL_0004: ldarg.0 + IL_0005: ldarg.1 + IL_0006: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000c: pop - IL_000d: nop - IL_000e: br.s IL_0011 + IL_000b: pop + IL_000c: nop + IL_000d: br.s IL_0010 - IL_0010: nop - IL_0011: ldc.i4.0 - IL_0012: ldarg.0 - IL_0013: bge.s IL_002a + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: ldarg.0 + IL_0012: bge.s IL_0029 - IL_0015: ldarg.1 - IL_0016: ldc.i4.1 - IL_0017: bge.s IL_001e + IL_0014: ldarg.1 + IL_0015: ldc.i4.1 + IL_0016: bge.s IL_001d - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0042 + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_003f - IL_001e: ldarg.1 - IL_001f: ldc.i4.1 - IL_0020: sub - IL_0021: ldarg.0 - IL_0022: div.un - IL_0023: conv.i8 - IL_0024: ldc.i4.1 - IL_0025: conv.i8 - IL_0026: add - IL_0027: nop - IL_0028: br.s IL_0042 + IL_001d: ldarg.1 + IL_001e: ldc.i4.1 + IL_001f: sub + IL_0020: ldarg.0 + IL_0021: div.un + IL_0022: conv.i8 + IL_0023: ldc.i4.1 + IL_0024: conv.i8 + IL_0025: add + IL_0026: nop + IL_0027: br.s IL_003f - IL_002a: ldc.i4.1 - IL_002b: ldarg.1 - IL_002c: bge.s IL_0033 + IL_0029: ldc.i4.1 + IL_002a: ldarg.1 + IL_002b: bge.s IL_0032 - IL_002e: ldc.i4.0 - IL_002f: conv.i8 - IL_0030: nop - IL_0031: br.s IL_0042 + IL_002d: ldc.i4.0 + IL_002e: conv.i8 + IL_002f: nop + IL_0030: br.s IL_003f + + IL_0032: ldc.i4.1 + IL_0033: ldarg.1 + IL_0034: sub + IL_0035: ldarg.0 + IL_0036: not + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: div.un + IL_003a: conv.i8 + IL_003b: ldc.i4.1 + IL_003c: conv.i8 + IL_003d: add + IL_003e: nop + IL_003f: stloc.0 + IL_0040: ldloc.0 + IL_0041: stloc.1 + IL_0042: ldloc.1 + IL_0043: brtrue.s IL_004b - IL_0033: ldc.i4.1 - IL_0034: ldarg.1 - IL_0035: sub - IL_0036: ldarg.0 - IL_0037: not - IL_0038: ldc.i4.1 - IL_0039: add - IL_003a: div.un - IL_003b: conv.i8 - IL_003c: ldc.i4.1 - IL_003d: conv.i8 - IL_003e: add - IL_003f: nop - IL_0040: br.s IL_0042 - - IL_0042: stloc.0 - IL_0043: ldloc.0 - IL_0044: stloc.1 - IL_0045: ldloc.1 - IL_0046: brtrue.s IL_004e - - IL_0048: call !!0[] [runtime]System.Array::Empty() - IL_004d: ret - - IL_004e: ldloc.1 - IL_004f: conv.ovf.i.un - IL_0050: newarr [runtime]System.Int32 - IL_0055: stloc.2 - IL_0056: ldc.i4.0 - IL_0057: conv.i8 - IL_0058: stloc.3 - IL_0059: ldc.i4.1 - IL_005a: stloc.s V_4 - IL_005c: br.s IL_007b - - IL_005e: ldloc.s V_4 - IL_0060: stloc.s V_5 - IL_0062: ldloc.2 - IL_0063: ldloc.3 - IL_0064: conv.i - IL_0065: stloc.s V_6 - IL_0067: stloc.s V_7 - IL_0069: ldloc.s V_7 - IL_006b: ldloc.s V_6 - IL_006d: ldloc.s V_5 - IL_006f: stelem.i4 - IL_0070: ldloc.s V_4 - IL_0072: ldarg.0 - IL_0073: add - IL_0074: stloc.s V_4 - IL_0076: ldloc.3 - IL_0077: ldc.i4.1 - IL_0078: conv.i8 - IL_0079: add - IL_007a: stloc.3 - IL_007b: ldloc.3 - IL_007c: ldloc.0 - IL_007d: blt.un.s IL_005e - - IL_007f: ldloc.2 - IL_0080: ret + IL_0045: call !!0[] [runtime]System.Array::Empty() + IL_004a: ret + + IL_004b: ldloc.1 + IL_004c: conv.ovf.i.un + IL_004d: newarr [runtime]System.Int32 + IL_0052: stloc.2 + IL_0053: ldc.i4.0 + IL_0054: conv.i8 + IL_0055: stloc.3 + IL_0056: ldc.i4.1 + IL_0057: stloc.s V_4 + IL_0059: br.s IL_0078 + + IL_005b: ldloc.s V_4 + IL_005d: stloc.s V_5 + IL_005f: ldloc.2 + IL_0060: ldloc.3 + IL_0061: conv.i + IL_0062: stloc.s V_6 + IL_0064: stloc.s V_7 + IL_0066: ldloc.s V_7 + IL_0068: ldloc.s V_6 + IL_006a: ldloc.s V_5 + IL_006c: stelem.i4 + IL_006d: ldloc.s V_4 + IL_006f: ldarg.0 + IL_0070: add + IL_0071: stloc.s V_4 + IL_0073: ldloc.3 + IL_0074: ldc.i4.1 + IL_0075: conv.i8 + IL_0076: add + IL_0077: stloc.3 + IL_0078: ldloc.3 + IL_0079: ldloc.0 + IL_007a: blt.un.s IL_005b + + IL_007c: ldloc.2 + IL_007d: ret } .method public static int32[] f18(int32 start, @@ -2240,116 +2225,113 @@ int32 V_5, native int V_6, int32[] V_7) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: brtrue.s IL_0010 + IL_0000: ldarg.1 + IL_0001: brtrue.s IL_000f - IL_0004: ldarg.0 - IL_0005: ldarg.1 - IL_0006: ldarg.2 - IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldarg.0 + IL_0004: ldarg.1 + IL_0005: ldarg.2 + IL_0006: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000c: pop - IL_000d: nop - IL_000e: br.s IL_0011 + IL_000b: pop + IL_000c: nop + IL_000d: br.s IL_0010 - IL_0010: nop - IL_0011: ldc.i4.0 - IL_0012: ldarg.1 - IL_0013: bge.s IL_002a + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: ldarg.1 + IL_0012: bge.s IL_0029 - IL_0015: ldarg.2 - IL_0016: ldarg.0 - IL_0017: bge.s IL_001e + IL_0014: ldarg.2 + IL_0015: ldarg.0 + IL_0016: bge.s IL_001d - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0042 + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_003f - IL_001e: ldarg.2 - IL_001f: ldarg.0 - IL_0020: sub - IL_0021: ldarg.1 - IL_0022: div.un - IL_0023: conv.i8 - IL_0024: ldc.i4.1 - IL_0025: conv.i8 - IL_0026: add - IL_0027: nop - IL_0028: br.s IL_0042 + IL_001d: ldarg.2 + IL_001e: ldarg.0 + IL_001f: sub + IL_0020: ldarg.1 + IL_0021: div.un + IL_0022: conv.i8 + IL_0023: ldc.i4.1 + IL_0024: conv.i8 + IL_0025: add + IL_0026: nop + IL_0027: br.s IL_003f + + IL_0029: ldarg.0 + IL_002a: ldarg.2 + IL_002b: bge.s IL_0032 + + IL_002d: ldc.i4.0 + IL_002e: conv.i8 + IL_002f: nop + IL_0030: br.s IL_003f + + IL_0032: ldarg.0 + IL_0033: ldarg.2 + IL_0034: sub + IL_0035: ldarg.1 + IL_0036: not + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: div.un + IL_003a: conv.i8 + IL_003b: ldc.i4.1 + IL_003c: conv.i8 + IL_003d: add + IL_003e: nop + IL_003f: stloc.0 + IL_0040: ldloc.0 + IL_0041: stloc.1 + IL_0042: ldloc.1 + IL_0043: brtrue.s IL_004b - IL_002a: ldarg.0 - IL_002b: ldarg.2 - IL_002c: bge.s IL_0033 + IL_0045: call !!0[] [runtime]System.Array::Empty() + IL_004a: ret - IL_002e: ldc.i4.0 - IL_002f: conv.i8 - IL_0030: nop - IL_0031: br.s IL_0042 - - IL_0033: ldarg.0 - IL_0034: ldarg.2 - IL_0035: sub - IL_0036: ldarg.1 - IL_0037: not - IL_0038: ldc.i4.1 - IL_0039: add - IL_003a: div.un - IL_003b: conv.i8 - IL_003c: ldc.i4.1 - IL_003d: conv.i8 - IL_003e: add - IL_003f: nop - IL_0040: br.s IL_0042 - - IL_0042: stloc.0 - IL_0043: ldloc.0 - IL_0044: stloc.1 - IL_0045: ldloc.1 - IL_0046: brtrue.s IL_004e - - IL_0048: call !!0[] [runtime]System.Array::Empty() - IL_004d: ret - - IL_004e: ldloc.1 - IL_004f: conv.ovf.i.un - IL_0050: newarr [runtime]System.Int32 - IL_0055: stloc.2 - IL_0056: ldc.i4.0 - IL_0057: conv.i8 - IL_0058: stloc.3 - IL_0059: ldarg.0 - IL_005a: stloc.s V_4 - IL_005c: br.s IL_007b - - IL_005e: ldloc.s V_4 - IL_0060: stloc.s V_5 - IL_0062: ldloc.2 - IL_0063: ldloc.3 - IL_0064: conv.i - IL_0065: stloc.s V_6 - IL_0067: stloc.s V_7 - IL_0069: ldloc.s V_7 - IL_006b: ldloc.s V_6 - IL_006d: ldloc.s V_5 - IL_006f: stelem.i4 - IL_0070: ldloc.s V_4 - IL_0072: ldarg.1 - IL_0073: add - IL_0074: stloc.s V_4 - IL_0076: ldloc.3 - IL_0077: ldc.i4.1 - IL_0078: conv.i8 - IL_0079: add - IL_007a: stloc.3 - IL_007b: ldloc.3 - IL_007c: ldloc.0 - IL_007d: blt.un.s IL_005e - - IL_007f: ldloc.2 - IL_0080: ret + IL_004b: ldloc.1 + IL_004c: conv.ovf.i.un + IL_004d: newarr [runtime]System.Int32 + IL_0052: stloc.2 + IL_0053: ldc.i4.0 + IL_0054: conv.i8 + IL_0055: stloc.3 + IL_0056: ldarg.0 + IL_0057: stloc.s V_4 + IL_0059: br.s IL_0078 + + IL_005b: ldloc.s V_4 + IL_005d: stloc.s V_5 + IL_005f: ldloc.2 + IL_0060: ldloc.3 + IL_0061: conv.i + IL_0062: stloc.s V_6 + IL_0064: stloc.s V_7 + IL_0066: ldloc.s V_7 + IL_0068: ldloc.s V_6 + IL_006a: ldloc.s V_5 + IL_006c: stelem.i4 + IL_006d: ldloc.s V_4 + IL_006f: ldarg.1 + IL_0070: add + IL_0071: stloc.s V_4 + IL_0073: ldloc.3 + IL_0074: ldc.i4.1 + IL_0075: conv.i8 + IL_0076: add + IL_0077: stloc.3 + IL_0078: ldloc.3 + IL_0079: ldloc.0 + IL_007a: blt.un.s IL_005b + + IL_007c: ldloc.2 + IL_007d: ret } .method public static int32[] f19(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f) cil managed @@ -2729,7 +2711,7 @@ IL_0022: ldc.i4.0 IL_0023: conv.i8 IL_0024: nop - IL_0025: br.s IL_004e + IL_0025: br.s IL_004c IL_0027: ldc.i4.s 10 IL_0029: ldc.i4.1 @@ -2741,7 +2723,7 @@ IL_002f: conv.i8 IL_0030: add IL_0031: nop - IL_0032: br.s IL_004e + IL_0032: br.s IL_004c IL_0034: ldc.i4.1 IL_0035: ldc.i4.s 10 @@ -2750,7 +2732,7 @@ IL_0039: ldc.i4.0 IL_003a: conv.i8 IL_003b: nop - IL_003c: br.s IL_004e + IL_003c: br.s IL_004c IL_003e: ldc.i4.1 IL_003f: ldc.i4.s 10 @@ -2765,54 +2747,52 @@ IL_0049: conv.i8 IL_004a: add IL_004b: nop - IL_004c: br.s IL_004e - - IL_004e: stloc.1 - IL_004f: ldloc.1 - IL_0050: stloc.2 - IL_0051: ldloc.2 - IL_0052: brtrue.s IL_005a - - IL_0054: call !!0[] [runtime]System.Array::Empty() - IL_0059: ret - - IL_005a: ldloc.2 - IL_005b: conv.ovf.i.un - IL_005c: newarr [runtime]System.Int32 - IL_0061: stloc.3 - IL_0062: ldc.i4.0 - IL_0063: conv.i8 - IL_0064: stloc.s V_4 - IL_0066: ldc.i4.1 - IL_0067: stloc.s V_5 - IL_0069: br.s IL_008b - - IL_006b: ldloc.s V_5 - IL_006d: stloc.s V_6 - IL_006f: ldloc.3 - IL_0070: ldloc.s V_4 - IL_0072: conv.i - IL_0073: stloc.s V_7 - IL_0075: stloc.s V_8 - IL_0077: ldloc.s V_8 - IL_0079: ldloc.s V_7 - IL_007b: ldloc.s V_6 - IL_007d: stelem.i4 - IL_007e: ldloc.s V_5 - IL_0080: ldloc.0 - IL_0081: add - IL_0082: stloc.s V_5 - IL_0084: ldloc.s V_4 - IL_0086: ldc.i4.1 - IL_0087: conv.i8 - IL_0088: add - IL_0089: stloc.s V_4 - IL_008b: ldloc.s V_4 - IL_008d: ldloc.1 - IL_008e: blt.un.s IL_006b - - IL_0090: ldloc.3 - IL_0091: ret + IL_004c: stloc.1 + IL_004d: ldloc.1 + IL_004e: stloc.2 + IL_004f: ldloc.2 + IL_0050: brtrue.s IL_0058 + + IL_0052: call !!0[] [runtime]System.Array::Empty() + IL_0057: ret + + IL_0058: ldloc.2 + IL_0059: conv.ovf.i.un + IL_005a: newarr [runtime]System.Int32 + IL_005f: stloc.3 + IL_0060: ldc.i4.0 + IL_0061: conv.i8 + IL_0062: stloc.s V_4 + IL_0064: ldc.i4.1 + IL_0065: stloc.s V_5 + IL_0067: br.s IL_0089 + + IL_0069: ldloc.s V_5 + IL_006b: stloc.s V_6 + IL_006d: ldloc.3 + IL_006e: ldloc.s V_4 + IL_0070: conv.i + IL_0071: stloc.s V_7 + IL_0073: stloc.s V_8 + IL_0075: ldloc.s V_8 + IL_0077: ldloc.s V_7 + IL_0079: ldloc.s V_6 + IL_007b: stelem.i4 + IL_007c: ldloc.s V_5 + IL_007e: ldloc.0 + IL_007f: add + IL_0080: stloc.s V_5 + IL_0082: ldloc.s V_4 + IL_0084: ldc.i4.1 + IL_0085: conv.i8 + IL_0086: add + IL_0087: stloc.s V_4 + IL_0089: ldloc.s V_4 + IL_008b: ldloc.1 + IL_008c: blt.un.s IL_0069 + + IL_008e: ldloc.3 + IL_008f: ret } .method public static int32[] f24(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f) cil managed @@ -2953,7 +2933,7 @@ IL_0030: ldc.i4.0 IL_0031: conv.i8 IL_0032: nop - IL_0033: br.s IL_0059 + IL_0033: br.s IL_0057 IL_0035: ldloc.2 IL_0036: ldloc.0 @@ -2965,7 +2945,7 @@ IL_003c: conv.i8 IL_003d: add IL_003e: nop - IL_003f: br.s IL_0059 + IL_003f: br.s IL_0057 IL_0041: ldloc.0 IL_0042: ldloc.2 @@ -2974,7 +2954,7 @@ IL_0045: ldc.i4.0 IL_0046: conv.i8 IL_0047: nop - IL_0048: br.s IL_0059 + IL_0048: br.s IL_0057 IL_004a: ldloc.0 IL_004b: ldloc.2 @@ -2989,54 +2969,52 @@ IL_0054: conv.i8 IL_0055: add IL_0056: nop - IL_0057: br.s IL_0059 - - IL_0059: stloc.3 - IL_005a: ldloc.3 - IL_005b: stloc.s V_4 - IL_005d: ldloc.s V_4 - IL_005f: brtrue.s IL_0067 - - IL_0061: call !!0[] [runtime]System.Array::Empty() - IL_0066: ret - - IL_0067: ldloc.s V_4 - IL_0069: conv.ovf.i.un - IL_006a: newarr [runtime]System.Int32 - IL_006f: stloc.s V_5 - IL_0071: ldc.i4.0 - IL_0072: conv.i8 - IL_0073: stloc.s V_6 - IL_0075: ldloc.0 - IL_0076: stloc.s V_7 - IL_0078: br.s IL_009b - - IL_007a: ldloc.s V_7 - IL_007c: stloc.s V_8 - IL_007e: ldloc.s V_5 - IL_0080: ldloc.s V_6 - IL_0082: conv.i - IL_0083: stloc.s V_9 - IL_0085: stloc.s V_10 - IL_0087: ldloc.s V_10 - IL_0089: ldloc.s V_9 - IL_008b: ldloc.s V_8 - IL_008d: stelem.i4 - IL_008e: ldloc.s V_7 - IL_0090: ldloc.1 - IL_0091: add - IL_0092: stloc.s V_7 - IL_0094: ldloc.s V_6 - IL_0096: ldc.i4.1 - IL_0097: conv.i8 - IL_0098: add - IL_0099: stloc.s V_6 - IL_009b: ldloc.s V_6 - IL_009d: ldloc.3 - IL_009e: blt.un.s IL_007a - - IL_00a0: ldloc.s V_5 - IL_00a2: ret + IL_0057: stloc.3 + IL_0058: ldloc.3 + IL_0059: stloc.s V_4 + IL_005b: ldloc.s V_4 + IL_005d: brtrue.s IL_0065 + + IL_005f: call !!0[] [runtime]System.Array::Empty() + IL_0064: ret + + IL_0065: ldloc.s V_4 + IL_0067: conv.ovf.i.un + IL_0068: newarr [runtime]System.Int32 + IL_006d: stloc.s V_5 + IL_006f: ldc.i4.0 + IL_0070: conv.i8 + IL_0071: stloc.s V_6 + IL_0073: ldloc.0 + IL_0074: stloc.s V_7 + IL_0076: br.s IL_0099 + + IL_0078: ldloc.s V_7 + IL_007a: stloc.s V_8 + IL_007c: ldloc.s V_5 + IL_007e: ldloc.s V_6 + IL_0080: conv.i + IL_0081: stloc.s V_9 + IL_0083: stloc.s V_10 + IL_0085: ldloc.s V_10 + IL_0087: ldloc.s V_9 + IL_0089: ldloc.s V_8 + IL_008b: stelem.i4 + IL_008c: ldloc.s V_7 + IL_008e: ldloc.1 + IL_008f: add + IL_0090: stloc.s V_7 + IL_0092: ldloc.s V_6 + IL_0094: ldc.i4.1 + IL_0095: conv.i8 + IL_0096: add + IL_0097: stloc.s V_6 + IL_0099: ldloc.s V_6 + IL_009b: ldloc.3 + IL_009c: blt.un.s IL_0078 + + IL_009e: ldloc.s V_5 + IL_00a0: ret } .method public static class [runtime]System.Tuple`2[] @@ -3056,120 +3034,117 @@ int32 V_5, native int V_6, class [runtime]System.Tuple`2[] V_7) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: brtrue.s IL_0010 + IL_0000: ldarg.1 + IL_0001: brtrue.s IL_000f - IL_0004: ldarg.0 - IL_0005: ldarg.1 - IL_0006: ldarg.2 - IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldarg.0 + IL_0004: ldarg.1 + IL_0005: ldarg.2 + IL_0006: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000c: pop - IL_000d: nop - IL_000e: br.s IL_0011 + IL_000b: pop + IL_000c: nop + IL_000d: br.s IL_0010 - IL_0010: nop - IL_0011: ldc.i4.0 - IL_0012: ldarg.1 - IL_0013: bge.s IL_002a + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: ldarg.1 + IL_0012: bge.s IL_0029 - IL_0015: ldarg.2 - IL_0016: ldarg.0 - IL_0017: bge.s IL_001e + IL_0014: ldarg.2 + IL_0015: ldarg.0 + IL_0016: bge.s IL_001d - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0042 + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_003f - IL_001e: ldarg.2 - IL_001f: ldarg.0 - IL_0020: sub - IL_0021: ldarg.1 - IL_0022: div.un - IL_0023: conv.i8 - IL_0024: ldc.i4.1 - IL_0025: conv.i8 - IL_0026: add - IL_0027: nop - IL_0028: br.s IL_0042 + IL_001d: ldarg.2 + IL_001e: ldarg.0 + IL_001f: sub + IL_0020: ldarg.1 + IL_0021: div.un + IL_0022: conv.i8 + IL_0023: ldc.i4.1 + IL_0024: conv.i8 + IL_0025: add + IL_0026: nop + IL_0027: br.s IL_003f - IL_002a: ldarg.0 - IL_002b: ldarg.2 - IL_002c: bge.s IL_0033 + IL_0029: ldarg.0 + IL_002a: ldarg.2 + IL_002b: bge.s IL_0032 - IL_002e: ldc.i4.0 - IL_002f: conv.i8 - IL_0030: nop - IL_0031: br.s IL_0042 - - IL_0033: ldarg.0 - IL_0034: ldarg.2 - IL_0035: sub - IL_0036: ldarg.1 - IL_0037: not - IL_0038: ldc.i4.1 - IL_0039: add - IL_003a: div.un - IL_003b: conv.i8 - IL_003c: ldc.i4.1 - IL_003d: conv.i8 - IL_003e: add - IL_003f: nop - IL_0040: br.s IL_0042 - - IL_0042: stloc.0 - IL_0043: ldloc.0 - IL_0044: stloc.1 - IL_0045: ldloc.1 - IL_0046: brtrue.s IL_004e - - IL_0048: call !!0[] [runtime]System.Array::Empty>() - IL_004d: ret - - IL_004e: ldloc.1 - IL_004f: conv.ovf.i.un - IL_0050: newarr class [runtime]System.Tuple`2 - IL_0055: stloc.2 - IL_0056: ldc.i4.0 - IL_0057: conv.i8 - IL_0058: stloc.3 - IL_0059: ldarg.0 - IL_005a: stloc.s V_4 - IL_005c: br.s IL_0087 - - IL_005e: ldloc.s V_4 - IL_0060: stloc.s V_5 - IL_0062: ldloc.2 - IL_0063: ldloc.3 - IL_0064: conv.i - IL_0065: stloc.s V_6 - IL_0067: stloc.s V_7 - IL_0069: ldloc.s V_7 - IL_006b: ldloc.s V_6 - IL_006d: ldloc.s V_5 - IL_006f: ldloc.s V_5 - IL_0071: conv.r8 - IL_0072: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, + IL_002d: ldc.i4.0 + IL_002e: conv.i8 + IL_002f: nop + IL_0030: br.s IL_003f + + IL_0032: ldarg.0 + IL_0033: ldarg.2 + IL_0034: sub + IL_0035: ldarg.1 + IL_0036: not + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: div.un + IL_003a: conv.i8 + IL_003b: ldc.i4.1 + IL_003c: conv.i8 + IL_003d: add + IL_003e: nop + IL_003f: stloc.0 + IL_0040: ldloc.0 + IL_0041: stloc.1 + IL_0042: ldloc.1 + IL_0043: brtrue.s IL_004b + + IL_0045: call !!0[] [runtime]System.Array::Empty>() + IL_004a: ret + + IL_004b: ldloc.1 + IL_004c: conv.ovf.i.un + IL_004d: newarr class [runtime]System.Tuple`2 + IL_0052: stloc.2 + IL_0053: ldc.i4.0 + IL_0054: conv.i8 + IL_0055: stloc.3 + IL_0056: ldarg.0 + IL_0057: stloc.s V_4 + IL_0059: br.s IL_0084 + + IL_005b: ldloc.s V_4 + IL_005d: stloc.s V_5 + IL_005f: ldloc.2 + IL_0060: ldloc.3 + IL_0061: conv.i + IL_0062: stloc.s V_6 + IL_0064: stloc.s V_7 + IL_0066: ldloc.s V_7 + IL_0068: ldloc.s V_6 + IL_006a: ldloc.s V_5 + IL_006c: ldloc.s V_5 + IL_006e: conv.r8 + IL_006f: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, !1) - IL_0077: stelem class [runtime]System.Tuple`2 - IL_007c: ldloc.s V_4 - IL_007e: ldarg.1 - IL_007f: add - IL_0080: stloc.s V_4 - IL_0082: ldloc.3 - IL_0083: ldc.i4.1 - IL_0084: conv.i8 - IL_0085: add - IL_0086: stloc.3 - IL_0087: ldloc.3 - IL_0088: ldloc.0 - IL_0089: blt.un.s IL_005e - - IL_008b: ldloc.2 - IL_008c: ret + IL_0074: stelem class [runtime]System.Tuple`2 + IL_0079: ldloc.s V_4 + IL_007b: ldarg.1 + IL_007c: add + IL_007d: stloc.s V_4 + IL_007f: ldloc.3 + IL_0080: ldc.i4.1 + IL_0081: conv.i8 + IL_0082: add + IL_0083: stloc.3 + IL_0084: ldloc.3 + IL_0085: ldloc.0 + IL_0086: blt.un.s IL_005b + + IL_0088: ldloc.2 + IL_0089: ret } .method public static valuetype [runtime]System.ValueTuple`2[] @@ -3189,120 +3164,117 @@ int32 V_5, native int V_6, valuetype [runtime]System.ValueTuple`2[] V_7) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: brtrue.s IL_0010 + IL_0000: ldarg.1 + IL_0001: brtrue.s IL_000f - IL_0004: ldarg.0 - IL_0005: ldarg.1 - IL_0006: ldarg.2 - IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldarg.0 + IL_0004: ldarg.1 + IL_0005: ldarg.2 + IL_0006: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000c: pop - IL_000d: nop - IL_000e: br.s IL_0011 + IL_000b: pop + IL_000c: nop + IL_000d: br.s IL_0010 - IL_0010: nop - IL_0011: ldc.i4.0 - IL_0012: ldarg.1 - IL_0013: bge.s IL_002a + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: ldarg.1 + IL_0012: bge.s IL_0029 - IL_0015: ldarg.2 - IL_0016: ldarg.0 - IL_0017: bge.s IL_001e + IL_0014: ldarg.2 + IL_0015: ldarg.0 + IL_0016: bge.s IL_001d - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0042 + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_003f - IL_001e: ldarg.2 - IL_001f: ldarg.0 - IL_0020: sub - IL_0021: ldarg.1 - IL_0022: div.un - IL_0023: conv.i8 - IL_0024: ldc.i4.1 - IL_0025: conv.i8 - IL_0026: add - IL_0027: nop - IL_0028: br.s IL_0042 + IL_001d: ldarg.2 + IL_001e: ldarg.0 + IL_001f: sub + IL_0020: ldarg.1 + IL_0021: div.un + IL_0022: conv.i8 + IL_0023: ldc.i4.1 + IL_0024: conv.i8 + IL_0025: add + IL_0026: nop + IL_0027: br.s IL_003f - IL_002a: ldarg.0 - IL_002b: ldarg.2 - IL_002c: bge.s IL_0033 + IL_0029: ldarg.0 + IL_002a: ldarg.2 + IL_002b: bge.s IL_0032 - IL_002e: ldc.i4.0 - IL_002f: conv.i8 - IL_0030: nop - IL_0031: br.s IL_0042 - - IL_0033: ldarg.0 - IL_0034: ldarg.2 - IL_0035: sub - IL_0036: ldarg.1 - IL_0037: not - IL_0038: ldc.i4.1 - IL_0039: add - IL_003a: div.un - IL_003b: conv.i8 - IL_003c: ldc.i4.1 - IL_003d: conv.i8 - IL_003e: add - IL_003f: nop - IL_0040: br.s IL_0042 - - IL_0042: stloc.0 - IL_0043: ldloc.0 - IL_0044: stloc.1 - IL_0045: ldloc.1 - IL_0046: brtrue.s IL_004e - - IL_0048: call !!0[] [runtime]System.Array::Empty>() - IL_004d: ret - - IL_004e: ldloc.1 - IL_004f: conv.ovf.i.un - IL_0050: newarr valuetype [runtime]System.ValueTuple`2 - IL_0055: stloc.2 - IL_0056: ldc.i4.0 - IL_0057: conv.i8 - IL_0058: stloc.3 - IL_0059: ldarg.0 - IL_005a: stloc.s V_4 - IL_005c: br.s IL_0087 - - IL_005e: ldloc.s V_4 - IL_0060: stloc.s V_5 - IL_0062: ldloc.2 - IL_0063: ldloc.3 - IL_0064: conv.i - IL_0065: stloc.s V_6 - IL_0067: stloc.s V_7 - IL_0069: ldloc.s V_7 - IL_006b: ldloc.s V_6 - IL_006d: ldloc.s V_5 - IL_006f: ldloc.s V_5 - IL_0071: conv.r8 - IL_0072: newobj instance void valuetype [runtime]System.ValueTuple`2::.ctor(!0, + IL_002d: ldc.i4.0 + IL_002e: conv.i8 + IL_002f: nop + IL_0030: br.s IL_003f + + IL_0032: ldarg.0 + IL_0033: ldarg.2 + IL_0034: sub + IL_0035: ldarg.1 + IL_0036: not + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: div.un + IL_003a: conv.i8 + IL_003b: ldc.i4.1 + IL_003c: conv.i8 + IL_003d: add + IL_003e: nop + IL_003f: stloc.0 + IL_0040: ldloc.0 + IL_0041: stloc.1 + IL_0042: ldloc.1 + IL_0043: brtrue.s IL_004b + + IL_0045: call !!0[] [runtime]System.Array::Empty>() + IL_004a: ret + + IL_004b: ldloc.1 + IL_004c: conv.ovf.i.un + IL_004d: newarr valuetype [runtime]System.ValueTuple`2 + IL_0052: stloc.2 + IL_0053: ldc.i4.0 + IL_0054: conv.i8 + IL_0055: stloc.3 + IL_0056: ldarg.0 + IL_0057: stloc.s V_4 + IL_0059: br.s IL_0084 + + IL_005b: ldloc.s V_4 + IL_005d: stloc.s V_5 + IL_005f: ldloc.2 + IL_0060: ldloc.3 + IL_0061: conv.i + IL_0062: stloc.s V_6 + IL_0064: stloc.s V_7 + IL_0066: ldloc.s V_7 + IL_0068: ldloc.s V_6 + IL_006a: ldloc.s V_5 + IL_006c: ldloc.s V_5 + IL_006e: conv.r8 + IL_006f: newobj instance void valuetype [runtime]System.ValueTuple`2::.ctor(!0, !1) - IL_0077: stelem valuetype [runtime]System.ValueTuple`2 - IL_007c: ldloc.s V_4 - IL_007e: ldarg.1 - IL_007f: add - IL_0080: stloc.s V_4 - IL_0082: ldloc.3 - IL_0083: ldc.i4.1 - IL_0084: conv.i8 - IL_0085: add - IL_0086: stloc.3 - IL_0087: ldloc.3 - IL_0088: ldloc.0 - IL_0089: blt.un.s IL_005e - - IL_008b: ldloc.2 - IL_008c: ret + IL_0074: stelem valuetype [runtime]System.ValueTuple`2 + IL_0079: ldloc.s V_4 + IL_007b: ldarg.1 + IL_007c: add + IL_007d: stloc.s V_4 + IL_007f: ldloc.3 + IL_0080: ldc.i4.1 + IL_0081: conv.i8 + IL_0082: add + IL_0083: stloc.3 + IL_0084: ldloc.3 + IL_0085: ldloc.0 + IL_0086: blt.un.s IL_005b + + IL_0088: ldloc.2 + IL_0089: ret } .method public static int32[] f28(int32 start, @@ -3323,122 +3295,119 @@ int32[] V_7, native int V_8, int32[] V_9) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: brtrue.s IL_0010 + IL_0000: ldarg.1 + IL_0001: brtrue.s IL_000f - IL_0004: ldarg.0 - IL_0005: ldarg.1 - IL_0006: ldarg.2 - IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldarg.0 + IL_0004: ldarg.1 + IL_0005: ldarg.2 + IL_0006: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000c: pop - IL_000d: nop - IL_000e: br.s IL_0011 + IL_000b: pop + IL_000c: nop + IL_000d: br.s IL_0010 - IL_0010: nop - IL_0011: ldc.i4.0 - IL_0012: ldarg.1 - IL_0013: bge.s IL_002a + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: ldarg.1 + IL_0012: bge.s IL_0029 - IL_0015: ldarg.2 - IL_0016: ldarg.0 - IL_0017: bge.s IL_001e + IL_0014: ldarg.2 + IL_0015: ldarg.0 + IL_0016: bge.s IL_001d - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0042 + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_003f - IL_001e: ldarg.2 - IL_001f: ldarg.0 - IL_0020: sub - IL_0021: ldarg.1 - IL_0022: div.un - IL_0023: conv.i8 - IL_0024: ldc.i4.1 - IL_0025: conv.i8 - IL_0026: add - IL_0027: nop - IL_0028: br.s IL_0042 + IL_001d: ldarg.2 + IL_001e: ldarg.0 + IL_001f: sub + IL_0020: ldarg.1 + IL_0021: div.un + IL_0022: conv.i8 + IL_0023: ldc.i4.1 + IL_0024: conv.i8 + IL_0025: add + IL_0026: nop + IL_0027: br.s IL_003f - IL_002a: ldarg.0 - IL_002b: ldarg.2 - IL_002c: bge.s IL_0033 + IL_0029: ldarg.0 + IL_002a: ldarg.2 + IL_002b: bge.s IL_0032 - IL_002e: ldc.i4.0 - IL_002f: conv.i8 - IL_0030: nop - IL_0031: br.s IL_0042 - - IL_0033: ldarg.0 - IL_0034: ldarg.2 - IL_0035: sub - IL_0036: ldarg.1 - IL_0037: not - IL_0038: ldc.i4.1 - IL_0039: add - IL_003a: div.un - IL_003b: conv.i8 - IL_003c: ldc.i4.1 - IL_003d: conv.i8 - IL_003e: add - IL_003f: nop - IL_0040: br.s IL_0042 - - IL_0042: stloc.0 - IL_0043: ldloc.0 - IL_0044: stloc.1 - IL_0045: ldloc.1 - IL_0046: brtrue.s IL_004e - - IL_0048: call !!0[] [runtime]System.Array::Empty() - IL_004d: ret - - IL_004e: ldloc.1 - IL_004f: conv.ovf.i.un - IL_0050: newarr [runtime]System.Int32 - IL_0055: stloc.2 - IL_0056: ldc.i4.0 - IL_0057: conv.i8 - IL_0058: stloc.3 - IL_0059: ldarg.0 - IL_005a: stloc.s V_4 - IL_005c: br.s IL_0086 - - IL_005e: ldloc.s V_4 - IL_0060: stloc.s V_5 - IL_0062: ldloc.2 - IL_0063: ldloc.3 - IL_0064: conv.i - IL_0065: stloc.s V_6 - IL_0067: stloc.s V_7 - IL_0069: ldloc.s V_7 - IL_006b: ldloc.s V_6 - IL_006d: stloc.s V_8 - IL_006f: stloc.s V_9 - IL_0071: ldloc.s V_9 - IL_0073: ldloc.s V_8 - IL_0075: ldloc.s V_5 - IL_0077: ldloc.s V_5 - IL_0079: mul - IL_007a: stelem.i4 - IL_007b: ldloc.s V_4 - IL_007d: ldarg.1 - IL_007e: add - IL_007f: stloc.s V_4 - IL_0081: ldloc.3 - IL_0082: ldc.i4.1 - IL_0083: conv.i8 - IL_0084: add - IL_0085: stloc.3 - IL_0086: ldloc.3 - IL_0087: ldloc.0 - IL_0088: blt.un.s IL_005e - - IL_008a: ldloc.2 - IL_008b: ret + IL_002d: ldc.i4.0 + IL_002e: conv.i8 + IL_002f: nop + IL_0030: br.s IL_003f + + IL_0032: ldarg.0 + IL_0033: ldarg.2 + IL_0034: sub + IL_0035: ldarg.1 + IL_0036: not + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: div.un + IL_003a: conv.i8 + IL_003b: ldc.i4.1 + IL_003c: conv.i8 + IL_003d: add + IL_003e: nop + IL_003f: stloc.0 + IL_0040: ldloc.0 + IL_0041: stloc.1 + IL_0042: ldloc.1 + IL_0043: brtrue.s IL_004b + + IL_0045: call !!0[] [runtime]System.Array::Empty() + IL_004a: ret + + IL_004b: ldloc.1 + IL_004c: conv.ovf.i.un + IL_004d: newarr [runtime]System.Int32 + IL_0052: stloc.2 + IL_0053: ldc.i4.0 + IL_0054: conv.i8 + IL_0055: stloc.3 + IL_0056: ldarg.0 + IL_0057: stloc.s V_4 + IL_0059: br.s IL_0083 + + IL_005b: ldloc.s V_4 + IL_005d: stloc.s V_5 + IL_005f: ldloc.2 + IL_0060: ldloc.3 + IL_0061: conv.i + IL_0062: stloc.s V_6 + IL_0064: stloc.s V_7 + IL_0066: ldloc.s V_7 + IL_0068: ldloc.s V_6 + IL_006a: stloc.s V_8 + IL_006c: stloc.s V_9 + IL_006e: ldloc.s V_9 + IL_0070: ldloc.s V_8 + IL_0072: ldloc.s V_5 + IL_0074: ldloc.s V_5 + IL_0076: mul + IL_0077: stelem.i4 + IL_0078: ldloc.s V_4 + IL_007a: ldarg.1 + IL_007b: add + IL_007c: stloc.s V_4 + IL_007e: ldloc.3 + IL_007f: ldc.i4.1 + IL_0080: conv.i8 + IL_0081: add + IL_0082: stloc.3 + IL_0083: ldloc.3 + IL_0084: ldloc.0 + IL_0085: blt.un.s IL_005b + + IL_0087: ldloc.2 + IL_0088: ret } .method public static int32[] f29(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f, @@ -3718,75 +3687,74 @@ int32 V_5, native int V_6, class [FSharp.Core]Microsoft.FSharp.Core.Unit[] V_7) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: ldarg.0 - IL_0003: bge.s IL_000a + IL_0000: ldarg.1 + IL_0001: ldarg.0 + IL_0002: bge.s IL_0009 - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_0012 + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_0011 - IL_000a: ldarg.1 - IL_000b: ldarg.0 - IL_000c: sub - IL_000d: conv.i8 - IL_000e: ldc.i4.1 - IL_000f: conv.i8 - IL_0010: add - IL_0011: nop - IL_0012: stloc.0 - IL_0013: ldloc.0 - IL_0014: stloc.1 - IL_0015: ldloc.1 - IL_0016: brtrue.s IL_001e + IL_0009: ldarg.1 + IL_000a: ldarg.0 + IL_000b: sub + IL_000c: conv.i8 + IL_000d: ldc.i4.1 + IL_000e: conv.i8 + IL_000f: add + IL_0010: nop + IL_0011: stloc.0 + IL_0012: ldloc.0 + IL_0013: stloc.1 + IL_0014: ldloc.1 + IL_0015: brtrue.s IL_001d - IL_0018: call !!0[] [runtime]System.Array::Empty() - IL_001d: ret + IL_0017: call !!0[] [runtime]System.Array::Empty() + IL_001c: ret - IL_001e: ldloc.1 - IL_001f: conv.ovf.i.un - IL_0020: newarr [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_0025: stloc.2 - IL_0026: ldc.i4.0 - IL_0027: conv.i8 - IL_0028: stloc.3 - IL_0029: ldarg.0 - IL_002a: stloc.s V_4 - IL_002c: br.s IL_005d - - IL_002e: ldloc.s V_4 - IL_0030: stloc.s V_5 - IL_0032: ldloc.2 - IL_0033: ldloc.3 - IL_0034: conv.i - IL_0035: stloc.s V_6 - IL_0037: stloc.s V_7 - IL_0039: ldloc.s V_7 - IL_003b: ldloc.s V_6 - IL_003d: ldsfld class assembly/f33@47 assembly/f33@47::@_instance - IL_0042: ldsfld class assembly/'f33@47-1' assembly/'f33@47-1'::@_instance - IL_0047: ldnull - IL_0048: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + IL_001d: ldloc.1 + IL_001e: conv.ovf.i.un + IL_001f: newarr [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_0024: stloc.2 + IL_0025: ldc.i4.0 + IL_0026: conv.i8 + IL_0027: stloc.3 + IL_0028: ldarg.0 + IL_0029: stloc.s V_4 + IL_002b: br.s IL_005c + + IL_002d: ldloc.s V_4 + IL_002f: stloc.s V_5 + IL_0031: ldloc.2 + IL_0032: ldloc.3 + IL_0033: conv.i + IL_0034: stloc.s V_6 + IL_0036: stloc.s V_7 + IL_0038: ldloc.s V_7 + IL_003a: ldloc.s V_6 + IL_003c: ldsfld class assembly/f33@47 assembly/f33@47::@_instance + IL_0041: ldsfld class assembly/'f33@47-1' assembly/'f33@47-1'::@_instance + IL_0046: ldnull + IL_0047: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, !0, !1) - IL_004d: stelem [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_0052: ldloc.s V_4 - IL_0054: ldc.i4.1 - IL_0055: add - IL_0056: stloc.s V_4 - IL_0058: ldloc.3 - IL_0059: ldc.i4.1 - IL_005a: conv.i8 - IL_005b: add - IL_005c: stloc.3 - IL_005d: ldloc.3 - IL_005e: ldloc.0 - IL_005f: blt.un.s IL_002e - - IL_0061: ldloc.2 - IL_0062: ret + IL_004c: stelem [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_0051: ldloc.s V_4 + IL_0053: ldc.i4.1 + IL_0054: add + IL_0055: stloc.s V_4 + IL_0057: ldloc.3 + IL_0058: ldc.i4.1 + IL_0059: conv.i8 + IL_005a: add + IL_005b: stloc.3 + IL_005c: ldloc.3 + IL_005d: ldloc.0 + IL_005e: blt.un.s IL_002d + + IL_0060: ldloc.2 + IL_0061: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Core.Unit[] @@ -3811,159 +3779,158 @@ uint64 V_10, native int V_11, class [FSharp.Core]Microsoft.FSharp.Core.Unit[] V_12) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: ldarg.0 - IL_0003: bge.s IL_000a - - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_000e + IL_0000: ldarg.1 + IL_0001: ldarg.0 + IL_0002: bge.s IL_0009 - IL_000a: ldarg.1 - IL_000b: ldarg.0 - IL_000c: sub - IL_000d: nop - IL_000e: stloc.0 - IL_000f: ldloc.0 - IL_0010: ldc.i4.m1 - IL_0011: conv.i8 - IL_0012: ceq - IL_0014: stloc.1 - IL_0015: ldarg.1 - IL_0016: ldarg.0 - IL_0017: bge.s IL_001e + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_000d - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0025 + IL_0009: ldarg.1 + IL_000a: ldarg.0 + IL_000b: sub + IL_000c: nop + IL_000d: stloc.0 + IL_000e: ldloc.0 + IL_000f: ldc.i4.m1 + IL_0010: conv.i8 + IL_0011: ceq + IL_0013: stloc.1 + IL_0014: ldarg.1 + IL_0015: ldarg.0 + IL_0016: bge.s IL_001d + + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_0024 - IL_001e: ldarg.1 - IL_001f: ldarg.0 - IL_0020: sub - IL_0021: ldc.i4.1 - IL_0022: conv.i8 - IL_0023: add.ovf.un - IL_0024: nop - IL_0025: stloc.2 - IL_0026: ldloc.2 - IL_0027: brtrue.s IL_002f + IL_001d: ldarg.1 + IL_001e: ldarg.0 + IL_001f: sub + IL_0020: ldc.i4.1 + IL_0021: conv.i8 + IL_0022: add.ovf.un + IL_0023: nop + IL_0024: stloc.2 + IL_0025: ldloc.2 + IL_0026: brtrue.s IL_002e - IL_0029: call !!0[] [runtime]System.Array::Empty() - IL_002e: ret + IL_0028: call !!0[] [runtime]System.Array::Empty() + IL_002d: ret - IL_002f: ldloc.2 - IL_0030: conv.ovf.i.un - IL_0031: newarr [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_0036: stloc.3 - IL_0037: ldloc.1 - IL_0038: brfalse.s IL_0088 - - IL_003a: ldc.i4.1 - IL_003b: stloc.s V_4 - IL_003d: ldc.i4.0 - IL_003e: conv.i8 - IL_003f: stloc.s V_5 - IL_0041: ldarg.0 - IL_0042: stloc.s V_6 - IL_0044: br.s IL_0081 + IL_002e: ldloc.2 + IL_002f: conv.ovf.i.un + IL_0030: newarr [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_0035: stloc.3 + IL_0036: ldloc.1 + IL_0037: brfalse.s IL_0087 - IL_0046: ldloc.s V_6 - IL_0048: stloc.s V_7 - IL_004a: ldloc.3 - IL_004b: ldloc.s V_5 - IL_004d: conv.i - IL_004e: stloc.s V_8 - IL_0050: stloc.s V_9 - IL_0052: ldloc.s V_9 - IL_0054: ldloc.s V_8 - IL_0056: ldsfld class assembly/f34@48 assembly/f34@48::@_instance - IL_005b: ldsfld class assembly/'f34@48-1' assembly/'f34@48-1'::@_instance - IL_0060: ldnull - IL_0061: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + IL_0039: ldc.i4.1 + IL_003a: stloc.s V_4 + IL_003c: ldc.i4.0 + IL_003d: conv.i8 + IL_003e: stloc.s V_5 + IL_0040: ldarg.0 + IL_0041: stloc.s V_6 + IL_0043: br.s IL_0080 + + IL_0045: ldloc.s V_6 + IL_0047: stloc.s V_7 + IL_0049: ldloc.3 + IL_004a: ldloc.s V_5 + IL_004c: conv.i + IL_004d: stloc.s V_8 + IL_004f: stloc.s V_9 + IL_0051: ldloc.s V_9 + IL_0053: ldloc.s V_8 + IL_0055: ldsfld class assembly/f34@48 assembly/f34@48::@_instance + IL_005a: ldsfld class assembly/'f34@48-1' assembly/'f34@48-1'::@_instance + IL_005f: ldnull + IL_0060: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, !0, !1) - IL_0066: stelem [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_006b: ldloc.s V_6 - IL_006d: ldc.i4.1 - IL_006e: conv.i8 - IL_006f: add - IL_0070: stloc.s V_6 - IL_0072: ldloc.s V_5 - IL_0074: ldc.i4.1 - IL_0075: conv.i8 - IL_0076: add - IL_0077: stloc.s V_5 - IL_0079: ldloc.s V_5 - IL_007b: ldc.i4.0 - IL_007c: conv.i8 - IL_007d: cgt.un - IL_007f: stloc.s V_4 - IL_0081: ldloc.s V_4 - IL_0083: brtrue.s IL_0046 - - IL_0085: nop - IL_0086: br.s IL_00dd - - IL_0088: ldarg.1 - IL_0089: ldarg.0 - IL_008a: bge.s IL_0091 - - IL_008c: ldc.i4.0 - IL_008d: conv.i8 - IL_008e: nop - IL_008f: br.s IL_0098 - - IL_0091: ldarg.1 - IL_0092: ldarg.0 - IL_0093: sub - IL_0094: ldc.i4.1 - IL_0095: conv.i8 - IL_0096: add.ovf.un - IL_0097: nop - IL_0098: stloc.s V_5 - IL_009a: ldc.i4.0 - IL_009b: conv.i8 - IL_009c: stloc.s V_10 - IL_009e: ldarg.0 - IL_009f: stloc.s V_6 - IL_00a1: br.s IL_00d6 - - IL_00a3: ldloc.s V_6 - IL_00a5: stloc.s V_7 - IL_00a7: ldloc.3 - IL_00a8: ldloc.s V_10 - IL_00aa: conv.i - IL_00ab: stloc.s V_11 - IL_00ad: stloc.s V_12 - IL_00af: ldloc.s V_12 - IL_00b1: ldloc.s V_11 - IL_00b3: ldsfld class assembly/'f34@48-2' assembly/'f34@48-2'::@_instance - IL_00b8: ldsfld class assembly/'f34@48-3' assembly/'f34@48-3'::@_instance - IL_00bd: ldnull - IL_00be: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + IL_0065: stelem [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_006a: ldloc.s V_6 + IL_006c: ldc.i4.1 + IL_006d: conv.i8 + IL_006e: add + IL_006f: stloc.s V_6 + IL_0071: ldloc.s V_5 + IL_0073: ldc.i4.1 + IL_0074: conv.i8 + IL_0075: add + IL_0076: stloc.s V_5 + IL_0078: ldloc.s V_5 + IL_007a: ldc.i4.0 + IL_007b: conv.i8 + IL_007c: cgt.un + IL_007e: stloc.s V_4 + IL_0080: ldloc.s V_4 + IL_0082: brtrue.s IL_0045 + + IL_0084: nop + IL_0085: br.s IL_00dc + + IL_0087: ldarg.1 + IL_0088: ldarg.0 + IL_0089: bge.s IL_0090 + + IL_008b: ldc.i4.0 + IL_008c: conv.i8 + IL_008d: nop + IL_008e: br.s IL_0097 + + IL_0090: ldarg.1 + IL_0091: ldarg.0 + IL_0092: sub + IL_0093: ldc.i4.1 + IL_0094: conv.i8 + IL_0095: add.ovf.un + IL_0096: nop + IL_0097: stloc.s V_5 + IL_0099: ldc.i4.0 + IL_009a: conv.i8 + IL_009b: stloc.s V_10 + IL_009d: ldarg.0 + IL_009e: stloc.s V_6 + IL_00a0: br.s IL_00d5 + + IL_00a2: ldloc.s V_6 + IL_00a4: stloc.s V_7 + IL_00a6: ldloc.3 + IL_00a7: ldloc.s V_10 + IL_00a9: conv.i + IL_00aa: stloc.s V_11 + IL_00ac: stloc.s V_12 + IL_00ae: ldloc.s V_12 + IL_00b0: ldloc.s V_11 + IL_00b2: ldsfld class assembly/'f34@48-2' assembly/'f34@48-2'::@_instance + IL_00b7: ldsfld class assembly/'f34@48-3' assembly/'f34@48-3'::@_instance + IL_00bc: ldnull + IL_00bd: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, !0, !1) - IL_00c3: stelem [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_00c8: ldloc.s V_6 - IL_00ca: ldc.i4.1 - IL_00cb: conv.i8 - IL_00cc: add - IL_00cd: stloc.s V_6 - IL_00cf: ldloc.s V_10 - IL_00d1: ldc.i4.1 - IL_00d2: conv.i8 - IL_00d3: add - IL_00d4: stloc.s V_10 - IL_00d6: ldloc.s V_10 - IL_00d8: ldloc.s V_5 - IL_00da: blt.un.s IL_00a3 - - IL_00dc: nop - IL_00dd: ldloc.3 - IL_00de: ret + IL_00c2: stelem [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_00c7: ldloc.s V_6 + IL_00c9: ldc.i4.1 + IL_00ca: conv.i8 + IL_00cb: add + IL_00cc: stloc.s V_6 + IL_00ce: ldloc.s V_10 + IL_00d0: ldc.i4.1 + IL_00d1: conv.i8 + IL_00d2: add + IL_00d3: stloc.s V_10 + IL_00d5: ldloc.s V_10 + IL_00d7: ldloc.s V_5 + IL_00d9: blt.un.s IL_00a2 + + IL_00db: nop + IL_00dc: ldloc.3 + IL_00dd: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Core.Unit[] @@ -3988,159 +3955,158 @@ uint64 V_10, native int V_11, class [FSharp.Core]Microsoft.FSharp.Core.Unit[] V_12) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: ldarg.0 - IL_0003: bge.un.s IL_000a - - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_000e + IL_0000: ldarg.1 + IL_0001: ldarg.0 + IL_0002: bge.un.s IL_0009 - IL_000a: ldarg.1 - IL_000b: ldarg.0 - IL_000c: sub - IL_000d: nop - IL_000e: stloc.0 - IL_000f: ldloc.0 - IL_0010: ldc.i4.m1 - IL_0011: conv.i8 - IL_0012: ceq - IL_0014: stloc.1 - IL_0015: ldarg.1 - IL_0016: ldarg.0 - IL_0017: bge.un.s IL_001e + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_000d - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0025 + IL_0009: ldarg.1 + IL_000a: ldarg.0 + IL_000b: sub + IL_000c: nop + IL_000d: stloc.0 + IL_000e: ldloc.0 + IL_000f: ldc.i4.m1 + IL_0010: conv.i8 + IL_0011: ceq + IL_0013: stloc.1 + IL_0014: ldarg.1 + IL_0015: ldarg.0 + IL_0016: bge.un.s IL_001d + + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_0024 - IL_001e: ldarg.1 - IL_001f: ldarg.0 - IL_0020: sub - IL_0021: ldc.i4.1 - IL_0022: conv.i8 - IL_0023: add.ovf.un - IL_0024: nop - IL_0025: stloc.2 - IL_0026: ldloc.2 - IL_0027: brtrue.s IL_002f + IL_001d: ldarg.1 + IL_001e: ldarg.0 + IL_001f: sub + IL_0020: ldc.i4.1 + IL_0021: conv.i8 + IL_0022: add.ovf.un + IL_0023: nop + IL_0024: stloc.2 + IL_0025: ldloc.2 + IL_0026: brtrue.s IL_002e - IL_0029: call !!0[] [runtime]System.Array::Empty() - IL_002e: ret + IL_0028: call !!0[] [runtime]System.Array::Empty() + IL_002d: ret - IL_002f: ldloc.2 - IL_0030: conv.ovf.i.un - IL_0031: newarr [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_0036: stloc.3 - IL_0037: ldloc.1 - IL_0038: brfalse.s IL_0088 - - IL_003a: ldc.i4.1 - IL_003b: stloc.s V_4 - IL_003d: ldc.i4.0 - IL_003e: conv.i8 - IL_003f: stloc.s V_5 - IL_0041: ldarg.0 - IL_0042: stloc.s V_6 - IL_0044: br.s IL_0081 + IL_002e: ldloc.2 + IL_002f: conv.ovf.i.un + IL_0030: newarr [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_0035: stloc.3 + IL_0036: ldloc.1 + IL_0037: brfalse.s IL_0087 - IL_0046: ldloc.s V_6 - IL_0048: stloc.s V_7 - IL_004a: ldloc.3 - IL_004b: ldloc.s V_5 - IL_004d: conv.i - IL_004e: stloc.s V_8 - IL_0050: stloc.s V_9 - IL_0052: ldloc.s V_9 - IL_0054: ldloc.s V_8 - IL_0056: ldsfld class assembly/f35@49 assembly/f35@49::@_instance - IL_005b: ldsfld class assembly/'f35@49-1' assembly/'f35@49-1'::@_instance - IL_0060: ldnull - IL_0061: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + IL_0039: ldc.i4.1 + IL_003a: stloc.s V_4 + IL_003c: ldc.i4.0 + IL_003d: conv.i8 + IL_003e: stloc.s V_5 + IL_0040: ldarg.0 + IL_0041: stloc.s V_6 + IL_0043: br.s IL_0080 + + IL_0045: ldloc.s V_6 + IL_0047: stloc.s V_7 + IL_0049: ldloc.3 + IL_004a: ldloc.s V_5 + IL_004c: conv.i + IL_004d: stloc.s V_8 + IL_004f: stloc.s V_9 + IL_0051: ldloc.s V_9 + IL_0053: ldloc.s V_8 + IL_0055: ldsfld class assembly/f35@49 assembly/f35@49::@_instance + IL_005a: ldsfld class assembly/'f35@49-1' assembly/'f35@49-1'::@_instance + IL_005f: ldnull + IL_0060: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, !0, !1) - IL_0066: stelem [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_006b: ldloc.s V_6 - IL_006d: ldc.i4.1 - IL_006e: conv.i8 - IL_006f: add - IL_0070: stloc.s V_6 - IL_0072: ldloc.s V_5 - IL_0074: ldc.i4.1 - IL_0075: conv.i8 - IL_0076: add - IL_0077: stloc.s V_5 - IL_0079: ldloc.s V_5 - IL_007b: ldc.i4.0 - IL_007c: conv.i8 - IL_007d: cgt.un - IL_007f: stloc.s V_4 - IL_0081: ldloc.s V_4 - IL_0083: brtrue.s IL_0046 - - IL_0085: nop - IL_0086: br.s IL_00dd - - IL_0088: ldarg.1 - IL_0089: ldarg.0 - IL_008a: bge.un.s IL_0091 - - IL_008c: ldc.i4.0 - IL_008d: conv.i8 - IL_008e: nop - IL_008f: br.s IL_0098 - - IL_0091: ldarg.1 - IL_0092: ldarg.0 - IL_0093: sub - IL_0094: ldc.i4.1 - IL_0095: conv.i8 - IL_0096: add.ovf.un - IL_0097: nop - IL_0098: stloc.s V_5 - IL_009a: ldc.i4.0 - IL_009b: conv.i8 - IL_009c: stloc.s V_6 - IL_009e: ldarg.0 - IL_009f: stloc.s V_7 - IL_00a1: br.s IL_00d6 - - IL_00a3: ldloc.s V_7 - IL_00a5: stloc.s V_10 - IL_00a7: ldloc.3 - IL_00a8: ldloc.s V_6 - IL_00aa: conv.i - IL_00ab: stloc.s V_11 - IL_00ad: stloc.s V_12 - IL_00af: ldloc.s V_12 - IL_00b1: ldloc.s V_11 - IL_00b3: ldsfld class assembly/'f35@49-2' assembly/'f35@49-2'::@_instance - IL_00b8: ldsfld class assembly/'f35@49-3' assembly/'f35@49-3'::@_instance - IL_00bd: ldnull - IL_00be: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + IL_0065: stelem [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_006a: ldloc.s V_6 + IL_006c: ldc.i4.1 + IL_006d: conv.i8 + IL_006e: add + IL_006f: stloc.s V_6 + IL_0071: ldloc.s V_5 + IL_0073: ldc.i4.1 + IL_0074: conv.i8 + IL_0075: add + IL_0076: stloc.s V_5 + IL_0078: ldloc.s V_5 + IL_007a: ldc.i4.0 + IL_007b: conv.i8 + IL_007c: cgt.un + IL_007e: stloc.s V_4 + IL_0080: ldloc.s V_4 + IL_0082: brtrue.s IL_0045 + + IL_0084: nop + IL_0085: br.s IL_00dc + + IL_0087: ldarg.1 + IL_0088: ldarg.0 + IL_0089: bge.un.s IL_0090 + + IL_008b: ldc.i4.0 + IL_008c: conv.i8 + IL_008d: nop + IL_008e: br.s IL_0097 + + IL_0090: ldarg.1 + IL_0091: ldarg.0 + IL_0092: sub + IL_0093: ldc.i4.1 + IL_0094: conv.i8 + IL_0095: add.ovf.un + IL_0096: nop + IL_0097: stloc.s V_5 + IL_0099: ldc.i4.0 + IL_009a: conv.i8 + IL_009b: stloc.s V_6 + IL_009d: ldarg.0 + IL_009e: stloc.s V_7 + IL_00a0: br.s IL_00d5 + + IL_00a2: ldloc.s V_7 + IL_00a4: stloc.s V_10 + IL_00a6: ldloc.3 + IL_00a7: ldloc.s V_6 + IL_00a9: conv.i + IL_00aa: stloc.s V_11 + IL_00ac: stloc.s V_12 + IL_00ae: ldloc.s V_12 + IL_00b0: ldloc.s V_11 + IL_00b2: ldsfld class assembly/'f35@49-2' assembly/'f35@49-2'::@_instance + IL_00b7: ldsfld class assembly/'f35@49-3' assembly/'f35@49-3'::@_instance + IL_00bc: ldnull + IL_00bd: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, !0, !1) - IL_00c3: stelem [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_00c8: ldloc.s V_7 - IL_00ca: ldc.i4.1 - IL_00cb: conv.i8 - IL_00cc: add - IL_00cd: stloc.s V_7 - IL_00cf: ldloc.s V_6 - IL_00d1: ldc.i4.1 - IL_00d2: conv.i8 - IL_00d3: add - IL_00d4: stloc.s V_6 - IL_00d6: ldloc.s V_6 - IL_00d8: ldloc.s V_5 - IL_00da: blt.un.s IL_00a3 - - IL_00dc: nop - IL_00dd: ldloc.3 - IL_00de: ret + IL_00c2: stelem [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_00c7: ldloc.s V_7 + IL_00c9: ldc.i4.1 + IL_00ca: conv.i8 + IL_00cb: add + IL_00cc: stloc.s V_7 + IL_00ce: ldloc.s V_6 + IL_00d0: ldc.i4.1 + IL_00d1: conv.i8 + IL_00d2: add + IL_00d3: stloc.s V_6 + IL_00d5: ldloc.s V_6 + IL_00d7: ldloc.s V_5 + IL_00d9: blt.un.s IL_00a2 + + IL_00db: nop + IL_00dc: ldloc.3 + IL_00dd: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeLists.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeLists.fs.il.bsl index 4f629775f5f..be2eab2fc2f 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeLists.fs.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/ForNInRangeLists.fs.il.bsl @@ -1252,56 +1252,55 @@ int32 V_3, int32 V_4, valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1& V_5) - IL_0000: nop - IL_0001: ldc.i4.s 10 - IL_0003: ldarg.0 - IL_0004: bge.s IL_000b - - IL_0006: ldc.i4.0 - IL_0007: conv.i8 - IL_0008: nop - IL_0009: br.s IL_0014 - - IL_000b: ldc.i4.s 10 - IL_000d: ldarg.0 - IL_000e: sub - IL_000f: conv.i8 - IL_0010: ldc.i4.1 - IL_0011: conv.i8 - IL_0012: add - IL_0013: nop - IL_0014: stloc.0 - IL_0015: ldc.i4.0 - IL_0016: conv.i8 - IL_0017: stloc.2 - IL_0018: ldarg.0 - IL_0019: stloc.3 - IL_001a: br.s IL_0036 + IL_0000: ldc.i4.s 10 + IL_0002: ldarg.0 + IL_0003: bge.s IL_000a - IL_001c: ldloc.3 - IL_001d: stloc.s V_4 - IL_001f: ldloca.s V_1 - IL_0021: stloc.s V_5 - IL_0023: ldloc.s V_5 - IL_0025: ldloc.s V_4 - IL_0027: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_002c: nop - IL_002d: ldloc.3 - IL_002e: ldc.i4.1 - IL_002f: add - IL_0030: stloc.3 - IL_0031: ldloc.2 - IL_0032: ldc.i4.1 - IL_0033: conv.i8 - IL_0034: add - IL_0035: stloc.2 - IL_0036: ldloc.2 - IL_0037: ldloc.0 - IL_0038: blt.un.s IL_001c - - IL_003a: ldloca.s V_1 - IL_003c: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_0041: ret + IL_0005: ldc.i4.0 + IL_0006: conv.i8 + IL_0007: nop + IL_0008: br.s IL_0013 + + IL_000a: ldc.i4.s 10 + IL_000c: ldarg.0 + IL_000d: sub + IL_000e: conv.i8 + IL_000f: ldc.i4.1 + IL_0010: conv.i8 + IL_0011: add + IL_0012: nop + IL_0013: stloc.0 + IL_0014: ldc.i4.0 + IL_0015: conv.i8 + IL_0016: stloc.2 + IL_0017: ldarg.0 + IL_0018: stloc.3 + IL_0019: br.s IL_0035 + + IL_001b: ldloc.3 + IL_001c: stloc.s V_4 + IL_001e: ldloca.s V_1 + IL_0020: stloc.s V_5 + IL_0022: ldloc.s V_5 + IL_0024: ldloc.s V_4 + IL_0026: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_002b: nop + IL_002c: ldloc.3 + IL_002d: ldc.i4.1 + IL_002e: add + IL_002f: stloc.3 + IL_0030: ldloc.2 + IL_0031: ldc.i4.1 + IL_0032: conv.i8 + IL_0033: add + IL_0034: stloc.2 + IL_0035: ldloc.2 + IL_0036: ldloc.0 + IL_0037: blt.un.s IL_001b + + IL_0039: ldloca.s V_1 + IL_003b: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0040: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f10(int32 finish) cil managed @@ -1314,56 +1313,55 @@ int32 V_3, int32 V_4, valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1& V_5) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: ldc.i4.1 - IL_0003: bge.s IL_000a - - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_0012 - - IL_000a: ldarg.0 - IL_000b: ldc.i4.1 - IL_000c: sub - IL_000d: conv.i8 - IL_000e: ldc.i4.1 - IL_000f: conv.i8 - IL_0010: add - IL_0011: nop - IL_0012: stloc.0 - IL_0013: ldc.i4.0 - IL_0014: conv.i8 - IL_0015: stloc.2 - IL_0016: ldc.i4.1 - IL_0017: stloc.3 - IL_0018: br.s IL_0034 + IL_0000: ldarg.0 + IL_0001: ldc.i4.1 + IL_0002: bge.s IL_0009 - IL_001a: ldloc.3 - IL_001b: stloc.s V_4 - IL_001d: ldloca.s V_1 - IL_001f: stloc.s V_5 - IL_0021: ldloc.s V_5 - IL_0023: ldloc.s V_4 - IL_0025: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_002a: nop - IL_002b: ldloc.3 - IL_002c: ldc.i4.1 - IL_002d: add - IL_002e: stloc.3 - IL_002f: ldloc.2 - IL_0030: ldc.i4.1 - IL_0031: conv.i8 - IL_0032: add - IL_0033: stloc.2 - IL_0034: ldloc.2 - IL_0035: ldloc.0 - IL_0036: blt.un.s IL_001a + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_0011 - IL_0038: ldloca.s V_1 - IL_003a: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_003f: ret + IL_0009: ldarg.0 + IL_000a: ldc.i4.1 + IL_000b: sub + IL_000c: conv.i8 + IL_000d: ldc.i4.1 + IL_000e: conv.i8 + IL_000f: add + IL_0010: nop + IL_0011: stloc.0 + IL_0012: ldc.i4.0 + IL_0013: conv.i8 + IL_0014: stloc.2 + IL_0015: ldc.i4.1 + IL_0016: stloc.3 + IL_0017: br.s IL_0033 + + IL_0019: ldloc.3 + IL_001a: stloc.s V_4 + IL_001c: ldloca.s V_1 + IL_001e: stloc.s V_5 + IL_0020: ldloc.s V_5 + IL_0022: ldloc.s V_4 + IL_0024: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0029: nop + IL_002a: ldloc.3 + IL_002b: ldc.i4.1 + IL_002c: add + IL_002d: stloc.3 + IL_002e: ldloc.2 + IL_002f: ldc.i4.1 + IL_0030: conv.i8 + IL_0031: add + IL_0032: stloc.2 + IL_0033: ldloc.2 + IL_0034: ldloc.0 + IL_0035: blt.un.s IL_0019 + + IL_0037: ldloca.s V_1 + IL_0039: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_003e: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f11(int32 start, int32 finish) cil managed @@ -1377,56 +1375,55 @@ int32 V_3, int32 V_4, valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1& V_5) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: ldarg.0 - IL_0003: bge.s IL_000a - - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_0012 - - IL_000a: ldarg.1 - IL_000b: ldarg.0 - IL_000c: sub - IL_000d: conv.i8 - IL_000e: ldc.i4.1 - IL_000f: conv.i8 - IL_0010: add - IL_0011: nop - IL_0012: stloc.0 - IL_0013: ldc.i4.0 - IL_0014: conv.i8 - IL_0015: stloc.2 - IL_0016: ldarg.0 - IL_0017: stloc.3 - IL_0018: br.s IL_0034 + IL_0000: ldarg.1 + IL_0001: ldarg.0 + IL_0002: bge.s IL_0009 - IL_001a: ldloc.3 - IL_001b: stloc.s V_4 - IL_001d: ldloca.s V_1 - IL_001f: stloc.s V_5 - IL_0021: ldloc.s V_5 - IL_0023: ldloc.s V_4 - IL_0025: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_002a: nop - IL_002b: ldloc.3 - IL_002c: ldc.i4.1 - IL_002d: add - IL_002e: stloc.3 - IL_002f: ldloc.2 - IL_0030: ldc.i4.1 - IL_0031: conv.i8 - IL_0032: add - IL_0033: stloc.2 - IL_0034: ldloc.2 - IL_0035: ldloc.0 - IL_0036: blt.un.s IL_001a + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_0011 - IL_0038: ldloca.s V_1 - IL_003a: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_003f: ret + IL_0009: ldarg.1 + IL_000a: ldarg.0 + IL_000b: sub + IL_000c: conv.i8 + IL_000d: ldc.i4.1 + IL_000e: conv.i8 + IL_000f: add + IL_0010: nop + IL_0011: stloc.0 + IL_0012: ldc.i4.0 + IL_0013: conv.i8 + IL_0014: stloc.2 + IL_0015: ldarg.0 + IL_0016: stloc.3 + IL_0017: br.s IL_0033 + + IL_0019: ldloc.3 + IL_001a: stloc.s V_4 + IL_001c: ldloca.s V_1 + IL_001e: stloc.s V_5 + IL_0020: ldloc.s V_5 + IL_0022: ldloc.s V_4 + IL_0024: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0029: nop + IL_002a: ldloc.3 + IL_002b: ldc.i4.1 + IL_002c: add + IL_002d: stloc.3 + IL_002e: ldloc.2 + IL_002f: ldc.i4.1 + IL_0030: conv.i8 + IL_0031: add + IL_0032: stloc.2 + IL_0033: ldloc.2 + IL_0034: ldloc.0 + IL_0035: blt.un.s IL_0019 + + IL_0037: ldloca.s V_1 + IL_0039: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_003e: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f12(int32 start) cil managed @@ -1439,56 +1436,55 @@ int32 V_3, int32 V_4, valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1& V_5) - IL_0000: nop - IL_0001: ldc.i4.s 10 - IL_0003: ldarg.0 - IL_0004: bge.s IL_000b - - IL_0006: ldc.i4.0 - IL_0007: conv.i8 - IL_0008: nop - IL_0009: br.s IL_0014 - - IL_000b: ldc.i4.s 10 - IL_000d: ldarg.0 - IL_000e: sub - IL_000f: conv.i8 - IL_0010: ldc.i4.1 - IL_0011: conv.i8 - IL_0012: add - IL_0013: nop - IL_0014: stloc.0 - IL_0015: ldc.i4.0 - IL_0016: conv.i8 - IL_0017: stloc.2 - IL_0018: ldarg.0 - IL_0019: stloc.3 - IL_001a: br.s IL_0036 + IL_0000: ldc.i4.s 10 + IL_0002: ldarg.0 + IL_0003: bge.s IL_000a - IL_001c: ldloc.3 - IL_001d: stloc.s V_4 - IL_001f: ldloca.s V_1 - IL_0021: stloc.s V_5 - IL_0023: ldloc.s V_5 - IL_0025: ldloc.s V_4 - IL_0027: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_002c: nop - IL_002d: ldloc.3 - IL_002e: ldc.i4.1 - IL_002f: add - IL_0030: stloc.3 - IL_0031: ldloc.2 - IL_0032: ldc.i4.1 - IL_0033: conv.i8 - IL_0034: add - IL_0035: stloc.2 - IL_0036: ldloc.2 - IL_0037: ldloc.0 - IL_0038: blt.un.s IL_001c - - IL_003a: ldloca.s V_1 - IL_003c: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_0041: ret + IL_0005: ldc.i4.0 + IL_0006: conv.i8 + IL_0007: nop + IL_0008: br.s IL_0013 + + IL_000a: ldc.i4.s 10 + IL_000c: ldarg.0 + IL_000d: sub + IL_000e: conv.i8 + IL_000f: ldc.i4.1 + IL_0010: conv.i8 + IL_0011: add + IL_0012: nop + IL_0013: stloc.0 + IL_0014: ldc.i4.0 + IL_0015: conv.i8 + IL_0016: stloc.2 + IL_0017: ldarg.0 + IL_0018: stloc.3 + IL_0019: br.s IL_0035 + + IL_001b: ldloc.3 + IL_001c: stloc.s V_4 + IL_001e: ldloca.s V_1 + IL_0020: stloc.s V_5 + IL_0022: ldloc.s V_5 + IL_0024: ldloc.s V_4 + IL_0026: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_002b: nop + IL_002c: ldloc.3 + IL_002d: ldc.i4.1 + IL_002e: add + IL_002f: stloc.3 + IL_0030: ldloc.2 + IL_0031: ldc.i4.1 + IL_0032: conv.i8 + IL_0033: add + IL_0034: stloc.2 + IL_0035: ldloc.2 + IL_0036: ldloc.0 + IL_0037: blt.un.s IL_001b + + IL_0039: ldloca.s V_1 + IL_003b: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0040: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f13(int32 step) cil managed @@ -1501,102 +1497,99 @@ int32 V_3, int32 V_4, valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1& V_5) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: brtrue.s IL_0011 + IL_0000: ldarg.0 + IL_0001: brtrue.s IL_0010 - IL_0004: ldc.i4.1 - IL_0005: ldarg.0 - IL_0006: ldc.i4.s 10 - IL_0008: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldc.i4.1 + IL_0004: ldarg.0 + IL_0005: ldc.i4.s 10 + IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000d: pop - IL_000e: nop - IL_000f: br.s IL_0012 - - IL_0011: nop - IL_0012: ldc.i4.0 - IL_0013: ldarg.0 - IL_0014: bge.s IL_002d - - IL_0016: ldc.i4.s 10 - IL_0018: ldc.i4.1 - IL_0019: bge.s IL_0020 + IL_000c: pop + IL_000d: nop + IL_000e: br.s IL_0011 - IL_001b: ldc.i4.0 - IL_001c: conv.i8 - IL_001d: nop - IL_001e: br.s IL_0047 + IL_0010: nop + IL_0011: ldc.i4.0 + IL_0012: ldarg.0 + IL_0013: bge.s IL_002c - IL_0020: ldc.i4.s 10 - IL_0022: ldc.i4.1 - IL_0023: sub - IL_0024: ldarg.0 - IL_0025: div.un - IL_0026: conv.i8 - IL_0027: ldc.i4.1 - IL_0028: conv.i8 - IL_0029: add - IL_002a: nop - IL_002b: br.s IL_0047 + IL_0015: ldc.i4.s 10 + IL_0017: ldc.i4.1 + IL_0018: bge.s IL_001f - IL_002d: ldc.i4.1 - IL_002e: ldc.i4.s 10 - IL_0030: bge.s IL_0037 + IL_001a: ldc.i4.0 + IL_001b: conv.i8 + IL_001c: nop + IL_001d: br.s IL_0044 + + IL_001f: ldc.i4.s 10 + IL_0021: ldc.i4.1 + IL_0022: sub + IL_0023: ldarg.0 + IL_0024: div.un + IL_0025: conv.i8 + IL_0026: ldc.i4.1 + IL_0027: conv.i8 + IL_0028: add + IL_0029: nop + IL_002a: br.s IL_0044 - IL_0032: ldc.i4.0 - IL_0033: conv.i8 - IL_0034: nop - IL_0035: br.s IL_0047 + IL_002c: ldc.i4.1 + IL_002d: ldc.i4.s 10 + IL_002f: bge.s IL_0036 - IL_0037: ldc.i4.1 - IL_0038: ldc.i4.s 10 - IL_003a: sub - IL_003b: ldarg.0 - IL_003c: not - IL_003d: ldc.i4.1 - IL_003e: add - IL_003f: div.un - IL_0040: conv.i8 - IL_0041: ldc.i4.1 - IL_0042: conv.i8 - IL_0043: add - IL_0044: nop - IL_0045: br.s IL_0047 + IL_0031: ldc.i4.0 + IL_0032: conv.i8 + IL_0033: nop + IL_0034: br.s IL_0044 - IL_0047: stloc.0 - IL_0048: ldc.i4.0 - IL_0049: conv.i8 - IL_004a: stloc.2 - IL_004b: ldc.i4.1 - IL_004c: stloc.3 - IL_004d: br.s IL_0069 - - IL_004f: ldloc.3 - IL_0050: stloc.s V_4 - IL_0052: ldloca.s V_1 - IL_0054: stloc.s V_5 - IL_0056: ldloc.s V_5 - IL_0058: ldloc.s V_4 - IL_005a: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_005f: nop - IL_0060: ldloc.3 - IL_0061: ldarg.0 - IL_0062: add - IL_0063: stloc.3 - IL_0064: ldloc.2 - IL_0065: ldc.i4.1 - IL_0066: conv.i8 - IL_0067: add - IL_0068: stloc.2 - IL_0069: ldloc.2 - IL_006a: ldloc.0 - IL_006b: blt.un.s IL_004f + IL_0036: ldc.i4.1 + IL_0037: ldc.i4.s 10 + IL_0039: sub + IL_003a: ldarg.0 + IL_003b: not + IL_003c: ldc.i4.1 + IL_003d: add + IL_003e: div.un + IL_003f: conv.i8 + IL_0040: ldc.i4.1 + IL_0041: conv.i8 + IL_0042: add + IL_0043: nop + IL_0044: stloc.0 + IL_0045: ldc.i4.0 + IL_0046: conv.i8 + IL_0047: stloc.2 + IL_0048: ldc.i4.1 + IL_0049: stloc.3 + IL_004a: br.s IL_0066 + + IL_004c: ldloc.3 + IL_004d: stloc.s V_4 + IL_004f: ldloca.s V_1 + IL_0051: stloc.s V_5 + IL_0053: ldloc.s V_5 + IL_0055: ldloc.s V_4 + IL_0057: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_005c: nop + IL_005d: ldloc.3 + IL_005e: ldarg.0 + IL_005f: add + IL_0060: stloc.3 + IL_0061: ldloc.2 + IL_0062: ldc.i4.1 + IL_0063: conv.i8 + IL_0064: add + IL_0065: stloc.2 + IL_0066: ldloc.2 + IL_0067: ldloc.0 + IL_0068: blt.un.s IL_004c - IL_006d: ldloca.s V_1 - IL_006f: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_0074: ret + IL_006a: ldloca.s V_1 + IL_006c: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0071: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f14(int32 finish) cil managed @@ -1609,56 +1602,55 @@ int32 V_3, int32 V_4, valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1& V_5) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: ldc.i4.1 - IL_0003: bge.s IL_000a - - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_0012 + IL_0000: ldarg.0 + IL_0001: ldc.i4.1 + IL_0002: bge.s IL_0009 - IL_000a: ldarg.0 - IL_000b: ldc.i4.1 - IL_000c: sub - IL_000d: conv.i8 - IL_000e: ldc.i4.1 - IL_000f: conv.i8 - IL_0010: add - IL_0011: nop - IL_0012: stloc.0 - IL_0013: ldc.i4.0 - IL_0014: conv.i8 - IL_0015: stloc.2 - IL_0016: ldc.i4.1 - IL_0017: stloc.3 - IL_0018: br.s IL_0034 + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_0011 - IL_001a: ldloc.3 - IL_001b: stloc.s V_4 - IL_001d: ldloca.s V_1 - IL_001f: stloc.s V_5 - IL_0021: ldloc.s V_5 - IL_0023: ldloc.s V_4 - IL_0025: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_002a: nop - IL_002b: ldloc.3 - IL_002c: ldc.i4.1 - IL_002d: add - IL_002e: stloc.3 - IL_002f: ldloc.2 - IL_0030: ldc.i4.1 - IL_0031: conv.i8 - IL_0032: add - IL_0033: stloc.2 - IL_0034: ldloc.2 - IL_0035: ldloc.0 - IL_0036: blt.un.s IL_001a - - IL_0038: ldloca.s V_1 - IL_003a: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_003f: ret + IL_0009: ldarg.0 + IL_000a: ldc.i4.1 + IL_000b: sub + IL_000c: conv.i8 + IL_000d: ldc.i4.1 + IL_000e: conv.i8 + IL_000f: add + IL_0010: nop + IL_0011: stloc.0 + IL_0012: ldc.i4.0 + IL_0013: conv.i8 + IL_0014: stloc.2 + IL_0015: ldc.i4.1 + IL_0016: stloc.3 + IL_0017: br.s IL_0033 + + IL_0019: ldloc.3 + IL_001a: stloc.s V_4 + IL_001c: ldloca.s V_1 + IL_001e: stloc.s V_5 + IL_0020: ldloc.s V_5 + IL_0022: ldloc.s V_4 + IL_0024: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0029: nop + IL_002a: ldloc.3 + IL_002b: ldc.i4.1 + IL_002c: add + IL_002d: stloc.3 + IL_002e: ldloc.2 + IL_002f: ldc.i4.1 + IL_0030: conv.i8 + IL_0031: add + IL_0032: stloc.2 + IL_0033: ldloc.2 + IL_0034: ldloc.0 + IL_0035: blt.un.s IL_0019 + + IL_0037: ldloca.s V_1 + IL_0039: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_003e: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f15(int32 start, int32 step) cil managed @@ -1672,102 +1664,99 @@ int32 V_3, int32 V_4, valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1& V_5) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: brtrue.s IL_0011 + IL_0000: ldarg.1 + IL_0001: brtrue.s IL_0010 - IL_0004: ldarg.0 - IL_0005: ldarg.1 - IL_0006: ldc.i4.s 10 - IL_0008: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldarg.0 + IL_0004: ldarg.1 + IL_0005: ldc.i4.s 10 + IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000d: pop - IL_000e: nop - IL_000f: br.s IL_0012 - - IL_0011: nop - IL_0012: ldc.i4.0 - IL_0013: ldarg.1 - IL_0014: bge.s IL_002d + IL_000c: pop + IL_000d: nop + IL_000e: br.s IL_0011 - IL_0016: ldc.i4.s 10 - IL_0018: ldarg.0 - IL_0019: bge.s IL_0020 + IL_0010: nop + IL_0011: ldc.i4.0 + IL_0012: ldarg.1 + IL_0013: bge.s IL_002c - IL_001b: ldc.i4.0 - IL_001c: conv.i8 - IL_001d: nop - IL_001e: br.s IL_0047 + IL_0015: ldc.i4.s 10 + IL_0017: ldarg.0 + IL_0018: bge.s IL_001f - IL_0020: ldc.i4.s 10 - IL_0022: ldarg.0 - IL_0023: sub - IL_0024: ldarg.1 - IL_0025: div.un - IL_0026: conv.i8 - IL_0027: ldc.i4.1 - IL_0028: conv.i8 - IL_0029: add - IL_002a: nop - IL_002b: br.s IL_0047 + IL_001a: ldc.i4.0 + IL_001b: conv.i8 + IL_001c: nop + IL_001d: br.s IL_0044 - IL_002d: ldarg.0 - IL_002e: ldc.i4.s 10 - IL_0030: bge.s IL_0037 + IL_001f: ldc.i4.s 10 + IL_0021: ldarg.0 + IL_0022: sub + IL_0023: ldarg.1 + IL_0024: div.un + IL_0025: conv.i8 + IL_0026: ldc.i4.1 + IL_0027: conv.i8 + IL_0028: add + IL_0029: nop + IL_002a: br.s IL_0044 - IL_0032: ldc.i4.0 - IL_0033: conv.i8 - IL_0034: nop - IL_0035: br.s IL_0047 + IL_002c: ldarg.0 + IL_002d: ldc.i4.s 10 + IL_002f: bge.s IL_0036 - IL_0037: ldarg.0 - IL_0038: ldc.i4.s 10 - IL_003a: sub - IL_003b: ldarg.1 - IL_003c: not - IL_003d: ldc.i4.1 - IL_003e: add - IL_003f: div.un - IL_0040: conv.i8 - IL_0041: ldc.i4.1 - IL_0042: conv.i8 - IL_0043: add - IL_0044: nop - IL_0045: br.s IL_0047 + IL_0031: ldc.i4.0 + IL_0032: conv.i8 + IL_0033: nop + IL_0034: br.s IL_0044 - IL_0047: stloc.0 - IL_0048: ldc.i4.0 - IL_0049: conv.i8 - IL_004a: stloc.2 - IL_004b: ldarg.0 - IL_004c: stloc.3 - IL_004d: br.s IL_0069 - - IL_004f: ldloc.3 - IL_0050: stloc.s V_4 - IL_0052: ldloca.s V_1 - IL_0054: stloc.s V_5 - IL_0056: ldloc.s V_5 - IL_0058: ldloc.s V_4 - IL_005a: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_005f: nop - IL_0060: ldloc.3 - IL_0061: ldarg.1 - IL_0062: add - IL_0063: stloc.3 - IL_0064: ldloc.2 - IL_0065: ldc.i4.1 - IL_0066: conv.i8 - IL_0067: add - IL_0068: stloc.2 - IL_0069: ldloc.2 - IL_006a: ldloc.0 - IL_006b: blt.un.s IL_004f + IL_0036: ldarg.0 + IL_0037: ldc.i4.s 10 + IL_0039: sub + IL_003a: ldarg.1 + IL_003b: not + IL_003c: ldc.i4.1 + IL_003d: add + IL_003e: div.un + IL_003f: conv.i8 + IL_0040: ldc.i4.1 + IL_0041: conv.i8 + IL_0042: add + IL_0043: nop + IL_0044: stloc.0 + IL_0045: ldc.i4.0 + IL_0046: conv.i8 + IL_0047: stloc.2 + IL_0048: ldarg.0 + IL_0049: stloc.3 + IL_004a: br.s IL_0066 + + IL_004c: ldloc.3 + IL_004d: stloc.s V_4 + IL_004f: ldloca.s V_1 + IL_0051: stloc.s V_5 + IL_0053: ldloc.s V_5 + IL_0055: ldloc.s V_4 + IL_0057: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_005c: nop + IL_005d: ldloc.3 + IL_005e: ldarg.1 + IL_005f: add + IL_0060: stloc.3 + IL_0061: ldloc.2 + IL_0062: ldc.i4.1 + IL_0063: conv.i8 + IL_0064: add + IL_0065: stloc.2 + IL_0066: ldloc.2 + IL_0067: ldloc.0 + IL_0068: blt.un.s IL_004c - IL_006d: ldloca.s V_1 - IL_006f: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_0074: ret + IL_006a: ldloca.s V_1 + IL_006c: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0071: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f16(int32 start, int32 finish) cil managed @@ -1781,56 +1770,55 @@ int32 V_3, int32 V_4, valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1& V_5) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: ldarg.0 - IL_0003: bge.s IL_000a - - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_0012 - - IL_000a: ldarg.1 - IL_000b: ldarg.0 - IL_000c: sub - IL_000d: conv.i8 - IL_000e: ldc.i4.1 - IL_000f: conv.i8 - IL_0010: add - IL_0011: nop - IL_0012: stloc.0 - IL_0013: ldc.i4.0 - IL_0014: conv.i8 - IL_0015: stloc.2 - IL_0016: ldarg.0 - IL_0017: stloc.3 - IL_0018: br.s IL_0034 + IL_0000: ldarg.1 + IL_0001: ldarg.0 + IL_0002: bge.s IL_0009 - IL_001a: ldloc.3 - IL_001b: stloc.s V_4 - IL_001d: ldloca.s V_1 - IL_001f: stloc.s V_5 - IL_0021: ldloc.s V_5 - IL_0023: ldloc.s V_4 - IL_0025: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_002a: nop - IL_002b: ldloc.3 - IL_002c: ldc.i4.1 - IL_002d: add - IL_002e: stloc.3 - IL_002f: ldloc.2 - IL_0030: ldc.i4.1 - IL_0031: conv.i8 - IL_0032: add - IL_0033: stloc.2 - IL_0034: ldloc.2 - IL_0035: ldloc.0 - IL_0036: blt.un.s IL_001a + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_0011 - IL_0038: ldloca.s V_1 - IL_003a: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_003f: ret + IL_0009: ldarg.1 + IL_000a: ldarg.0 + IL_000b: sub + IL_000c: conv.i8 + IL_000d: ldc.i4.1 + IL_000e: conv.i8 + IL_000f: add + IL_0010: nop + IL_0011: stloc.0 + IL_0012: ldc.i4.0 + IL_0013: conv.i8 + IL_0014: stloc.2 + IL_0015: ldarg.0 + IL_0016: stloc.3 + IL_0017: br.s IL_0033 + + IL_0019: ldloc.3 + IL_001a: stloc.s V_4 + IL_001c: ldloca.s V_1 + IL_001e: stloc.s V_5 + IL_0020: ldloc.s V_5 + IL_0022: ldloc.s V_4 + IL_0024: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0029: nop + IL_002a: ldloc.3 + IL_002b: ldc.i4.1 + IL_002c: add + IL_002d: stloc.3 + IL_002e: ldloc.2 + IL_002f: ldc.i4.1 + IL_0030: conv.i8 + IL_0031: add + IL_0032: stloc.2 + IL_0033: ldloc.2 + IL_0034: ldloc.0 + IL_0035: blt.un.s IL_0019 + + IL_0037: ldloca.s V_1 + IL_0039: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_003e: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f17(int32 step, int32 finish) cil managed @@ -1844,102 +1832,99 @@ int32 V_3, int32 V_4, valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1& V_5) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: brtrue.s IL_0010 + IL_0000: ldarg.0 + IL_0001: brtrue.s IL_000f - IL_0004: ldc.i4.1 - IL_0005: ldarg.0 - IL_0006: ldarg.1 - IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldc.i4.1 + IL_0004: ldarg.0 + IL_0005: ldarg.1 + IL_0006: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000c: pop - IL_000d: nop - IL_000e: br.s IL_0011 - - IL_0010: nop - IL_0011: ldc.i4.0 - IL_0012: ldarg.0 - IL_0013: bge.s IL_002a + IL_000b: pop + IL_000c: nop + IL_000d: br.s IL_0010 - IL_0015: ldarg.1 - IL_0016: ldc.i4.1 - IL_0017: bge.s IL_001e + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: ldarg.0 + IL_0012: bge.s IL_0029 - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0042 + IL_0014: ldarg.1 + IL_0015: ldc.i4.1 + IL_0016: bge.s IL_001d - IL_001e: ldarg.1 - IL_001f: ldc.i4.1 - IL_0020: sub - IL_0021: ldarg.0 - IL_0022: div.un - IL_0023: conv.i8 - IL_0024: ldc.i4.1 - IL_0025: conv.i8 - IL_0026: add - IL_0027: nop - IL_0028: br.s IL_0042 + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_003f - IL_002a: ldc.i4.1 - IL_002b: ldarg.1 - IL_002c: bge.s IL_0033 + IL_001d: ldarg.1 + IL_001e: ldc.i4.1 + IL_001f: sub + IL_0020: ldarg.0 + IL_0021: div.un + IL_0022: conv.i8 + IL_0023: ldc.i4.1 + IL_0024: conv.i8 + IL_0025: add + IL_0026: nop + IL_0027: br.s IL_003f - IL_002e: ldc.i4.0 - IL_002f: conv.i8 - IL_0030: nop - IL_0031: br.s IL_0042 + IL_0029: ldc.i4.1 + IL_002a: ldarg.1 + IL_002b: bge.s IL_0032 - IL_0033: ldc.i4.1 - IL_0034: ldarg.1 - IL_0035: sub - IL_0036: ldarg.0 - IL_0037: not - IL_0038: ldc.i4.1 - IL_0039: add - IL_003a: div.un - IL_003b: conv.i8 - IL_003c: ldc.i4.1 - IL_003d: conv.i8 - IL_003e: add - IL_003f: nop - IL_0040: br.s IL_0042 - - IL_0042: stloc.0 - IL_0043: ldc.i4.0 - IL_0044: conv.i8 - IL_0045: stloc.2 - IL_0046: ldc.i4.1 - IL_0047: stloc.3 - IL_0048: br.s IL_0064 - - IL_004a: ldloc.3 - IL_004b: stloc.s V_4 - IL_004d: ldloca.s V_1 - IL_004f: stloc.s V_5 - IL_0051: ldloc.s V_5 - IL_0053: ldloc.s V_4 - IL_0055: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_005a: nop - IL_005b: ldloc.3 - IL_005c: ldarg.0 - IL_005d: add - IL_005e: stloc.3 - IL_005f: ldloc.2 - IL_0060: ldc.i4.1 - IL_0061: conv.i8 - IL_0062: add - IL_0063: stloc.2 - IL_0064: ldloc.2 - IL_0065: ldloc.0 - IL_0066: blt.un.s IL_004a + IL_002d: ldc.i4.0 + IL_002e: conv.i8 + IL_002f: nop + IL_0030: br.s IL_003f - IL_0068: ldloca.s V_1 - IL_006a: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_006f: ret + IL_0032: ldc.i4.1 + IL_0033: ldarg.1 + IL_0034: sub + IL_0035: ldarg.0 + IL_0036: not + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: div.un + IL_003a: conv.i8 + IL_003b: ldc.i4.1 + IL_003c: conv.i8 + IL_003d: add + IL_003e: nop + IL_003f: stloc.0 + IL_0040: ldc.i4.0 + IL_0041: conv.i8 + IL_0042: stloc.2 + IL_0043: ldc.i4.1 + IL_0044: stloc.3 + IL_0045: br.s IL_0061 + + IL_0047: ldloc.3 + IL_0048: stloc.s V_4 + IL_004a: ldloca.s V_1 + IL_004c: stloc.s V_5 + IL_004e: ldloc.s V_5 + IL_0050: ldloc.s V_4 + IL_0052: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0057: nop + IL_0058: ldloc.3 + IL_0059: ldarg.0 + IL_005a: add + IL_005b: stloc.3 + IL_005c: ldloc.2 + IL_005d: ldc.i4.1 + IL_005e: conv.i8 + IL_005f: add + IL_0060: stloc.2 + IL_0061: ldloc.2 + IL_0062: ldloc.0 + IL_0063: blt.un.s IL_0047 + + IL_0065: ldloca.s V_1 + IL_0067: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_006c: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 @@ -1957,102 +1942,99 @@ int32 V_3, int32 V_4, valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1& V_5) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: brtrue.s IL_0010 + IL_0000: ldarg.1 + IL_0001: brtrue.s IL_000f - IL_0004: ldarg.0 - IL_0005: ldarg.1 - IL_0006: ldarg.2 - IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldarg.0 + IL_0004: ldarg.1 + IL_0005: ldarg.2 + IL_0006: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000c: pop - IL_000d: nop - IL_000e: br.s IL_0011 + IL_000b: pop + IL_000c: nop + IL_000d: br.s IL_0010 - IL_0010: nop - IL_0011: ldc.i4.0 - IL_0012: ldarg.1 - IL_0013: bge.s IL_002a + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: ldarg.1 + IL_0012: bge.s IL_0029 - IL_0015: ldarg.2 - IL_0016: ldarg.0 - IL_0017: bge.s IL_001e + IL_0014: ldarg.2 + IL_0015: ldarg.0 + IL_0016: bge.s IL_001d - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0042 - - IL_001e: ldarg.2 - IL_001f: ldarg.0 - IL_0020: sub - IL_0021: ldarg.1 - IL_0022: div.un - IL_0023: conv.i8 - IL_0024: ldc.i4.1 - IL_0025: conv.i8 - IL_0026: add - IL_0027: nop - IL_0028: br.s IL_0042 + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_003f - IL_002a: ldarg.0 - IL_002b: ldarg.2 - IL_002c: bge.s IL_0033 + IL_001d: ldarg.2 + IL_001e: ldarg.0 + IL_001f: sub + IL_0020: ldarg.1 + IL_0021: div.un + IL_0022: conv.i8 + IL_0023: ldc.i4.1 + IL_0024: conv.i8 + IL_0025: add + IL_0026: nop + IL_0027: br.s IL_003f - IL_002e: ldc.i4.0 - IL_002f: conv.i8 - IL_0030: nop - IL_0031: br.s IL_0042 - - IL_0033: ldarg.0 - IL_0034: ldarg.2 - IL_0035: sub - IL_0036: ldarg.1 - IL_0037: not - IL_0038: ldc.i4.1 - IL_0039: add - IL_003a: div.un - IL_003b: conv.i8 - IL_003c: ldc.i4.1 - IL_003d: conv.i8 - IL_003e: add - IL_003f: nop - IL_0040: br.s IL_0042 - - IL_0042: stloc.0 - IL_0043: ldc.i4.0 - IL_0044: conv.i8 - IL_0045: stloc.2 - IL_0046: ldarg.0 - IL_0047: stloc.3 - IL_0048: br.s IL_0064 - - IL_004a: ldloc.3 - IL_004b: stloc.s V_4 - IL_004d: ldloca.s V_1 - IL_004f: stloc.s V_5 - IL_0051: ldloc.s V_5 - IL_0053: ldloc.s V_4 - IL_0055: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_005a: nop - IL_005b: ldloc.3 - IL_005c: ldarg.1 - IL_005d: add - IL_005e: stloc.3 - IL_005f: ldloc.2 - IL_0060: ldc.i4.1 - IL_0061: conv.i8 - IL_0062: add - IL_0063: stloc.2 - IL_0064: ldloc.2 - IL_0065: ldloc.0 - IL_0066: blt.un.s IL_004a + IL_0029: ldarg.0 + IL_002a: ldarg.2 + IL_002b: bge.s IL_0032 - IL_0068: ldloca.s V_1 - IL_006a: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_006f: ret + IL_002d: ldc.i4.0 + IL_002e: conv.i8 + IL_002f: nop + IL_0030: br.s IL_003f + + IL_0032: ldarg.0 + IL_0033: ldarg.2 + IL_0034: sub + IL_0035: ldarg.1 + IL_0036: not + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: div.un + IL_003a: conv.i8 + IL_003b: ldc.i4.1 + IL_003c: conv.i8 + IL_003d: add + IL_003e: nop + IL_003f: stloc.0 + IL_0040: ldc.i4.0 + IL_0041: conv.i8 + IL_0042: stloc.2 + IL_0043: ldarg.0 + IL_0044: stloc.3 + IL_0045: br.s IL_0061 + + IL_0047: ldloc.3 + IL_0048: stloc.s V_4 + IL_004a: ldloca.s V_1 + IL_004c: stloc.s V_5 + IL_004e: ldloc.s V_5 + IL_0050: ldloc.s V_4 + IL_0052: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0057: nop + IL_0058: ldloc.3 + IL_0059: ldarg.1 + IL_005a: add + IL_005b: stloc.3 + IL_005c: ldloc.2 + IL_005d: ldc.i4.1 + IL_005e: conv.i8 + IL_005f: add + IL_0060: stloc.2 + IL_0061: ldloc.2 + IL_0062: ldloc.0 + IL_0063: blt.un.s IL_0047 + + IL_0065: ldloca.s V_1 + IL_0067: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_006c: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f19(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f) cil managed @@ -2365,7 +2347,7 @@ IL_0022: ldc.i4.0 IL_0023: conv.i8 IL_0024: nop - IL_0025: br.s IL_004e + IL_0025: br.s IL_004c IL_0027: ldc.i4.s 10 IL_0029: ldc.i4.1 @@ -2377,7 +2359,7 @@ IL_002f: conv.i8 IL_0030: add IL_0031: nop - IL_0032: br.s IL_004e + IL_0032: br.s IL_004c IL_0034: ldc.i4.1 IL_0035: ldc.i4.s 10 @@ -2386,7 +2368,7 @@ IL_0039: ldc.i4.0 IL_003a: conv.i8 IL_003b: nop - IL_003c: br.s IL_004e + IL_003c: br.s IL_004c IL_003e: ldc.i4.1 IL_003f: ldc.i4.s 10 @@ -2401,40 +2383,38 @@ IL_0049: conv.i8 IL_004a: add IL_004b: nop - IL_004c: br.s IL_004e - - IL_004e: stloc.1 - IL_004f: ldc.i4.0 - IL_0050: conv.i8 - IL_0051: stloc.3 - IL_0052: ldc.i4.1 - IL_0053: stloc.s V_4 - IL_0055: br.s IL_0074 - - IL_0057: ldloc.s V_4 - IL_0059: stloc.s V_5 - IL_005b: ldloca.s V_2 - IL_005d: stloc.s V_6 - IL_005f: ldloc.s V_6 - IL_0061: ldloc.s V_5 - IL_0063: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0068: nop - IL_0069: ldloc.s V_4 - IL_006b: ldloc.0 - IL_006c: add - IL_006d: stloc.s V_4 - IL_006f: ldloc.3 - IL_0070: ldc.i4.1 - IL_0071: conv.i8 - IL_0072: add - IL_0073: stloc.3 - IL_0074: ldloc.3 - IL_0075: ldloc.1 - IL_0076: blt.un.s IL_0057 + IL_004c: stloc.1 + IL_004d: ldc.i4.0 + IL_004e: conv.i8 + IL_004f: stloc.3 + IL_0050: ldc.i4.1 + IL_0051: stloc.s V_4 + IL_0053: br.s IL_0072 - IL_0078: ldloca.s V_2 - IL_007a: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_007f: ret + IL_0055: ldloc.s V_4 + IL_0057: stloc.s V_5 + IL_0059: ldloca.s V_2 + IL_005b: stloc.s V_6 + IL_005d: ldloc.s V_6 + IL_005f: ldloc.s V_5 + IL_0061: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0066: nop + IL_0067: ldloc.s V_4 + IL_0069: ldloc.0 + IL_006a: add + IL_006b: stloc.s V_4 + IL_006d: ldloc.3 + IL_006e: ldc.i4.1 + IL_006f: conv.i8 + IL_0070: add + IL_0071: stloc.3 + IL_0072: ldloc.3 + IL_0073: ldloc.1 + IL_0074: blt.un.s IL_0055 + + IL_0076: ldloca.s V_2 + IL_0078: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_007d: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f24(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f) cil managed @@ -2558,7 +2538,7 @@ IL_0030: ldc.i4.0 IL_0031: conv.i8 IL_0032: nop - IL_0033: br.s IL_0059 + IL_0033: br.s IL_0057 IL_0035: ldloc.2 IL_0036: ldloc.0 @@ -2570,7 +2550,7 @@ IL_003c: conv.i8 IL_003d: add IL_003e: nop - IL_003f: br.s IL_0059 + IL_003f: br.s IL_0057 IL_0041: ldloc.0 IL_0042: ldloc.2 @@ -2579,7 +2559,7 @@ IL_0045: ldc.i4.0 IL_0046: conv.i8 IL_0047: nop - IL_0048: br.s IL_0059 + IL_0048: br.s IL_0057 IL_004a: ldloc.0 IL_004b: ldloc.2 @@ -2594,40 +2574,38 @@ IL_0054: conv.i8 IL_0055: add IL_0056: nop - IL_0057: br.s IL_0059 - - IL_0059: stloc.3 - IL_005a: ldc.i4.0 - IL_005b: conv.i8 - IL_005c: stloc.s V_5 - IL_005e: ldloc.0 - IL_005f: stloc.s V_6 - IL_0061: br.s IL_0082 - - IL_0063: ldloc.s V_6 - IL_0065: stloc.s V_7 - IL_0067: ldloca.s V_4 - IL_0069: stloc.s V_8 - IL_006b: ldloc.s V_8 - IL_006d: ldloc.s V_7 - IL_006f: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0074: nop - IL_0075: ldloc.s V_6 - IL_0077: ldloc.1 - IL_0078: add - IL_0079: stloc.s V_6 - IL_007b: ldloc.s V_5 - IL_007d: ldc.i4.1 - IL_007e: conv.i8 - IL_007f: add - IL_0080: stloc.s V_5 - IL_0082: ldloc.s V_5 - IL_0084: ldloc.3 - IL_0085: blt.un.s IL_0063 - - IL_0087: ldloca.s V_4 - IL_0089: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_008e: ret + IL_0057: stloc.3 + IL_0058: ldc.i4.0 + IL_0059: conv.i8 + IL_005a: stloc.s V_5 + IL_005c: ldloc.0 + IL_005d: stloc.s V_6 + IL_005f: br.s IL_0080 + + IL_0061: ldloc.s V_6 + IL_0063: stloc.s V_7 + IL_0065: ldloca.s V_4 + IL_0067: stloc.s V_8 + IL_0069: ldloc.s V_8 + IL_006b: ldloc.s V_7 + IL_006d: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0072: nop + IL_0073: ldloc.s V_6 + IL_0075: ldloc.1 + IL_0076: add + IL_0077: stloc.s V_6 + IL_0079: ldloc.s V_5 + IL_007b: ldc.i4.1 + IL_007c: conv.i8 + IL_007d: add + IL_007e: stloc.s V_5 + IL_0080: ldloc.s V_5 + IL_0082: ldloc.3 + IL_0083: blt.un.s IL_0061 + + IL_0085: ldloca.s V_4 + IL_0087: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_008c: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1> @@ -2645,106 +2623,103 @@ int32 V_3, int32 V_4, valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1>& V_5) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: brtrue.s IL_0010 + IL_0000: ldarg.1 + IL_0001: brtrue.s IL_000f - IL_0004: ldarg.0 - IL_0005: ldarg.1 - IL_0006: ldarg.2 - IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldarg.0 + IL_0004: ldarg.1 + IL_0005: ldarg.2 + IL_0006: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000c: pop - IL_000d: nop - IL_000e: br.s IL_0011 + IL_000b: pop + IL_000c: nop + IL_000d: br.s IL_0010 - IL_0010: nop - IL_0011: ldc.i4.0 - IL_0012: ldarg.1 - IL_0013: bge.s IL_002a + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: ldarg.1 + IL_0012: bge.s IL_0029 + + IL_0014: ldarg.2 + IL_0015: ldarg.0 + IL_0016: bge.s IL_001d - IL_0015: ldarg.2 - IL_0016: ldarg.0 - IL_0017: bge.s IL_001e + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_003f - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0042 - - IL_001e: ldarg.2 - IL_001f: ldarg.0 - IL_0020: sub - IL_0021: ldarg.1 - IL_0022: div.un - IL_0023: conv.i8 - IL_0024: ldc.i4.1 - IL_0025: conv.i8 - IL_0026: add - IL_0027: nop - IL_0028: br.s IL_0042 + IL_001d: ldarg.2 + IL_001e: ldarg.0 + IL_001f: sub + IL_0020: ldarg.1 + IL_0021: div.un + IL_0022: conv.i8 + IL_0023: ldc.i4.1 + IL_0024: conv.i8 + IL_0025: add + IL_0026: nop + IL_0027: br.s IL_003f - IL_002a: ldarg.0 - IL_002b: ldarg.2 - IL_002c: bge.s IL_0033 + IL_0029: ldarg.0 + IL_002a: ldarg.2 + IL_002b: bge.s IL_0032 - IL_002e: ldc.i4.0 - IL_002f: conv.i8 - IL_0030: nop - IL_0031: br.s IL_0042 - - IL_0033: ldarg.0 - IL_0034: ldarg.2 - IL_0035: sub - IL_0036: ldarg.1 - IL_0037: not - IL_0038: ldc.i4.1 - IL_0039: add - IL_003a: div.un - IL_003b: conv.i8 - IL_003c: ldc.i4.1 - IL_003d: conv.i8 - IL_003e: add - IL_003f: nop - IL_0040: br.s IL_0042 - - IL_0042: stloc.0 - IL_0043: ldc.i4.0 - IL_0044: conv.i8 - IL_0045: stloc.2 - IL_0046: ldarg.0 - IL_0047: stloc.3 - IL_0048: br.s IL_006c - - IL_004a: ldloc.3 - IL_004b: stloc.s V_4 - IL_004d: ldloca.s V_1 - IL_004f: stloc.s V_5 - IL_0051: ldloc.s V_5 - IL_0053: ldloc.s V_4 - IL_0055: ldloc.s V_4 - IL_0057: conv.r8 - IL_0058: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, + IL_002d: ldc.i4.0 + IL_002e: conv.i8 + IL_002f: nop + IL_0030: br.s IL_003f + + IL_0032: ldarg.0 + IL_0033: ldarg.2 + IL_0034: sub + IL_0035: ldarg.1 + IL_0036: not + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: div.un + IL_003a: conv.i8 + IL_003b: ldc.i4.1 + IL_003c: conv.i8 + IL_003d: add + IL_003e: nop + IL_003f: stloc.0 + IL_0040: ldc.i4.0 + IL_0041: conv.i8 + IL_0042: stloc.2 + IL_0043: ldarg.0 + IL_0044: stloc.3 + IL_0045: br.s IL_0069 + + IL_0047: ldloc.3 + IL_0048: stloc.s V_4 + IL_004a: ldloca.s V_1 + IL_004c: stloc.s V_5 + IL_004e: ldloc.s V_5 + IL_0050: ldloc.s V_4 + IL_0052: ldloc.s V_4 + IL_0054: conv.r8 + IL_0055: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, !1) - IL_005d: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1>::Add(!0) - IL_0062: nop - IL_0063: ldloc.3 - IL_0064: ldarg.1 - IL_0065: add - IL_0066: stloc.3 - IL_0067: ldloc.2 - IL_0068: ldc.i4.1 - IL_0069: conv.i8 - IL_006a: add - IL_006b: stloc.2 - IL_006c: ldloc.2 - IL_006d: ldloc.0 - IL_006e: blt.un.s IL_004a - - IL_0070: ldloca.s V_1 - IL_0072: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1>::Close() - IL_0077: ret + IL_005a: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1>::Add(!0) + IL_005f: nop + IL_0060: ldloc.3 + IL_0061: ldarg.1 + IL_0062: add + IL_0063: stloc.3 + IL_0064: ldloc.2 + IL_0065: ldc.i4.1 + IL_0066: conv.i8 + IL_0067: add + IL_0068: stloc.2 + IL_0069: ldloc.2 + IL_006a: ldloc.0 + IL_006b: blt.un.s IL_0047 + + IL_006d: ldloca.s V_1 + IL_006f: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1>::Close() + IL_0074: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1> @@ -2762,106 +2737,103 @@ int32 V_3, int32 V_4, valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1>& V_5) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: brtrue.s IL_0010 + IL_0000: ldarg.1 + IL_0001: brtrue.s IL_000f - IL_0004: ldarg.0 - IL_0005: ldarg.1 - IL_0006: ldarg.2 - IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldarg.0 + IL_0004: ldarg.1 + IL_0005: ldarg.2 + IL_0006: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000c: pop - IL_000d: nop - IL_000e: br.s IL_0011 + IL_000b: pop + IL_000c: nop + IL_000d: br.s IL_0010 - IL_0010: nop - IL_0011: ldc.i4.0 - IL_0012: ldarg.1 - IL_0013: bge.s IL_002a + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: ldarg.1 + IL_0012: bge.s IL_0029 - IL_0015: ldarg.2 - IL_0016: ldarg.0 - IL_0017: bge.s IL_001e + IL_0014: ldarg.2 + IL_0015: ldarg.0 + IL_0016: bge.s IL_001d - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0042 - - IL_001e: ldarg.2 - IL_001f: ldarg.0 - IL_0020: sub - IL_0021: ldarg.1 - IL_0022: div.un - IL_0023: conv.i8 - IL_0024: ldc.i4.1 - IL_0025: conv.i8 - IL_0026: add - IL_0027: nop - IL_0028: br.s IL_0042 + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_003f + + IL_001d: ldarg.2 + IL_001e: ldarg.0 + IL_001f: sub + IL_0020: ldarg.1 + IL_0021: div.un + IL_0022: conv.i8 + IL_0023: ldc.i4.1 + IL_0024: conv.i8 + IL_0025: add + IL_0026: nop + IL_0027: br.s IL_003f - IL_002a: ldarg.0 - IL_002b: ldarg.2 - IL_002c: bge.s IL_0033 + IL_0029: ldarg.0 + IL_002a: ldarg.2 + IL_002b: bge.s IL_0032 - IL_002e: ldc.i4.0 - IL_002f: conv.i8 - IL_0030: nop - IL_0031: br.s IL_0042 - - IL_0033: ldarg.0 - IL_0034: ldarg.2 - IL_0035: sub - IL_0036: ldarg.1 - IL_0037: not - IL_0038: ldc.i4.1 - IL_0039: add - IL_003a: div.un - IL_003b: conv.i8 - IL_003c: ldc.i4.1 - IL_003d: conv.i8 - IL_003e: add - IL_003f: nop - IL_0040: br.s IL_0042 - - IL_0042: stloc.0 - IL_0043: ldc.i4.0 - IL_0044: conv.i8 - IL_0045: stloc.2 - IL_0046: ldarg.0 - IL_0047: stloc.3 - IL_0048: br.s IL_006c - - IL_004a: ldloc.3 - IL_004b: stloc.s V_4 - IL_004d: ldloca.s V_1 - IL_004f: stloc.s V_5 - IL_0051: ldloc.s V_5 - IL_0053: ldloc.s V_4 - IL_0055: ldloc.s V_4 - IL_0057: conv.r8 - IL_0058: newobj instance void valuetype [runtime]System.ValueTuple`2::.ctor(!0, + IL_002d: ldc.i4.0 + IL_002e: conv.i8 + IL_002f: nop + IL_0030: br.s IL_003f + + IL_0032: ldarg.0 + IL_0033: ldarg.2 + IL_0034: sub + IL_0035: ldarg.1 + IL_0036: not + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: div.un + IL_003a: conv.i8 + IL_003b: ldc.i4.1 + IL_003c: conv.i8 + IL_003d: add + IL_003e: nop + IL_003f: stloc.0 + IL_0040: ldc.i4.0 + IL_0041: conv.i8 + IL_0042: stloc.2 + IL_0043: ldarg.0 + IL_0044: stloc.3 + IL_0045: br.s IL_0069 + + IL_0047: ldloc.3 + IL_0048: stloc.s V_4 + IL_004a: ldloca.s V_1 + IL_004c: stloc.s V_5 + IL_004e: ldloc.s V_5 + IL_0050: ldloc.s V_4 + IL_0052: ldloc.s V_4 + IL_0054: conv.r8 + IL_0055: newobj instance void valuetype [runtime]System.ValueTuple`2::.ctor(!0, !1) - IL_005d: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1>::Add(!0) - IL_0062: nop - IL_0063: ldloc.3 - IL_0064: ldarg.1 - IL_0065: add - IL_0066: stloc.3 - IL_0067: ldloc.2 - IL_0068: ldc.i4.1 - IL_0069: conv.i8 - IL_006a: add - IL_006b: stloc.2 - IL_006c: ldloc.2 - IL_006d: ldloc.0 - IL_006e: blt.un.s IL_004a - - IL_0070: ldloca.s V_1 - IL_0072: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1>::Close() - IL_0077: ret + IL_005a: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1>::Add(!0) + IL_005f: nop + IL_0060: ldloc.3 + IL_0061: ldarg.1 + IL_0062: add + IL_0063: stloc.3 + IL_0064: ldloc.2 + IL_0065: ldc.i4.1 + IL_0066: conv.i8 + IL_0067: add + IL_0068: stloc.2 + IL_0069: ldloc.2 + IL_006a: ldloc.0 + IL_006b: blt.un.s IL_0047 + + IL_006d: ldloca.s V_1 + IL_006f: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1>::Close() + IL_0074: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 @@ -2880,106 +2852,103 @@ int32 V_4, valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1& V_5, valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1& V_6) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: brtrue.s IL_0010 + IL_0000: ldarg.1 + IL_0001: brtrue.s IL_000f - IL_0004: ldarg.0 - IL_0005: ldarg.1 - IL_0006: ldarg.2 - IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldarg.0 + IL_0004: ldarg.1 + IL_0005: ldarg.2 + IL_0006: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000c: pop - IL_000d: nop - IL_000e: br.s IL_0011 + IL_000b: pop + IL_000c: nop + IL_000d: br.s IL_0010 - IL_0010: nop - IL_0011: ldc.i4.0 - IL_0012: ldarg.1 - IL_0013: bge.s IL_002a + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: ldarg.1 + IL_0012: bge.s IL_0029 - IL_0015: ldarg.2 - IL_0016: ldarg.0 - IL_0017: bge.s IL_001e + IL_0014: ldarg.2 + IL_0015: ldarg.0 + IL_0016: bge.s IL_001d - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0042 - - IL_001e: ldarg.2 - IL_001f: ldarg.0 - IL_0020: sub - IL_0021: ldarg.1 - IL_0022: div.un - IL_0023: conv.i8 - IL_0024: ldc.i4.1 - IL_0025: conv.i8 - IL_0026: add - IL_0027: nop - IL_0028: br.s IL_0042 + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_003f - IL_002a: ldarg.0 - IL_002b: ldarg.2 - IL_002c: bge.s IL_0033 + IL_001d: ldarg.2 + IL_001e: ldarg.0 + IL_001f: sub + IL_0020: ldarg.1 + IL_0021: div.un + IL_0022: conv.i8 + IL_0023: ldc.i4.1 + IL_0024: conv.i8 + IL_0025: add + IL_0026: nop + IL_0027: br.s IL_003f - IL_002e: ldc.i4.0 - IL_002f: conv.i8 - IL_0030: nop - IL_0031: br.s IL_0042 - - IL_0033: ldarg.0 - IL_0034: ldarg.2 - IL_0035: sub - IL_0036: ldarg.1 - IL_0037: not - IL_0038: ldc.i4.1 - IL_0039: add - IL_003a: div.un - IL_003b: conv.i8 - IL_003c: ldc.i4.1 - IL_003d: conv.i8 - IL_003e: add - IL_003f: nop - IL_0040: br.s IL_0042 - - IL_0042: stloc.0 - IL_0043: ldc.i4.0 - IL_0044: conv.i8 - IL_0045: stloc.2 - IL_0046: ldarg.0 - IL_0047: stloc.3 - IL_0048: br.s IL_006b - - IL_004a: ldloc.3 - IL_004b: stloc.s V_4 - IL_004d: ldloca.s V_1 - IL_004f: stloc.s V_5 - IL_0051: ldloc.s V_5 - IL_0053: stloc.s V_6 - IL_0055: ldloc.s V_6 - IL_0057: ldloc.s V_4 - IL_0059: ldloc.s V_4 - IL_005b: mul - IL_005c: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0061: nop - IL_0062: ldloc.3 - IL_0063: ldarg.1 - IL_0064: add - IL_0065: stloc.3 - IL_0066: ldloc.2 - IL_0067: ldc.i4.1 - IL_0068: conv.i8 - IL_0069: add - IL_006a: stloc.2 - IL_006b: ldloc.2 - IL_006c: ldloc.0 - IL_006d: blt.un.s IL_004a - - IL_006f: ldloca.s V_1 - IL_0071: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_0076: ret + IL_0029: ldarg.0 + IL_002a: ldarg.2 + IL_002b: bge.s IL_0032 + + IL_002d: ldc.i4.0 + IL_002e: conv.i8 + IL_002f: nop + IL_0030: br.s IL_003f + + IL_0032: ldarg.0 + IL_0033: ldarg.2 + IL_0034: sub + IL_0035: ldarg.1 + IL_0036: not + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: div.un + IL_003a: conv.i8 + IL_003b: ldc.i4.1 + IL_003c: conv.i8 + IL_003d: add + IL_003e: nop + IL_003f: stloc.0 + IL_0040: ldc.i4.0 + IL_0041: conv.i8 + IL_0042: stloc.2 + IL_0043: ldarg.0 + IL_0044: stloc.3 + IL_0045: br.s IL_0068 + + IL_0047: ldloc.3 + IL_0048: stloc.s V_4 + IL_004a: ldloca.s V_1 + IL_004c: stloc.s V_5 + IL_004e: ldloc.s V_5 + IL_0050: stloc.s V_6 + IL_0052: ldloc.s V_6 + IL_0054: ldloc.s V_4 + IL_0056: ldloc.s V_4 + IL_0058: mul + IL_0059: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_005e: nop + IL_005f: ldloc.3 + IL_0060: ldarg.1 + IL_0061: add + IL_0062: stloc.3 + IL_0063: ldloc.2 + IL_0064: ldc.i4.1 + IL_0065: conv.i8 + IL_0066: add + IL_0067: stloc.2 + IL_0068: ldloc.2 + IL_0069: ldloc.0 + IL_006a: blt.un.s IL_0047 + + IL_006c: ldloca.s V_1 + IL_006e: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0073: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f29(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 g) cil managed @@ -3221,61 +3190,60 @@ int32 V_3, int32 V_4, valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1& V_5) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: ldarg.0 - IL_0003: bge.s IL_000a - - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_0012 + IL_0000: ldarg.1 + IL_0001: ldarg.0 + IL_0002: bge.s IL_0009 - IL_000a: ldarg.1 - IL_000b: ldarg.0 - IL_000c: sub - IL_000d: conv.i8 - IL_000e: ldc.i4.1 - IL_000f: conv.i8 - IL_0010: add - IL_0011: nop - IL_0012: stloc.0 - IL_0013: ldc.i4.0 - IL_0014: conv.i8 - IL_0015: stloc.2 - IL_0016: ldarg.0 - IL_0017: stloc.3 - IL_0018: br.s IL_0042 + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_0011 - IL_001a: ldloc.3 - IL_001b: stloc.s V_4 - IL_001d: ldloca.s V_1 - IL_001f: stloc.s V_5 - IL_0021: ldloc.s V_5 - IL_0023: ldsfld class assembly/f33@47 assembly/f33@47::@_instance - IL_0028: ldsfld class assembly/'f33@47-1' assembly/'f33@47-1'::@_instance - IL_002d: ldnull - IL_002e: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + IL_0009: ldarg.1 + IL_000a: ldarg.0 + IL_000b: sub + IL_000c: conv.i8 + IL_000d: ldc.i4.1 + IL_000e: conv.i8 + IL_000f: add + IL_0010: nop + IL_0011: stloc.0 + IL_0012: ldc.i4.0 + IL_0013: conv.i8 + IL_0014: stloc.2 + IL_0015: ldarg.0 + IL_0016: stloc.3 + IL_0017: br.s IL_0041 + + IL_0019: ldloc.3 + IL_001a: stloc.s V_4 + IL_001c: ldloca.s V_1 + IL_001e: stloc.s V_5 + IL_0020: ldloc.s V_5 + IL_0022: ldsfld class assembly/f33@47 assembly/f33@47::@_instance + IL_0027: ldsfld class assembly/'f33@47-1' assembly/'f33@47-1'::@_instance + IL_002c: ldnull + IL_002d: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, !0, !1) - IL_0033: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0038: nop - IL_0039: ldloc.3 - IL_003a: ldc.i4.1 - IL_003b: add - IL_003c: stloc.3 - IL_003d: ldloc.2 - IL_003e: ldc.i4.1 - IL_003f: conv.i8 - IL_0040: add - IL_0041: stloc.2 - IL_0042: ldloc.2 - IL_0043: ldloc.0 - IL_0044: blt.un.s IL_001a + IL_0032: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0037: nop + IL_0038: ldloc.3 + IL_0039: ldc.i4.1 + IL_003a: add + IL_003b: stloc.3 + IL_003c: ldloc.2 + IL_003d: ldc.i4.1 + IL_003e: conv.i8 + IL_003f: add + IL_0040: stloc.2 + IL_0041: ldloc.2 + IL_0042: ldloc.0 + IL_0043: blt.un.s IL_0019 - IL_0046: ldloca.s V_1 - IL_0048: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_004d: ret + IL_0045: ldloca.s V_1 + IL_0047: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_004c: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 @@ -3297,127 +3265,126 @@ valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1& V_7, uint64 V_8, valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1& V_9) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: ldarg.0 - IL_0003: bge.s IL_000a + IL_0000: ldarg.1 + IL_0001: ldarg.0 + IL_0002: bge.s IL_0009 - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_000e + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_000d - IL_000a: ldarg.1 - IL_000b: ldarg.0 - IL_000c: sub - IL_000d: nop - IL_000e: stloc.0 - IL_000f: ldloc.0 - IL_0010: ldc.i4.m1 - IL_0011: conv.i8 - IL_0012: ceq - IL_0014: stloc.1 - IL_0015: ldloc.1 - IL_0016: brfalse.s IL_005e - - IL_0018: ldc.i4.1 - IL_0019: stloc.3 - IL_001a: ldc.i4.0 - IL_001b: conv.i8 - IL_001c: stloc.s V_4 - IL_001e: ldarg.0 - IL_001f: stloc.s V_5 - IL_0021: br.s IL_0058 + IL_0009: ldarg.1 + IL_000a: ldarg.0 + IL_000b: sub + IL_000c: nop + IL_000d: stloc.0 + IL_000e: ldloc.0 + IL_000f: ldc.i4.m1 + IL_0010: conv.i8 + IL_0011: ceq + IL_0013: stloc.1 + IL_0014: ldloc.1 + IL_0015: brfalse.s IL_005d - IL_0023: ldloc.s V_5 - IL_0025: stloc.s V_6 - IL_0027: ldloca.s V_2 - IL_0029: stloc.s V_7 - IL_002b: ldloc.s V_7 - IL_002d: ldsfld class assembly/f34@48 assembly/f34@48::@_instance - IL_0032: ldsfld class assembly/'f34@48-1' assembly/'f34@48-1'::@_instance - IL_0037: ldnull - IL_0038: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + IL_0017: ldc.i4.1 + IL_0018: stloc.3 + IL_0019: ldc.i4.0 + IL_001a: conv.i8 + IL_001b: stloc.s V_4 + IL_001d: ldarg.0 + IL_001e: stloc.s V_5 + IL_0020: br.s IL_0057 + + IL_0022: ldloc.s V_5 + IL_0024: stloc.s V_6 + IL_0026: ldloca.s V_2 + IL_0028: stloc.s V_7 + IL_002a: ldloc.s V_7 + IL_002c: ldsfld class assembly/f34@48 assembly/f34@48::@_instance + IL_0031: ldsfld class assembly/'f34@48-1' assembly/'f34@48-1'::@_instance + IL_0036: ldnull + IL_0037: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, !0, !1) - IL_003d: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0042: nop - IL_0043: ldloc.s V_5 - IL_0045: ldc.i4.1 - IL_0046: conv.i8 - IL_0047: add - IL_0048: stloc.s V_5 - IL_004a: ldloc.s V_4 - IL_004c: ldc.i4.1 - IL_004d: conv.i8 - IL_004e: add - IL_004f: stloc.s V_4 - IL_0051: ldloc.s V_4 - IL_0053: ldc.i4.0 - IL_0054: conv.i8 - IL_0055: cgt.un - IL_0057: stloc.3 - IL_0058: ldloc.3 - IL_0059: brtrue.s IL_0023 - - IL_005b: nop - IL_005c: br.s IL_00ae - - IL_005e: ldarg.1 - IL_005f: ldarg.0 - IL_0060: bge.s IL_0067 - - IL_0062: ldc.i4.0 - IL_0063: conv.i8 - IL_0064: nop - IL_0065: br.s IL_006e - - IL_0067: ldarg.1 - IL_0068: ldarg.0 - IL_0069: sub - IL_006a: ldc.i4.1 - IL_006b: conv.i8 - IL_006c: add.ovf.un - IL_006d: nop - IL_006e: stloc.s V_4 - IL_0070: ldc.i4.0 - IL_0071: conv.i8 - IL_0072: stloc.s V_8 - IL_0074: ldarg.0 - IL_0075: stloc.s V_5 - IL_0077: br.s IL_00a7 + IL_003c: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0041: nop + IL_0042: ldloc.s V_5 + IL_0044: ldc.i4.1 + IL_0045: conv.i8 + IL_0046: add + IL_0047: stloc.s V_5 + IL_0049: ldloc.s V_4 + IL_004b: ldc.i4.1 + IL_004c: conv.i8 + IL_004d: add + IL_004e: stloc.s V_4 + IL_0050: ldloc.s V_4 + IL_0052: ldc.i4.0 + IL_0053: conv.i8 + IL_0054: cgt.un + IL_0056: stloc.3 + IL_0057: ldloc.3 + IL_0058: brtrue.s IL_0022 - IL_0079: ldloc.s V_5 - IL_007b: stloc.s V_6 - IL_007d: ldloca.s V_2 - IL_007f: stloc.s V_9 - IL_0081: ldloc.s V_9 - IL_0083: ldsfld class assembly/'f34@48-2' assembly/'f34@48-2'::@_instance - IL_0088: ldsfld class assembly/'f34@48-3' assembly/'f34@48-3'::@_instance - IL_008d: ldnull - IL_008e: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + IL_005a: nop + IL_005b: br.s IL_00ad + + IL_005d: ldarg.1 + IL_005e: ldarg.0 + IL_005f: bge.s IL_0066 + + IL_0061: ldc.i4.0 + IL_0062: conv.i8 + IL_0063: nop + IL_0064: br.s IL_006d + + IL_0066: ldarg.1 + IL_0067: ldarg.0 + IL_0068: sub + IL_0069: ldc.i4.1 + IL_006a: conv.i8 + IL_006b: add.ovf.un + IL_006c: nop + IL_006d: stloc.s V_4 + IL_006f: ldc.i4.0 + IL_0070: conv.i8 + IL_0071: stloc.s V_8 + IL_0073: ldarg.0 + IL_0074: stloc.s V_5 + IL_0076: br.s IL_00a6 + + IL_0078: ldloc.s V_5 + IL_007a: stloc.s V_6 + IL_007c: ldloca.s V_2 + IL_007e: stloc.s V_9 + IL_0080: ldloc.s V_9 + IL_0082: ldsfld class assembly/'f34@48-2' assembly/'f34@48-2'::@_instance + IL_0087: ldsfld class assembly/'f34@48-3' assembly/'f34@48-3'::@_instance + IL_008c: ldnull + IL_008d: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, !0, !1) - IL_0093: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0098: nop - IL_0099: ldloc.s V_5 - IL_009b: ldc.i4.1 - IL_009c: conv.i8 - IL_009d: add - IL_009e: stloc.s V_5 - IL_00a0: ldloc.s V_8 - IL_00a2: ldc.i4.1 - IL_00a3: conv.i8 - IL_00a4: add - IL_00a5: stloc.s V_8 - IL_00a7: ldloc.s V_8 - IL_00a9: ldloc.s V_4 - IL_00ab: blt.un.s IL_0079 - - IL_00ad: nop - IL_00ae: ldloca.s V_2 - IL_00b0: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_00b5: ret + IL_0092: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0097: nop + IL_0098: ldloc.s V_5 + IL_009a: ldc.i4.1 + IL_009b: conv.i8 + IL_009c: add + IL_009d: stloc.s V_5 + IL_009f: ldloc.s V_8 + IL_00a1: ldc.i4.1 + IL_00a2: conv.i8 + IL_00a3: add + IL_00a4: stloc.s V_8 + IL_00a6: ldloc.s V_8 + IL_00a8: ldloc.s V_4 + IL_00aa: blt.un.s IL_0078 + + IL_00ac: nop + IL_00ad: ldloca.s V_2 + IL_00af: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_00b4: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 @@ -3439,127 +3406,126 @@ valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1& V_7, uint64 V_8, valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1& V_9) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: ldarg.0 - IL_0003: bge.un.s IL_000a + IL_0000: ldarg.1 + IL_0001: ldarg.0 + IL_0002: bge.un.s IL_0009 - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_000e + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_000d - IL_000a: ldarg.1 - IL_000b: ldarg.0 - IL_000c: sub - IL_000d: nop - IL_000e: stloc.0 - IL_000f: ldloc.0 - IL_0010: ldc.i4.m1 - IL_0011: conv.i8 - IL_0012: ceq - IL_0014: stloc.1 - IL_0015: ldloc.1 - IL_0016: brfalse.s IL_005e - - IL_0018: ldc.i4.1 - IL_0019: stloc.3 - IL_001a: ldc.i4.0 - IL_001b: conv.i8 - IL_001c: stloc.s V_4 - IL_001e: ldarg.0 - IL_001f: stloc.s V_5 - IL_0021: br.s IL_0058 + IL_0009: ldarg.1 + IL_000a: ldarg.0 + IL_000b: sub + IL_000c: nop + IL_000d: stloc.0 + IL_000e: ldloc.0 + IL_000f: ldc.i4.m1 + IL_0010: conv.i8 + IL_0011: ceq + IL_0013: stloc.1 + IL_0014: ldloc.1 + IL_0015: brfalse.s IL_005d - IL_0023: ldloc.s V_5 - IL_0025: stloc.s V_6 - IL_0027: ldloca.s V_2 - IL_0029: stloc.s V_7 - IL_002b: ldloc.s V_7 - IL_002d: ldsfld class assembly/f35@49 assembly/f35@49::@_instance - IL_0032: ldsfld class assembly/'f35@49-1' assembly/'f35@49-1'::@_instance - IL_0037: ldnull - IL_0038: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + IL_0017: ldc.i4.1 + IL_0018: stloc.3 + IL_0019: ldc.i4.0 + IL_001a: conv.i8 + IL_001b: stloc.s V_4 + IL_001d: ldarg.0 + IL_001e: stloc.s V_5 + IL_0020: br.s IL_0057 + + IL_0022: ldloc.s V_5 + IL_0024: stloc.s V_6 + IL_0026: ldloca.s V_2 + IL_0028: stloc.s V_7 + IL_002a: ldloc.s V_7 + IL_002c: ldsfld class assembly/f35@49 assembly/f35@49::@_instance + IL_0031: ldsfld class assembly/'f35@49-1' assembly/'f35@49-1'::@_instance + IL_0036: ldnull + IL_0037: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, !0, !1) - IL_003d: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0042: nop - IL_0043: ldloc.s V_5 - IL_0045: ldc.i4.1 - IL_0046: conv.i8 - IL_0047: add - IL_0048: stloc.s V_5 - IL_004a: ldloc.s V_4 - IL_004c: ldc.i4.1 - IL_004d: conv.i8 - IL_004e: add - IL_004f: stloc.s V_4 - IL_0051: ldloc.s V_4 - IL_0053: ldc.i4.0 - IL_0054: conv.i8 - IL_0055: cgt.un - IL_0057: stloc.3 - IL_0058: ldloc.3 - IL_0059: brtrue.s IL_0023 - - IL_005b: nop - IL_005c: br.s IL_00ae - - IL_005e: ldarg.1 - IL_005f: ldarg.0 - IL_0060: bge.un.s IL_0067 + IL_003c: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0041: nop + IL_0042: ldloc.s V_5 + IL_0044: ldc.i4.1 + IL_0045: conv.i8 + IL_0046: add + IL_0047: stloc.s V_5 + IL_0049: ldloc.s V_4 + IL_004b: ldc.i4.1 + IL_004c: conv.i8 + IL_004d: add + IL_004e: stloc.s V_4 + IL_0050: ldloc.s V_4 + IL_0052: ldc.i4.0 + IL_0053: conv.i8 + IL_0054: cgt.un + IL_0056: stloc.3 + IL_0057: ldloc.3 + IL_0058: brtrue.s IL_0022 - IL_0062: ldc.i4.0 - IL_0063: conv.i8 - IL_0064: nop - IL_0065: br.s IL_006e - - IL_0067: ldarg.1 - IL_0068: ldarg.0 - IL_0069: sub - IL_006a: ldc.i4.1 - IL_006b: conv.i8 - IL_006c: add.ovf.un - IL_006d: nop - IL_006e: stloc.s V_4 - IL_0070: ldc.i4.0 - IL_0071: conv.i8 - IL_0072: stloc.s V_5 - IL_0074: ldarg.0 - IL_0075: stloc.s V_6 - IL_0077: br.s IL_00a7 - - IL_0079: ldloc.s V_6 - IL_007b: stloc.s V_8 - IL_007d: ldloca.s V_2 - IL_007f: stloc.s V_9 - IL_0081: ldloc.s V_9 - IL_0083: ldsfld class assembly/'f35@49-2' assembly/'f35@49-2'::@_instance - IL_0088: ldsfld class assembly/'f35@49-3' assembly/'f35@49-3'::@_instance - IL_008d: ldnull - IL_008e: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, + IL_005a: nop + IL_005b: br.s IL_00ad + + IL_005d: ldarg.1 + IL_005e: ldarg.0 + IL_005f: bge.un.s IL_0066 + + IL_0061: ldc.i4.0 + IL_0062: conv.i8 + IL_0063: nop + IL_0064: br.s IL_006d + + IL_0066: ldarg.1 + IL_0067: ldarg.0 + IL_0068: sub + IL_0069: ldc.i4.1 + IL_006a: conv.i8 + IL_006b: add.ovf.un + IL_006c: nop + IL_006d: stloc.s V_4 + IL_006f: ldc.i4.0 + IL_0070: conv.i8 + IL_0071: stloc.s V_5 + IL_0073: ldarg.0 + IL_0074: stloc.s V_6 + IL_0076: br.s IL_00a6 + + IL_0078: ldloc.s V_6 + IL_007a: stloc.s V_8 + IL_007c: ldloca.s V_2 + IL_007e: stloc.s V_9 + IL_0080: ldloc.s V_9 + IL_0082: ldsfld class assembly/'f35@49-2' assembly/'f35@49-2'::@_instance + IL_0087: ldsfld class assembly/'f35@49-3' assembly/'f35@49-3'::@_instance + IL_008c: ldnull + IL_008d: call !!0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,class [FSharp.Core]Microsoft.FSharp.Core.Unit>::InvokeFast(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2>, !0, !1) - IL_0093: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0098: nop - IL_0099: ldloc.s V_6 - IL_009b: ldc.i4.1 - IL_009c: conv.i8 - IL_009d: add - IL_009e: stloc.s V_6 - IL_00a0: ldloc.s V_5 - IL_00a2: ldc.i4.1 - IL_00a3: conv.i8 - IL_00a4: add - IL_00a5: stloc.s V_5 - IL_00a7: ldloc.s V_5 - IL_00a9: ldloc.s V_4 - IL_00ab: blt.un.s IL_0079 - - IL_00ad: nop - IL_00ae: ldloca.s V_2 - IL_00b0: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_00b5: ret + IL_0092: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0097: nop + IL_0098: ldloc.s V_6 + IL_009a: ldc.i4.1 + IL_009b: conv.i8 + IL_009c: add + IL_009d: stloc.s V_6 + IL_009f: ldloc.s V_5 + IL_00a1: ldc.i4.1 + IL_00a2: conv.i8 + IL_00a3: add + IL_00a4: stloc.s V_5 + IL_00a6: ldloc.s V_5 + IL_00a8: ldloc.s V_4 + IL_00aa: blt.un.s IL_0078 + + IL_00ac: nop + IL_00ad: ldloca.s V_2 + IL_00af: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_00b4: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/Int32RangeArrays.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/Int32RangeArrays.fs.il.bsl index d8aaef6ffbc..417aa0cc521 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/Int32RangeArrays.fs.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/Int32RangeArrays.fs.il.bsl @@ -276,64 +276,63 @@ int32[] V_2, uint64 V_3, int32 V_4) - IL_0000: nop - IL_0001: ldc.i4.s 10 - IL_0003: ldarg.0 - IL_0004: bge.s IL_000b - - IL_0006: ldc.i4.0 - IL_0007: conv.i8 - IL_0008: nop - IL_0009: br.s IL_0014 - - IL_000b: ldc.i4.s 10 - IL_000d: ldarg.0 - IL_000e: sub - IL_000f: conv.i8 - IL_0010: ldc.i4.1 - IL_0011: conv.i8 - IL_0012: add - IL_0013: nop - IL_0014: stloc.0 - IL_0015: ldloc.0 - IL_0016: stloc.1 - IL_0017: ldloc.1 - IL_0018: brtrue.s IL_0020 - - IL_001a: call !!0[] [runtime]System.Array::Empty() - IL_001f: ret + IL_0000: ldc.i4.s 10 + IL_0002: ldarg.0 + IL_0003: bge.s IL_000a - IL_0020: ldloc.1 - IL_0021: conv.ovf.i.un - IL_0022: newarr [runtime]System.Int32 - IL_0027: stloc.2 - IL_0028: ldc.i4.0 - IL_0029: conv.i8 - IL_002a: stloc.3 - IL_002b: ldarg.0 - IL_002c: stloc.s V_4 - IL_002e: br.s IL_0041 - - IL_0030: ldloc.2 - IL_0031: ldloc.3 - IL_0032: conv.i - IL_0033: ldloc.s V_4 - IL_0035: stelem.i4 - IL_0036: ldloc.s V_4 - IL_0038: ldc.i4.1 - IL_0039: add - IL_003a: stloc.s V_4 - IL_003c: ldloc.3 - IL_003d: ldc.i4.1 - IL_003e: conv.i8 - IL_003f: add - IL_0040: stloc.3 - IL_0041: ldloc.3 - IL_0042: ldloc.0 - IL_0043: blt.un.s IL_0030 + IL_0005: ldc.i4.0 + IL_0006: conv.i8 + IL_0007: nop + IL_0008: br.s IL_0013 + + IL_000a: ldc.i4.s 10 + IL_000c: ldarg.0 + IL_000d: sub + IL_000e: conv.i8 + IL_000f: ldc.i4.1 + IL_0010: conv.i8 + IL_0011: add + IL_0012: nop + IL_0013: stloc.0 + IL_0014: ldloc.0 + IL_0015: stloc.1 + IL_0016: ldloc.1 + IL_0017: brtrue.s IL_001f + + IL_0019: call !!0[] [runtime]System.Array::Empty() + IL_001e: ret - IL_0045: ldloc.2 - IL_0046: ret + IL_001f: ldloc.1 + IL_0020: conv.ovf.i.un + IL_0021: newarr [runtime]System.Int32 + IL_0026: stloc.2 + IL_0027: ldc.i4.0 + IL_0028: conv.i8 + IL_0029: stloc.3 + IL_002a: ldarg.0 + IL_002b: stloc.s V_4 + IL_002d: br.s IL_0040 + + IL_002f: ldloc.2 + IL_0030: ldloc.3 + IL_0031: conv.i + IL_0032: ldloc.s V_4 + IL_0034: stelem.i4 + IL_0035: ldloc.s V_4 + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: stloc.s V_4 + IL_003b: ldloc.3 + IL_003c: ldc.i4.1 + IL_003d: conv.i8 + IL_003e: add + IL_003f: stloc.3 + IL_0040: ldloc.3 + IL_0041: ldloc.0 + IL_0042: blt.un.s IL_002f + + IL_0044: ldloc.2 + IL_0045: ret } .method public static int32[] f10(int32 finish) cil managed @@ -345,64 +344,63 @@ int32[] V_2, uint64 V_3, int32 V_4) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: ldc.i4.1 - IL_0003: bge.s IL_000a - - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_0012 - - IL_000a: ldarg.0 - IL_000b: ldc.i4.1 - IL_000c: sub - IL_000d: conv.i8 - IL_000e: ldc.i4.1 - IL_000f: conv.i8 - IL_0010: add - IL_0011: nop - IL_0012: stloc.0 - IL_0013: ldloc.0 - IL_0014: stloc.1 - IL_0015: ldloc.1 - IL_0016: brtrue.s IL_001e - - IL_0018: call !!0[] [runtime]System.Array::Empty() - IL_001d: ret - - IL_001e: ldloc.1 - IL_001f: conv.ovf.i.un - IL_0020: newarr [runtime]System.Int32 - IL_0025: stloc.2 - IL_0026: ldc.i4.0 - IL_0027: conv.i8 - IL_0028: stloc.3 - IL_0029: ldc.i4.1 - IL_002a: stloc.s V_4 - IL_002c: br.s IL_003f - - IL_002e: ldloc.2 - IL_002f: ldloc.3 - IL_0030: conv.i - IL_0031: ldloc.s V_4 - IL_0033: stelem.i4 - IL_0034: ldloc.s V_4 - IL_0036: ldc.i4.1 - IL_0037: add - IL_0038: stloc.s V_4 - IL_003a: ldloc.3 - IL_003b: ldc.i4.1 - IL_003c: conv.i8 - IL_003d: add - IL_003e: stloc.3 - IL_003f: ldloc.3 - IL_0040: ldloc.0 - IL_0041: blt.un.s IL_002e + IL_0000: ldarg.0 + IL_0001: ldc.i4.1 + IL_0002: bge.s IL_0009 + + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_0011 + + IL_0009: ldarg.0 + IL_000a: ldc.i4.1 + IL_000b: sub + IL_000c: conv.i8 + IL_000d: ldc.i4.1 + IL_000e: conv.i8 + IL_000f: add + IL_0010: nop + IL_0011: stloc.0 + IL_0012: ldloc.0 + IL_0013: stloc.1 + IL_0014: ldloc.1 + IL_0015: brtrue.s IL_001d + + IL_0017: call !!0[] [runtime]System.Array::Empty() + IL_001c: ret + + IL_001d: ldloc.1 + IL_001e: conv.ovf.i.un + IL_001f: newarr [runtime]System.Int32 + IL_0024: stloc.2 + IL_0025: ldc.i4.0 + IL_0026: conv.i8 + IL_0027: stloc.3 + IL_0028: ldc.i4.1 + IL_0029: stloc.s V_4 + IL_002b: br.s IL_003e + + IL_002d: ldloc.2 + IL_002e: ldloc.3 + IL_002f: conv.i + IL_0030: ldloc.s V_4 + IL_0032: stelem.i4 + IL_0033: ldloc.s V_4 + IL_0035: ldc.i4.1 + IL_0036: add + IL_0037: stloc.s V_4 + IL_0039: ldloc.3 + IL_003a: ldc.i4.1 + IL_003b: conv.i8 + IL_003c: add + IL_003d: stloc.3 + IL_003e: ldloc.3 + IL_003f: ldloc.0 + IL_0040: blt.un.s IL_002d - IL_0043: ldloc.2 - IL_0044: ret + IL_0042: ldloc.2 + IL_0043: ret } .method public static int32[] f11(int32 start, @@ -416,64 +414,63 @@ int32[] V_2, uint64 V_3, int32 V_4) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: ldarg.0 - IL_0003: bge.s IL_000a - - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_0012 + IL_0000: ldarg.1 + IL_0001: ldarg.0 + IL_0002: bge.s IL_0009 - IL_000a: ldarg.1 - IL_000b: ldarg.0 - IL_000c: sub - IL_000d: conv.i8 - IL_000e: ldc.i4.1 - IL_000f: conv.i8 - IL_0010: add - IL_0011: nop - IL_0012: stloc.0 - IL_0013: ldloc.0 - IL_0014: stloc.1 - IL_0015: ldloc.1 - IL_0016: brtrue.s IL_001e - - IL_0018: call !!0[] [runtime]System.Array::Empty() - IL_001d: ret + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_0011 - IL_001e: ldloc.1 - IL_001f: conv.ovf.i.un - IL_0020: newarr [runtime]System.Int32 - IL_0025: stloc.2 - IL_0026: ldc.i4.0 - IL_0027: conv.i8 - IL_0028: stloc.3 - IL_0029: ldarg.0 - IL_002a: stloc.s V_4 - IL_002c: br.s IL_003f - - IL_002e: ldloc.2 - IL_002f: ldloc.3 - IL_0030: conv.i - IL_0031: ldloc.s V_4 - IL_0033: stelem.i4 - IL_0034: ldloc.s V_4 - IL_0036: ldc.i4.1 - IL_0037: add - IL_0038: stloc.s V_4 - IL_003a: ldloc.3 - IL_003b: ldc.i4.1 - IL_003c: conv.i8 - IL_003d: add - IL_003e: stloc.3 - IL_003f: ldloc.3 - IL_0040: ldloc.0 - IL_0041: blt.un.s IL_002e + IL_0009: ldarg.1 + IL_000a: ldarg.0 + IL_000b: sub + IL_000c: conv.i8 + IL_000d: ldc.i4.1 + IL_000e: conv.i8 + IL_000f: add + IL_0010: nop + IL_0011: stloc.0 + IL_0012: ldloc.0 + IL_0013: stloc.1 + IL_0014: ldloc.1 + IL_0015: brtrue.s IL_001d + + IL_0017: call !!0[] [runtime]System.Array::Empty() + IL_001c: ret + + IL_001d: ldloc.1 + IL_001e: conv.ovf.i.un + IL_001f: newarr [runtime]System.Int32 + IL_0024: stloc.2 + IL_0025: ldc.i4.0 + IL_0026: conv.i8 + IL_0027: stloc.3 + IL_0028: ldarg.0 + IL_0029: stloc.s V_4 + IL_002b: br.s IL_003e + + IL_002d: ldloc.2 + IL_002e: ldloc.3 + IL_002f: conv.i + IL_0030: ldloc.s V_4 + IL_0032: stelem.i4 + IL_0033: ldloc.s V_4 + IL_0035: ldc.i4.1 + IL_0036: add + IL_0037: stloc.s V_4 + IL_0039: ldloc.3 + IL_003a: ldc.i4.1 + IL_003b: conv.i8 + IL_003c: add + IL_003d: stloc.3 + IL_003e: ldloc.3 + IL_003f: ldloc.0 + IL_0040: blt.un.s IL_002d - IL_0043: ldloc.2 - IL_0044: ret + IL_0042: ldloc.2 + IL_0043: ret } .method public static int32[] f12(int32 start) cil managed @@ -485,64 +482,63 @@ int32[] V_2, uint64 V_3, int32 V_4) - IL_0000: nop - IL_0001: ldc.i4.s 10 - IL_0003: ldarg.0 - IL_0004: bge.s IL_000b - - IL_0006: ldc.i4.0 - IL_0007: conv.i8 - IL_0008: nop - IL_0009: br.s IL_0014 - - IL_000b: ldc.i4.s 10 - IL_000d: ldarg.0 - IL_000e: sub - IL_000f: conv.i8 - IL_0010: ldc.i4.1 - IL_0011: conv.i8 - IL_0012: add - IL_0013: nop - IL_0014: stloc.0 - IL_0015: ldloc.0 - IL_0016: stloc.1 - IL_0017: ldloc.1 - IL_0018: brtrue.s IL_0020 - - IL_001a: call !!0[] [runtime]System.Array::Empty() - IL_001f: ret + IL_0000: ldc.i4.s 10 + IL_0002: ldarg.0 + IL_0003: bge.s IL_000a - IL_0020: ldloc.1 - IL_0021: conv.ovf.i.un - IL_0022: newarr [runtime]System.Int32 - IL_0027: stloc.2 - IL_0028: ldc.i4.0 - IL_0029: conv.i8 - IL_002a: stloc.3 - IL_002b: ldarg.0 - IL_002c: stloc.s V_4 - IL_002e: br.s IL_0041 - - IL_0030: ldloc.2 - IL_0031: ldloc.3 - IL_0032: conv.i - IL_0033: ldloc.s V_4 - IL_0035: stelem.i4 - IL_0036: ldloc.s V_4 - IL_0038: ldc.i4.1 - IL_0039: add - IL_003a: stloc.s V_4 - IL_003c: ldloc.3 - IL_003d: ldc.i4.1 - IL_003e: conv.i8 - IL_003f: add - IL_0040: stloc.3 - IL_0041: ldloc.3 - IL_0042: ldloc.0 - IL_0043: blt.un.s IL_0030 + IL_0005: ldc.i4.0 + IL_0006: conv.i8 + IL_0007: nop + IL_0008: br.s IL_0013 - IL_0045: ldloc.2 - IL_0046: ret + IL_000a: ldc.i4.s 10 + IL_000c: ldarg.0 + IL_000d: sub + IL_000e: conv.i8 + IL_000f: ldc.i4.1 + IL_0010: conv.i8 + IL_0011: add + IL_0012: nop + IL_0013: stloc.0 + IL_0014: ldloc.0 + IL_0015: stloc.1 + IL_0016: ldloc.1 + IL_0017: brtrue.s IL_001f + + IL_0019: call !!0[] [runtime]System.Array::Empty() + IL_001e: ret + + IL_001f: ldloc.1 + IL_0020: conv.ovf.i.un + IL_0021: newarr [runtime]System.Int32 + IL_0026: stloc.2 + IL_0027: ldc.i4.0 + IL_0028: conv.i8 + IL_0029: stloc.3 + IL_002a: ldarg.0 + IL_002b: stloc.s V_4 + IL_002d: br.s IL_0040 + + IL_002f: ldloc.2 + IL_0030: ldloc.3 + IL_0031: conv.i + IL_0032: ldloc.s V_4 + IL_0034: stelem.i4 + IL_0035: ldloc.s V_4 + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: stloc.s V_4 + IL_003b: ldloc.3 + IL_003c: ldc.i4.1 + IL_003d: conv.i8 + IL_003e: add + IL_003f: stloc.3 + IL_0040: ldloc.3 + IL_0041: ldloc.0 + IL_0042: blt.un.s IL_002f + + IL_0044: ldloc.2 + IL_0045: ret } .method public static int32[] f13(int32 step) cil managed @@ -554,110 +550,107 @@ int32[] V_2, uint64 V_3, int32 V_4) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: brtrue.s IL_0011 + IL_0000: ldarg.0 + IL_0001: brtrue.s IL_0010 - IL_0004: ldc.i4.1 - IL_0005: ldarg.0 - IL_0006: ldc.i4.s 10 - IL_0008: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldc.i4.1 + IL_0004: ldarg.0 + IL_0005: ldc.i4.s 10 + IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000d: pop - IL_000e: nop - IL_000f: br.s IL_0012 - - IL_0011: nop - IL_0012: ldc.i4.0 - IL_0013: ldarg.0 - IL_0014: bge.s IL_002d - - IL_0016: ldc.i4.s 10 - IL_0018: ldc.i4.1 - IL_0019: bge.s IL_0020 + IL_000c: pop + IL_000d: nop + IL_000e: br.s IL_0011 - IL_001b: ldc.i4.0 - IL_001c: conv.i8 - IL_001d: nop - IL_001e: br.s IL_0047 + IL_0010: nop + IL_0011: ldc.i4.0 + IL_0012: ldarg.0 + IL_0013: bge.s IL_002c - IL_0020: ldc.i4.s 10 - IL_0022: ldc.i4.1 - IL_0023: sub - IL_0024: ldarg.0 - IL_0025: div.un - IL_0026: conv.i8 - IL_0027: ldc.i4.1 - IL_0028: conv.i8 - IL_0029: add - IL_002a: nop - IL_002b: br.s IL_0047 + IL_0015: ldc.i4.s 10 + IL_0017: ldc.i4.1 + IL_0018: bge.s IL_001f - IL_002d: ldc.i4.1 - IL_002e: ldc.i4.s 10 - IL_0030: bge.s IL_0037 + IL_001a: ldc.i4.0 + IL_001b: conv.i8 + IL_001c: nop + IL_001d: br.s IL_0044 + + IL_001f: ldc.i4.s 10 + IL_0021: ldc.i4.1 + IL_0022: sub + IL_0023: ldarg.0 + IL_0024: div.un + IL_0025: conv.i8 + IL_0026: ldc.i4.1 + IL_0027: conv.i8 + IL_0028: add + IL_0029: nop + IL_002a: br.s IL_0044 - IL_0032: ldc.i4.0 - IL_0033: conv.i8 - IL_0034: nop - IL_0035: br.s IL_0047 + IL_002c: ldc.i4.1 + IL_002d: ldc.i4.s 10 + IL_002f: bge.s IL_0036 - IL_0037: ldc.i4.1 - IL_0038: ldc.i4.s 10 - IL_003a: sub - IL_003b: ldarg.0 - IL_003c: not - IL_003d: ldc.i4.1 - IL_003e: add - IL_003f: div.un - IL_0040: conv.i8 - IL_0041: ldc.i4.1 - IL_0042: conv.i8 - IL_0043: add - IL_0044: nop - IL_0045: br.s IL_0047 - - IL_0047: stloc.0 - IL_0048: ldloc.0 - IL_0049: stloc.1 - IL_004a: ldloc.1 - IL_004b: brtrue.s IL_0053 - - IL_004d: call !!0[] [runtime]System.Array::Empty() - IL_0052: ret + IL_0031: ldc.i4.0 + IL_0032: conv.i8 + IL_0033: nop + IL_0034: br.s IL_0044 - IL_0053: ldloc.1 - IL_0054: conv.ovf.i.un - IL_0055: newarr [runtime]System.Int32 - IL_005a: stloc.2 - IL_005b: ldc.i4.0 - IL_005c: conv.i8 - IL_005d: stloc.3 - IL_005e: ldc.i4.1 - IL_005f: stloc.s V_4 - IL_0061: br.s IL_0074 - - IL_0063: ldloc.2 - IL_0064: ldloc.3 - IL_0065: conv.i + IL_0036: ldc.i4.1 + IL_0037: ldc.i4.s 10 + IL_0039: sub + IL_003a: ldarg.0 + IL_003b: not + IL_003c: ldc.i4.1 + IL_003d: add + IL_003e: div.un + IL_003f: conv.i8 + IL_0040: ldc.i4.1 + IL_0041: conv.i8 + IL_0042: add + IL_0043: nop + IL_0044: stloc.0 + IL_0045: ldloc.0 + IL_0046: stloc.1 + IL_0047: ldloc.1 + IL_0048: brtrue.s IL_0050 + + IL_004a: call !!0[] [runtime]System.Array::Empty() + IL_004f: ret + + IL_0050: ldloc.1 + IL_0051: conv.ovf.i.un + IL_0052: newarr [runtime]System.Int32 + IL_0057: stloc.2 + IL_0058: ldc.i4.0 + IL_0059: conv.i8 + IL_005a: stloc.3 + IL_005b: ldc.i4.1 + IL_005c: stloc.s V_4 + IL_005e: br.s IL_0071 + + IL_0060: ldloc.2 + IL_0061: ldloc.3 + IL_0062: conv.i + IL_0063: ldloc.s V_4 + IL_0065: stelem.i4 IL_0066: ldloc.s V_4 - IL_0068: stelem.i4 - IL_0069: ldloc.s V_4 - IL_006b: ldarg.0 - IL_006c: add - IL_006d: stloc.s V_4 - IL_006f: ldloc.3 - IL_0070: ldc.i4.1 - IL_0071: conv.i8 - IL_0072: add - IL_0073: stloc.3 - IL_0074: ldloc.3 - IL_0075: ldloc.0 - IL_0076: blt.un.s IL_0063 - - IL_0078: ldloc.2 - IL_0079: ret + IL_0068: ldarg.0 + IL_0069: add + IL_006a: stloc.s V_4 + IL_006c: ldloc.3 + IL_006d: ldc.i4.1 + IL_006e: conv.i8 + IL_006f: add + IL_0070: stloc.3 + IL_0071: ldloc.3 + IL_0072: ldloc.0 + IL_0073: blt.un.s IL_0060 + + IL_0075: ldloc.2 + IL_0076: ret } .method public static int32[] f14(int32 finish) cil managed @@ -669,64 +662,63 @@ int32[] V_2, uint64 V_3, int32 V_4) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: ldc.i4.1 - IL_0003: bge.s IL_000a - - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_0012 - - IL_000a: ldarg.0 - IL_000b: ldc.i4.1 - IL_000c: sub - IL_000d: conv.i8 - IL_000e: ldc.i4.1 - IL_000f: conv.i8 - IL_0010: add - IL_0011: nop - IL_0012: stloc.0 - IL_0013: ldloc.0 - IL_0014: stloc.1 - IL_0015: ldloc.1 - IL_0016: brtrue.s IL_001e - - IL_0018: call !!0[] [runtime]System.Array::Empty() - IL_001d: ret - - IL_001e: ldloc.1 - IL_001f: conv.ovf.i.un - IL_0020: newarr [runtime]System.Int32 - IL_0025: stloc.2 - IL_0026: ldc.i4.0 - IL_0027: conv.i8 - IL_0028: stloc.3 - IL_0029: ldc.i4.1 - IL_002a: stloc.s V_4 - IL_002c: br.s IL_003f - - IL_002e: ldloc.2 - IL_002f: ldloc.3 - IL_0030: conv.i - IL_0031: ldloc.s V_4 - IL_0033: stelem.i4 - IL_0034: ldloc.s V_4 - IL_0036: ldc.i4.1 - IL_0037: add - IL_0038: stloc.s V_4 - IL_003a: ldloc.3 - IL_003b: ldc.i4.1 - IL_003c: conv.i8 - IL_003d: add - IL_003e: stloc.3 - IL_003f: ldloc.3 - IL_0040: ldloc.0 - IL_0041: blt.un.s IL_002e + IL_0000: ldarg.0 + IL_0001: ldc.i4.1 + IL_0002: bge.s IL_0009 + + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_0011 + + IL_0009: ldarg.0 + IL_000a: ldc.i4.1 + IL_000b: sub + IL_000c: conv.i8 + IL_000d: ldc.i4.1 + IL_000e: conv.i8 + IL_000f: add + IL_0010: nop + IL_0011: stloc.0 + IL_0012: ldloc.0 + IL_0013: stloc.1 + IL_0014: ldloc.1 + IL_0015: brtrue.s IL_001d + + IL_0017: call !!0[] [runtime]System.Array::Empty() + IL_001c: ret + + IL_001d: ldloc.1 + IL_001e: conv.ovf.i.un + IL_001f: newarr [runtime]System.Int32 + IL_0024: stloc.2 + IL_0025: ldc.i4.0 + IL_0026: conv.i8 + IL_0027: stloc.3 + IL_0028: ldc.i4.1 + IL_0029: stloc.s V_4 + IL_002b: br.s IL_003e + + IL_002d: ldloc.2 + IL_002e: ldloc.3 + IL_002f: conv.i + IL_0030: ldloc.s V_4 + IL_0032: stelem.i4 + IL_0033: ldloc.s V_4 + IL_0035: ldc.i4.1 + IL_0036: add + IL_0037: stloc.s V_4 + IL_0039: ldloc.3 + IL_003a: ldc.i4.1 + IL_003b: conv.i8 + IL_003c: add + IL_003d: stloc.3 + IL_003e: ldloc.3 + IL_003f: ldloc.0 + IL_0040: blt.un.s IL_002d - IL_0043: ldloc.2 - IL_0044: ret + IL_0042: ldloc.2 + IL_0043: ret } .method public static int32[] f15(int32 start, @@ -740,110 +732,107 @@ int32[] V_2, uint64 V_3, int32 V_4) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: brtrue.s IL_0011 + IL_0000: ldarg.1 + IL_0001: brtrue.s IL_0010 - IL_0004: ldarg.0 - IL_0005: ldarg.1 - IL_0006: ldc.i4.s 10 - IL_0008: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldarg.0 + IL_0004: ldarg.1 + IL_0005: ldc.i4.s 10 + IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000d: pop - IL_000e: nop - IL_000f: br.s IL_0012 + IL_000c: pop + IL_000d: nop + IL_000e: br.s IL_0011 - IL_0011: nop - IL_0012: ldc.i4.0 - IL_0013: ldarg.1 - IL_0014: bge.s IL_002d + IL_0010: nop + IL_0011: ldc.i4.0 + IL_0012: ldarg.1 + IL_0013: bge.s IL_002c - IL_0016: ldc.i4.s 10 - IL_0018: ldarg.0 - IL_0019: bge.s IL_0020 + IL_0015: ldc.i4.s 10 + IL_0017: ldarg.0 + IL_0018: bge.s IL_001f - IL_001b: ldc.i4.0 - IL_001c: conv.i8 - IL_001d: nop - IL_001e: br.s IL_0047 + IL_001a: ldc.i4.0 + IL_001b: conv.i8 + IL_001c: nop + IL_001d: br.s IL_0044 - IL_0020: ldc.i4.s 10 - IL_0022: ldarg.0 - IL_0023: sub - IL_0024: ldarg.1 - IL_0025: div.un - IL_0026: conv.i8 - IL_0027: ldc.i4.1 - IL_0028: conv.i8 - IL_0029: add - IL_002a: nop - IL_002b: br.s IL_0047 - - IL_002d: ldarg.0 - IL_002e: ldc.i4.s 10 - IL_0030: bge.s IL_0037 - - IL_0032: ldc.i4.0 - IL_0033: conv.i8 - IL_0034: nop - IL_0035: br.s IL_0047 - - IL_0037: ldarg.0 - IL_0038: ldc.i4.s 10 - IL_003a: sub - IL_003b: ldarg.1 - IL_003c: not - IL_003d: ldc.i4.1 - IL_003e: add - IL_003f: div.un - IL_0040: conv.i8 - IL_0041: ldc.i4.1 - IL_0042: conv.i8 - IL_0043: add - IL_0044: nop - IL_0045: br.s IL_0047 - - IL_0047: stloc.0 - IL_0048: ldloc.0 - IL_0049: stloc.1 - IL_004a: ldloc.1 - IL_004b: brtrue.s IL_0053 - - IL_004d: call !!0[] [runtime]System.Array::Empty() - IL_0052: ret + IL_001f: ldc.i4.s 10 + IL_0021: ldarg.0 + IL_0022: sub + IL_0023: ldarg.1 + IL_0024: div.un + IL_0025: conv.i8 + IL_0026: ldc.i4.1 + IL_0027: conv.i8 + IL_0028: add + IL_0029: nop + IL_002a: br.s IL_0044 + + IL_002c: ldarg.0 + IL_002d: ldc.i4.s 10 + IL_002f: bge.s IL_0036 - IL_0053: ldloc.1 - IL_0054: conv.ovf.i.un - IL_0055: newarr [runtime]System.Int32 - IL_005a: stloc.2 - IL_005b: ldc.i4.0 - IL_005c: conv.i8 - IL_005d: stloc.3 - IL_005e: ldarg.0 - IL_005f: stloc.s V_4 - IL_0061: br.s IL_0074 - - IL_0063: ldloc.2 - IL_0064: ldloc.3 - IL_0065: conv.i + IL_0031: ldc.i4.0 + IL_0032: conv.i8 + IL_0033: nop + IL_0034: br.s IL_0044 + + IL_0036: ldarg.0 + IL_0037: ldc.i4.s 10 + IL_0039: sub + IL_003a: ldarg.1 + IL_003b: not + IL_003c: ldc.i4.1 + IL_003d: add + IL_003e: div.un + IL_003f: conv.i8 + IL_0040: ldc.i4.1 + IL_0041: conv.i8 + IL_0042: add + IL_0043: nop + IL_0044: stloc.0 + IL_0045: ldloc.0 + IL_0046: stloc.1 + IL_0047: ldloc.1 + IL_0048: brtrue.s IL_0050 + + IL_004a: call !!0[] [runtime]System.Array::Empty() + IL_004f: ret + + IL_0050: ldloc.1 + IL_0051: conv.ovf.i.un + IL_0052: newarr [runtime]System.Int32 + IL_0057: stloc.2 + IL_0058: ldc.i4.0 + IL_0059: conv.i8 + IL_005a: stloc.3 + IL_005b: ldarg.0 + IL_005c: stloc.s V_4 + IL_005e: br.s IL_0071 + + IL_0060: ldloc.2 + IL_0061: ldloc.3 + IL_0062: conv.i + IL_0063: ldloc.s V_4 + IL_0065: stelem.i4 IL_0066: ldloc.s V_4 - IL_0068: stelem.i4 - IL_0069: ldloc.s V_4 - IL_006b: ldarg.1 - IL_006c: add - IL_006d: stloc.s V_4 - IL_006f: ldloc.3 - IL_0070: ldc.i4.1 - IL_0071: conv.i8 - IL_0072: add - IL_0073: stloc.3 - IL_0074: ldloc.3 - IL_0075: ldloc.0 - IL_0076: blt.un.s IL_0063 - - IL_0078: ldloc.2 - IL_0079: ret + IL_0068: ldarg.1 + IL_0069: add + IL_006a: stloc.s V_4 + IL_006c: ldloc.3 + IL_006d: ldc.i4.1 + IL_006e: conv.i8 + IL_006f: add + IL_0070: stloc.3 + IL_0071: ldloc.3 + IL_0072: ldloc.0 + IL_0073: blt.un.s IL_0060 + + IL_0075: ldloc.2 + IL_0076: ret } .method public static int32[] f16(int32 start, @@ -857,64 +846,63 @@ int32[] V_2, uint64 V_3, int32 V_4) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: ldarg.0 - IL_0003: bge.s IL_000a - - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_0012 + IL_0000: ldarg.1 + IL_0001: ldarg.0 + IL_0002: bge.s IL_0009 - IL_000a: ldarg.1 - IL_000b: ldarg.0 - IL_000c: sub - IL_000d: conv.i8 - IL_000e: ldc.i4.1 - IL_000f: conv.i8 - IL_0010: add - IL_0011: nop - IL_0012: stloc.0 - IL_0013: ldloc.0 - IL_0014: stloc.1 - IL_0015: ldloc.1 - IL_0016: brtrue.s IL_001e - - IL_0018: call !!0[] [runtime]System.Array::Empty() - IL_001d: ret + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_0011 - IL_001e: ldloc.1 - IL_001f: conv.ovf.i.un - IL_0020: newarr [runtime]System.Int32 - IL_0025: stloc.2 - IL_0026: ldc.i4.0 - IL_0027: conv.i8 - IL_0028: stloc.3 - IL_0029: ldarg.0 - IL_002a: stloc.s V_4 - IL_002c: br.s IL_003f - - IL_002e: ldloc.2 - IL_002f: ldloc.3 - IL_0030: conv.i - IL_0031: ldloc.s V_4 - IL_0033: stelem.i4 - IL_0034: ldloc.s V_4 - IL_0036: ldc.i4.1 - IL_0037: add - IL_0038: stloc.s V_4 - IL_003a: ldloc.3 - IL_003b: ldc.i4.1 - IL_003c: conv.i8 - IL_003d: add - IL_003e: stloc.3 - IL_003f: ldloc.3 - IL_0040: ldloc.0 - IL_0041: blt.un.s IL_002e + IL_0009: ldarg.1 + IL_000a: ldarg.0 + IL_000b: sub + IL_000c: conv.i8 + IL_000d: ldc.i4.1 + IL_000e: conv.i8 + IL_000f: add + IL_0010: nop + IL_0011: stloc.0 + IL_0012: ldloc.0 + IL_0013: stloc.1 + IL_0014: ldloc.1 + IL_0015: brtrue.s IL_001d + + IL_0017: call !!0[] [runtime]System.Array::Empty() + IL_001c: ret + + IL_001d: ldloc.1 + IL_001e: conv.ovf.i.un + IL_001f: newarr [runtime]System.Int32 + IL_0024: stloc.2 + IL_0025: ldc.i4.0 + IL_0026: conv.i8 + IL_0027: stloc.3 + IL_0028: ldarg.0 + IL_0029: stloc.s V_4 + IL_002b: br.s IL_003e + + IL_002d: ldloc.2 + IL_002e: ldloc.3 + IL_002f: conv.i + IL_0030: ldloc.s V_4 + IL_0032: stelem.i4 + IL_0033: ldloc.s V_4 + IL_0035: ldc.i4.1 + IL_0036: add + IL_0037: stloc.s V_4 + IL_0039: ldloc.3 + IL_003a: ldc.i4.1 + IL_003b: conv.i8 + IL_003c: add + IL_003d: stloc.3 + IL_003e: ldloc.3 + IL_003f: ldloc.0 + IL_0040: blt.un.s IL_002d - IL_0043: ldloc.2 - IL_0044: ret + IL_0042: ldloc.2 + IL_0043: ret } .method public static int32[] f17(int32 step, @@ -928,110 +916,107 @@ int32[] V_2, uint64 V_3, int32 V_4) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: brtrue.s IL_0010 + IL_0000: ldarg.0 + IL_0001: brtrue.s IL_000f - IL_0004: ldc.i4.1 - IL_0005: ldarg.0 - IL_0006: ldarg.1 - IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldc.i4.1 + IL_0004: ldarg.0 + IL_0005: ldarg.1 + IL_0006: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000c: pop - IL_000d: nop - IL_000e: br.s IL_0011 + IL_000b: pop + IL_000c: nop + IL_000d: br.s IL_0010 - IL_0010: nop - IL_0011: ldc.i4.0 - IL_0012: ldarg.0 - IL_0013: bge.s IL_002a - - IL_0015: ldarg.1 - IL_0016: ldc.i4.1 - IL_0017: bge.s IL_001e - - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0042 - - IL_001e: ldarg.1 - IL_001f: ldc.i4.1 - IL_0020: sub - IL_0021: ldarg.0 - IL_0022: div.un - IL_0023: conv.i8 - IL_0024: ldc.i4.1 - IL_0025: conv.i8 - IL_0026: add - IL_0027: nop - IL_0028: br.s IL_0042 - - IL_002a: ldc.i4.1 - IL_002b: ldarg.1 - IL_002c: bge.s IL_0033 + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: ldarg.0 + IL_0012: bge.s IL_0029 - IL_002e: ldc.i4.0 - IL_002f: conv.i8 - IL_0030: nop - IL_0031: br.s IL_0042 + IL_0014: ldarg.1 + IL_0015: ldc.i4.1 + IL_0016: bge.s IL_001d - IL_0033: ldc.i4.1 - IL_0034: ldarg.1 - IL_0035: sub - IL_0036: ldarg.0 - IL_0037: not - IL_0038: ldc.i4.1 - IL_0039: add - IL_003a: div.un - IL_003b: conv.i8 - IL_003c: ldc.i4.1 - IL_003d: conv.i8 - IL_003e: add - IL_003f: nop - IL_0040: br.s IL_0042 + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_003f - IL_0042: stloc.0 - IL_0043: ldloc.0 - IL_0044: stloc.1 - IL_0045: ldloc.1 - IL_0046: brtrue.s IL_004e + IL_001d: ldarg.1 + IL_001e: ldc.i4.1 + IL_001f: sub + IL_0020: ldarg.0 + IL_0021: div.un + IL_0022: conv.i8 + IL_0023: ldc.i4.1 + IL_0024: conv.i8 + IL_0025: add + IL_0026: nop + IL_0027: br.s IL_003f - IL_0048: call !!0[] [runtime]System.Array::Empty() - IL_004d: ret + IL_0029: ldc.i4.1 + IL_002a: ldarg.1 + IL_002b: bge.s IL_0032 - IL_004e: ldloc.1 - IL_004f: conv.ovf.i.un - IL_0050: newarr [runtime]System.Int32 - IL_0055: stloc.2 - IL_0056: ldc.i4.0 - IL_0057: conv.i8 - IL_0058: stloc.3 - IL_0059: ldc.i4.1 - IL_005a: stloc.s V_4 - IL_005c: br.s IL_006f - - IL_005e: ldloc.2 - IL_005f: ldloc.3 - IL_0060: conv.i + IL_002d: ldc.i4.0 + IL_002e: conv.i8 + IL_002f: nop + IL_0030: br.s IL_003f + + IL_0032: ldc.i4.1 + IL_0033: ldarg.1 + IL_0034: sub + IL_0035: ldarg.0 + IL_0036: not + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: div.un + IL_003a: conv.i8 + IL_003b: ldc.i4.1 + IL_003c: conv.i8 + IL_003d: add + IL_003e: nop + IL_003f: stloc.0 + IL_0040: ldloc.0 + IL_0041: stloc.1 + IL_0042: ldloc.1 + IL_0043: brtrue.s IL_004b + + IL_0045: call !!0[] [runtime]System.Array::Empty() + IL_004a: ret + + IL_004b: ldloc.1 + IL_004c: conv.ovf.i.un + IL_004d: newarr [runtime]System.Int32 + IL_0052: stloc.2 + IL_0053: ldc.i4.0 + IL_0054: conv.i8 + IL_0055: stloc.3 + IL_0056: ldc.i4.1 + IL_0057: stloc.s V_4 + IL_0059: br.s IL_006c + + IL_005b: ldloc.2 + IL_005c: ldloc.3 + IL_005d: conv.i + IL_005e: ldloc.s V_4 + IL_0060: stelem.i4 IL_0061: ldloc.s V_4 - IL_0063: stelem.i4 - IL_0064: ldloc.s V_4 - IL_0066: ldarg.0 - IL_0067: add - IL_0068: stloc.s V_4 - IL_006a: ldloc.3 - IL_006b: ldc.i4.1 - IL_006c: conv.i8 - IL_006d: add - IL_006e: stloc.3 - IL_006f: ldloc.3 - IL_0070: ldloc.0 - IL_0071: blt.un.s IL_005e - - IL_0073: ldloc.2 - IL_0074: ret + IL_0063: ldarg.0 + IL_0064: add + IL_0065: stloc.s V_4 + IL_0067: ldloc.3 + IL_0068: ldc.i4.1 + IL_0069: conv.i8 + IL_006a: add + IL_006b: stloc.3 + IL_006c: ldloc.3 + IL_006d: ldloc.0 + IL_006e: blt.un.s IL_005b + + IL_0070: ldloc.2 + IL_0071: ret } .method public static int32[] f18(int32 start, @@ -1047,110 +1032,107 @@ int32[] V_2, uint64 V_3, int32 V_4) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: brtrue.s IL_0010 + IL_0000: ldarg.1 + IL_0001: brtrue.s IL_000f - IL_0004: ldarg.0 - IL_0005: ldarg.1 - IL_0006: ldarg.2 - IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldarg.0 + IL_0004: ldarg.1 + IL_0005: ldarg.2 + IL_0006: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000c: pop - IL_000d: nop - IL_000e: br.s IL_0011 + IL_000b: pop + IL_000c: nop + IL_000d: br.s IL_0010 - IL_0010: nop - IL_0011: ldc.i4.0 - IL_0012: ldarg.1 - IL_0013: bge.s IL_002a - - IL_0015: ldarg.2 - IL_0016: ldarg.0 - IL_0017: bge.s IL_001e - - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0042 - - IL_001e: ldarg.2 - IL_001f: ldarg.0 - IL_0020: sub - IL_0021: ldarg.1 - IL_0022: div.un - IL_0023: conv.i8 - IL_0024: ldc.i4.1 - IL_0025: conv.i8 - IL_0026: add - IL_0027: nop - IL_0028: br.s IL_0042 + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: ldarg.1 + IL_0012: bge.s IL_0029 - IL_002a: ldarg.0 - IL_002b: ldarg.2 - IL_002c: bge.s IL_0033 + IL_0014: ldarg.2 + IL_0015: ldarg.0 + IL_0016: bge.s IL_001d - IL_002e: ldc.i4.0 - IL_002f: conv.i8 - IL_0030: nop - IL_0031: br.s IL_0042 - - IL_0033: ldarg.0 - IL_0034: ldarg.2 - IL_0035: sub - IL_0036: ldarg.1 - IL_0037: not - IL_0038: ldc.i4.1 - IL_0039: add - IL_003a: div.un - IL_003b: conv.i8 - IL_003c: ldc.i4.1 - IL_003d: conv.i8 - IL_003e: add - IL_003f: nop - IL_0040: br.s IL_0042 + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_003f - IL_0042: stloc.0 - IL_0043: ldloc.0 - IL_0044: stloc.1 - IL_0045: ldloc.1 - IL_0046: brtrue.s IL_004e + IL_001d: ldarg.2 + IL_001e: ldarg.0 + IL_001f: sub + IL_0020: ldarg.1 + IL_0021: div.un + IL_0022: conv.i8 + IL_0023: ldc.i4.1 + IL_0024: conv.i8 + IL_0025: add + IL_0026: nop + IL_0027: br.s IL_003f - IL_0048: call !!0[] [runtime]System.Array::Empty() - IL_004d: ret + IL_0029: ldarg.0 + IL_002a: ldarg.2 + IL_002b: bge.s IL_0032 - IL_004e: ldloc.1 - IL_004f: conv.ovf.i.un - IL_0050: newarr [runtime]System.Int32 - IL_0055: stloc.2 - IL_0056: ldc.i4.0 - IL_0057: conv.i8 - IL_0058: stloc.3 - IL_0059: ldarg.0 - IL_005a: stloc.s V_4 - IL_005c: br.s IL_006f - - IL_005e: ldloc.2 - IL_005f: ldloc.3 - IL_0060: conv.i + IL_002d: ldc.i4.0 + IL_002e: conv.i8 + IL_002f: nop + IL_0030: br.s IL_003f + + IL_0032: ldarg.0 + IL_0033: ldarg.2 + IL_0034: sub + IL_0035: ldarg.1 + IL_0036: not + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: div.un + IL_003a: conv.i8 + IL_003b: ldc.i4.1 + IL_003c: conv.i8 + IL_003d: add + IL_003e: nop + IL_003f: stloc.0 + IL_0040: ldloc.0 + IL_0041: stloc.1 + IL_0042: ldloc.1 + IL_0043: brtrue.s IL_004b + + IL_0045: call !!0[] [runtime]System.Array::Empty() + IL_004a: ret + + IL_004b: ldloc.1 + IL_004c: conv.ovf.i.un + IL_004d: newarr [runtime]System.Int32 + IL_0052: stloc.2 + IL_0053: ldc.i4.0 + IL_0054: conv.i8 + IL_0055: stloc.3 + IL_0056: ldarg.0 + IL_0057: stloc.s V_4 + IL_0059: br.s IL_006c + + IL_005b: ldloc.2 + IL_005c: ldloc.3 + IL_005d: conv.i + IL_005e: ldloc.s V_4 + IL_0060: stelem.i4 IL_0061: ldloc.s V_4 - IL_0063: stelem.i4 - IL_0064: ldloc.s V_4 - IL_0066: ldarg.1 - IL_0067: add - IL_0068: stloc.s V_4 - IL_006a: ldloc.3 - IL_006b: ldc.i4.1 - IL_006c: conv.i8 - IL_006d: add - IL_006e: stloc.3 - IL_006f: ldloc.3 - IL_0070: ldloc.0 - IL_0071: blt.un.s IL_005e - - IL_0073: ldloc.2 - IL_0074: ret + IL_0063: ldarg.1 + IL_0064: add + IL_0065: stloc.s V_4 + IL_0067: ldloc.3 + IL_0068: ldc.i4.1 + IL_0069: conv.i8 + IL_006a: add + IL_006b: stloc.3 + IL_006c: ldloc.3 + IL_006d: ldloc.0 + IL_006e: blt.un.s IL_005b + + IL_0070: ldloc.2 + IL_0071: ret } .method public static int32[] f19(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f) cil managed @@ -1491,7 +1473,7 @@ IL_0022: ldc.i4.0 IL_0023: conv.i8 IL_0024: nop - IL_0025: br.s IL_004e + IL_0025: br.s IL_004c IL_0027: ldc.i4.s 10 IL_0029: ldc.i4.1 @@ -1503,7 +1485,7 @@ IL_002f: conv.i8 IL_0030: add IL_0031: nop - IL_0032: br.s IL_004e + IL_0032: br.s IL_004c IL_0034: ldc.i4.1 IL_0035: ldc.i4.s 10 @@ -1512,7 +1494,7 @@ IL_0039: ldc.i4.0 IL_003a: conv.i8 IL_003b: nop - IL_003c: br.s IL_004e + IL_003c: br.s IL_004c IL_003e: ldc.i4.1 IL_003f: ldc.i4.s 10 @@ -1527,48 +1509,46 @@ IL_0049: conv.i8 IL_004a: add IL_004b: nop - IL_004c: br.s IL_004e - - IL_004e: stloc.1 - IL_004f: ldloc.1 - IL_0050: stloc.2 - IL_0051: ldloc.2 - IL_0052: brtrue.s IL_005a - - IL_0054: call !!0[] [runtime]System.Array::Empty() - IL_0059: ret - - IL_005a: ldloc.2 - IL_005b: conv.ovf.i.un - IL_005c: newarr [runtime]System.Int32 - IL_0061: stloc.3 - IL_0062: ldc.i4.0 - IL_0063: conv.i8 - IL_0064: stloc.s V_4 - IL_0066: ldc.i4.1 - IL_0067: stloc.s V_5 - IL_0069: br.s IL_007f - - IL_006b: ldloc.3 - IL_006c: ldloc.s V_4 - IL_006e: conv.i - IL_006f: ldloc.s V_5 - IL_0071: stelem.i4 - IL_0072: ldloc.s V_5 - IL_0074: ldloc.0 - IL_0075: add - IL_0076: stloc.s V_5 - IL_0078: ldloc.s V_4 - IL_007a: ldc.i4.1 - IL_007b: conv.i8 - IL_007c: add - IL_007d: stloc.s V_4 - IL_007f: ldloc.s V_4 - IL_0081: ldloc.1 - IL_0082: blt.un.s IL_006b - - IL_0084: ldloc.3 - IL_0085: ret + IL_004c: stloc.1 + IL_004d: ldloc.1 + IL_004e: stloc.2 + IL_004f: ldloc.2 + IL_0050: brtrue.s IL_0058 + + IL_0052: call !!0[] [runtime]System.Array::Empty() + IL_0057: ret + + IL_0058: ldloc.2 + IL_0059: conv.ovf.i.un + IL_005a: newarr [runtime]System.Int32 + IL_005f: stloc.3 + IL_0060: ldc.i4.0 + IL_0061: conv.i8 + IL_0062: stloc.s V_4 + IL_0064: ldc.i4.1 + IL_0065: stloc.s V_5 + IL_0067: br.s IL_007d + + IL_0069: ldloc.3 + IL_006a: ldloc.s V_4 + IL_006c: conv.i + IL_006d: ldloc.s V_5 + IL_006f: stelem.i4 + IL_0070: ldloc.s V_5 + IL_0072: ldloc.0 + IL_0073: add + IL_0074: stloc.s V_5 + IL_0076: ldloc.s V_4 + IL_0078: ldc.i4.1 + IL_0079: conv.i8 + IL_007a: add + IL_007b: stloc.s V_4 + IL_007d: ldloc.s V_4 + IL_007f: ldloc.1 + IL_0080: blt.un.s IL_0069 + + IL_0082: ldloc.3 + IL_0083: ret } .method public static int32[] f24(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f) cil managed @@ -1697,7 +1677,7 @@ IL_0030: ldc.i4.0 IL_0031: conv.i8 IL_0032: nop - IL_0033: br.s IL_0059 + IL_0033: br.s IL_0057 IL_0035: ldloc.2 IL_0036: ldloc.0 @@ -1709,7 +1689,7 @@ IL_003c: conv.i8 IL_003d: add IL_003e: nop - IL_003f: br.s IL_0059 + IL_003f: br.s IL_0057 IL_0041: ldloc.0 IL_0042: ldloc.2 @@ -1718,7 +1698,7 @@ IL_0045: ldc.i4.0 IL_0046: conv.i8 IL_0047: nop - IL_0048: br.s IL_0059 + IL_0048: br.s IL_0057 IL_004a: ldloc.0 IL_004b: ldloc.2 @@ -1733,48 +1713,46 @@ IL_0054: conv.i8 IL_0055: add IL_0056: nop - IL_0057: br.s IL_0059 - - IL_0059: stloc.3 - IL_005a: ldloc.3 - IL_005b: stloc.s V_4 - IL_005d: ldloc.s V_4 - IL_005f: brtrue.s IL_0067 - - IL_0061: call !!0[] [runtime]System.Array::Empty() - IL_0066: ret - - IL_0067: ldloc.s V_4 - IL_0069: conv.ovf.i.un - IL_006a: newarr [runtime]System.Int32 - IL_006f: stloc.s V_5 - IL_0071: ldc.i4.0 - IL_0072: conv.i8 - IL_0073: stloc.s V_6 - IL_0075: ldloc.0 - IL_0076: stloc.s V_7 - IL_0078: br.s IL_008f - - IL_007a: ldloc.s V_5 - IL_007c: ldloc.s V_6 - IL_007e: conv.i - IL_007f: ldloc.s V_7 - IL_0081: stelem.i4 - IL_0082: ldloc.s V_7 - IL_0084: ldloc.1 - IL_0085: add - IL_0086: stloc.s V_7 - IL_0088: ldloc.s V_6 - IL_008a: ldc.i4.1 - IL_008b: conv.i8 - IL_008c: add - IL_008d: stloc.s V_6 - IL_008f: ldloc.s V_6 - IL_0091: ldloc.3 - IL_0092: blt.un.s IL_007a - - IL_0094: ldloc.s V_5 - IL_0096: ret + IL_0057: stloc.3 + IL_0058: ldloc.3 + IL_0059: stloc.s V_4 + IL_005b: ldloc.s V_4 + IL_005d: brtrue.s IL_0065 + + IL_005f: call !!0[] [runtime]System.Array::Empty() + IL_0064: ret + + IL_0065: ldloc.s V_4 + IL_0067: conv.ovf.i.un + IL_0068: newarr [runtime]System.Int32 + IL_006d: stloc.s V_5 + IL_006f: ldc.i4.0 + IL_0070: conv.i8 + IL_0071: stloc.s V_6 + IL_0073: ldloc.0 + IL_0074: stloc.s V_7 + IL_0076: br.s IL_008d + + IL_0078: ldloc.s V_5 + IL_007a: ldloc.s V_6 + IL_007c: conv.i + IL_007d: ldloc.s V_7 + IL_007f: stelem.i4 + IL_0080: ldloc.s V_7 + IL_0082: ldloc.1 + IL_0083: add + IL_0084: stloc.s V_7 + IL_0086: ldloc.s V_6 + IL_0088: ldc.i4.1 + IL_0089: conv.i8 + IL_008a: add + IL_008b: stloc.s V_6 + IL_008d: ldloc.s V_6 + IL_008f: ldloc.3 + IL_0090: blt.un.s IL_0078 + + IL_0092: ldloc.s V_5 + IL_0094: ret } } @@ -1796,4 +1774,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/Int32RangeLists.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/Int32RangeLists.fs.il.bsl index c4c1db5bb91..60e84c41f2b 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/Int32RangeLists.fs.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/Int32RangeLists.fs.il.bsl @@ -250,52 +250,51 @@ valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, uint64 V_2, int32 V_3) - IL_0000: nop - IL_0001: ldc.i4.s 10 - IL_0003: ldarg.0 - IL_0004: bge.s IL_000b - - IL_0006: ldc.i4.0 - IL_0007: conv.i8 - IL_0008: nop - IL_0009: br.s IL_0014 - - IL_000b: ldc.i4.s 10 - IL_000d: ldarg.0 - IL_000e: sub - IL_000f: conv.i8 - IL_0010: ldc.i4.1 - IL_0011: conv.i8 - IL_0012: add - IL_0013: nop - IL_0014: stloc.0 - IL_0015: ldc.i4.0 - IL_0016: conv.i8 - IL_0017: stloc.2 - IL_0018: ldarg.0 - IL_0019: stloc.3 - IL_001a: br.s IL_002e + IL_0000: ldc.i4.s 10 + IL_0002: ldarg.0 + IL_0003: bge.s IL_000a - IL_001c: ldloca.s V_1 - IL_001e: ldloc.3 - IL_001f: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0024: nop - IL_0025: ldloc.3 - IL_0026: ldc.i4.1 - IL_0027: add - IL_0028: stloc.3 - IL_0029: ldloc.2 - IL_002a: ldc.i4.1 - IL_002b: conv.i8 - IL_002c: add - IL_002d: stloc.2 - IL_002e: ldloc.2 - IL_002f: ldloc.0 - IL_0030: blt.un.s IL_001c - - IL_0032: ldloca.s V_1 - IL_0034: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_0039: ret + IL_0005: ldc.i4.0 + IL_0006: conv.i8 + IL_0007: nop + IL_0008: br.s IL_0013 + + IL_000a: ldc.i4.s 10 + IL_000c: ldarg.0 + IL_000d: sub + IL_000e: conv.i8 + IL_000f: ldc.i4.1 + IL_0010: conv.i8 + IL_0011: add + IL_0012: nop + IL_0013: stloc.0 + IL_0014: ldc.i4.0 + IL_0015: conv.i8 + IL_0016: stloc.2 + IL_0017: ldarg.0 + IL_0018: stloc.3 + IL_0019: br.s IL_002d + + IL_001b: ldloca.s V_1 + IL_001d: ldloc.3 + IL_001e: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0023: nop + IL_0024: ldloc.3 + IL_0025: ldc.i4.1 + IL_0026: add + IL_0027: stloc.3 + IL_0028: ldloc.2 + IL_0029: ldc.i4.1 + IL_002a: conv.i8 + IL_002b: add + IL_002c: stloc.2 + IL_002d: ldloc.2 + IL_002e: ldloc.0 + IL_002f: blt.un.s IL_001b + + IL_0031: ldloca.s V_1 + IL_0033: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0038: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f10(int32 finish) cil managed @@ -306,52 +305,51 @@ valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, uint64 V_2, int32 V_3) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: ldc.i4.1 - IL_0003: bge.s IL_000a - - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_0012 - - IL_000a: ldarg.0 - IL_000b: ldc.i4.1 - IL_000c: sub - IL_000d: conv.i8 - IL_000e: ldc.i4.1 - IL_000f: conv.i8 - IL_0010: add - IL_0011: nop - IL_0012: stloc.0 - IL_0013: ldc.i4.0 - IL_0014: conv.i8 - IL_0015: stloc.2 - IL_0016: ldc.i4.1 - IL_0017: stloc.3 - IL_0018: br.s IL_002c - - IL_001a: ldloca.s V_1 - IL_001c: ldloc.3 - IL_001d: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0022: nop - IL_0023: ldloc.3 - IL_0024: ldc.i4.1 - IL_0025: add - IL_0026: stloc.3 - IL_0027: ldloc.2 - IL_0028: ldc.i4.1 - IL_0029: conv.i8 - IL_002a: add - IL_002b: stloc.2 - IL_002c: ldloc.2 - IL_002d: ldloc.0 - IL_002e: blt.un.s IL_001a - - IL_0030: ldloca.s V_1 - IL_0032: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_0037: ret + IL_0000: ldarg.0 + IL_0001: ldc.i4.1 + IL_0002: bge.s IL_0009 + + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_0011 + + IL_0009: ldarg.0 + IL_000a: ldc.i4.1 + IL_000b: sub + IL_000c: conv.i8 + IL_000d: ldc.i4.1 + IL_000e: conv.i8 + IL_000f: add + IL_0010: nop + IL_0011: stloc.0 + IL_0012: ldc.i4.0 + IL_0013: conv.i8 + IL_0014: stloc.2 + IL_0015: ldc.i4.1 + IL_0016: stloc.3 + IL_0017: br.s IL_002b + + IL_0019: ldloca.s V_1 + IL_001b: ldloc.3 + IL_001c: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0021: nop + IL_0022: ldloc.3 + IL_0023: ldc.i4.1 + IL_0024: add + IL_0025: stloc.3 + IL_0026: ldloc.2 + IL_0027: ldc.i4.1 + IL_0028: conv.i8 + IL_0029: add + IL_002a: stloc.2 + IL_002b: ldloc.2 + IL_002c: ldloc.0 + IL_002d: blt.un.s IL_0019 + + IL_002f: ldloca.s V_1 + IL_0031: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0036: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f11(int32 start, int32 finish) cil managed @@ -363,52 +361,51 @@ valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, uint64 V_2, int32 V_3) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: ldarg.0 - IL_0003: bge.s IL_000a - - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_0012 + IL_0000: ldarg.1 + IL_0001: ldarg.0 + IL_0002: bge.s IL_0009 - IL_000a: ldarg.1 - IL_000b: ldarg.0 - IL_000c: sub - IL_000d: conv.i8 - IL_000e: ldc.i4.1 - IL_000f: conv.i8 - IL_0010: add - IL_0011: nop - IL_0012: stloc.0 - IL_0013: ldc.i4.0 - IL_0014: conv.i8 - IL_0015: stloc.2 - IL_0016: ldarg.0 - IL_0017: stloc.3 - IL_0018: br.s IL_002c - - IL_001a: ldloca.s V_1 - IL_001c: ldloc.3 - IL_001d: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0022: nop - IL_0023: ldloc.3 - IL_0024: ldc.i4.1 - IL_0025: add - IL_0026: stloc.3 - IL_0027: ldloc.2 - IL_0028: ldc.i4.1 - IL_0029: conv.i8 - IL_002a: add - IL_002b: stloc.2 - IL_002c: ldloc.2 - IL_002d: ldloc.0 - IL_002e: blt.un.s IL_001a + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_0011 - IL_0030: ldloca.s V_1 - IL_0032: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_0037: ret + IL_0009: ldarg.1 + IL_000a: ldarg.0 + IL_000b: sub + IL_000c: conv.i8 + IL_000d: ldc.i4.1 + IL_000e: conv.i8 + IL_000f: add + IL_0010: nop + IL_0011: stloc.0 + IL_0012: ldc.i4.0 + IL_0013: conv.i8 + IL_0014: stloc.2 + IL_0015: ldarg.0 + IL_0016: stloc.3 + IL_0017: br.s IL_002b + + IL_0019: ldloca.s V_1 + IL_001b: ldloc.3 + IL_001c: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0021: nop + IL_0022: ldloc.3 + IL_0023: ldc.i4.1 + IL_0024: add + IL_0025: stloc.3 + IL_0026: ldloc.2 + IL_0027: ldc.i4.1 + IL_0028: conv.i8 + IL_0029: add + IL_002a: stloc.2 + IL_002b: ldloc.2 + IL_002c: ldloc.0 + IL_002d: blt.un.s IL_0019 + + IL_002f: ldloca.s V_1 + IL_0031: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0036: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f12(int32 start) cil managed @@ -419,52 +416,51 @@ valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, uint64 V_2, int32 V_3) - IL_0000: nop - IL_0001: ldc.i4.s 10 - IL_0003: ldarg.0 - IL_0004: bge.s IL_000b - - IL_0006: ldc.i4.0 - IL_0007: conv.i8 - IL_0008: nop - IL_0009: br.s IL_0014 - - IL_000b: ldc.i4.s 10 - IL_000d: ldarg.0 - IL_000e: sub - IL_000f: conv.i8 - IL_0010: ldc.i4.1 - IL_0011: conv.i8 - IL_0012: add - IL_0013: nop - IL_0014: stloc.0 - IL_0015: ldc.i4.0 - IL_0016: conv.i8 - IL_0017: stloc.2 - IL_0018: ldarg.0 - IL_0019: stloc.3 - IL_001a: br.s IL_002e + IL_0000: ldc.i4.s 10 + IL_0002: ldarg.0 + IL_0003: bge.s IL_000a - IL_001c: ldloca.s V_1 - IL_001e: ldloc.3 - IL_001f: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0024: nop - IL_0025: ldloc.3 - IL_0026: ldc.i4.1 - IL_0027: add - IL_0028: stloc.3 - IL_0029: ldloc.2 - IL_002a: ldc.i4.1 - IL_002b: conv.i8 - IL_002c: add - IL_002d: stloc.2 - IL_002e: ldloc.2 - IL_002f: ldloc.0 - IL_0030: blt.un.s IL_001c - - IL_0032: ldloca.s V_1 - IL_0034: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_0039: ret + IL_0005: ldc.i4.0 + IL_0006: conv.i8 + IL_0007: nop + IL_0008: br.s IL_0013 + + IL_000a: ldc.i4.s 10 + IL_000c: ldarg.0 + IL_000d: sub + IL_000e: conv.i8 + IL_000f: ldc.i4.1 + IL_0010: conv.i8 + IL_0011: add + IL_0012: nop + IL_0013: stloc.0 + IL_0014: ldc.i4.0 + IL_0015: conv.i8 + IL_0016: stloc.2 + IL_0017: ldarg.0 + IL_0018: stloc.3 + IL_0019: br.s IL_002d + + IL_001b: ldloca.s V_1 + IL_001d: ldloc.3 + IL_001e: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0023: nop + IL_0024: ldloc.3 + IL_0025: ldc.i4.1 + IL_0026: add + IL_0027: stloc.3 + IL_0028: ldloc.2 + IL_0029: ldc.i4.1 + IL_002a: conv.i8 + IL_002b: add + IL_002c: stloc.2 + IL_002d: ldloc.2 + IL_002e: ldloc.0 + IL_002f: blt.un.s IL_001b + + IL_0031: ldloca.s V_1 + IL_0033: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0038: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f13(int32 step) cil managed @@ -475,98 +471,95 @@ valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, uint64 V_2, int32 V_3) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: brtrue.s IL_0011 + IL_0000: ldarg.0 + IL_0001: brtrue.s IL_0010 - IL_0004: ldc.i4.1 - IL_0005: ldarg.0 - IL_0006: ldc.i4.s 10 - IL_0008: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldc.i4.1 + IL_0004: ldarg.0 + IL_0005: ldc.i4.s 10 + IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000d: pop - IL_000e: nop - IL_000f: br.s IL_0012 - - IL_0011: nop - IL_0012: ldc.i4.0 - IL_0013: ldarg.0 - IL_0014: bge.s IL_002d - - IL_0016: ldc.i4.s 10 - IL_0018: ldc.i4.1 - IL_0019: bge.s IL_0020 - - IL_001b: ldc.i4.0 - IL_001c: conv.i8 - IL_001d: nop - IL_001e: br.s IL_0047 - - IL_0020: ldc.i4.s 10 - IL_0022: ldc.i4.1 - IL_0023: sub - IL_0024: ldarg.0 - IL_0025: div.un - IL_0026: conv.i8 - IL_0027: ldc.i4.1 - IL_0028: conv.i8 - IL_0029: add - IL_002a: nop - IL_002b: br.s IL_0047 + IL_000c: pop + IL_000d: nop + IL_000e: br.s IL_0011 - IL_002d: ldc.i4.1 - IL_002e: ldc.i4.s 10 - IL_0030: bge.s IL_0037 + IL_0010: nop + IL_0011: ldc.i4.0 + IL_0012: ldarg.0 + IL_0013: bge.s IL_002c - IL_0032: ldc.i4.0 - IL_0033: conv.i8 - IL_0034: nop - IL_0035: br.s IL_0047 + IL_0015: ldc.i4.s 10 + IL_0017: ldc.i4.1 + IL_0018: bge.s IL_001f - IL_0037: ldc.i4.1 - IL_0038: ldc.i4.s 10 - IL_003a: sub - IL_003b: ldarg.0 - IL_003c: not - IL_003d: ldc.i4.1 - IL_003e: add - IL_003f: div.un - IL_0040: conv.i8 - IL_0041: ldc.i4.1 - IL_0042: conv.i8 - IL_0043: add - IL_0044: nop - IL_0045: br.s IL_0047 - - IL_0047: stloc.0 - IL_0048: ldc.i4.0 - IL_0049: conv.i8 - IL_004a: stloc.2 - IL_004b: ldc.i4.1 - IL_004c: stloc.3 - IL_004d: br.s IL_0061 - - IL_004f: ldloca.s V_1 - IL_0051: ldloc.3 - IL_0052: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0057: nop - IL_0058: ldloc.3 - IL_0059: ldarg.0 - IL_005a: add - IL_005b: stloc.3 - IL_005c: ldloc.2 - IL_005d: ldc.i4.1 - IL_005e: conv.i8 - IL_005f: add - IL_0060: stloc.2 - IL_0061: ldloc.2 - IL_0062: ldloc.0 - IL_0063: blt.un.s IL_004f - - IL_0065: ldloca.s V_1 - IL_0067: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_006c: ret + IL_001a: ldc.i4.0 + IL_001b: conv.i8 + IL_001c: nop + IL_001d: br.s IL_0044 + + IL_001f: ldc.i4.s 10 + IL_0021: ldc.i4.1 + IL_0022: sub + IL_0023: ldarg.0 + IL_0024: div.un + IL_0025: conv.i8 + IL_0026: ldc.i4.1 + IL_0027: conv.i8 + IL_0028: add + IL_0029: nop + IL_002a: br.s IL_0044 + + IL_002c: ldc.i4.1 + IL_002d: ldc.i4.s 10 + IL_002f: bge.s IL_0036 + + IL_0031: ldc.i4.0 + IL_0032: conv.i8 + IL_0033: nop + IL_0034: br.s IL_0044 + + IL_0036: ldc.i4.1 + IL_0037: ldc.i4.s 10 + IL_0039: sub + IL_003a: ldarg.0 + IL_003b: not + IL_003c: ldc.i4.1 + IL_003d: add + IL_003e: div.un + IL_003f: conv.i8 + IL_0040: ldc.i4.1 + IL_0041: conv.i8 + IL_0042: add + IL_0043: nop + IL_0044: stloc.0 + IL_0045: ldc.i4.0 + IL_0046: conv.i8 + IL_0047: stloc.2 + IL_0048: ldc.i4.1 + IL_0049: stloc.3 + IL_004a: br.s IL_005e + + IL_004c: ldloca.s V_1 + IL_004e: ldloc.3 + IL_004f: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0054: nop + IL_0055: ldloc.3 + IL_0056: ldarg.0 + IL_0057: add + IL_0058: stloc.3 + IL_0059: ldloc.2 + IL_005a: ldc.i4.1 + IL_005b: conv.i8 + IL_005c: add + IL_005d: stloc.2 + IL_005e: ldloc.2 + IL_005f: ldloc.0 + IL_0060: blt.un.s IL_004c + + IL_0062: ldloca.s V_1 + IL_0064: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0069: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f14(int32 finish) cil managed @@ -577,52 +570,51 @@ valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, uint64 V_2, int32 V_3) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: ldc.i4.1 - IL_0003: bge.s IL_000a - - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_0012 - - IL_000a: ldarg.0 - IL_000b: ldc.i4.1 - IL_000c: sub - IL_000d: conv.i8 - IL_000e: ldc.i4.1 - IL_000f: conv.i8 - IL_0010: add - IL_0011: nop - IL_0012: stloc.0 - IL_0013: ldc.i4.0 - IL_0014: conv.i8 - IL_0015: stloc.2 - IL_0016: ldc.i4.1 - IL_0017: stloc.3 - IL_0018: br.s IL_002c - - IL_001a: ldloca.s V_1 - IL_001c: ldloc.3 - IL_001d: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0022: nop - IL_0023: ldloc.3 - IL_0024: ldc.i4.1 - IL_0025: add - IL_0026: stloc.3 - IL_0027: ldloc.2 - IL_0028: ldc.i4.1 - IL_0029: conv.i8 - IL_002a: add - IL_002b: stloc.2 - IL_002c: ldloc.2 - IL_002d: ldloc.0 - IL_002e: blt.un.s IL_001a - - IL_0030: ldloca.s V_1 - IL_0032: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_0037: ret + IL_0000: ldarg.0 + IL_0001: ldc.i4.1 + IL_0002: bge.s IL_0009 + + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_0011 + + IL_0009: ldarg.0 + IL_000a: ldc.i4.1 + IL_000b: sub + IL_000c: conv.i8 + IL_000d: ldc.i4.1 + IL_000e: conv.i8 + IL_000f: add + IL_0010: nop + IL_0011: stloc.0 + IL_0012: ldc.i4.0 + IL_0013: conv.i8 + IL_0014: stloc.2 + IL_0015: ldc.i4.1 + IL_0016: stloc.3 + IL_0017: br.s IL_002b + + IL_0019: ldloca.s V_1 + IL_001b: ldloc.3 + IL_001c: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0021: nop + IL_0022: ldloc.3 + IL_0023: ldc.i4.1 + IL_0024: add + IL_0025: stloc.3 + IL_0026: ldloc.2 + IL_0027: ldc.i4.1 + IL_0028: conv.i8 + IL_0029: add + IL_002a: stloc.2 + IL_002b: ldloc.2 + IL_002c: ldloc.0 + IL_002d: blt.un.s IL_0019 + + IL_002f: ldloca.s V_1 + IL_0031: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0036: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f15(int32 start, int32 step) cil managed @@ -634,98 +626,95 @@ valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, uint64 V_2, int32 V_3) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: brtrue.s IL_0011 + IL_0000: ldarg.1 + IL_0001: brtrue.s IL_0010 - IL_0004: ldarg.0 - IL_0005: ldarg.1 - IL_0006: ldc.i4.s 10 - IL_0008: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldarg.0 + IL_0004: ldarg.1 + IL_0005: ldc.i4.s 10 + IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000d: pop - IL_000e: nop - IL_000f: br.s IL_0012 + IL_000c: pop + IL_000d: nop + IL_000e: br.s IL_0011 - IL_0011: nop - IL_0012: ldc.i4.0 - IL_0013: ldarg.1 - IL_0014: bge.s IL_002d + IL_0010: nop + IL_0011: ldc.i4.0 + IL_0012: ldarg.1 + IL_0013: bge.s IL_002c - IL_0016: ldc.i4.s 10 - IL_0018: ldarg.0 - IL_0019: bge.s IL_0020 + IL_0015: ldc.i4.s 10 + IL_0017: ldarg.0 + IL_0018: bge.s IL_001f - IL_001b: ldc.i4.0 - IL_001c: conv.i8 - IL_001d: nop - IL_001e: br.s IL_0047 - - IL_0020: ldc.i4.s 10 - IL_0022: ldarg.0 - IL_0023: sub - IL_0024: ldarg.1 - IL_0025: div.un - IL_0026: conv.i8 - IL_0027: ldc.i4.1 - IL_0028: conv.i8 - IL_0029: add - IL_002a: nop - IL_002b: br.s IL_0047 + IL_001a: ldc.i4.0 + IL_001b: conv.i8 + IL_001c: nop + IL_001d: br.s IL_0044 - IL_002d: ldarg.0 - IL_002e: ldc.i4.s 10 - IL_0030: bge.s IL_0037 + IL_001f: ldc.i4.s 10 + IL_0021: ldarg.0 + IL_0022: sub + IL_0023: ldarg.1 + IL_0024: div.un + IL_0025: conv.i8 + IL_0026: ldc.i4.1 + IL_0027: conv.i8 + IL_0028: add + IL_0029: nop + IL_002a: br.s IL_0044 - IL_0032: ldc.i4.0 - IL_0033: conv.i8 - IL_0034: nop - IL_0035: br.s IL_0047 + IL_002c: ldarg.0 + IL_002d: ldc.i4.s 10 + IL_002f: bge.s IL_0036 - IL_0037: ldarg.0 - IL_0038: ldc.i4.s 10 - IL_003a: sub - IL_003b: ldarg.1 - IL_003c: not - IL_003d: ldc.i4.1 - IL_003e: add - IL_003f: div.un - IL_0040: conv.i8 - IL_0041: ldc.i4.1 - IL_0042: conv.i8 - IL_0043: add - IL_0044: nop - IL_0045: br.s IL_0047 - - IL_0047: stloc.0 - IL_0048: ldc.i4.0 - IL_0049: conv.i8 - IL_004a: stloc.2 - IL_004b: ldarg.0 - IL_004c: stloc.3 - IL_004d: br.s IL_0061 - - IL_004f: ldloca.s V_1 - IL_0051: ldloc.3 - IL_0052: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0057: nop - IL_0058: ldloc.3 - IL_0059: ldarg.1 - IL_005a: add - IL_005b: stloc.3 - IL_005c: ldloc.2 - IL_005d: ldc.i4.1 - IL_005e: conv.i8 - IL_005f: add - IL_0060: stloc.2 - IL_0061: ldloc.2 - IL_0062: ldloc.0 - IL_0063: blt.un.s IL_004f - - IL_0065: ldloca.s V_1 - IL_0067: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_006c: ret + IL_0031: ldc.i4.0 + IL_0032: conv.i8 + IL_0033: nop + IL_0034: br.s IL_0044 + + IL_0036: ldarg.0 + IL_0037: ldc.i4.s 10 + IL_0039: sub + IL_003a: ldarg.1 + IL_003b: not + IL_003c: ldc.i4.1 + IL_003d: add + IL_003e: div.un + IL_003f: conv.i8 + IL_0040: ldc.i4.1 + IL_0041: conv.i8 + IL_0042: add + IL_0043: nop + IL_0044: stloc.0 + IL_0045: ldc.i4.0 + IL_0046: conv.i8 + IL_0047: stloc.2 + IL_0048: ldarg.0 + IL_0049: stloc.3 + IL_004a: br.s IL_005e + + IL_004c: ldloca.s V_1 + IL_004e: ldloc.3 + IL_004f: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0054: nop + IL_0055: ldloc.3 + IL_0056: ldarg.1 + IL_0057: add + IL_0058: stloc.3 + IL_0059: ldloc.2 + IL_005a: ldc.i4.1 + IL_005b: conv.i8 + IL_005c: add + IL_005d: stloc.2 + IL_005e: ldloc.2 + IL_005f: ldloc.0 + IL_0060: blt.un.s IL_004c + + IL_0062: ldloca.s V_1 + IL_0064: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0069: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f16(int32 start, int32 finish) cil managed @@ -737,52 +726,51 @@ valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, uint64 V_2, int32 V_3) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: ldarg.0 - IL_0003: bge.s IL_000a + IL_0000: ldarg.1 + IL_0001: ldarg.0 + IL_0002: bge.s IL_0009 - IL_0005: ldc.i4.0 - IL_0006: conv.i8 - IL_0007: nop - IL_0008: br.s IL_0012 + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_0011 - IL_000a: ldarg.1 - IL_000b: ldarg.0 - IL_000c: sub - IL_000d: conv.i8 - IL_000e: ldc.i4.1 - IL_000f: conv.i8 - IL_0010: add - IL_0011: nop - IL_0012: stloc.0 - IL_0013: ldc.i4.0 - IL_0014: conv.i8 - IL_0015: stloc.2 - IL_0016: ldarg.0 - IL_0017: stloc.3 - IL_0018: br.s IL_002c - - IL_001a: ldloca.s V_1 - IL_001c: ldloc.3 - IL_001d: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0022: nop - IL_0023: ldloc.3 - IL_0024: ldc.i4.1 - IL_0025: add - IL_0026: stloc.3 - IL_0027: ldloc.2 - IL_0028: ldc.i4.1 - IL_0029: conv.i8 - IL_002a: add - IL_002b: stloc.2 - IL_002c: ldloc.2 - IL_002d: ldloc.0 - IL_002e: blt.un.s IL_001a - - IL_0030: ldloca.s V_1 - IL_0032: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_0037: ret + IL_0009: ldarg.1 + IL_000a: ldarg.0 + IL_000b: sub + IL_000c: conv.i8 + IL_000d: ldc.i4.1 + IL_000e: conv.i8 + IL_000f: add + IL_0010: nop + IL_0011: stloc.0 + IL_0012: ldc.i4.0 + IL_0013: conv.i8 + IL_0014: stloc.2 + IL_0015: ldarg.0 + IL_0016: stloc.3 + IL_0017: br.s IL_002b + + IL_0019: ldloca.s V_1 + IL_001b: ldloc.3 + IL_001c: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0021: nop + IL_0022: ldloc.3 + IL_0023: ldc.i4.1 + IL_0024: add + IL_0025: stloc.3 + IL_0026: ldloc.2 + IL_0027: ldc.i4.1 + IL_0028: conv.i8 + IL_0029: add + IL_002a: stloc.2 + IL_002b: ldloc.2 + IL_002c: ldloc.0 + IL_002d: blt.un.s IL_0019 + + IL_002f: ldloca.s V_1 + IL_0031: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0036: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f17(int32 step, int32 finish) cil managed @@ -794,98 +782,95 @@ valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, uint64 V_2, int32 V_3) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: brtrue.s IL_0010 + IL_0000: ldarg.0 + IL_0001: brtrue.s IL_000f - IL_0004: ldc.i4.1 - IL_0005: ldarg.0 - IL_0006: ldarg.1 - IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldc.i4.1 + IL_0004: ldarg.0 + IL_0005: ldarg.1 + IL_0006: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000c: pop - IL_000d: nop - IL_000e: br.s IL_0011 - - IL_0010: nop - IL_0011: ldc.i4.0 - IL_0012: ldarg.0 - IL_0013: bge.s IL_002a + IL_000b: pop + IL_000c: nop + IL_000d: br.s IL_0010 - IL_0015: ldarg.1 - IL_0016: ldc.i4.1 - IL_0017: bge.s IL_001e - - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0042 - - IL_001e: ldarg.1 - IL_001f: ldc.i4.1 - IL_0020: sub - IL_0021: ldarg.0 - IL_0022: div.un - IL_0023: conv.i8 - IL_0024: ldc.i4.1 - IL_0025: conv.i8 - IL_0026: add - IL_0027: nop - IL_0028: br.s IL_0042 + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: ldarg.0 + IL_0012: bge.s IL_0029 - IL_002a: ldc.i4.1 - IL_002b: ldarg.1 - IL_002c: bge.s IL_0033 + IL_0014: ldarg.1 + IL_0015: ldc.i4.1 + IL_0016: bge.s IL_001d - IL_002e: ldc.i4.0 - IL_002f: conv.i8 - IL_0030: nop - IL_0031: br.s IL_0042 + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_003f + + IL_001d: ldarg.1 + IL_001e: ldc.i4.1 + IL_001f: sub + IL_0020: ldarg.0 + IL_0021: div.un + IL_0022: conv.i8 + IL_0023: ldc.i4.1 + IL_0024: conv.i8 + IL_0025: add + IL_0026: nop + IL_0027: br.s IL_003f - IL_0033: ldc.i4.1 - IL_0034: ldarg.1 - IL_0035: sub - IL_0036: ldarg.0 - IL_0037: not - IL_0038: ldc.i4.1 - IL_0039: add - IL_003a: div.un - IL_003b: conv.i8 - IL_003c: ldc.i4.1 - IL_003d: conv.i8 - IL_003e: add - IL_003f: nop - IL_0040: br.s IL_0042 - - IL_0042: stloc.0 - IL_0043: ldc.i4.0 - IL_0044: conv.i8 - IL_0045: stloc.2 - IL_0046: ldc.i4.1 - IL_0047: stloc.3 - IL_0048: br.s IL_005c - - IL_004a: ldloca.s V_1 - IL_004c: ldloc.3 - IL_004d: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0052: nop - IL_0053: ldloc.3 - IL_0054: ldarg.0 - IL_0055: add - IL_0056: stloc.3 - IL_0057: ldloc.2 - IL_0058: ldc.i4.1 - IL_0059: conv.i8 - IL_005a: add - IL_005b: stloc.2 - IL_005c: ldloc.2 - IL_005d: ldloc.0 - IL_005e: blt.un.s IL_004a - - IL_0060: ldloca.s V_1 - IL_0062: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_0067: ret + IL_0029: ldc.i4.1 + IL_002a: ldarg.1 + IL_002b: bge.s IL_0032 + + IL_002d: ldc.i4.0 + IL_002e: conv.i8 + IL_002f: nop + IL_0030: br.s IL_003f + + IL_0032: ldc.i4.1 + IL_0033: ldarg.1 + IL_0034: sub + IL_0035: ldarg.0 + IL_0036: not + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: div.un + IL_003a: conv.i8 + IL_003b: ldc.i4.1 + IL_003c: conv.i8 + IL_003d: add + IL_003e: nop + IL_003f: stloc.0 + IL_0040: ldc.i4.0 + IL_0041: conv.i8 + IL_0042: stloc.2 + IL_0043: ldc.i4.1 + IL_0044: stloc.3 + IL_0045: br.s IL_0059 + + IL_0047: ldloca.s V_1 + IL_0049: ldloc.3 + IL_004a: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_004f: nop + IL_0050: ldloc.3 + IL_0051: ldarg.0 + IL_0052: add + IL_0053: stloc.3 + IL_0054: ldloc.2 + IL_0055: ldc.i4.1 + IL_0056: conv.i8 + IL_0057: add + IL_0058: stloc.2 + IL_0059: ldloc.2 + IL_005a: ldloc.0 + IL_005b: blt.un.s IL_0047 + + IL_005d: ldloca.s V_1 + IL_005f: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0064: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 @@ -901,98 +886,95 @@ valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, uint64 V_2, int32 V_3) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: brtrue.s IL_0010 + IL_0000: ldarg.1 + IL_0001: brtrue.s IL_000f - IL_0004: ldarg.0 - IL_0005: ldarg.1 - IL_0006: ldarg.2 - IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, + IL_0003: ldarg.0 + IL_0004: ldarg.1 + IL_0005: ldarg.2 + IL_0006: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeInt32(int32, int32, int32) - IL_000c: pop - IL_000d: nop - IL_000e: br.s IL_0011 + IL_000b: pop + IL_000c: nop + IL_000d: br.s IL_0010 - IL_0010: nop - IL_0011: ldc.i4.0 - IL_0012: ldarg.1 - IL_0013: bge.s IL_002a - - IL_0015: ldarg.2 - IL_0016: ldarg.0 - IL_0017: bge.s IL_001e - - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0042 - - IL_001e: ldarg.2 - IL_001f: ldarg.0 - IL_0020: sub - IL_0021: ldarg.1 - IL_0022: div.un - IL_0023: conv.i8 - IL_0024: ldc.i4.1 - IL_0025: conv.i8 - IL_0026: add - IL_0027: nop - IL_0028: br.s IL_0042 + IL_000f: nop + IL_0010: ldc.i4.0 + IL_0011: ldarg.1 + IL_0012: bge.s IL_0029 - IL_002a: ldarg.0 - IL_002b: ldarg.2 - IL_002c: bge.s IL_0033 + IL_0014: ldarg.2 + IL_0015: ldarg.0 + IL_0016: bge.s IL_001d - IL_002e: ldc.i4.0 - IL_002f: conv.i8 - IL_0030: nop - IL_0031: br.s IL_0042 - - IL_0033: ldarg.0 - IL_0034: ldarg.2 - IL_0035: sub - IL_0036: ldarg.1 - IL_0037: not - IL_0038: ldc.i4.1 - IL_0039: add - IL_003a: div.un - IL_003b: conv.i8 - IL_003c: ldc.i4.1 - IL_003d: conv.i8 - IL_003e: add - IL_003f: nop - IL_0040: br.s IL_0042 - - IL_0042: stloc.0 - IL_0043: ldc.i4.0 - IL_0044: conv.i8 - IL_0045: stloc.2 - IL_0046: ldarg.0 - IL_0047: stloc.3 - IL_0048: br.s IL_005c - - IL_004a: ldloca.s V_1 - IL_004c: ldloc.3 - IL_004d: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0052: nop - IL_0053: ldloc.3 - IL_0054: ldarg.1 - IL_0055: add - IL_0056: stloc.3 - IL_0057: ldloc.2 - IL_0058: ldc.i4.1 - IL_0059: conv.i8 - IL_005a: add - IL_005b: stloc.2 - IL_005c: ldloc.2 - IL_005d: ldloc.0 - IL_005e: blt.un.s IL_004a - - IL_0060: ldloca.s V_1 - IL_0062: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_0067: ret + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_003f + + IL_001d: ldarg.2 + IL_001e: ldarg.0 + IL_001f: sub + IL_0020: ldarg.1 + IL_0021: div.un + IL_0022: conv.i8 + IL_0023: ldc.i4.1 + IL_0024: conv.i8 + IL_0025: add + IL_0026: nop + IL_0027: br.s IL_003f + + IL_0029: ldarg.0 + IL_002a: ldarg.2 + IL_002b: bge.s IL_0032 + + IL_002d: ldc.i4.0 + IL_002e: conv.i8 + IL_002f: nop + IL_0030: br.s IL_003f + + IL_0032: ldarg.0 + IL_0033: ldarg.2 + IL_0034: sub + IL_0035: ldarg.1 + IL_0036: not + IL_0037: ldc.i4.1 + IL_0038: add + IL_0039: div.un + IL_003a: conv.i8 + IL_003b: ldc.i4.1 + IL_003c: conv.i8 + IL_003d: add + IL_003e: nop + IL_003f: stloc.0 + IL_0040: ldc.i4.0 + IL_0041: conv.i8 + IL_0042: stloc.2 + IL_0043: ldarg.0 + IL_0044: stloc.3 + IL_0045: br.s IL_0059 + + IL_0047: ldloca.s V_1 + IL_0049: ldloc.3 + IL_004a: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_004f: nop + IL_0050: ldloc.3 + IL_0051: ldarg.1 + IL_0052: add + IL_0053: stloc.3 + IL_0054: ldloc.2 + IL_0055: ldc.i4.1 + IL_0056: conv.i8 + IL_0057: add + IL_0058: stloc.2 + IL_0059: ldloc.2 + IL_005a: ldloc.0 + IL_005b: blt.un.s IL_0047 + + IL_005d: ldloca.s V_1 + IL_005f: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0064: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f19(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f) cil managed @@ -1279,7 +1261,7 @@ IL_0022: ldc.i4.0 IL_0023: conv.i8 IL_0024: nop - IL_0025: br.s IL_004e + IL_0025: br.s IL_004c IL_0027: ldc.i4.s 10 IL_0029: ldc.i4.1 @@ -1291,7 +1273,7 @@ IL_002f: conv.i8 IL_0030: add IL_0031: nop - IL_0032: br.s IL_004e + IL_0032: br.s IL_004c IL_0034: ldc.i4.1 IL_0035: ldc.i4.s 10 @@ -1300,7 +1282,7 @@ IL_0039: ldc.i4.0 IL_003a: conv.i8 IL_003b: nop - IL_003c: br.s IL_004e + IL_003c: br.s IL_004c IL_003e: ldc.i4.1 IL_003f: ldc.i4.s 10 @@ -1315,36 +1297,34 @@ IL_0049: conv.i8 IL_004a: add IL_004b: nop - IL_004c: br.s IL_004e - - IL_004e: stloc.1 - IL_004f: ldc.i4.0 - IL_0050: conv.i8 - IL_0051: stloc.3 - IL_0052: ldc.i4.1 - IL_0053: stloc.s V_4 - IL_0055: br.s IL_006c - - IL_0057: ldloca.s V_2 - IL_0059: ldloc.s V_4 - IL_005b: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0060: nop - IL_0061: ldloc.s V_4 - IL_0063: ldloc.0 - IL_0064: add - IL_0065: stloc.s V_4 - IL_0067: ldloc.3 - IL_0068: ldc.i4.1 - IL_0069: conv.i8 - IL_006a: add - IL_006b: stloc.3 - IL_006c: ldloc.3 - IL_006d: ldloc.1 - IL_006e: blt.un.s IL_0057 - - IL_0070: ldloca.s V_2 - IL_0072: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_0077: ret + IL_004c: stloc.1 + IL_004d: ldc.i4.0 + IL_004e: conv.i8 + IL_004f: stloc.3 + IL_0050: ldc.i4.1 + IL_0051: stloc.s V_4 + IL_0053: br.s IL_006a + + IL_0055: ldloca.s V_2 + IL_0057: ldloc.s V_4 + IL_0059: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_005e: nop + IL_005f: ldloc.s V_4 + IL_0061: ldloc.0 + IL_0062: add + IL_0063: stloc.s V_4 + IL_0065: ldloc.3 + IL_0066: ldc.i4.1 + IL_0067: conv.i8 + IL_0068: add + IL_0069: stloc.3 + IL_006a: ldloc.3 + IL_006b: ldloc.1 + IL_006c: blt.un.s IL_0055 + + IL_006e: ldloca.s V_2 + IL_0070: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0075: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f24(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f) cil managed @@ -1460,7 +1440,7 @@ IL_0030: ldc.i4.0 IL_0031: conv.i8 IL_0032: nop - IL_0033: br.s IL_0059 + IL_0033: br.s IL_0057 IL_0035: ldloc.2 IL_0036: ldloc.0 @@ -1472,7 +1452,7 @@ IL_003c: conv.i8 IL_003d: add IL_003e: nop - IL_003f: br.s IL_0059 + IL_003f: br.s IL_0057 IL_0041: ldloc.0 IL_0042: ldloc.2 @@ -1481,7 +1461,7 @@ IL_0045: ldc.i4.0 IL_0046: conv.i8 IL_0047: nop - IL_0048: br.s IL_0059 + IL_0048: br.s IL_0057 IL_004a: ldloc.0 IL_004b: ldloc.2 @@ -1496,36 +1476,34 @@ IL_0054: conv.i8 IL_0055: add IL_0056: nop - IL_0057: br.s IL_0059 - - IL_0059: stloc.3 - IL_005a: ldc.i4.0 - IL_005b: conv.i8 - IL_005c: stloc.s V_5 - IL_005e: ldloc.0 - IL_005f: stloc.s V_6 - IL_0061: br.s IL_007a - - IL_0063: ldloca.s V_4 - IL_0065: ldloc.s V_6 - IL_0067: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_006c: nop - IL_006d: ldloc.s V_6 - IL_006f: ldloc.1 - IL_0070: add - IL_0071: stloc.s V_6 - IL_0073: ldloc.s V_5 - IL_0075: ldc.i4.1 - IL_0076: conv.i8 - IL_0077: add - IL_0078: stloc.s V_5 - IL_007a: ldloc.s V_5 - IL_007c: ldloc.3 - IL_007d: blt.un.s IL_0063 - - IL_007f: ldloca.s V_4 - IL_0081: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_0086: ret + IL_0057: stloc.3 + IL_0058: ldc.i4.0 + IL_0059: conv.i8 + IL_005a: stloc.s V_5 + IL_005c: ldloc.0 + IL_005d: stloc.s V_6 + IL_005f: br.s IL_0078 + + IL_0061: ldloca.s V_4 + IL_0063: ldloc.s V_6 + IL_0065: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_006a: nop + IL_006b: ldloc.s V_6 + IL_006d: ldloc.1 + IL_006e: add + IL_006f: stloc.s V_6 + IL_0071: ldloc.s V_5 + IL_0073: ldc.i4.1 + IL_0074: conv.i8 + IL_0075: add + IL_0076: stloc.s V_5 + IL_0078: ldloc.s V_5 + IL_007a: ldloc.3 + IL_007b: blt.un.s IL_0061 + + IL_007d: ldloca.s V_4 + IL_007f: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0084: ret } } @@ -1547,4 +1525,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/UInt64RangeArrays.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/UInt64RangeArrays.fs.il.bsl index e0320085bcd..cbfe9fbf406 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/UInt64RangeArrays.fs.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/UInt64RangeArrays.fs.il.bsl @@ -190,114 +190,41 @@ uint64[] V_2, uint64 V_3, uint64 V_4) - IL_0000: nop - IL_0001: ldc.i4.s 10 - IL_0003: conv.i8 - IL_0004: ldarg.0 - IL_0005: bge.un.s IL_000c - - IL_0007: ldc.i4.0 - IL_0008: conv.i8 - IL_0009: nop - IL_000a: br.s IL_0015 - - IL_000c: ldc.i4.s 10 - IL_000e: conv.i8 - IL_000f: ldarg.0 - IL_0010: sub - IL_0011: ldc.i4.1 - IL_0012: conv.i8 - IL_0013: add.ovf.un - IL_0014: nop - IL_0015: stloc.0 - IL_0016: ldloc.0 - IL_0017: stloc.1 - IL_0018: ldloc.1 - IL_0019: brtrue.s IL_0021 - - IL_001b: call !!0[] [runtime]System.Array::Empty() - IL_0020: ret - - IL_0021: ldloc.1 - IL_0022: conv.ovf.i.un - IL_0023: newarr [runtime]System.UInt64 - IL_0028: stloc.2 - IL_0029: ldc.i4.0 - IL_002a: conv.i8 - IL_002b: stloc.3 - IL_002c: ldarg.0 - IL_002d: stloc.s V_4 - IL_002f: br.s IL_0043 - - IL_0031: ldloc.2 - IL_0032: ldloc.3 - IL_0033: conv.i - IL_0034: ldloc.s V_4 - IL_0036: stelem.i8 - IL_0037: ldloc.s V_4 - IL_0039: ldc.i4.1 - IL_003a: conv.i8 - IL_003b: add - IL_003c: stloc.s V_4 - IL_003e: ldloc.3 - IL_003f: ldc.i4.1 - IL_0040: conv.i8 - IL_0041: add - IL_0042: stloc.3 - IL_0043: ldloc.3 - IL_0044: ldloc.0 - IL_0045: blt.un.s IL_0031 - - IL_0047: ldloc.2 - IL_0048: ret - } - - .method public static uint64[] f7(uint64 finish) cil managed - { - - .maxstack 5 - .locals init (uint64 V_0, - uint64 V_1, - uint64[] V_2, - uint64 V_3, - uint64 V_4) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: ldc.i4.1 - IL_0003: conv.i8 + IL_0000: ldc.i4.s 10 + IL_0002: conv.i8 + IL_0003: ldarg.0 IL_0004: bge.un.s IL_000b IL_0006: ldc.i4.0 IL_0007: conv.i8 IL_0008: nop - IL_0009: br.s IL_0013 + IL_0009: br.s IL_0014 - IL_000b: ldarg.0 - IL_000c: ldc.i4.1 + IL_000b: ldc.i4.s 10 IL_000d: conv.i8 - IL_000e: sub - IL_000f: ldc.i4.1 - IL_0010: conv.i8 - IL_0011: add.ovf.un - IL_0012: nop - IL_0013: stloc.0 - IL_0014: ldloc.0 - IL_0015: stloc.1 - IL_0016: ldloc.1 - IL_0017: brtrue.s IL_001f - - IL_0019: call !!0[] [runtime]System.Array::Empty() - IL_001e: ret - - IL_001f: ldloc.1 - IL_0020: conv.ovf.i.un - IL_0021: newarr [runtime]System.UInt64 - IL_0026: stloc.2 - IL_0027: ldc.i4.0 - IL_0028: conv.i8 - IL_0029: stloc.3 - IL_002a: ldc.i4.1 - IL_002b: conv.i8 + IL_000e: ldarg.0 + IL_000f: sub + IL_0010: ldc.i4.1 + IL_0011: conv.i8 + IL_0012: add.ovf.un + IL_0013: nop + IL_0014: stloc.0 + IL_0015: ldloc.0 + IL_0016: stloc.1 + IL_0017: ldloc.1 + IL_0018: brtrue.s IL_0020 + + IL_001a: call !!0[] [runtime]System.Array::Empty() + IL_001f: ret + + IL_0020: ldloc.1 + IL_0021: conv.ovf.i.un + IL_0022: newarr [runtime]System.UInt64 + IL_0027: stloc.2 + IL_0028: ldc.i4.0 + IL_0029: conv.i8 + IL_002a: stloc.3 + IL_002b: ldarg.0 IL_002c: stloc.s V_4 IL_002e: br.s IL_0042 @@ -324,316 +251,224 @@ IL_0047: ret } - .method public static uint64[] f8(uint64 start, - uint64 finish) cil managed + .method public static uint64[] f7(uint64 finish) cil managed { - .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) .maxstack 5 .locals init (uint64 V_0, - bool V_1, - uint64 V_2, - uint64[] V_3, - bool V_4, - uint64 V_5, - uint64 V_6, - uint64 V_7) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: ldarg.0 + uint64 V_1, + uint64[] V_2, + uint64 V_3, + uint64 V_4) + IL_0000: ldarg.0 + IL_0001: ldc.i4.1 + IL_0002: conv.i8 IL_0003: bge.un.s IL_000a IL_0005: ldc.i4.0 IL_0006: conv.i8 IL_0007: nop - IL_0008: br.s IL_000e + IL_0008: br.s IL_0012 - IL_000a: ldarg.1 - IL_000b: ldarg.0 - IL_000c: sub - IL_000d: nop - IL_000e: stloc.0 - IL_000f: ldloc.0 - IL_0010: ldc.i4.m1 - IL_0011: conv.i8 - IL_0012: ceq + IL_000a: ldarg.0 + IL_000b: ldc.i4.1 + IL_000c: conv.i8 + IL_000d: sub + IL_000e: ldc.i4.1 + IL_000f: conv.i8 + IL_0010: add.ovf.un + IL_0011: nop + IL_0012: stloc.0 + IL_0013: ldloc.0 IL_0014: stloc.1 - IL_0015: ldarg.1 - IL_0016: ldarg.0 - IL_0017: bge.un.s IL_001e + IL_0015: ldloc.1 + IL_0016: brtrue.s IL_001e - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0025 + IL_0018: call !!0[] [runtime]System.Array::Empty() + IL_001d: ret - IL_001e: ldarg.1 - IL_001f: ldarg.0 - IL_0020: sub - IL_0021: ldc.i4.1 - IL_0022: conv.i8 - IL_0023: add.ovf.un - IL_0024: nop + IL_001e: ldloc.1 + IL_001f: conv.ovf.i.un + IL_0020: newarr [runtime]System.UInt64 IL_0025: stloc.2 - IL_0026: ldloc.2 - IL_0027: brtrue.s IL_002f - - IL_0029: call !!0[] [runtime]System.Array::Empty() - IL_002e: ret + IL_0026: ldc.i4.0 + IL_0027: conv.i8 + IL_0028: stloc.3 + IL_0029: ldc.i4.1 + IL_002a: conv.i8 + IL_002b: stloc.s V_4 + IL_002d: br.s IL_0041 IL_002f: ldloc.2 - IL_0030: conv.ovf.i.un - IL_0031: newarr [runtime]System.UInt64 - IL_0036: stloc.3 - IL_0037: ldloc.1 - IL_0038: brfalse.s IL_006a - - IL_003a: ldc.i4.1 - IL_003b: stloc.s V_4 - IL_003d: ldc.i4.0 + IL_0030: ldloc.3 + IL_0031: conv.i + IL_0032: ldloc.s V_4 + IL_0034: stelem.i8 + IL_0035: ldloc.s V_4 + IL_0037: ldc.i4.1 + IL_0038: conv.i8 + IL_0039: add + IL_003a: stloc.s V_4 + IL_003c: ldloc.3 + IL_003d: ldc.i4.1 IL_003e: conv.i8 - IL_003f: stloc.s V_5 - IL_0041: ldarg.0 - IL_0042: stloc.s V_6 - IL_0044: br.s IL_0063 - - IL_0046: ldloc.3 - IL_0047: ldloc.s V_5 - IL_0049: conv.i - IL_004a: ldloc.s V_6 - IL_004c: stelem.i8 - IL_004d: ldloc.s V_6 - IL_004f: ldc.i4.1 - IL_0050: conv.i8 - IL_0051: add - IL_0052: stloc.s V_6 - IL_0054: ldloc.s V_5 - IL_0056: ldc.i4.1 - IL_0057: conv.i8 - IL_0058: add - IL_0059: stloc.s V_5 - IL_005b: ldloc.s V_5 - IL_005d: ldc.i4.0 - IL_005e: conv.i8 - IL_005f: cgt.un - IL_0061: stloc.s V_4 - IL_0063: ldloc.s V_4 - IL_0065: brtrue.s IL_0046 - - IL_0067: nop - IL_0068: br.s IL_00a1 - - IL_006a: ldarg.1 - IL_006b: ldarg.0 - IL_006c: bge.un.s IL_0073 - - IL_006e: ldc.i4.0 - IL_006f: conv.i8 - IL_0070: nop - IL_0071: br.s IL_007a - - IL_0073: ldarg.1 - IL_0074: ldarg.0 - IL_0075: sub - IL_0076: ldc.i4.1 - IL_0077: conv.i8 - IL_0078: add.ovf.un - IL_0079: nop - IL_007a: stloc.s V_5 - IL_007c: ldc.i4.0 - IL_007d: conv.i8 - IL_007e: stloc.s V_6 - IL_0080: ldarg.0 - IL_0081: stloc.s V_7 - IL_0083: br.s IL_009a - - IL_0085: ldloc.3 - IL_0086: ldloc.s V_6 - IL_0088: conv.i - IL_0089: ldloc.s V_7 - IL_008b: stelem.i8 - IL_008c: ldloc.s V_7 - IL_008e: ldc.i4.1 - IL_008f: conv.i8 - IL_0090: add - IL_0091: stloc.s V_7 - IL_0093: ldloc.s V_6 - IL_0095: ldc.i4.1 - IL_0096: conv.i8 - IL_0097: add - IL_0098: stloc.s V_6 - IL_009a: ldloc.s V_6 - IL_009c: ldloc.s V_5 - IL_009e: blt.un.s IL_0085 - - IL_00a0: nop - IL_00a1: ldloc.3 - IL_00a2: ret - } - - .method public static uint64[] f9(uint64 start) cil managed - { - - .maxstack 5 - .locals init (uint64 V_0, - uint64 V_1, - uint64[] V_2, - uint64 V_3, - uint64 V_4) - IL_0000: nop - IL_0001: ldc.i4.s 10 - IL_0003: conv.i8 - IL_0004: ldarg.0 - IL_0005: bge.un.s IL_000c - - IL_0007: ldc.i4.0 - IL_0008: conv.i8 - IL_0009: nop - IL_000a: br.s IL_0015 - - IL_000c: ldc.i4.s 10 - IL_000e: conv.i8 - IL_000f: ldarg.0 - IL_0010: sub - IL_0011: ldc.i4.1 - IL_0012: conv.i8 - IL_0013: add.ovf.un - IL_0014: nop - IL_0015: stloc.0 - IL_0016: ldloc.0 - IL_0017: stloc.1 - IL_0018: ldloc.1 - IL_0019: brtrue.s IL_0021 + IL_003f: add + IL_0040: stloc.3 + IL_0041: ldloc.3 + IL_0042: ldloc.0 + IL_0043: blt.un.s IL_002f - IL_001b: call !!0[] [runtime]System.Array::Empty() - IL_0020: ret - - IL_0021: ldloc.1 - IL_0022: conv.ovf.i.un - IL_0023: newarr [runtime]System.UInt64 - IL_0028: stloc.2 - IL_0029: ldc.i4.0 - IL_002a: conv.i8 - IL_002b: stloc.3 - IL_002c: ldarg.0 - IL_002d: stloc.s V_4 - IL_002f: br.s IL_0043 - - IL_0031: ldloc.2 - IL_0032: ldloc.3 - IL_0033: conv.i - IL_0034: ldloc.s V_4 - IL_0036: stelem.i8 - IL_0037: ldloc.s V_4 - IL_0039: ldc.i4.1 - IL_003a: conv.i8 - IL_003b: add - IL_003c: stloc.s V_4 - IL_003e: ldloc.3 - IL_003f: ldc.i4.1 - IL_0040: conv.i8 - IL_0041: add - IL_0042: stloc.3 - IL_0043: ldloc.3 - IL_0044: ldloc.0 - IL_0045: blt.un.s IL_0031 - - IL_0047: ldloc.2 - IL_0048: ret + IL_0045: ldloc.2 + IL_0046: ret } - .method public static uint64[] f10(uint64 step) cil managed + .method public static uint64[] f8(uint64 start, + uint64 finish) cil managed { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) .maxstack 5 .locals init (uint64 V_0, - uint64 V_1, - uint64[] V_2, - uint64 V_3, - uint64 V_4) - IL_0000: nop + bool V_1, + uint64 V_2, + uint64[] V_3, + bool V_4, + uint64 V_5, + uint64 V_6, + uint64 V_7) + IL_0000: ldarg.1 IL_0001: ldarg.0 - IL_0002: brtrue.s IL_0013 + IL_0002: bge.un.s IL_0009 - IL_0004: ldc.i4.1 + IL_0004: ldc.i4.0 IL_0005: conv.i8 - IL_0006: ldarg.0 - IL_0007: ldc.i4.s 10 - IL_0009: conv.i8 - IL_000a: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeUInt64(uint64, - uint64, - uint64) - IL_000f: pop - IL_0010: nop - IL_0011: br.s IL_0014 - - IL_0013: nop - IL_0014: ldc.i4.s 10 - IL_0016: conv.i8 - IL_0017: ldc.i4.1 - IL_0018: conv.i8 - IL_0019: bge.un.s IL_0020 + IL_0006: nop + IL_0007: br.s IL_000d + + IL_0009: ldarg.1 + IL_000a: ldarg.0 + IL_000b: sub + IL_000c: nop + IL_000d: stloc.0 + IL_000e: ldloc.0 + IL_000f: ldc.i4.m1 + IL_0010: conv.i8 + IL_0011: ceq + IL_0013: stloc.1 + IL_0014: ldarg.1 + IL_0015: ldarg.0 + IL_0016: bge.un.s IL_001d - IL_001b: ldc.i4.0 - IL_001c: conv.i8 - IL_001d: nop - IL_001e: br.s IL_002c + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_0024 - IL_0020: ldc.i4.s 10 - IL_0022: conv.i8 - IL_0023: ldc.i4.1 - IL_0024: conv.i8 - IL_0025: sub - IL_0026: ldarg.0 - IL_0027: div.un - IL_0028: ldc.i4.1 - IL_0029: conv.i8 - IL_002a: add.ovf.un - IL_002b: nop - IL_002c: stloc.0 - IL_002d: ldloc.0 - IL_002e: stloc.1 - IL_002f: ldloc.1 - IL_0030: brtrue.s IL_0038 - - IL_0032: call !!0[] [runtime]System.Array::Empty() - IL_0037: ret - - IL_0038: ldloc.1 - IL_0039: conv.ovf.i.un - IL_003a: newarr [runtime]System.UInt64 - IL_003f: stloc.2 - IL_0040: ldc.i4.0 - IL_0041: conv.i8 - IL_0042: stloc.3 - IL_0043: ldc.i4.1 - IL_0044: conv.i8 - IL_0045: stloc.s V_4 - IL_0047: br.s IL_005a + IL_001d: ldarg.1 + IL_001e: ldarg.0 + IL_001f: sub + IL_0020: ldc.i4.1 + IL_0021: conv.i8 + IL_0022: add.ovf.un + IL_0023: nop + IL_0024: stloc.2 + IL_0025: ldloc.2 + IL_0026: brtrue.s IL_002e + + IL_0028: call !!0[] [runtime]System.Array::Empty() + IL_002d: ret + + IL_002e: ldloc.2 + IL_002f: conv.ovf.i.un + IL_0030: newarr [runtime]System.UInt64 + IL_0035: stloc.3 + IL_0036: ldloc.1 + IL_0037: brfalse.s IL_0069 - IL_0049: ldloc.2 - IL_004a: ldloc.3 - IL_004b: conv.i - IL_004c: ldloc.s V_4 - IL_004e: stelem.i8 - IL_004f: ldloc.s V_4 - IL_0051: ldarg.0 - IL_0052: add - IL_0053: stloc.s V_4 - IL_0055: ldloc.3 - IL_0056: ldc.i4.1 - IL_0057: conv.i8 - IL_0058: add - IL_0059: stloc.3 - IL_005a: ldloc.3 - IL_005b: ldloc.0 - IL_005c: blt.un.s IL_0049 - - IL_005e: ldloc.2 - IL_005f: ret + IL_0039: ldc.i4.1 + IL_003a: stloc.s V_4 + IL_003c: ldc.i4.0 + IL_003d: conv.i8 + IL_003e: stloc.s V_5 + IL_0040: ldarg.0 + IL_0041: stloc.s V_6 + IL_0043: br.s IL_0062 + + IL_0045: ldloc.3 + IL_0046: ldloc.s V_5 + IL_0048: conv.i + IL_0049: ldloc.s V_6 + IL_004b: stelem.i8 + IL_004c: ldloc.s V_6 + IL_004e: ldc.i4.1 + IL_004f: conv.i8 + IL_0050: add + IL_0051: stloc.s V_6 + IL_0053: ldloc.s V_5 + IL_0055: ldc.i4.1 + IL_0056: conv.i8 + IL_0057: add + IL_0058: stloc.s V_5 + IL_005a: ldloc.s V_5 + IL_005c: ldc.i4.0 + IL_005d: conv.i8 + IL_005e: cgt.un + IL_0060: stloc.s V_4 + IL_0062: ldloc.s V_4 + IL_0064: brtrue.s IL_0045 + + IL_0066: nop + IL_0067: br.s IL_00a0 + + IL_0069: ldarg.1 + IL_006a: ldarg.0 + IL_006b: bge.un.s IL_0072 + + IL_006d: ldc.i4.0 + IL_006e: conv.i8 + IL_006f: nop + IL_0070: br.s IL_0079 + + IL_0072: ldarg.1 + IL_0073: ldarg.0 + IL_0074: sub + IL_0075: ldc.i4.1 + IL_0076: conv.i8 + IL_0077: add.ovf.un + IL_0078: nop + IL_0079: stloc.s V_5 + IL_007b: ldc.i4.0 + IL_007c: conv.i8 + IL_007d: stloc.s V_6 + IL_007f: ldarg.0 + IL_0080: stloc.s V_7 + IL_0082: br.s IL_0099 + + IL_0084: ldloc.3 + IL_0085: ldloc.s V_6 + IL_0087: conv.i + IL_0088: ldloc.s V_7 + IL_008a: stelem.i8 + IL_008b: ldloc.s V_7 + IL_008d: ldc.i4.1 + IL_008e: conv.i8 + IL_008f: add + IL_0090: stloc.s V_7 + IL_0092: ldloc.s V_6 + IL_0094: ldc.i4.1 + IL_0095: conv.i8 + IL_0096: add + IL_0097: stloc.s V_6 + IL_0099: ldloc.s V_6 + IL_009b: ldloc.s V_5 + IL_009d: blt.un.s IL_0084 + + IL_009f: nop + IL_00a0: ldloc.3 + IL_00a1: ret } - .method public static uint64[] f11(uint64 finish) cil managed + .method public static uint64[] f9(uint64 start) cil managed { .maxstack 5 @@ -642,43 +477,41 @@ uint64[] V_2, uint64 V_3, uint64 V_4) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: ldc.i4.1 - IL_0003: conv.i8 + IL_0000: ldc.i4.s 10 + IL_0002: conv.i8 + IL_0003: ldarg.0 IL_0004: bge.un.s IL_000b IL_0006: ldc.i4.0 IL_0007: conv.i8 IL_0008: nop - IL_0009: br.s IL_0013 + IL_0009: br.s IL_0014 - IL_000b: ldarg.0 - IL_000c: ldc.i4.1 + IL_000b: ldc.i4.s 10 IL_000d: conv.i8 - IL_000e: sub - IL_000f: ldc.i4.1 - IL_0010: conv.i8 - IL_0011: add.ovf.un - IL_0012: nop - IL_0013: stloc.0 - IL_0014: ldloc.0 - IL_0015: stloc.1 - IL_0016: ldloc.1 - IL_0017: brtrue.s IL_001f - - IL_0019: call !!0[] [runtime]System.Array::Empty() - IL_001e: ret - - IL_001f: ldloc.1 - IL_0020: conv.ovf.i.un - IL_0021: newarr [runtime]System.UInt64 - IL_0026: stloc.2 - IL_0027: ldc.i4.0 - IL_0028: conv.i8 - IL_0029: stloc.3 - IL_002a: ldc.i4.1 - IL_002b: conv.i8 + IL_000e: ldarg.0 + IL_000f: sub + IL_0010: ldc.i4.1 + IL_0011: conv.i8 + IL_0012: add.ovf.un + IL_0013: nop + IL_0014: stloc.0 + IL_0015: ldloc.0 + IL_0016: stloc.1 + IL_0017: ldloc.1 + IL_0018: brtrue.s IL_0020 + + IL_001a: call !!0[] [runtime]System.Array::Empty() + IL_001f: ret + + IL_0020: ldloc.1 + IL_0021: conv.ovf.i.un + IL_0022: newarr [runtime]System.UInt64 + IL_0027: stloc.2 + IL_0028: ldc.i4.0 + IL_0029: conv.i8 + IL_002a: stloc.3 + IL_002b: ldarg.0 IL_002c: stloc.s V_4 IL_002e: br.s IL_0042 @@ -705,10 +538,8 @@ IL_0047: ret } - .method public static uint64[] f12(uint64 start, - uint64 step) cil managed + .method public static uint64[] f10(uint64 step) cil managed { - .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) .maxstack 5 .locals init (uint64 V_0, @@ -716,12 +547,12 @@ uint64[] V_2, uint64 V_3, uint64 V_4) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: brtrue.s IL_0012 + IL_0000: ldarg.0 + IL_0001: brtrue.s IL_0012 - IL_0004: ldarg.0 - IL_0005: ldarg.1 + IL_0003: ldc.i4.1 + IL_0004: conv.i8 + IL_0005: ldarg.0 IL_0006: ldc.i4.s 10 IL_0008: conv.i8 IL_0009: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeUInt64(uint64, @@ -734,215 +565,142 @@ IL_0012: nop IL_0013: ldc.i4.s 10 IL_0015: conv.i8 - IL_0016: ldarg.0 - IL_0017: bge.un.s IL_001e + IL_0016: ldc.i4.1 + IL_0017: conv.i8 + IL_0018: bge.un.s IL_001f - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0029 + IL_001a: ldc.i4.0 + IL_001b: conv.i8 + IL_001c: nop + IL_001d: br.s IL_002b - IL_001e: ldc.i4.s 10 - IL_0020: conv.i8 - IL_0021: ldarg.0 - IL_0022: sub - IL_0023: ldarg.1 - IL_0024: div.un - IL_0025: ldc.i4.1 - IL_0026: conv.i8 - IL_0027: add.ovf.un - IL_0028: nop - IL_0029: stloc.0 - IL_002a: ldloc.0 - IL_002b: stloc.1 - IL_002c: ldloc.1 - IL_002d: brtrue.s IL_0035 - - IL_002f: call !!0[] [runtime]System.Array::Empty() - IL_0034: ret - - IL_0035: ldloc.1 - IL_0036: conv.ovf.i.un - IL_0037: newarr [runtime]System.UInt64 - IL_003c: stloc.2 - IL_003d: ldc.i4.0 - IL_003e: conv.i8 - IL_003f: stloc.3 - IL_0040: ldarg.0 - IL_0041: stloc.s V_4 - IL_0043: br.s IL_0056 + IL_001f: ldc.i4.s 10 + IL_0021: conv.i8 + IL_0022: ldc.i4.1 + IL_0023: conv.i8 + IL_0024: sub + IL_0025: ldarg.0 + IL_0026: div.un + IL_0027: ldc.i4.1 + IL_0028: conv.i8 + IL_0029: add.ovf.un + IL_002a: nop + IL_002b: stloc.0 + IL_002c: ldloc.0 + IL_002d: stloc.1 + IL_002e: ldloc.1 + IL_002f: brtrue.s IL_0037 - IL_0045: ldloc.2 - IL_0046: ldloc.3 - IL_0047: conv.i - IL_0048: ldloc.s V_4 - IL_004a: stelem.i8 + IL_0031: call !!0[] [runtime]System.Array::Empty() + IL_0036: ret + + IL_0037: ldloc.1 + IL_0038: conv.ovf.i.un + IL_0039: newarr [runtime]System.UInt64 + IL_003e: stloc.2 + IL_003f: ldc.i4.0 + IL_0040: conv.i8 + IL_0041: stloc.3 + IL_0042: ldc.i4.1 + IL_0043: conv.i8 + IL_0044: stloc.s V_4 + IL_0046: br.s IL_0059 + + IL_0048: ldloc.2 + IL_0049: ldloc.3 + IL_004a: conv.i IL_004b: ldloc.s V_4 - IL_004d: ldarg.1 - IL_004e: add - IL_004f: stloc.s V_4 - IL_0051: ldloc.3 - IL_0052: ldc.i4.1 - IL_0053: conv.i8 - IL_0054: add - IL_0055: stloc.3 - IL_0056: ldloc.3 - IL_0057: ldloc.0 - IL_0058: blt.un.s IL_0045 - - IL_005a: ldloc.2 - IL_005b: ret + IL_004d: stelem.i8 + IL_004e: ldloc.s V_4 + IL_0050: ldarg.0 + IL_0051: add + IL_0052: stloc.s V_4 + IL_0054: ldloc.3 + IL_0055: ldc.i4.1 + IL_0056: conv.i8 + IL_0057: add + IL_0058: stloc.3 + IL_0059: ldloc.3 + IL_005a: ldloc.0 + IL_005b: blt.un.s IL_0048 + + IL_005d: ldloc.2 + IL_005e: ret } - .method public static uint64[] f13(uint64 start, - uint64 finish) cil managed + .method public static uint64[] f11(uint64 finish) cil managed { - .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) .maxstack 5 .locals init (uint64 V_0, - bool V_1, - uint64 V_2, - uint64[] V_3, - bool V_4, - uint64 V_5, - uint64 V_6, - uint64 V_7) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: ldarg.0 + uint64 V_1, + uint64[] V_2, + uint64 V_3, + uint64 V_4) + IL_0000: ldarg.0 + IL_0001: ldc.i4.1 + IL_0002: conv.i8 IL_0003: bge.un.s IL_000a IL_0005: ldc.i4.0 IL_0006: conv.i8 IL_0007: nop - IL_0008: br.s IL_000e + IL_0008: br.s IL_0012 - IL_000a: ldarg.1 - IL_000b: ldarg.0 - IL_000c: sub - IL_000d: nop - IL_000e: stloc.0 - IL_000f: ldloc.0 - IL_0010: ldc.i4.m1 - IL_0011: conv.i8 - IL_0012: ceq + IL_000a: ldarg.0 + IL_000b: ldc.i4.1 + IL_000c: conv.i8 + IL_000d: sub + IL_000e: ldc.i4.1 + IL_000f: conv.i8 + IL_0010: add.ovf.un + IL_0011: nop + IL_0012: stloc.0 + IL_0013: ldloc.0 IL_0014: stloc.1 - IL_0015: ldarg.1 - IL_0016: ldarg.0 - IL_0017: bge.un.s IL_001e + IL_0015: ldloc.1 + IL_0016: brtrue.s IL_001e - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0025 + IL_0018: call !!0[] [runtime]System.Array::Empty() + IL_001d: ret - IL_001e: ldarg.1 - IL_001f: ldarg.0 - IL_0020: sub - IL_0021: ldc.i4.1 - IL_0022: conv.i8 - IL_0023: add.ovf.un - IL_0024: nop + IL_001e: ldloc.1 + IL_001f: conv.ovf.i.un + IL_0020: newarr [runtime]System.UInt64 IL_0025: stloc.2 - IL_0026: ldloc.2 - IL_0027: brtrue.s IL_002f - - IL_0029: call !!0[] [runtime]System.Array::Empty() - IL_002e: ret + IL_0026: ldc.i4.0 + IL_0027: conv.i8 + IL_0028: stloc.3 + IL_0029: ldc.i4.1 + IL_002a: conv.i8 + IL_002b: stloc.s V_4 + IL_002d: br.s IL_0041 IL_002f: ldloc.2 - IL_0030: conv.ovf.i.un - IL_0031: newarr [runtime]System.UInt64 - IL_0036: stloc.3 - IL_0037: ldloc.1 - IL_0038: brfalse.s IL_006a - - IL_003a: ldc.i4.1 - IL_003b: stloc.s V_4 - IL_003d: ldc.i4.0 + IL_0030: ldloc.3 + IL_0031: conv.i + IL_0032: ldloc.s V_4 + IL_0034: stelem.i8 + IL_0035: ldloc.s V_4 + IL_0037: ldc.i4.1 + IL_0038: conv.i8 + IL_0039: add + IL_003a: stloc.s V_4 + IL_003c: ldloc.3 + IL_003d: ldc.i4.1 IL_003e: conv.i8 - IL_003f: stloc.s V_5 - IL_0041: ldarg.0 - IL_0042: stloc.s V_6 - IL_0044: br.s IL_0063 - - IL_0046: ldloc.3 - IL_0047: ldloc.s V_5 - IL_0049: conv.i - IL_004a: ldloc.s V_6 - IL_004c: stelem.i8 - IL_004d: ldloc.s V_6 - IL_004f: ldc.i4.1 - IL_0050: conv.i8 - IL_0051: add - IL_0052: stloc.s V_6 - IL_0054: ldloc.s V_5 - IL_0056: ldc.i4.1 - IL_0057: conv.i8 - IL_0058: add - IL_0059: stloc.s V_5 - IL_005b: ldloc.s V_5 - IL_005d: ldc.i4.0 - IL_005e: conv.i8 - IL_005f: cgt.un - IL_0061: stloc.s V_4 - IL_0063: ldloc.s V_4 - IL_0065: brtrue.s IL_0046 - - IL_0067: nop - IL_0068: br.s IL_00a1 - - IL_006a: ldarg.1 - IL_006b: ldarg.0 - IL_006c: bge.un.s IL_0073 - - IL_006e: ldc.i4.0 - IL_006f: conv.i8 - IL_0070: nop - IL_0071: br.s IL_007a - - IL_0073: ldarg.1 - IL_0074: ldarg.0 - IL_0075: sub - IL_0076: ldc.i4.1 - IL_0077: conv.i8 - IL_0078: add.ovf.un - IL_0079: nop - IL_007a: stloc.s V_5 - IL_007c: ldc.i4.0 - IL_007d: conv.i8 - IL_007e: stloc.s V_6 - IL_0080: ldarg.0 - IL_0081: stloc.s V_7 - IL_0083: br.s IL_009a - - IL_0085: ldloc.3 - IL_0086: ldloc.s V_6 - IL_0088: conv.i - IL_0089: ldloc.s V_7 - IL_008b: stelem.i8 - IL_008c: ldloc.s V_7 - IL_008e: ldc.i4.1 - IL_008f: conv.i8 - IL_0090: add - IL_0091: stloc.s V_7 - IL_0093: ldloc.s V_6 - IL_0095: ldc.i4.1 - IL_0096: conv.i8 - IL_0097: add - IL_0098: stloc.s V_6 - IL_009a: ldloc.s V_6 - IL_009c: ldloc.s V_5 - IL_009e: blt.un.s IL_0085 + IL_003f: add + IL_0040: stloc.3 + IL_0041: ldloc.3 + IL_0042: ldloc.0 + IL_0043: blt.un.s IL_002f - IL_00a0: nop - IL_00a1: ldloc.3 - IL_00a2: ret + IL_0045: ldloc.2 + IL_0046: ret } - .method public static uint64[] f14(uint64 step, - uint64 finish) cil managed + .method public static uint64[] f12(uint64 start, + uint64 step) cil managed { .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) @@ -952,14 +710,13 @@ uint64[] V_2, uint64 V_3, uint64 V_4) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: brtrue.s IL_0011 + IL_0000: ldarg.1 + IL_0001: brtrue.s IL_0011 - IL_0004: ldc.i4.1 - IL_0005: conv.i8 - IL_0006: ldarg.0 - IL_0007: ldarg.1 + IL_0003: ldarg.0 + IL_0004: ldarg.1 + IL_0005: ldc.i4.s 10 + IL_0007: conv.i8 IL_0008: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeUInt64(uint64, uint64, uint64) @@ -968,75 +725,72 @@ IL_000f: br.s IL_0012 IL_0011: nop - IL_0012: ldarg.1 - IL_0013: ldc.i4.1 + IL_0012: ldc.i4.s 10 IL_0014: conv.i8 - IL_0015: bge.un.s IL_001c + IL_0015: ldarg.0 + IL_0016: bge.un.s IL_001d - IL_0017: ldc.i4.0 - IL_0018: conv.i8 - IL_0019: nop - IL_001a: br.s IL_0026 + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_0028 - IL_001c: ldarg.1 - IL_001d: ldc.i4.1 - IL_001e: conv.i8 - IL_001f: sub + IL_001d: ldc.i4.s 10 + IL_001f: conv.i8 IL_0020: ldarg.0 - IL_0021: div.un - IL_0022: ldc.i4.1 - IL_0023: conv.i8 - IL_0024: add.ovf.un - IL_0025: nop - IL_0026: stloc.0 - IL_0027: ldloc.0 - IL_0028: stloc.1 - IL_0029: ldloc.1 - IL_002a: brtrue.s IL_0032 - - IL_002c: call !!0[] [runtime]System.Array::Empty() - IL_0031: ret - - IL_0032: ldloc.1 - IL_0033: conv.ovf.i.un - IL_0034: newarr [runtime]System.UInt64 - IL_0039: stloc.2 - IL_003a: ldc.i4.0 - IL_003b: conv.i8 - IL_003c: stloc.3 - IL_003d: ldc.i4.1 - IL_003e: conv.i8 - IL_003f: stloc.s V_4 - IL_0041: br.s IL_0054 + IL_0021: sub + IL_0022: ldarg.1 + IL_0023: div.un + IL_0024: ldc.i4.1 + IL_0025: conv.i8 + IL_0026: add.ovf.un + IL_0027: nop + IL_0028: stloc.0 + IL_0029: ldloc.0 + IL_002a: stloc.1 + IL_002b: ldloc.1 + IL_002c: brtrue.s IL_0034 - IL_0043: ldloc.2 - IL_0044: ldloc.3 - IL_0045: conv.i - IL_0046: ldloc.s V_4 - IL_0048: stelem.i8 - IL_0049: ldloc.s V_4 - IL_004b: ldarg.0 - IL_004c: add - IL_004d: stloc.s V_4 - IL_004f: ldloc.3 - IL_0050: ldc.i4.1 - IL_0051: conv.i8 - IL_0052: add - IL_0053: stloc.3 - IL_0054: ldloc.3 - IL_0055: ldloc.0 - IL_0056: blt.un.s IL_0043 + IL_002e: call !!0[] [runtime]System.Array::Empty() + IL_0033: ret - IL_0058: ldloc.2 - IL_0059: ret + IL_0034: ldloc.1 + IL_0035: conv.ovf.i.un + IL_0036: newarr [runtime]System.UInt64 + IL_003b: stloc.2 + IL_003c: ldc.i4.0 + IL_003d: conv.i8 + IL_003e: stloc.3 + IL_003f: ldarg.0 + IL_0040: stloc.s V_4 + IL_0042: br.s IL_0055 + + IL_0044: ldloc.2 + IL_0045: ldloc.3 + IL_0046: conv.i + IL_0047: ldloc.s V_4 + IL_0049: stelem.i8 + IL_004a: ldloc.s V_4 + IL_004c: ldarg.1 + IL_004d: add + IL_004e: stloc.s V_4 + IL_0050: ldloc.3 + IL_0051: ldc.i4.1 + IL_0052: conv.i8 + IL_0053: add + IL_0054: stloc.3 + IL_0055: ldloc.3 + IL_0056: ldloc.0 + IL_0057: blt.un.s IL_0044 + + IL_0059: ldloc.2 + IL_005a: ret } - .method public static uint64[] f15(uint64 start, - uint64 step, + .method public static uint64[] f13(uint64 start, uint64 finish) cil managed { - .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 03 00 00 00 01 00 00 00 01 00 00 00 01 00 - 00 00 00 00 ) + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) .maxstack 5 .locals init (uint64 V_0, @@ -1047,13 +801,156 @@ uint64 V_5, uint64 V_6, uint64 V_7) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: brtrue.s IL_0010 + IL_0000: ldarg.1 + IL_0001: ldarg.0 + IL_0002: bge.un.s IL_0009 + + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_000d + + IL_0009: ldarg.1 + IL_000a: ldarg.0 + IL_000b: sub + IL_000c: nop + IL_000d: stloc.0 + IL_000e: ldloc.0 + IL_000f: ldc.i4.m1 + IL_0010: conv.i8 + IL_0011: ceq + IL_0013: stloc.1 + IL_0014: ldarg.1 + IL_0015: ldarg.0 + IL_0016: bge.un.s IL_001d + + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_0024 + + IL_001d: ldarg.1 + IL_001e: ldarg.0 + IL_001f: sub + IL_0020: ldc.i4.1 + IL_0021: conv.i8 + IL_0022: add.ovf.un + IL_0023: nop + IL_0024: stloc.2 + IL_0025: ldloc.2 + IL_0026: brtrue.s IL_002e + + IL_0028: call !!0[] [runtime]System.Array::Empty() + IL_002d: ret + + IL_002e: ldloc.2 + IL_002f: conv.ovf.i.un + IL_0030: newarr [runtime]System.UInt64 + IL_0035: stloc.3 + IL_0036: ldloc.1 + IL_0037: brfalse.s IL_0069 - IL_0004: ldarg.0 - IL_0005: ldarg.1 - IL_0006: ldarg.2 + IL_0039: ldc.i4.1 + IL_003a: stloc.s V_4 + IL_003c: ldc.i4.0 + IL_003d: conv.i8 + IL_003e: stloc.s V_5 + IL_0040: ldarg.0 + IL_0041: stloc.s V_6 + IL_0043: br.s IL_0062 + + IL_0045: ldloc.3 + IL_0046: ldloc.s V_5 + IL_0048: conv.i + IL_0049: ldloc.s V_6 + IL_004b: stelem.i8 + IL_004c: ldloc.s V_6 + IL_004e: ldc.i4.1 + IL_004f: conv.i8 + IL_0050: add + IL_0051: stloc.s V_6 + IL_0053: ldloc.s V_5 + IL_0055: ldc.i4.1 + IL_0056: conv.i8 + IL_0057: add + IL_0058: stloc.s V_5 + IL_005a: ldloc.s V_5 + IL_005c: ldc.i4.0 + IL_005d: conv.i8 + IL_005e: cgt.un + IL_0060: stloc.s V_4 + IL_0062: ldloc.s V_4 + IL_0064: brtrue.s IL_0045 + + IL_0066: nop + IL_0067: br.s IL_00a0 + + IL_0069: ldarg.1 + IL_006a: ldarg.0 + IL_006b: bge.un.s IL_0072 + + IL_006d: ldc.i4.0 + IL_006e: conv.i8 + IL_006f: nop + IL_0070: br.s IL_0079 + + IL_0072: ldarg.1 + IL_0073: ldarg.0 + IL_0074: sub + IL_0075: ldc.i4.1 + IL_0076: conv.i8 + IL_0077: add.ovf.un + IL_0078: nop + IL_0079: stloc.s V_5 + IL_007b: ldc.i4.0 + IL_007c: conv.i8 + IL_007d: stloc.s V_6 + IL_007f: ldarg.0 + IL_0080: stloc.s V_7 + IL_0082: br.s IL_0099 + + IL_0084: ldloc.3 + IL_0085: ldloc.s V_6 + IL_0087: conv.i + IL_0088: ldloc.s V_7 + IL_008a: stelem.i8 + IL_008b: ldloc.s V_7 + IL_008d: ldc.i4.1 + IL_008e: conv.i8 + IL_008f: add + IL_0090: stloc.s V_7 + IL_0092: ldloc.s V_6 + IL_0094: ldc.i4.1 + IL_0095: conv.i8 + IL_0096: add + IL_0097: stloc.s V_6 + IL_0099: ldloc.s V_6 + IL_009b: ldloc.s V_5 + IL_009d: blt.un.s IL_0084 + + IL_009f: nop + IL_00a0: ldloc.3 + IL_00a1: ret + } + + .method public static uint64[] f14(uint64 step, + uint64 finish) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) + + .maxstack 5 + .locals init (uint64 V_0, + uint64 V_1, + uint64[] V_2, + uint64 V_3, + uint64 V_4) + IL_0000: ldarg.0 + IL_0001: brtrue.s IL_0010 + + IL_0003: ldc.i4.1 + IL_0004: conv.i8 + IL_0005: ldarg.0 + IL_0006: ldarg.1 IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeUInt64(uint64, uint64, uint64) @@ -1062,140 +959,233 @@ IL_000e: br.s IL_0011 IL_0010: nop - IL_0011: ldarg.2 - IL_0012: ldarg.0 - IL_0013: bge.un.s IL_001a + IL_0011: ldarg.1 + IL_0012: ldc.i4.1 + IL_0013: conv.i8 + IL_0014: bge.un.s IL_001b - IL_0015: ldc.i4.0 - IL_0016: conv.i8 - IL_0017: nop - IL_0018: br.s IL_0020 + IL_0016: ldc.i4.0 + IL_0017: conv.i8 + IL_0018: nop + IL_0019: br.s IL_0025 - IL_001a: ldarg.2 - IL_001b: ldarg.0 - IL_001c: sub - IL_001d: ldarg.1 - IL_001e: div.un - IL_001f: nop - IL_0020: stloc.0 - IL_0021: ldloc.0 - IL_0022: ldc.i4.m1 - IL_0023: conv.i8 - IL_0024: ceq - IL_0026: stloc.1 - IL_0027: ldarg.2 - IL_0028: ldarg.0 - IL_0029: bge.un.s IL_0030 - - IL_002b: ldc.i4.0 - IL_002c: conv.i8 - IL_002d: nop - IL_002e: br.s IL_0039 - - IL_0030: ldarg.2 - IL_0031: ldarg.0 - IL_0032: sub - IL_0033: ldarg.1 - IL_0034: div.un - IL_0035: ldc.i4.1 - IL_0036: conv.i8 - IL_0037: add.ovf.un - IL_0038: nop - IL_0039: stloc.2 - IL_003a: ldloc.2 - IL_003b: brtrue.s IL_0043 - - IL_003d: call !!0[] [runtime]System.Array::Empty() - IL_0042: ret - - IL_0043: ldloc.2 - IL_0044: conv.ovf.i.un - IL_0045: newarr [runtime]System.UInt64 - IL_004a: stloc.3 - IL_004b: ldloc.1 - IL_004c: brfalse.s IL_007d + IL_001b: ldarg.1 + IL_001c: ldc.i4.1 + IL_001d: conv.i8 + IL_001e: sub + IL_001f: ldarg.0 + IL_0020: div.un + IL_0021: ldc.i4.1 + IL_0022: conv.i8 + IL_0023: add.ovf.un + IL_0024: nop + IL_0025: stloc.0 + IL_0026: ldloc.0 + IL_0027: stloc.1 + IL_0028: ldloc.1 + IL_0029: brtrue.s IL_0031 + + IL_002b: call !!0[] [runtime]System.Array::Empty() + IL_0030: ret + + IL_0031: ldloc.1 + IL_0032: conv.ovf.i.un + IL_0033: newarr [runtime]System.UInt64 + IL_0038: stloc.2 + IL_0039: ldc.i4.0 + IL_003a: conv.i8 + IL_003b: stloc.3 + IL_003c: ldc.i4.1 + IL_003d: conv.i8 + IL_003e: stloc.s V_4 + IL_0040: br.s IL_0053 - IL_004e: ldc.i4.1 - IL_004f: stloc.s V_4 - IL_0051: ldc.i4.0 - IL_0052: conv.i8 - IL_0053: stloc.s V_5 - IL_0055: ldarg.0 - IL_0056: stloc.s V_6 - IL_0058: br.s IL_0076 + IL_0042: ldloc.2 + IL_0043: ldloc.3 + IL_0044: conv.i + IL_0045: ldloc.s V_4 + IL_0047: stelem.i8 + IL_0048: ldloc.s V_4 + IL_004a: ldarg.0 + IL_004b: add + IL_004c: stloc.s V_4 + IL_004e: ldloc.3 + IL_004f: ldc.i4.1 + IL_0050: conv.i8 + IL_0051: add + IL_0052: stloc.3 + IL_0053: ldloc.3 + IL_0054: ldloc.0 + IL_0055: blt.un.s IL_0042 - IL_005a: ldloc.3 - IL_005b: ldloc.s V_5 - IL_005d: conv.i - IL_005e: ldloc.s V_6 - IL_0060: stelem.i8 - IL_0061: ldloc.s V_6 - IL_0063: ldarg.1 - IL_0064: add - IL_0065: stloc.s V_6 - IL_0067: ldloc.s V_5 - IL_0069: ldc.i4.1 - IL_006a: conv.i8 - IL_006b: add - IL_006c: stloc.s V_5 - IL_006e: ldloc.s V_5 - IL_0070: ldc.i4.0 - IL_0071: conv.i8 - IL_0072: cgt.un - IL_0074: stloc.s V_4 - IL_0076: ldloc.s V_4 - IL_0078: brtrue.s IL_005a - - IL_007a: nop - IL_007b: br.s IL_00b5 - - IL_007d: ldarg.2 - IL_007e: ldarg.0 - IL_007f: bge.un.s IL_0086 - - IL_0081: ldc.i4.0 - IL_0082: conv.i8 - IL_0083: nop - IL_0084: br.s IL_008f - - IL_0086: ldarg.2 - IL_0087: ldarg.0 - IL_0088: sub - IL_0089: ldarg.1 - IL_008a: div.un - IL_008b: ldc.i4.1 - IL_008c: conv.i8 - IL_008d: add.ovf.un - IL_008e: nop - IL_008f: stloc.s V_5 - IL_0091: ldc.i4.0 - IL_0092: conv.i8 - IL_0093: stloc.s V_6 - IL_0095: ldarg.0 - IL_0096: stloc.s V_7 - IL_0098: br.s IL_00ae - - IL_009a: ldloc.3 - IL_009b: ldloc.s V_6 - IL_009d: conv.i - IL_009e: ldloc.s V_7 - IL_00a0: stelem.i8 - IL_00a1: ldloc.s V_7 - IL_00a3: ldarg.1 - IL_00a4: add - IL_00a5: stloc.s V_7 - IL_00a7: ldloc.s V_6 - IL_00a9: ldc.i4.1 - IL_00aa: conv.i8 - IL_00ab: add - IL_00ac: stloc.s V_6 - IL_00ae: ldloc.s V_6 - IL_00b0: ldloc.s V_5 - IL_00b2: blt.un.s IL_009a - - IL_00b4: nop - IL_00b5: ldloc.3 - IL_00b6: ret + IL_0057: ldloc.2 + IL_0058: ret + } + + .method public static uint64[] f15(uint64 start, + uint64 step, + uint64 finish) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 03 00 00 00 01 00 00 00 01 00 00 00 01 00 + 00 00 00 00 ) + + .maxstack 5 + .locals init (uint64 V_0, + bool V_1, + uint64 V_2, + uint64[] V_3, + bool V_4, + uint64 V_5, + uint64 V_6, + uint64 V_7) + IL_0000: ldarg.1 + IL_0001: brtrue.s IL_000f + + IL_0003: ldarg.0 + IL_0004: ldarg.1 + IL_0005: ldarg.2 + IL_0006: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeUInt64(uint64, + uint64, + uint64) + IL_000b: pop + IL_000c: nop + IL_000d: br.s IL_0010 + + IL_000f: nop + IL_0010: ldarg.2 + IL_0011: ldarg.0 + IL_0012: bge.un.s IL_0019 + + IL_0014: ldc.i4.0 + IL_0015: conv.i8 + IL_0016: nop + IL_0017: br.s IL_001f + + IL_0019: ldarg.2 + IL_001a: ldarg.0 + IL_001b: sub + IL_001c: ldarg.1 + IL_001d: div.un + IL_001e: nop + IL_001f: stloc.0 + IL_0020: ldloc.0 + IL_0021: ldc.i4.m1 + IL_0022: conv.i8 + IL_0023: ceq + IL_0025: stloc.1 + IL_0026: ldarg.2 + IL_0027: ldarg.0 + IL_0028: bge.un.s IL_002f + + IL_002a: ldc.i4.0 + IL_002b: conv.i8 + IL_002c: nop + IL_002d: br.s IL_0038 + + IL_002f: ldarg.2 + IL_0030: ldarg.0 + IL_0031: sub + IL_0032: ldarg.1 + IL_0033: div.un + IL_0034: ldc.i4.1 + IL_0035: conv.i8 + IL_0036: add.ovf.un + IL_0037: nop + IL_0038: stloc.2 + IL_0039: ldloc.2 + IL_003a: brtrue.s IL_0042 + + IL_003c: call !!0[] [runtime]System.Array::Empty() + IL_0041: ret + + IL_0042: ldloc.2 + IL_0043: conv.ovf.i.un + IL_0044: newarr [runtime]System.UInt64 + IL_0049: stloc.3 + IL_004a: ldloc.1 + IL_004b: brfalse.s IL_007c + + IL_004d: ldc.i4.1 + IL_004e: stloc.s V_4 + IL_0050: ldc.i4.0 + IL_0051: conv.i8 + IL_0052: stloc.s V_5 + IL_0054: ldarg.0 + IL_0055: stloc.s V_6 + IL_0057: br.s IL_0075 + + IL_0059: ldloc.3 + IL_005a: ldloc.s V_5 + IL_005c: conv.i + IL_005d: ldloc.s V_6 + IL_005f: stelem.i8 + IL_0060: ldloc.s V_6 + IL_0062: ldarg.1 + IL_0063: add + IL_0064: stloc.s V_6 + IL_0066: ldloc.s V_5 + IL_0068: ldc.i4.1 + IL_0069: conv.i8 + IL_006a: add + IL_006b: stloc.s V_5 + IL_006d: ldloc.s V_5 + IL_006f: ldc.i4.0 + IL_0070: conv.i8 + IL_0071: cgt.un + IL_0073: stloc.s V_4 + IL_0075: ldloc.s V_4 + IL_0077: brtrue.s IL_0059 + + IL_0079: nop + IL_007a: br.s IL_00b4 + + IL_007c: ldarg.2 + IL_007d: ldarg.0 + IL_007e: bge.un.s IL_0085 + + IL_0080: ldc.i4.0 + IL_0081: conv.i8 + IL_0082: nop + IL_0083: br.s IL_008e + + IL_0085: ldarg.2 + IL_0086: ldarg.0 + IL_0087: sub + IL_0088: ldarg.1 + IL_0089: div.un + IL_008a: ldc.i4.1 + IL_008b: conv.i8 + IL_008c: add.ovf.un + IL_008d: nop + IL_008e: stloc.s V_5 + IL_0090: ldc.i4.0 + IL_0091: conv.i8 + IL_0092: stloc.s V_6 + IL_0094: ldarg.0 + IL_0095: stloc.s V_7 + IL_0097: br.s IL_00ad + + IL_0099: ldloc.3 + IL_009a: ldloc.s V_6 + IL_009c: conv.i + IL_009d: ldloc.s V_7 + IL_009f: stelem.i8 + IL_00a0: ldloc.s V_7 + IL_00a2: ldarg.1 + IL_00a3: add + IL_00a4: stloc.s V_7 + IL_00a6: ldloc.s V_6 + IL_00a8: ldc.i4.1 + IL_00a9: conv.i8 + IL_00aa: add + IL_00ab: stloc.s V_6 + IL_00ad: ldloc.s V_6 + IL_00af: ldloc.s V_5 + IL_00b1: blt.un.s IL_0099 + + IL_00b3: nop + IL_00b4: ldloc.3 + IL_00b5: ret } .method public static uint64[] f16(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f) cil managed @@ -1951,4 +1941,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/UInt64RangeLists.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/UInt64RangeLists.fs.il.bsl index 65744637ab8..e908b1a6b4f 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/UInt64RangeLists.fs.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ComputedCollections/UInt64RangeLists.fs.il.bsl @@ -174,89 +174,29 @@ valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, uint64 V_2, uint64 V_3) - IL_0000: nop - IL_0001: ldc.i4.s 10 - IL_0003: conv.i8 - IL_0004: ldarg.0 - IL_0005: bge.un.s IL_000c - - IL_0007: ldc.i4.0 - IL_0008: conv.i8 - IL_0009: nop - IL_000a: br.s IL_0015 - - IL_000c: ldc.i4.s 10 - IL_000e: conv.i8 - IL_000f: ldarg.0 - IL_0010: sub - IL_0011: ldc.i4.1 - IL_0012: conv.i8 - IL_0013: add.ovf.un - IL_0014: nop - IL_0015: stloc.0 - IL_0016: ldc.i4.0 - IL_0017: conv.i8 - IL_0018: stloc.2 - IL_0019: ldarg.0 - IL_001a: stloc.3 - IL_001b: br.s IL_0030 - - IL_001d: ldloca.s V_1 - IL_001f: ldloc.3 - IL_0020: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0025: nop - IL_0026: ldloc.3 - IL_0027: ldc.i4.1 - IL_0028: conv.i8 - IL_0029: add - IL_002a: stloc.3 - IL_002b: ldloc.2 - IL_002c: ldc.i4.1 - IL_002d: conv.i8 - IL_002e: add - IL_002f: stloc.2 - IL_0030: ldloc.2 - IL_0031: ldloc.0 - IL_0032: blt.un.s IL_001d - - IL_0034: ldloca.s V_1 - IL_0036: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_003b: ret - } - - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f7(uint64 finish) cil managed - { - - .maxstack 4 - .locals init (uint64 V_0, - valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, - uint64 V_2, - uint64 V_3) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: ldc.i4.1 - IL_0003: conv.i8 + IL_0000: ldc.i4.s 10 + IL_0002: conv.i8 + IL_0003: ldarg.0 IL_0004: bge.un.s IL_000b IL_0006: ldc.i4.0 IL_0007: conv.i8 IL_0008: nop - IL_0009: br.s IL_0013 + IL_0009: br.s IL_0014 - IL_000b: ldarg.0 - IL_000c: ldc.i4.1 + IL_000b: ldc.i4.s 10 IL_000d: conv.i8 - IL_000e: sub - IL_000f: ldc.i4.1 - IL_0010: conv.i8 - IL_0011: add.ovf.un - IL_0012: nop - IL_0013: stloc.0 - IL_0014: ldc.i4.0 - IL_0015: conv.i8 - IL_0016: stloc.2 - IL_0017: ldc.i4.1 - IL_0018: conv.i8 + IL_000e: ldarg.0 + IL_000f: sub + IL_0010: ldc.i4.1 + IL_0011: conv.i8 + IL_0012: add.ovf.un + IL_0013: nop + IL_0014: stloc.0 + IL_0015: ldc.i4.0 + IL_0016: conv.i8 + IL_0017: stloc.2 + IL_0018: ldarg.0 IL_0019: stloc.3 IL_001a: br.s IL_002f @@ -283,260 +223,181 @@ IL_003a: ret } - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f8(uint64 start, uint64 finish) cil managed + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f7(uint64 finish) cil managed { - .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) .maxstack 4 .locals init (uint64 V_0, - bool V_1, - valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_2, - bool V_3, - uint64 V_4, - uint64 V_5, - uint64 V_6) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: ldarg.0 + valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, + uint64 V_2, + uint64 V_3) + IL_0000: ldarg.0 + IL_0001: ldc.i4.1 + IL_0002: conv.i8 IL_0003: bge.un.s IL_000a IL_0005: ldc.i4.0 IL_0006: conv.i8 IL_0007: nop - IL_0008: br.s IL_000e + IL_0008: br.s IL_0012 - IL_000a: ldarg.1 - IL_000b: ldarg.0 - IL_000c: sub - IL_000d: nop - IL_000e: stloc.0 - IL_000f: ldloc.0 - IL_0010: ldc.i4.m1 - IL_0011: conv.i8 - IL_0012: ceq - IL_0014: stloc.1 - IL_0015: ldloc.1 - IL_0016: brfalse.s IL_0048 - - IL_0018: ldc.i4.1 - IL_0019: stloc.3 - IL_001a: ldc.i4.0 - IL_001b: conv.i8 - IL_001c: stloc.s V_4 - IL_001e: ldarg.0 - IL_001f: stloc.s V_5 - IL_0021: br.s IL_0042 - - IL_0023: ldloca.s V_2 - IL_0025: ldloc.s V_5 - IL_0027: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_002c: nop - IL_002d: ldloc.s V_5 - IL_002f: ldc.i4.1 - IL_0030: conv.i8 - IL_0031: add - IL_0032: stloc.s V_5 - IL_0034: ldloc.s V_4 - IL_0036: ldc.i4.1 - IL_0037: conv.i8 - IL_0038: add - IL_0039: stloc.s V_4 - IL_003b: ldloc.s V_4 - IL_003d: ldc.i4.0 - IL_003e: conv.i8 - IL_003f: cgt.un - IL_0041: stloc.3 - IL_0042: ldloc.3 - IL_0043: brtrue.s IL_0023 - - IL_0045: nop - IL_0046: br.s IL_0082 - - IL_0048: ldarg.1 - IL_0049: ldarg.0 - IL_004a: bge.un.s IL_0051 - - IL_004c: ldc.i4.0 - IL_004d: conv.i8 - IL_004e: nop - IL_004f: br.s IL_0058 - - IL_0051: ldarg.1 - IL_0052: ldarg.0 - IL_0053: sub - IL_0054: ldc.i4.1 - IL_0055: conv.i8 - IL_0056: add.ovf.un - IL_0057: nop - IL_0058: stloc.s V_4 - IL_005a: ldc.i4.0 - IL_005b: conv.i8 - IL_005c: stloc.s V_5 - IL_005e: ldarg.0 - IL_005f: stloc.s V_6 - IL_0061: br.s IL_007b - - IL_0063: ldloca.s V_2 - IL_0065: ldloc.s V_6 - IL_0067: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_006c: nop - IL_006d: ldloc.s V_6 - IL_006f: ldc.i4.1 - IL_0070: conv.i8 - IL_0071: add - IL_0072: stloc.s V_6 - IL_0074: ldloc.s V_5 - IL_0076: ldc.i4.1 - IL_0077: conv.i8 - IL_0078: add - IL_0079: stloc.s V_5 - IL_007b: ldloc.s V_5 - IL_007d: ldloc.s V_4 - IL_007f: blt.un.s IL_0063 - - IL_0081: nop - IL_0082: ldloca.s V_2 - IL_0084: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_0089: ret - } - - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f9(uint64 start) cil managed - { - - .maxstack 4 - .locals init (uint64 V_0, - valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, - uint64 V_2, - uint64 V_3) - IL_0000: nop - IL_0001: ldc.i4.s 10 - IL_0003: conv.i8 - IL_0004: ldarg.0 - IL_0005: bge.un.s IL_000c - - IL_0007: ldc.i4.0 - IL_0008: conv.i8 - IL_0009: nop - IL_000a: br.s IL_0015 - - IL_000c: ldc.i4.s 10 - IL_000e: conv.i8 - IL_000f: ldarg.0 - IL_0010: sub - IL_0011: ldc.i4.1 - IL_0012: conv.i8 - IL_0013: add.ovf.un - IL_0014: nop - IL_0015: stloc.0 - IL_0016: ldc.i4.0 + IL_000a: ldarg.0 + IL_000b: ldc.i4.1 + IL_000c: conv.i8 + IL_000d: sub + IL_000e: ldc.i4.1 + IL_000f: conv.i8 + IL_0010: add.ovf.un + IL_0011: nop + IL_0012: stloc.0 + IL_0013: ldc.i4.0 + IL_0014: conv.i8 + IL_0015: stloc.2 + IL_0016: ldc.i4.1 IL_0017: conv.i8 - IL_0018: stloc.2 - IL_0019: ldarg.0 - IL_001a: stloc.3 - IL_001b: br.s IL_0030 - - IL_001d: ldloca.s V_1 - IL_001f: ldloc.3 - IL_0020: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0025: nop - IL_0026: ldloc.3 - IL_0027: ldc.i4.1 - IL_0028: conv.i8 - IL_0029: add - IL_002a: stloc.3 - IL_002b: ldloc.2 - IL_002c: ldc.i4.1 - IL_002d: conv.i8 - IL_002e: add - IL_002f: stloc.2 - IL_0030: ldloc.2 - IL_0031: ldloc.0 - IL_0032: blt.un.s IL_001d + IL_0018: stloc.3 + IL_0019: br.s IL_002e - IL_0034: ldloca.s V_1 - IL_0036: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_003b: ret + IL_001b: ldloca.s V_1 + IL_001d: ldloc.3 + IL_001e: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0023: nop + IL_0024: ldloc.3 + IL_0025: ldc.i4.1 + IL_0026: conv.i8 + IL_0027: add + IL_0028: stloc.3 + IL_0029: ldloc.2 + IL_002a: ldc.i4.1 + IL_002b: conv.i8 + IL_002c: add + IL_002d: stloc.2 + IL_002e: ldloc.2 + IL_002f: ldloc.0 + IL_0030: blt.un.s IL_001b + + IL_0032: ldloca.s V_1 + IL_0034: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0039: ret } - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f10(uint64 step) cil managed + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f8(uint64 start, uint64 finish) cil managed { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) - .maxstack 5 + .maxstack 4 .locals init (uint64 V_0, - valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, - uint64 V_2, - uint64 V_3) - IL_0000: nop + bool V_1, + valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_2, + bool V_3, + uint64 V_4, + uint64 V_5, + uint64 V_6) + IL_0000: ldarg.1 IL_0001: ldarg.0 - IL_0002: brtrue.s IL_0013 + IL_0002: bge.un.s IL_0009 - IL_0004: ldc.i4.1 + IL_0004: ldc.i4.0 IL_0005: conv.i8 - IL_0006: ldarg.0 - IL_0007: ldc.i4.s 10 - IL_0009: conv.i8 - IL_000a: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeUInt64(uint64, - uint64, - uint64) - IL_000f: pop - IL_0010: nop - IL_0011: br.s IL_0014 + IL_0006: nop + IL_0007: br.s IL_000d + + IL_0009: ldarg.1 + IL_000a: ldarg.0 + IL_000b: sub + IL_000c: nop + IL_000d: stloc.0 + IL_000e: ldloc.0 + IL_000f: ldc.i4.m1 + IL_0010: conv.i8 + IL_0011: ceq + IL_0013: stloc.1 + IL_0014: ldloc.1 + IL_0015: brfalse.s IL_0047 - IL_0013: nop - IL_0014: ldc.i4.s 10 - IL_0016: conv.i8 IL_0017: ldc.i4.1 - IL_0018: conv.i8 - IL_0019: bge.un.s IL_0020 - - IL_001b: ldc.i4.0 - IL_001c: conv.i8 - IL_001d: nop - IL_001e: br.s IL_002c - - IL_0020: ldc.i4.s 10 - IL_0022: conv.i8 - IL_0023: ldc.i4.1 - IL_0024: conv.i8 - IL_0025: sub - IL_0026: ldarg.0 - IL_0027: div.un - IL_0028: ldc.i4.1 - IL_0029: conv.i8 - IL_002a: add.ovf.un + IL_0018: stloc.3 + IL_0019: ldc.i4.0 + IL_001a: conv.i8 + IL_001b: stloc.s V_4 + IL_001d: ldarg.0 + IL_001e: stloc.s V_5 + IL_0020: br.s IL_0041 + + IL_0022: ldloca.s V_2 + IL_0024: ldloc.s V_5 + IL_0026: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) IL_002b: nop - IL_002c: stloc.0 - IL_002d: ldc.i4.0 - IL_002e: conv.i8 - IL_002f: stloc.2 - IL_0030: ldc.i4.1 - IL_0031: conv.i8 - IL_0032: stloc.3 - IL_0033: br.s IL_0047 - - IL_0035: ldloca.s V_1 - IL_0037: ldloc.3 - IL_0038: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_003d: nop - IL_003e: ldloc.3 - IL_003f: ldarg.0 - IL_0040: add - IL_0041: stloc.3 - IL_0042: ldloc.2 - IL_0043: ldc.i4.1 - IL_0044: conv.i8 - IL_0045: add - IL_0046: stloc.2 - IL_0047: ldloc.2 - IL_0048: ldloc.0 - IL_0049: blt.un.s IL_0035 - - IL_004b: ldloca.s V_1 - IL_004d: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_0052: ret + IL_002c: ldloc.s V_5 + IL_002e: ldc.i4.1 + IL_002f: conv.i8 + IL_0030: add + IL_0031: stloc.s V_5 + IL_0033: ldloc.s V_4 + IL_0035: ldc.i4.1 + IL_0036: conv.i8 + IL_0037: add + IL_0038: stloc.s V_4 + IL_003a: ldloc.s V_4 + IL_003c: ldc.i4.0 + IL_003d: conv.i8 + IL_003e: cgt.un + IL_0040: stloc.3 + IL_0041: ldloc.3 + IL_0042: brtrue.s IL_0022 + + IL_0044: nop + IL_0045: br.s IL_0081 + + IL_0047: ldarg.1 + IL_0048: ldarg.0 + IL_0049: bge.un.s IL_0050 + + IL_004b: ldc.i4.0 + IL_004c: conv.i8 + IL_004d: nop + IL_004e: br.s IL_0057 + + IL_0050: ldarg.1 + IL_0051: ldarg.0 + IL_0052: sub + IL_0053: ldc.i4.1 + IL_0054: conv.i8 + IL_0055: add.ovf.un + IL_0056: nop + IL_0057: stloc.s V_4 + IL_0059: ldc.i4.0 + IL_005a: conv.i8 + IL_005b: stloc.s V_5 + IL_005d: ldarg.0 + IL_005e: stloc.s V_6 + IL_0060: br.s IL_007a + + IL_0062: ldloca.s V_2 + IL_0064: ldloc.s V_6 + IL_0066: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_006b: nop + IL_006c: ldloc.s V_6 + IL_006e: ldc.i4.1 + IL_006f: conv.i8 + IL_0070: add + IL_0071: stloc.s V_6 + IL_0073: ldloc.s V_5 + IL_0075: ldc.i4.1 + IL_0076: conv.i8 + IL_0077: add + IL_0078: stloc.s V_5 + IL_007a: ldloc.s V_5 + IL_007c: ldloc.s V_4 + IL_007e: blt.un.s IL_0062 + + IL_0080: nop + IL_0081: ldloca.s V_2 + IL_0083: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0088: ret } - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f11(uint64 finish) cil managed + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f9(uint64 start) cil managed { .maxstack 4 @@ -544,31 +405,29 @@ valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, uint64 V_2, uint64 V_3) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: ldc.i4.1 - IL_0003: conv.i8 + IL_0000: ldc.i4.s 10 + IL_0002: conv.i8 + IL_0003: ldarg.0 IL_0004: bge.un.s IL_000b IL_0006: ldc.i4.0 IL_0007: conv.i8 IL_0008: nop - IL_0009: br.s IL_0013 + IL_0009: br.s IL_0014 - IL_000b: ldarg.0 - IL_000c: ldc.i4.1 + IL_000b: ldc.i4.s 10 IL_000d: conv.i8 - IL_000e: sub - IL_000f: ldc.i4.1 - IL_0010: conv.i8 - IL_0011: add.ovf.un - IL_0012: nop - IL_0013: stloc.0 - IL_0014: ldc.i4.0 - IL_0015: conv.i8 - IL_0016: stloc.2 - IL_0017: ldc.i4.1 - IL_0018: conv.i8 + IL_000e: ldarg.0 + IL_000f: sub + IL_0010: ldc.i4.1 + IL_0011: conv.i8 + IL_0012: add.ovf.un + IL_0013: nop + IL_0014: stloc.0 + IL_0015: ldc.i4.0 + IL_0016: conv.i8 + IL_0017: stloc.2 + IL_0018: ldarg.0 IL_0019: stloc.3 IL_001a: br.s IL_002f @@ -595,21 +454,20 @@ IL_003a: ret } - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f12(uint64 start, uint64 step) cil managed + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f10(uint64 step) cil managed { - .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) .maxstack 5 .locals init (uint64 V_0, valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, uint64 V_2, uint64 V_3) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: brtrue.s IL_0012 + IL_0000: ldarg.0 + IL_0001: brtrue.s IL_0012 - IL_0004: ldarg.0 - IL_0005: ldarg.1 + IL_0003: ldc.i4.1 + IL_0004: conv.i8 + IL_0005: ldarg.0 IL_0006: ldc.i4.s 10 IL_0008: conv.i8 IL_0009: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeUInt64(uint64, @@ -622,172 +480,116 @@ IL_0012: nop IL_0013: ldc.i4.s 10 IL_0015: conv.i8 - IL_0016: ldarg.0 - IL_0017: bge.un.s IL_001e + IL_0016: ldc.i4.1 + IL_0017: conv.i8 + IL_0018: bge.un.s IL_001f - IL_0019: ldc.i4.0 - IL_001a: conv.i8 - IL_001b: nop - IL_001c: br.s IL_0029 + IL_001a: ldc.i4.0 + IL_001b: conv.i8 + IL_001c: nop + IL_001d: br.s IL_002b - IL_001e: ldc.i4.s 10 - IL_0020: conv.i8 - IL_0021: ldarg.0 - IL_0022: sub - IL_0023: ldarg.1 - IL_0024: div.un - IL_0025: ldc.i4.1 - IL_0026: conv.i8 - IL_0027: add.ovf.un - IL_0028: nop - IL_0029: stloc.0 - IL_002a: ldc.i4.0 - IL_002b: conv.i8 - IL_002c: stloc.2 - IL_002d: ldarg.0 - IL_002e: stloc.3 - IL_002f: br.s IL_0043 - - IL_0031: ldloca.s V_1 - IL_0033: ldloc.3 - IL_0034: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0039: nop - IL_003a: ldloc.3 - IL_003b: ldarg.1 - IL_003c: add - IL_003d: stloc.3 - IL_003e: ldloc.2 - IL_003f: ldc.i4.1 - IL_0040: conv.i8 - IL_0041: add - IL_0042: stloc.2 - IL_0043: ldloc.2 - IL_0044: ldloc.0 - IL_0045: blt.un.s IL_0031 - - IL_0047: ldloca.s V_1 - IL_0049: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_004e: ret + IL_001f: ldc.i4.s 10 + IL_0021: conv.i8 + IL_0022: ldc.i4.1 + IL_0023: conv.i8 + IL_0024: sub + IL_0025: ldarg.0 + IL_0026: div.un + IL_0027: ldc.i4.1 + IL_0028: conv.i8 + IL_0029: add.ovf.un + IL_002a: nop + IL_002b: stloc.0 + IL_002c: ldc.i4.0 + IL_002d: conv.i8 + IL_002e: stloc.2 + IL_002f: ldc.i4.1 + IL_0030: conv.i8 + IL_0031: stloc.3 + IL_0032: br.s IL_0046 + + IL_0034: ldloca.s V_1 + IL_0036: ldloc.3 + IL_0037: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_003c: nop + IL_003d: ldloc.3 + IL_003e: ldarg.0 + IL_003f: add + IL_0040: stloc.3 + IL_0041: ldloc.2 + IL_0042: ldc.i4.1 + IL_0043: conv.i8 + IL_0044: add + IL_0045: stloc.2 + IL_0046: ldloc.2 + IL_0047: ldloc.0 + IL_0048: blt.un.s IL_0034 + + IL_004a: ldloca.s V_1 + IL_004c: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0051: ret } - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f13(uint64 start, uint64 finish) cil managed + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f11(uint64 finish) cil managed { - .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) .maxstack 4 .locals init (uint64 V_0, - bool V_1, - valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_2, - bool V_3, - uint64 V_4, - uint64 V_5, - uint64 V_6) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: ldarg.0 + valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, + uint64 V_2, + uint64 V_3) + IL_0000: ldarg.0 + IL_0001: ldc.i4.1 + IL_0002: conv.i8 IL_0003: bge.un.s IL_000a IL_0005: ldc.i4.0 IL_0006: conv.i8 IL_0007: nop - IL_0008: br.s IL_000e + IL_0008: br.s IL_0012 - IL_000a: ldarg.1 - IL_000b: ldarg.0 - IL_000c: sub - IL_000d: nop - IL_000e: stloc.0 - IL_000f: ldloc.0 - IL_0010: ldc.i4.m1 - IL_0011: conv.i8 - IL_0012: ceq - IL_0014: stloc.1 - IL_0015: ldloc.1 - IL_0016: brfalse.s IL_0048 + IL_000a: ldarg.0 + IL_000b: ldc.i4.1 + IL_000c: conv.i8 + IL_000d: sub + IL_000e: ldc.i4.1 + IL_000f: conv.i8 + IL_0010: add.ovf.un + IL_0011: nop + IL_0012: stloc.0 + IL_0013: ldc.i4.0 + IL_0014: conv.i8 + IL_0015: stloc.2 + IL_0016: ldc.i4.1 + IL_0017: conv.i8 + IL_0018: stloc.3 + IL_0019: br.s IL_002e - IL_0018: ldc.i4.1 - IL_0019: stloc.3 - IL_001a: ldc.i4.0 - IL_001b: conv.i8 - IL_001c: stloc.s V_4 - IL_001e: ldarg.0 - IL_001f: stloc.s V_5 - IL_0021: br.s IL_0042 - - IL_0023: ldloca.s V_2 - IL_0025: ldloc.s V_5 - IL_0027: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_002c: nop - IL_002d: ldloc.s V_5 - IL_002f: ldc.i4.1 - IL_0030: conv.i8 - IL_0031: add - IL_0032: stloc.s V_5 - IL_0034: ldloc.s V_4 - IL_0036: ldc.i4.1 - IL_0037: conv.i8 - IL_0038: add - IL_0039: stloc.s V_4 - IL_003b: ldloc.s V_4 - IL_003d: ldc.i4.0 - IL_003e: conv.i8 - IL_003f: cgt.un - IL_0041: stloc.3 - IL_0042: ldloc.3 - IL_0043: brtrue.s IL_0023 - - IL_0045: nop - IL_0046: br.s IL_0082 - - IL_0048: ldarg.1 - IL_0049: ldarg.0 - IL_004a: bge.un.s IL_0051 - - IL_004c: ldc.i4.0 - IL_004d: conv.i8 - IL_004e: nop - IL_004f: br.s IL_0058 - - IL_0051: ldarg.1 - IL_0052: ldarg.0 - IL_0053: sub - IL_0054: ldc.i4.1 - IL_0055: conv.i8 - IL_0056: add.ovf.un - IL_0057: nop - IL_0058: stloc.s V_4 - IL_005a: ldc.i4.0 - IL_005b: conv.i8 - IL_005c: stloc.s V_5 - IL_005e: ldarg.0 - IL_005f: stloc.s V_6 - IL_0061: br.s IL_007b - - IL_0063: ldloca.s V_2 - IL_0065: ldloc.s V_6 - IL_0067: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_006c: nop - IL_006d: ldloc.s V_6 - IL_006f: ldc.i4.1 - IL_0070: conv.i8 - IL_0071: add - IL_0072: stloc.s V_6 - IL_0074: ldloc.s V_5 - IL_0076: ldc.i4.1 - IL_0077: conv.i8 - IL_0078: add - IL_0079: stloc.s V_5 - IL_007b: ldloc.s V_5 - IL_007d: ldloc.s V_4 - IL_007f: blt.un.s IL_0063 - - IL_0081: nop - IL_0082: ldloca.s V_2 - IL_0084: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_0089: ret + IL_001b: ldloca.s V_1 + IL_001d: ldloc.3 + IL_001e: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0023: nop + IL_0024: ldloc.3 + IL_0025: ldc.i4.1 + IL_0026: conv.i8 + IL_0027: add + IL_0028: stloc.3 + IL_0029: ldloc.2 + IL_002a: ldc.i4.1 + IL_002b: conv.i8 + IL_002c: add + IL_002d: stloc.2 + IL_002e: ldloc.2 + IL_002f: ldloc.0 + IL_0030: blt.un.s IL_001b + + IL_0032: ldloca.s V_1 + IL_0034: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0039: ret } - .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f14(uint64 step, uint64 finish) cil managed + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f12(uint64 start, uint64 step) cil managed { .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) @@ -796,14 +598,13 @@ valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, uint64 V_2, uint64 V_3) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: brtrue.s IL_0011 + IL_0000: ldarg.1 + IL_0001: brtrue.s IL_0011 - IL_0004: ldc.i4.1 - IL_0005: conv.i8 - IL_0006: ldarg.0 - IL_0007: ldarg.1 + IL_0003: ldarg.0 + IL_0004: ldarg.1 + IL_0005: ldc.i4.s 10 + IL_0007: conv.i8 IL_0008: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeUInt64(uint64, uint64, uint64) @@ -812,55 +613,245 @@ IL_000f: br.s IL_0012 IL_0011: nop - IL_0012: ldarg.1 - IL_0013: ldc.i4.1 + IL_0012: ldc.i4.s 10 IL_0014: conv.i8 - IL_0015: bge.un.s IL_001c + IL_0015: ldarg.0 + IL_0016: bge.un.s IL_001d - IL_0017: ldc.i4.0 - IL_0018: conv.i8 - IL_0019: nop - IL_001a: br.s IL_0026 + IL_0018: ldc.i4.0 + IL_0019: conv.i8 + IL_001a: nop + IL_001b: br.s IL_0028 - IL_001c: ldarg.1 - IL_001d: ldc.i4.1 - IL_001e: conv.i8 - IL_001f: sub + IL_001d: ldc.i4.s 10 + IL_001f: conv.i8 IL_0020: ldarg.0 - IL_0021: div.un - IL_0022: ldc.i4.1 - IL_0023: conv.i8 - IL_0024: add.ovf.un - IL_0025: nop - IL_0026: stloc.0 - IL_0027: ldc.i4.0 - IL_0028: conv.i8 - IL_0029: stloc.2 - IL_002a: ldc.i4.1 - IL_002b: conv.i8 - IL_002c: stloc.3 - IL_002d: br.s IL_0041 + IL_0021: sub + IL_0022: ldarg.1 + IL_0023: div.un + IL_0024: ldc.i4.1 + IL_0025: conv.i8 + IL_0026: add.ovf.un + IL_0027: nop + IL_0028: stloc.0 + IL_0029: ldc.i4.0 + IL_002a: conv.i8 + IL_002b: stloc.2 + IL_002c: ldarg.0 + IL_002d: stloc.3 + IL_002e: br.s IL_0042 + + IL_0030: ldloca.s V_1 + IL_0032: ldloc.3 + IL_0033: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0038: nop + IL_0039: ldloc.3 + IL_003a: ldarg.1 + IL_003b: add + IL_003c: stloc.3 + IL_003d: ldloc.2 + IL_003e: ldc.i4.1 + IL_003f: conv.i8 + IL_0040: add + IL_0041: stloc.2 + IL_0042: ldloc.2 + IL_0043: ldloc.0 + IL_0044: blt.un.s IL_0030 - IL_002f: ldloca.s V_1 - IL_0031: ldloc.3 - IL_0032: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_0037: nop - IL_0038: ldloc.3 - IL_0039: ldarg.0 - IL_003a: add - IL_003b: stloc.3 - IL_003c: ldloc.2 - IL_003d: ldc.i4.1 - IL_003e: conv.i8 - IL_003f: add - IL_0040: stloc.2 - IL_0041: ldloc.2 - IL_0042: ldloc.0 - IL_0043: blt.un.s IL_002f + IL_0046: ldloca.s V_1 + IL_0048: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_004d: ret + } + + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f13(uint64 start, uint64 finish) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) + + .maxstack 4 + .locals init (uint64 V_0, + bool V_1, + valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_2, + bool V_3, + uint64 V_4, + uint64 V_5, + uint64 V_6) + IL_0000: ldarg.1 + IL_0001: ldarg.0 + IL_0002: bge.un.s IL_0009 + + IL_0004: ldc.i4.0 + IL_0005: conv.i8 + IL_0006: nop + IL_0007: br.s IL_000d + + IL_0009: ldarg.1 + IL_000a: ldarg.0 + IL_000b: sub + IL_000c: nop + IL_000d: stloc.0 + IL_000e: ldloc.0 + IL_000f: ldc.i4.m1 + IL_0010: conv.i8 + IL_0011: ceq + IL_0013: stloc.1 + IL_0014: ldloc.1 + IL_0015: brfalse.s IL_0047 + + IL_0017: ldc.i4.1 + IL_0018: stloc.3 + IL_0019: ldc.i4.0 + IL_001a: conv.i8 + IL_001b: stloc.s V_4 + IL_001d: ldarg.0 + IL_001e: stloc.s V_5 + IL_0020: br.s IL_0041 + + IL_0022: ldloca.s V_2 + IL_0024: ldloc.s V_5 + IL_0026: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_002b: nop + IL_002c: ldloc.s V_5 + IL_002e: ldc.i4.1 + IL_002f: conv.i8 + IL_0030: add + IL_0031: stloc.s V_5 + IL_0033: ldloc.s V_4 + IL_0035: ldc.i4.1 + IL_0036: conv.i8 + IL_0037: add + IL_0038: stloc.s V_4 + IL_003a: ldloc.s V_4 + IL_003c: ldc.i4.0 + IL_003d: conv.i8 + IL_003e: cgt.un + IL_0040: stloc.3 + IL_0041: ldloc.3 + IL_0042: brtrue.s IL_0022 + + IL_0044: nop + IL_0045: br.s IL_0081 + + IL_0047: ldarg.1 + IL_0048: ldarg.0 + IL_0049: bge.un.s IL_0050 + + IL_004b: ldc.i4.0 + IL_004c: conv.i8 + IL_004d: nop + IL_004e: br.s IL_0057 + + IL_0050: ldarg.1 + IL_0051: ldarg.0 + IL_0052: sub + IL_0053: ldc.i4.1 + IL_0054: conv.i8 + IL_0055: add.ovf.un + IL_0056: nop + IL_0057: stloc.s V_4 + IL_0059: ldc.i4.0 + IL_005a: conv.i8 + IL_005b: stloc.s V_5 + IL_005d: ldarg.0 + IL_005e: stloc.s V_6 + IL_0060: br.s IL_007a + + IL_0062: ldloca.s V_2 + IL_0064: ldloc.s V_6 + IL_0066: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_006b: nop + IL_006c: ldloc.s V_6 + IL_006e: ldc.i4.1 + IL_006f: conv.i8 + IL_0070: add + IL_0071: stloc.s V_6 + IL_0073: ldloc.s V_5 + IL_0075: ldc.i4.1 + IL_0076: conv.i8 + IL_0077: add + IL_0078: stloc.s V_5 + IL_007a: ldloc.s V_5 + IL_007c: ldloc.s V_4 + IL_007e: blt.un.s IL_0062 + + IL_0080: nop + IL_0081: ldloca.s V_2 + IL_0083: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_0088: ret + } + + .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f14(uint64 step, uint64 finish) cil managed + { + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 01 00 00 00 01 00 00 00 00 00 ) + + .maxstack 5 + .locals init (uint64 V_0, + valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1 V_1, + uint64 V_2, + uint64 V_3) + IL_0000: ldarg.0 + IL_0001: brtrue.s IL_0010 + + IL_0003: ldc.i4.1 + IL_0004: conv.i8 + IL_0005: ldarg.0 + IL_0006: ldarg.1 + IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeUInt64(uint64, + uint64, + uint64) + IL_000c: pop + IL_000d: nop + IL_000e: br.s IL_0011 + + IL_0010: nop + IL_0011: ldarg.1 + IL_0012: ldc.i4.1 + IL_0013: conv.i8 + IL_0014: bge.un.s IL_001b + + IL_0016: ldc.i4.0 + IL_0017: conv.i8 + IL_0018: nop + IL_0019: br.s IL_0025 - IL_0045: ldloca.s V_1 - IL_0047: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_004c: ret + IL_001b: ldarg.1 + IL_001c: ldc.i4.1 + IL_001d: conv.i8 + IL_001e: sub + IL_001f: ldarg.0 + IL_0020: div.un + IL_0021: ldc.i4.1 + IL_0022: conv.i8 + IL_0023: add.ovf.un + IL_0024: nop + IL_0025: stloc.0 + IL_0026: ldc.i4.0 + IL_0027: conv.i8 + IL_0028: stloc.2 + IL_0029: ldc.i4.1 + IL_002a: conv.i8 + IL_002b: stloc.3 + IL_002c: br.s IL_0040 + + IL_002e: ldloca.s V_1 + IL_0030: ldloc.3 + IL_0031: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_0036: nop + IL_0037: ldloc.3 + IL_0038: ldarg.0 + IL_0039: add + IL_003a: stloc.3 + IL_003b: ldloc.2 + IL_003c: ldc.i4.1 + IL_003d: conv.i8 + IL_003e: add + IL_003f: stloc.2 + IL_0040: ldloc.2 + IL_0041: ldloc.0 + IL_0042: blt.un.s IL_002e + + IL_0044: ldloca.s V_1 + IL_0046: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_004b: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 @@ -879,125 +870,124 @@ uint64 V_4, uint64 V_5, uint64 V_6) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: brtrue.s IL_0010 + IL_0000: ldarg.1 + IL_0001: brtrue.s IL_000f - IL_0004: ldarg.0 - IL_0005: ldarg.1 - IL_0006: ldarg.2 - IL_0007: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeUInt64(uint64, + IL_0003: ldarg.0 + IL_0004: ldarg.1 + IL_0005: ldarg.2 + IL_0006: call class [runtime]System.Collections.Generic.IEnumerable`1 [FSharp.Core]Microsoft.FSharp.Core.Operators/OperatorIntrinsics::RangeUInt64(uint64, uint64, uint64) - IL_000c: pop - IL_000d: nop - IL_000e: br.s IL_0011 + IL_000b: pop + IL_000c: nop + IL_000d: br.s IL_0010 - IL_0010: nop - IL_0011: ldarg.2 - IL_0012: ldarg.0 - IL_0013: bge.un.s IL_001a + IL_000f: nop + IL_0010: ldarg.2 + IL_0011: ldarg.0 + IL_0012: bge.un.s IL_0019 - IL_0015: ldc.i4.0 - IL_0016: conv.i8 - IL_0017: nop - IL_0018: br.s IL_0020 - - IL_001a: ldarg.2 - IL_001b: ldarg.0 - IL_001c: sub - IL_001d: ldarg.1 - IL_001e: div.un - IL_001f: nop - IL_0020: stloc.0 - IL_0021: ldloc.0 - IL_0022: ldc.i4.m1 - IL_0023: conv.i8 - IL_0024: ceq - IL_0026: stloc.1 - IL_0027: ldloc.1 - IL_0028: brfalse.s IL_0059 + IL_0014: ldc.i4.0 + IL_0015: conv.i8 + IL_0016: nop + IL_0017: br.s IL_001f - IL_002a: ldc.i4.1 - IL_002b: stloc.3 - IL_002c: ldc.i4.0 - IL_002d: conv.i8 - IL_002e: stloc.s V_4 - IL_0030: ldarg.0 - IL_0031: stloc.s V_5 - IL_0033: br.s IL_0053 - - IL_0035: ldloca.s V_2 - IL_0037: ldloc.s V_5 - IL_0039: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_003e: nop - IL_003f: ldloc.s V_5 - IL_0041: ldarg.1 - IL_0042: add - IL_0043: stloc.s V_5 - IL_0045: ldloc.s V_4 - IL_0047: ldc.i4.1 - IL_0048: conv.i8 - IL_0049: add - IL_004a: stloc.s V_4 - IL_004c: ldloc.s V_4 - IL_004e: ldc.i4.0 - IL_004f: conv.i8 - IL_0050: cgt.un - IL_0052: stloc.3 - IL_0053: ldloc.3 - IL_0054: brtrue.s IL_0035 + IL_0019: ldarg.2 + IL_001a: ldarg.0 + IL_001b: sub + IL_001c: ldarg.1 + IL_001d: div.un + IL_001e: nop + IL_001f: stloc.0 + IL_0020: ldloc.0 + IL_0021: ldc.i4.m1 + IL_0022: conv.i8 + IL_0023: ceq + IL_0025: stloc.1 + IL_0026: ldloc.1 + IL_0027: brfalse.s IL_0058 - IL_0056: nop - IL_0057: br.s IL_0094 - - IL_0059: ldarg.2 - IL_005a: ldarg.0 - IL_005b: bge.un.s IL_0062 - - IL_005d: ldc.i4.0 - IL_005e: conv.i8 - IL_005f: nop - IL_0060: br.s IL_006b - - IL_0062: ldarg.2 - IL_0063: ldarg.0 - IL_0064: sub - IL_0065: ldarg.1 - IL_0066: div.un - IL_0067: ldc.i4.1 - IL_0068: conv.i8 - IL_0069: add.ovf.un - IL_006a: nop - IL_006b: stloc.s V_4 - IL_006d: ldc.i4.0 - IL_006e: conv.i8 - IL_006f: stloc.s V_5 - IL_0071: ldarg.0 - IL_0072: stloc.s V_6 - IL_0074: br.s IL_008d - - IL_0076: ldloca.s V_2 - IL_0078: ldloc.s V_6 - IL_007a: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) - IL_007f: nop - IL_0080: ldloc.s V_6 - IL_0082: ldarg.1 - IL_0083: add - IL_0084: stloc.s V_6 - IL_0086: ldloc.s V_5 - IL_0088: ldc.i4.1 - IL_0089: conv.i8 - IL_008a: add - IL_008b: stloc.s V_5 - IL_008d: ldloc.s V_5 - IL_008f: ldloc.s V_4 - IL_0091: blt.un.s IL_0076 + IL_0029: ldc.i4.1 + IL_002a: stloc.3 + IL_002b: ldc.i4.0 + IL_002c: conv.i8 + IL_002d: stloc.s V_4 + IL_002f: ldarg.0 + IL_0030: stloc.s V_5 + IL_0032: br.s IL_0052 - IL_0093: nop - IL_0094: ldloca.s V_2 - IL_0096: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() - IL_009b: ret + IL_0034: ldloca.s V_2 + IL_0036: ldloc.s V_5 + IL_0038: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_003d: nop + IL_003e: ldloc.s V_5 + IL_0040: ldarg.1 + IL_0041: add + IL_0042: stloc.s V_5 + IL_0044: ldloc.s V_4 + IL_0046: ldc.i4.1 + IL_0047: conv.i8 + IL_0048: add + IL_0049: stloc.s V_4 + IL_004b: ldloc.s V_4 + IL_004d: ldc.i4.0 + IL_004e: conv.i8 + IL_004f: cgt.un + IL_0051: stloc.3 + IL_0052: ldloc.3 + IL_0053: brtrue.s IL_0034 + + IL_0055: nop + IL_0056: br.s IL_0093 + + IL_0058: ldarg.2 + IL_0059: ldarg.0 + IL_005a: bge.un.s IL_0061 + + IL_005c: ldc.i4.0 + IL_005d: conv.i8 + IL_005e: nop + IL_005f: br.s IL_006a + + IL_0061: ldarg.2 + IL_0062: ldarg.0 + IL_0063: sub + IL_0064: ldarg.1 + IL_0065: div.un + IL_0066: ldc.i4.1 + IL_0067: conv.i8 + IL_0068: add.ovf.un + IL_0069: nop + IL_006a: stloc.s V_4 + IL_006c: ldc.i4.0 + IL_006d: conv.i8 + IL_006e: stloc.s V_5 + IL_0070: ldarg.0 + IL_0071: stloc.s V_6 + IL_0073: br.s IL_008c + + IL_0075: ldloca.s V_2 + IL_0077: ldloc.s V_6 + IL_0079: call instance void valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Add(!0) + IL_007e: nop + IL_007f: ldloc.s V_6 + IL_0081: ldarg.1 + IL_0082: add + IL_0083: stloc.s V_6 + IL_0085: ldloc.s V_5 + IL_0087: ldc.i4.1 + IL_0088: conv.i8 + IL_0089: add + IL_008a: stloc.s V_5 + IL_008c: ldloc.s V_5 + IL_008e: ldloc.s V_4 + IL_0090: blt.un.s IL_0075 + + IL_0092: nop + IL_0093: ldloca.s V_2 + IL_0095: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 valuetype [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.ListCollector`1::Close() + IL_009a: ret } .method public static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 f16(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 f) cil managed @@ -1628,4 +1618,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt16.fs.RealInternalSignatureOff.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt16.fs.RealInternalSignatureOff.OptimizeOn.il.bsl index 628165edfea..35542702391 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt16.fs.RealInternalSignatureOff.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt16.fs.RealInternalSignatureOff.OptimizeOn.il.bsl @@ -526,7 +526,7 @@ IL_0018: ldc.i4.0 IL_0019: nop - IL_001a: br.s IL_003d + IL_001a: br.s IL_003b IL_001c: ldarg.2 IL_001d: ldarg.2 @@ -537,7 +537,7 @@ IL_0022: ldc.i4.1 IL_0023: add IL_0024: nop - IL_0025: br.s IL_003d + IL_0025: br.s IL_003b IL_0027: ldarg.2 IL_0028: ldarg.2 @@ -545,7 +545,7 @@ IL_002b: ldc.i4.0 IL_002c: nop - IL_002d: br.s IL_003d + IL_002d: br.s IL_003b IL_002f: ldarg.2 IL_0030: ldarg.2 @@ -559,30 +559,28 @@ IL_0038: ldc.i4.1 IL_0039: add IL_003a: nop - IL_003b: br.s IL_003d - - IL_003d: stloc.0 - IL_003e: ldc.i4.0 - IL_003f: stloc.1 - IL_0040: ldarg.2 - IL_0041: stloc.2 - IL_0042: br.s IL_0052 - - IL_0044: ldloc.2 - IL_0045: call void assembly::set_c(int16) - IL_004a: ldloc.2 - IL_004b: ldarg.1 - IL_004c: add - IL_004d: stloc.2 - IL_004e: ldloc.1 - IL_004f: ldc.i4.1 - IL_0050: add - IL_0051: stloc.1 - IL_0052: ldloc.1 - IL_0053: ldloc.0 - IL_0054: blt.un.s IL_0044 - - IL_0056: ret + IL_003b: stloc.0 + IL_003c: ldc.i4.0 + IL_003d: stloc.1 + IL_003e: ldarg.2 + IL_003f: stloc.2 + IL_0040: br.s IL_0050 + + IL_0042: ldloc.2 + IL_0043: call void assembly::set_c(int16) + IL_0048: ldloc.2 + IL_0049: ldarg.1 + IL_004a: add + IL_004b: stloc.2 + IL_004c: ldloc.1 + IL_004d: ldc.i4.1 + IL_004e: add + IL_004f: stloc.1 + IL_0050: ldloc.1 + IL_0051: ldloc.0 + IL_0052: blt.un.s IL_0042 + + IL_0054: ret } .method public static void f11(int16 start, @@ -756,4 +754,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt16.fs.RealInternalSignatureOn.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt16.fs.RealInternalSignatureOn.OptimizeOn.il.bsl index cb0bd92d8d6..817d9beed8b 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt16.fs.RealInternalSignatureOn.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt16.fs.RealInternalSignatureOn.OptimizeOn.il.bsl @@ -528,7 +528,7 @@ IL_0018: ldc.i4.0 IL_0019: nop - IL_001a: br.s IL_003d + IL_001a: br.s IL_003b IL_001c: ldarg.2 IL_001d: ldarg.2 @@ -539,7 +539,7 @@ IL_0022: ldc.i4.1 IL_0023: add IL_0024: nop - IL_0025: br.s IL_003d + IL_0025: br.s IL_003b IL_0027: ldarg.2 IL_0028: ldarg.2 @@ -547,7 +547,7 @@ IL_002b: ldc.i4.0 IL_002c: nop - IL_002d: br.s IL_003d + IL_002d: br.s IL_003b IL_002f: ldarg.2 IL_0030: ldarg.2 @@ -561,30 +561,28 @@ IL_0038: ldc.i4.1 IL_0039: add IL_003a: nop - IL_003b: br.s IL_003d - - IL_003d: stloc.0 - IL_003e: ldc.i4.0 - IL_003f: stloc.1 - IL_0040: ldarg.2 - IL_0041: stloc.2 - IL_0042: br.s IL_0052 - - IL_0044: ldloc.2 - IL_0045: call void assembly::set_c(int16) - IL_004a: ldloc.2 - IL_004b: ldarg.1 - IL_004c: add - IL_004d: stloc.2 - IL_004e: ldloc.1 - IL_004f: ldc.i4.1 - IL_0050: add - IL_0051: stloc.1 - IL_0052: ldloc.1 - IL_0053: ldloc.0 - IL_0054: blt.un.s IL_0044 - - IL_0056: ret + IL_003b: stloc.0 + IL_003c: ldc.i4.0 + IL_003d: stloc.1 + IL_003e: ldarg.2 + IL_003f: stloc.2 + IL_0040: br.s IL_0050 + + IL_0042: ldloc.2 + IL_0043: call void assembly::set_c(int16) + IL_0048: ldloc.2 + IL_0049: ldarg.1 + IL_004a: add + IL_004b: stloc.2 + IL_004c: ldloc.1 + IL_004d: ldc.i4.1 + IL_004e: add + IL_004f: stloc.1 + IL_0050: ldloc.1 + IL_0051: ldloc.0 + IL_0052: blt.un.s IL_0042 + + IL_0054: ret } .method public static void f11(int16 start, @@ -775,4 +773,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt32.fs.RealInternalSignatureOff.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt32.fs.RealInternalSignatureOff.OptimizeOn.il.bsl index 992a64864a1..faab7300e02 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt32.fs.RealInternalSignatureOff.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt32.fs.RealInternalSignatureOff.OptimizeOn.il.bsl @@ -473,7 +473,7 @@ IL_0018: ldc.i4.0 IL_0019: conv.i8 IL_001a: nop - IL_001b: br.s IL_0041 + IL_001b: br.s IL_003f IL_001d: ldarg.2 IL_001e: ldarg.2 @@ -485,7 +485,7 @@ IL_0024: conv.i8 IL_0025: add IL_0026: nop - IL_0027: br.s IL_0041 + IL_0027: br.s IL_003f IL_0029: ldarg.2 IL_002a: ldarg.2 @@ -494,7 +494,7 @@ IL_002d: ldc.i4.0 IL_002e: conv.i8 IL_002f: nop - IL_0030: br.s IL_0041 + IL_0030: br.s IL_003f IL_0032: ldarg.2 IL_0033: ldarg.2 @@ -509,32 +509,30 @@ IL_003c: conv.i8 IL_003d: add IL_003e: nop - IL_003f: br.s IL_0041 - - IL_0041: stloc.0 - IL_0042: ldc.i4.0 - IL_0043: conv.i8 - IL_0044: stloc.1 - IL_0045: ldarg.2 - IL_0046: stloc.2 - IL_0047: br.s IL_0058 - - IL_0049: ldloc.2 - IL_004a: call void assembly::set_c(int32) - IL_004f: ldloc.2 - IL_0050: ldarg.1 - IL_0051: add - IL_0052: stloc.2 - IL_0053: ldloc.1 - IL_0054: ldc.i4.1 - IL_0055: conv.i8 - IL_0056: add - IL_0057: stloc.1 - IL_0058: ldloc.1 - IL_0059: ldloc.0 - IL_005a: blt.un.s IL_0049 - - IL_005c: ret + IL_003f: stloc.0 + IL_0040: ldc.i4.0 + IL_0041: conv.i8 + IL_0042: stloc.1 + IL_0043: ldarg.2 + IL_0044: stloc.2 + IL_0045: br.s IL_0056 + + IL_0047: ldloc.2 + IL_0048: call void assembly::set_c(int32) + IL_004d: ldloc.2 + IL_004e: ldarg.1 + IL_004f: add + IL_0050: stloc.2 + IL_0051: ldloc.1 + IL_0052: ldc.i4.1 + IL_0053: conv.i8 + IL_0054: add + IL_0055: stloc.1 + IL_0056: ldloc.1 + IL_0057: ldloc.0 + IL_0058: blt.un.s IL_0047 + + IL_005a: ret } .method public static void f11(int32 start, @@ -714,4 +712,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt32.fs.RealInternalSignatureOn.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt32.fs.RealInternalSignatureOn.OptimizeOn.il.bsl index f65e3f97bad..55f3adf3480 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt32.fs.RealInternalSignatureOn.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt32.fs.RealInternalSignatureOn.OptimizeOn.il.bsl @@ -475,7 +475,7 @@ IL_0018: ldc.i4.0 IL_0019: conv.i8 IL_001a: nop - IL_001b: br.s IL_0041 + IL_001b: br.s IL_003f IL_001d: ldarg.2 IL_001e: ldarg.2 @@ -487,7 +487,7 @@ IL_0024: conv.i8 IL_0025: add IL_0026: nop - IL_0027: br.s IL_0041 + IL_0027: br.s IL_003f IL_0029: ldarg.2 IL_002a: ldarg.2 @@ -496,7 +496,7 @@ IL_002d: ldc.i4.0 IL_002e: conv.i8 IL_002f: nop - IL_0030: br.s IL_0041 + IL_0030: br.s IL_003f IL_0032: ldarg.2 IL_0033: ldarg.2 @@ -511,32 +511,30 @@ IL_003c: conv.i8 IL_003d: add IL_003e: nop - IL_003f: br.s IL_0041 - - IL_0041: stloc.0 - IL_0042: ldc.i4.0 - IL_0043: conv.i8 - IL_0044: stloc.1 - IL_0045: ldarg.2 - IL_0046: stloc.2 - IL_0047: br.s IL_0058 - - IL_0049: ldloc.2 - IL_004a: call void assembly::set_c(int32) - IL_004f: ldloc.2 - IL_0050: ldarg.1 - IL_0051: add - IL_0052: stloc.2 - IL_0053: ldloc.1 - IL_0054: ldc.i4.1 - IL_0055: conv.i8 - IL_0056: add - IL_0057: stloc.1 - IL_0058: ldloc.1 - IL_0059: ldloc.0 - IL_005a: blt.un.s IL_0049 - - IL_005c: ret + IL_003f: stloc.0 + IL_0040: ldc.i4.0 + IL_0041: conv.i8 + IL_0042: stloc.1 + IL_0043: ldarg.2 + IL_0044: stloc.2 + IL_0045: br.s IL_0056 + + IL_0047: ldloc.2 + IL_0048: call void assembly::set_c(int32) + IL_004d: ldloc.2 + IL_004e: ldarg.1 + IL_004f: add + IL_0050: stloc.2 + IL_0051: ldloc.1 + IL_0052: ldc.i4.1 + IL_0053: conv.i8 + IL_0054: add + IL_0055: stloc.1 + IL_0056: ldloc.1 + IL_0057: ldloc.0 + IL_0058: blt.un.s IL_0047 + + IL_005a: ret } .method public static void f11(int32 start, @@ -733,4 +731,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt64.fs.RealInternalSignatureOff.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt64.fs.RealInternalSignatureOff.OptimizeOn.il.bsl index 9be7a6cbaff..88d2be98f24 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt64.fs.RealInternalSignatureOff.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt64.fs.RealInternalSignatureOff.OptimizeOn.il.bsl @@ -647,7 +647,7 @@ IL_0019: ldc.i4.0 IL_001a: conv.i8 IL_001b: nop - IL_001c: br.s IL_003b + IL_001c: br.s IL_0039 IL_001e: ldarg.2 IL_001f: ldarg.2 @@ -655,7 +655,7 @@ IL_0021: ldarg.1 IL_0022: div.un IL_0023: nop - IL_0024: br.s IL_003b + IL_0024: br.s IL_0039 IL_0026: ldarg.2 IL_0027: ldarg.2 @@ -664,7 +664,7 @@ IL_002a: ldc.i4.0 IL_002b: conv.i8 IL_002c: nop - IL_002d: br.s IL_003b + IL_002d: br.s IL_0039 IL_002f: ldarg.2 IL_0030: ldarg.2 @@ -676,117 +676,113 @@ IL_0036: add IL_0037: div.un IL_0038: nop - IL_0039: br.s IL_003b - - IL_003b: stloc.0 - IL_003c: ldloc.0 - IL_003d: ldc.i4.m1 - IL_003e: conv.i8 - IL_003f: bne.un.s IL_0063 - - IL_0041: ldc.i4.1 - IL_0042: stloc.1 - IL_0043: ldc.i4.0 - IL_0044: conv.i8 - IL_0045: stloc.2 - IL_0046: ldarg.2 - IL_0047: stloc.3 - IL_0048: br.s IL_005f - - IL_004a: ldloc.3 - IL_004b: call void assembly::set_c(int64) - IL_0050: ldloc.3 - IL_0051: ldarg.1 - IL_0052: add - IL_0053: stloc.3 - IL_0054: ldloc.2 - IL_0055: ldc.i4.1 - IL_0056: conv.i8 - IL_0057: add - IL_0058: stloc.2 - IL_0059: ldloc.2 - IL_005a: ldc.i4.0 - IL_005b: conv.i8 - IL_005c: cgt.un - IL_005e: stloc.1 - IL_005f: ldloc.1 - IL_0060: brtrue.s IL_004a - - IL_0062: ret - - IL_0063: ldc.i4.0 - IL_0064: conv.i8 - IL_0065: ldarg.1 - IL_0066: bge.s IL_007c - - IL_0068: ldarg.2 - IL_0069: ldarg.2 - IL_006a: bge.s IL_0071 - - IL_006c: ldc.i4.0 - IL_006d: conv.i8 - IL_006e: nop - IL_006f: br.s IL_0094 - - IL_0071: ldarg.2 - IL_0072: ldarg.2 - IL_0073: sub - IL_0074: ldarg.1 - IL_0075: div.un - IL_0076: ldc.i4.1 - IL_0077: conv.i8 - IL_0078: add.ovf.un - IL_0079: nop - IL_007a: br.s IL_0094 - - IL_007c: ldarg.2 - IL_007d: ldarg.2 - IL_007e: bge.s IL_0085 - - IL_0080: ldc.i4.0 - IL_0081: conv.i8 - IL_0082: nop - IL_0083: br.s IL_0094 - - IL_0085: ldarg.2 - IL_0086: ldarg.2 - IL_0087: sub - IL_0088: ldarg.1 - IL_0089: not - IL_008a: ldc.i4.1 - IL_008b: conv.i8 - IL_008c: add - IL_008d: div.un - IL_008e: ldc.i4.1 - IL_008f: conv.i8 - IL_0090: add.ovf.un - IL_0091: nop - IL_0092: br.s IL_0094 - - IL_0094: stloc.2 - IL_0095: ldc.i4.0 - IL_0096: conv.i8 - IL_0097: stloc.s V_4 - IL_0099: ldarg.2 - IL_009a: stloc.3 - IL_009b: br.s IL_00ae - - IL_009d: ldloc.3 - IL_009e: call void assembly::set_c(int64) - IL_00a3: ldloc.3 - IL_00a4: ldarg.1 - IL_00a5: add - IL_00a6: stloc.3 - IL_00a7: ldloc.s V_4 - IL_00a9: ldc.i4.1 - IL_00aa: conv.i8 - IL_00ab: add - IL_00ac: stloc.s V_4 - IL_00ae: ldloc.s V_4 - IL_00b0: ldloc.2 - IL_00b1: blt.un.s IL_009d - - IL_00b3: ret + IL_0039: stloc.0 + IL_003a: ldloc.0 + IL_003b: ldc.i4.m1 + IL_003c: conv.i8 + IL_003d: bne.un.s IL_0061 + + IL_003f: ldc.i4.1 + IL_0040: stloc.1 + IL_0041: ldc.i4.0 + IL_0042: conv.i8 + IL_0043: stloc.2 + IL_0044: ldarg.2 + IL_0045: stloc.3 + IL_0046: br.s IL_005d + + IL_0048: ldloc.3 + IL_0049: call void assembly::set_c(int64) + IL_004e: ldloc.3 + IL_004f: ldarg.1 + IL_0050: add + IL_0051: stloc.3 + IL_0052: ldloc.2 + IL_0053: ldc.i4.1 + IL_0054: conv.i8 + IL_0055: add + IL_0056: stloc.2 + IL_0057: ldloc.2 + IL_0058: ldc.i4.0 + IL_0059: conv.i8 + IL_005a: cgt.un + IL_005c: stloc.1 + IL_005d: ldloc.1 + IL_005e: brtrue.s IL_0048 + + IL_0060: ret + + IL_0061: ldc.i4.0 + IL_0062: conv.i8 + IL_0063: ldarg.1 + IL_0064: bge.s IL_007a + + IL_0066: ldarg.2 + IL_0067: ldarg.2 + IL_0068: bge.s IL_006f + + IL_006a: ldc.i4.0 + IL_006b: conv.i8 + IL_006c: nop + IL_006d: br.s IL_0090 + + IL_006f: ldarg.2 + IL_0070: ldarg.2 + IL_0071: sub + IL_0072: ldarg.1 + IL_0073: div.un + IL_0074: ldc.i4.1 + IL_0075: conv.i8 + IL_0076: add.ovf.un + IL_0077: nop + IL_0078: br.s IL_0090 + + IL_007a: ldarg.2 + IL_007b: ldarg.2 + IL_007c: bge.s IL_0083 + + IL_007e: ldc.i4.0 + IL_007f: conv.i8 + IL_0080: nop + IL_0081: br.s IL_0090 + + IL_0083: ldarg.2 + IL_0084: ldarg.2 + IL_0085: sub + IL_0086: ldarg.1 + IL_0087: not + IL_0088: ldc.i4.1 + IL_0089: conv.i8 + IL_008a: add + IL_008b: div.un + IL_008c: ldc.i4.1 + IL_008d: conv.i8 + IL_008e: add.ovf.un + IL_008f: nop + IL_0090: stloc.2 + IL_0091: ldc.i4.0 + IL_0092: conv.i8 + IL_0093: stloc.s V_4 + IL_0095: ldarg.2 + IL_0096: stloc.3 + IL_0097: br.s IL_00aa + + IL_0099: ldloc.3 + IL_009a: call void assembly::set_c(int64) + IL_009f: ldloc.3 + IL_00a0: ldarg.1 + IL_00a1: add + IL_00a2: stloc.3 + IL_00a3: ldloc.s V_4 + IL_00a5: ldc.i4.1 + IL_00a6: conv.i8 + IL_00a7: add + IL_00a8: stloc.s V_4 + IL_00aa: ldloc.s V_4 + IL_00ac: ldloc.2 + IL_00ad: blt.un.s IL_0099 + + IL_00af: ret } .method public static void f11(int64 start, @@ -984,4 +980,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt64.fs.RealInternalSignatureOn.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt64.fs.RealInternalSignatureOn.OptimizeOn.il.bsl index 378b0758025..1818efae698 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt64.fs.RealInternalSignatureOn.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepInt64.fs.RealInternalSignatureOn.OptimizeOn.il.bsl @@ -649,7 +649,7 @@ IL_0019: ldc.i4.0 IL_001a: conv.i8 IL_001b: nop - IL_001c: br.s IL_003b + IL_001c: br.s IL_0039 IL_001e: ldarg.2 IL_001f: ldarg.2 @@ -657,7 +657,7 @@ IL_0021: ldarg.1 IL_0022: div.un IL_0023: nop - IL_0024: br.s IL_003b + IL_0024: br.s IL_0039 IL_0026: ldarg.2 IL_0027: ldarg.2 @@ -666,7 +666,7 @@ IL_002a: ldc.i4.0 IL_002b: conv.i8 IL_002c: nop - IL_002d: br.s IL_003b + IL_002d: br.s IL_0039 IL_002f: ldarg.2 IL_0030: ldarg.2 @@ -678,117 +678,113 @@ IL_0036: add IL_0037: div.un IL_0038: nop - IL_0039: br.s IL_003b - - IL_003b: stloc.0 - IL_003c: ldloc.0 - IL_003d: ldc.i4.m1 - IL_003e: conv.i8 - IL_003f: bne.un.s IL_0063 - - IL_0041: ldc.i4.1 - IL_0042: stloc.1 - IL_0043: ldc.i4.0 - IL_0044: conv.i8 - IL_0045: stloc.2 - IL_0046: ldarg.2 - IL_0047: stloc.3 - IL_0048: br.s IL_005f - - IL_004a: ldloc.3 - IL_004b: call void assembly::set_c(int64) - IL_0050: ldloc.3 - IL_0051: ldarg.1 - IL_0052: add - IL_0053: stloc.3 - IL_0054: ldloc.2 - IL_0055: ldc.i4.1 - IL_0056: conv.i8 - IL_0057: add - IL_0058: stloc.2 - IL_0059: ldloc.2 - IL_005a: ldc.i4.0 - IL_005b: conv.i8 - IL_005c: cgt.un - IL_005e: stloc.1 - IL_005f: ldloc.1 - IL_0060: brtrue.s IL_004a - - IL_0062: ret - - IL_0063: ldc.i4.0 - IL_0064: conv.i8 - IL_0065: ldarg.1 - IL_0066: bge.s IL_007c - - IL_0068: ldarg.2 - IL_0069: ldarg.2 - IL_006a: bge.s IL_0071 - - IL_006c: ldc.i4.0 - IL_006d: conv.i8 - IL_006e: nop - IL_006f: br.s IL_0094 - - IL_0071: ldarg.2 - IL_0072: ldarg.2 - IL_0073: sub - IL_0074: ldarg.1 - IL_0075: div.un - IL_0076: ldc.i4.1 - IL_0077: conv.i8 - IL_0078: add.ovf.un - IL_0079: nop - IL_007a: br.s IL_0094 - - IL_007c: ldarg.2 - IL_007d: ldarg.2 - IL_007e: bge.s IL_0085 - - IL_0080: ldc.i4.0 - IL_0081: conv.i8 - IL_0082: nop - IL_0083: br.s IL_0094 - - IL_0085: ldarg.2 - IL_0086: ldarg.2 - IL_0087: sub - IL_0088: ldarg.1 - IL_0089: not - IL_008a: ldc.i4.1 - IL_008b: conv.i8 - IL_008c: add - IL_008d: div.un - IL_008e: ldc.i4.1 - IL_008f: conv.i8 - IL_0090: add.ovf.un - IL_0091: nop - IL_0092: br.s IL_0094 - - IL_0094: stloc.2 - IL_0095: ldc.i4.0 - IL_0096: conv.i8 - IL_0097: stloc.s V_4 - IL_0099: ldarg.2 - IL_009a: stloc.3 - IL_009b: br.s IL_00ae - - IL_009d: ldloc.3 - IL_009e: call void assembly::set_c(int64) - IL_00a3: ldloc.3 - IL_00a4: ldarg.1 - IL_00a5: add - IL_00a6: stloc.3 - IL_00a7: ldloc.s V_4 - IL_00a9: ldc.i4.1 - IL_00aa: conv.i8 - IL_00ab: add - IL_00ac: stloc.s V_4 - IL_00ae: ldloc.s V_4 - IL_00b0: ldloc.2 - IL_00b1: blt.un.s IL_009d - - IL_00b3: ret + IL_0039: stloc.0 + IL_003a: ldloc.0 + IL_003b: ldc.i4.m1 + IL_003c: conv.i8 + IL_003d: bne.un.s IL_0061 + + IL_003f: ldc.i4.1 + IL_0040: stloc.1 + IL_0041: ldc.i4.0 + IL_0042: conv.i8 + IL_0043: stloc.2 + IL_0044: ldarg.2 + IL_0045: stloc.3 + IL_0046: br.s IL_005d + + IL_0048: ldloc.3 + IL_0049: call void assembly::set_c(int64) + IL_004e: ldloc.3 + IL_004f: ldarg.1 + IL_0050: add + IL_0051: stloc.3 + IL_0052: ldloc.2 + IL_0053: ldc.i4.1 + IL_0054: conv.i8 + IL_0055: add + IL_0056: stloc.2 + IL_0057: ldloc.2 + IL_0058: ldc.i4.0 + IL_0059: conv.i8 + IL_005a: cgt.un + IL_005c: stloc.1 + IL_005d: ldloc.1 + IL_005e: brtrue.s IL_0048 + + IL_0060: ret + + IL_0061: ldc.i4.0 + IL_0062: conv.i8 + IL_0063: ldarg.1 + IL_0064: bge.s IL_007a + + IL_0066: ldarg.2 + IL_0067: ldarg.2 + IL_0068: bge.s IL_006f + + IL_006a: ldc.i4.0 + IL_006b: conv.i8 + IL_006c: nop + IL_006d: br.s IL_0090 + + IL_006f: ldarg.2 + IL_0070: ldarg.2 + IL_0071: sub + IL_0072: ldarg.1 + IL_0073: div.un + IL_0074: ldc.i4.1 + IL_0075: conv.i8 + IL_0076: add.ovf.un + IL_0077: nop + IL_0078: br.s IL_0090 + + IL_007a: ldarg.2 + IL_007b: ldarg.2 + IL_007c: bge.s IL_0083 + + IL_007e: ldc.i4.0 + IL_007f: conv.i8 + IL_0080: nop + IL_0081: br.s IL_0090 + + IL_0083: ldarg.2 + IL_0084: ldarg.2 + IL_0085: sub + IL_0086: ldarg.1 + IL_0087: not + IL_0088: ldc.i4.1 + IL_0089: conv.i8 + IL_008a: add + IL_008b: div.un + IL_008c: ldc.i4.1 + IL_008d: conv.i8 + IL_008e: add.ovf.un + IL_008f: nop + IL_0090: stloc.2 + IL_0091: ldc.i4.0 + IL_0092: conv.i8 + IL_0093: stloc.s V_4 + IL_0095: ldarg.2 + IL_0096: stloc.3 + IL_0097: br.s IL_00aa + + IL_0099: ldloc.3 + IL_009a: call void assembly::set_c(int64) + IL_009f: ldloc.3 + IL_00a0: ldarg.1 + IL_00a1: add + IL_00a2: stloc.3 + IL_00a3: ldloc.s V_4 + IL_00a5: ldc.i4.1 + IL_00a6: conv.i8 + IL_00a7: add + IL_00a8: stloc.s V_4 + IL_00aa: ldloc.s V_4 + IL_00ac: ldloc.2 + IL_00ad: blt.un.s IL_0099 + + IL_00af: ret } .method public static void f11(int64 start, @@ -1003,4 +999,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepIntPtr.fs.RealInternalSignatureOff.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepIntPtr.fs.RealInternalSignatureOff.OptimizeOn.il.bsl index 06c7e11d37f..dc70026ea28 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepIntPtr.fs.RealInternalSignatureOff.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepIntPtr.fs.RealInternalSignatureOff.OptimizeOn.il.bsl @@ -673,7 +673,7 @@ IL_004f: ldc.i8 0x0 IL_0058: conv.i IL_0059: nop - IL_005a: br.s IL_00bf + IL_005a: br.s IL_00bd IL_005c: ldc.i8 0xa IL_0065: conv.i @@ -683,7 +683,7 @@ IL_0071: ldarg.0 IL_0072: div.un IL_0073: nop - IL_0074: br.s IL_00bf + IL_0074: br.s IL_00bd IL_0076: ldc.i8 0x1 IL_007f: conv.i @@ -694,7 +694,7 @@ IL_008c: ldc.i8 0x0 IL_0095: conv.i IL_0096: nop - IL_0097: br.s IL_00bf + IL_0097: br.s IL_00bd IL_0099: ldc.i8 0x1 IL_00a2: conv.i @@ -708,140 +708,136 @@ IL_00ba: add IL_00bb: div.un IL_00bc: nop - IL_00bd: br.s IL_00bf - - IL_00bf: stloc.0 - IL_00c0: sizeof [runtime]System.IntPtr - IL_00c6: ldc.i4.4 - IL_00c7: bne.un.s IL_00d9 - - IL_00c9: ldloc.0 - IL_00ca: ldc.i8 0xffffffff - IL_00d3: conv.u - IL_00d4: ceq - IL_00d6: nop - IL_00d7: br.s IL_00e7 - - IL_00d9: ldloc.0 - IL_00da: ldc.i8 0xffffffffffffffff - IL_00e3: conv.u - IL_00e4: ceq - IL_00e6: nop - IL_00e7: brfalse.s IL_012c - - IL_00e9: ldc.i4.1 - IL_00ea: stloc.1 - IL_00eb: ldc.i8 0x0 - IL_00f4: conv.i - IL_00f5: stloc.2 - IL_00f6: ldc.i8 0x1 - IL_00ff: conv.i - IL_0100: stloc.3 - IL_0101: br.s IL_0128 - - IL_0103: ldloc.3 - IL_0104: call void assembly::set_c(native int) - IL_0109: ldloc.3 - IL_010a: ldarg.0 - IL_010b: add - IL_010c: stloc.3 - IL_010d: ldloc.2 - IL_010e: ldc.i8 0x1 - IL_0117: conv.i - IL_0118: add - IL_0119: stloc.2 - IL_011a: ldloc.2 - IL_011b: ldc.i8 0x0 - IL_0124: conv.i - IL_0125: cgt.un - IL_0127: stloc.1 - IL_0128: ldloc.1 - IL_0129: brtrue.s IL_0103 - - IL_012b: ret - - IL_012c: ldc.i8 0x0 - IL_0135: conv.i - IL_0136: ldarg.0 - IL_0137: bge.s IL_0184 - - IL_0139: ldc.i8 0xa - IL_0142: conv.i - IL_0143: ldc.i8 0x1 - IL_014c: conv.i - IL_014d: bge.s IL_015f + IL_00bd: stloc.0 + IL_00be: sizeof [runtime]System.IntPtr + IL_00c4: ldc.i4.4 + IL_00c5: bne.un.s IL_00d7 + + IL_00c7: ldloc.0 + IL_00c8: ldc.i8 0xffffffff + IL_00d1: conv.u + IL_00d2: ceq + IL_00d4: nop + IL_00d5: br.s IL_00e5 + + IL_00d7: ldloc.0 + IL_00d8: ldc.i8 0xffffffffffffffff + IL_00e1: conv.u + IL_00e2: ceq + IL_00e4: nop + IL_00e5: brfalse.s IL_012a - IL_014f: ldc.i8 0x0 - IL_0158: conv.i - IL_0159: nop - IL_015a: br IL_01d8 - - IL_015f: ldc.i8 0xa - IL_0168: conv.i - IL_0169: ldc.i8 0x1 - IL_0172: conv.i - IL_0173: sub - IL_0174: ldarg.0 - IL_0175: div.un - IL_0176: ldc.i8 0x1 - IL_017f: conv.i - IL_0180: add.ovf.un - IL_0181: nop - IL_0182: br.s IL_01d8 - - IL_0184: ldc.i8 0x1 - IL_018d: conv.i - IL_018e: ldc.i8 0xa - IL_0197: conv.i - IL_0198: bge.s IL_01a7 - - IL_019a: ldc.i8 0x0 - IL_01a3: conv.i - IL_01a4: nop - IL_01a5: br.s IL_01d8 - - IL_01a7: ldc.i8 0x1 - IL_01b0: conv.i - IL_01b1: ldc.i8 0xa - IL_01ba: conv.i - IL_01bb: sub - IL_01bc: ldarg.0 - IL_01bd: not - IL_01be: ldc.i8 0x1 - IL_01c7: conv.i - IL_01c8: add - IL_01c9: div.un - IL_01ca: ldc.i8 0x1 - IL_01d3: conv.i - IL_01d4: add.ovf.un - IL_01d5: nop - IL_01d6: br.s IL_01d8 - - IL_01d8: stloc.2 - IL_01d9: ldc.i8 0x0 - IL_01e2: conv.i - IL_01e3: stloc.3 - IL_01e4: ldc.i8 0x1 - IL_01ed: conv.i - IL_01ee: stloc.s V_4 - IL_01f0: br.s IL_020c - - IL_01f2: ldloc.s V_4 - IL_01f4: call void assembly::set_c(native int) - IL_01f9: ldloc.s V_4 - IL_01fb: ldarg.0 - IL_01fc: add - IL_01fd: stloc.s V_4 - IL_01ff: ldloc.3 - IL_0200: ldc.i8 0x1 - IL_0209: conv.i - IL_020a: add - IL_020b: stloc.3 - IL_020c: ldloc.3 - IL_020d: ldloc.2 - IL_020e: blt.un.s IL_01f2 - - IL_0210: ret + IL_00e7: ldc.i4.1 + IL_00e8: stloc.1 + IL_00e9: ldc.i8 0x0 + IL_00f2: conv.i + IL_00f3: stloc.2 + IL_00f4: ldc.i8 0x1 + IL_00fd: conv.i + IL_00fe: stloc.3 + IL_00ff: br.s IL_0126 + + IL_0101: ldloc.3 + IL_0102: call void assembly::set_c(native int) + IL_0107: ldloc.3 + IL_0108: ldarg.0 + IL_0109: add + IL_010a: stloc.3 + IL_010b: ldloc.2 + IL_010c: ldc.i8 0x1 + IL_0115: conv.i + IL_0116: add + IL_0117: stloc.2 + IL_0118: ldloc.2 + IL_0119: ldc.i8 0x0 + IL_0122: conv.i + IL_0123: cgt.un + IL_0125: stloc.1 + IL_0126: ldloc.1 + IL_0127: brtrue.s IL_0101 + + IL_0129: ret + + IL_012a: ldc.i8 0x0 + IL_0133: conv.i + IL_0134: ldarg.0 + IL_0135: bge.s IL_0182 + + IL_0137: ldc.i8 0xa + IL_0140: conv.i + IL_0141: ldc.i8 0x1 + IL_014a: conv.i + IL_014b: bge.s IL_015d + + IL_014d: ldc.i8 0x0 + IL_0156: conv.i + IL_0157: nop + IL_0158: br IL_01d4 + + IL_015d: ldc.i8 0xa + IL_0166: conv.i + IL_0167: ldc.i8 0x1 + IL_0170: conv.i + IL_0171: sub + IL_0172: ldarg.0 + IL_0173: div.un + IL_0174: ldc.i8 0x1 + IL_017d: conv.i + IL_017e: add.ovf.un + IL_017f: nop + IL_0180: br.s IL_01d4 + + IL_0182: ldc.i8 0x1 + IL_018b: conv.i + IL_018c: ldc.i8 0xa + IL_0195: conv.i + IL_0196: bge.s IL_01a5 + + IL_0198: ldc.i8 0x0 + IL_01a1: conv.i + IL_01a2: nop + IL_01a3: br.s IL_01d4 + + IL_01a5: ldc.i8 0x1 + IL_01ae: conv.i + IL_01af: ldc.i8 0xa + IL_01b8: conv.i + IL_01b9: sub + IL_01ba: ldarg.0 + IL_01bb: not + IL_01bc: ldc.i8 0x1 + IL_01c5: conv.i + IL_01c6: add + IL_01c7: div.un + IL_01c8: ldc.i8 0x1 + IL_01d1: conv.i + IL_01d2: add.ovf.un + IL_01d3: nop + IL_01d4: stloc.2 + IL_01d5: ldc.i8 0x0 + IL_01de: conv.i + IL_01df: stloc.3 + IL_01e0: ldc.i8 0x1 + IL_01e9: conv.i + IL_01ea: stloc.s V_4 + IL_01ec: br.s IL_0208 + + IL_01ee: ldloc.s V_4 + IL_01f0: call void assembly::set_c(native int) + IL_01f5: ldloc.s V_4 + IL_01f7: ldarg.0 + IL_01f8: add + IL_01f9: stloc.s V_4 + IL_01fb: ldloc.3 + IL_01fc: ldc.i8 0x1 + IL_0205: conv.i + IL_0206: add + IL_0207: stloc.3 + IL_0208: ldloc.3 + IL_0209: ldloc.2 + IL_020a: blt.un.s IL_01ee + + IL_020c: ret } .method public static void f9(native int finish) cil managed @@ -941,7 +937,7 @@ IL_002b: ldc.i8 0x0 IL_0034: conv.i IL_0035: nop - IL_0036: br.s IL_0065 + IL_0036: br.s IL_0063 IL_0038: ldarg.2 IL_0039: ldarg.2 @@ -949,7 +945,7 @@ IL_003b: ldarg.1 IL_003c: div.un IL_003d: nop - IL_003e: br.s IL_0065 + IL_003e: br.s IL_0063 IL_0040: ldarg.2 IL_0041: ldarg.2 @@ -958,7 +954,7 @@ IL_0044: ldc.i8 0x0 IL_004d: conv.i IL_004e: nop - IL_004f: br.s IL_0065 + IL_004f: br.s IL_0063 IL_0051: ldarg.2 IL_0052: ldarg.2 @@ -970,130 +966,126 @@ IL_0060: add IL_0061: div.un IL_0062: nop - IL_0063: br.s IL_0065 - - IL_0065: stloc.0 - IL_0066: sizeof [runtime]System.IntPtr - IL_006c: ldc.i4.4 - IL_006d: bne.un.s IL_007f - - IL_006f: ldloc.0 - IL_0070: ldc.i8 0xffffffff - IL_0079: conv.u - IL_007a: ceq - IL_007c: nop - IL_007d: br.s IL_008d - - IL_007f: ldloc.0 - IL_0080: ldc.i8 0xffffffffffffffff - IL_0089: conv.u - IL_008a: ceq - IL_008c: nop - IL_008d: brfalse.s IL_00c9 - - IL_008f: ldc.i4.1 - IL_0090: stloc.1 - IL_0091: ldc.i8 0x0 - IL_009a: conv.i - IL_009b: stloc.2 - IL_009c: ldarg.2 - IL_009d: stloc.3 - IL_009e: br.s IL_00c5 - - IL_00a0: ldloc.3 - IL_00a1: call void assembly::set_c(native int) - IL_00a6: ldloc.3 - IL_00a7: ldarg.1 - IL_00a8: add - IL_00a9: stloc.3 - IL_00aa: ldloc.2 - IL_00ab: ldc.i8 0x1 - IL_00b4: conv.i - IL_00b5: add - IL_00b6: stloc.2 - IL_00b7: ldloc.2 - IL_00b8: ldc.i8 0x0 - IL_00c1: conv.i - IL_00c2: cgt.un - IL_00c4: stloc.1 - IL_00c5: ldloc.1 - IL_00c6: brtrue.s IL_00a0 - - IL_00c8: ret - - IL_00c9: ldc.i8 0x0 - IL_00d2: conv.i - IL_00d3: ldarg.1 - IL_00d4: bge.s IL_00fa + IL_0063: stloc.0 + IL_0064: sizeof [runtime]System.IntPtr + IL_006a: ldc.i4.4 + IL_006b: bne.un.s IL_007d + + IL_006d: ldloc.0 + IL_006e: ldc.i8 0xffffffff + IL_0077: conv.u + IL_0078: ceq + IL_007a: nop + IL_007b: br.s IL_008b + + IL_007d: ldloc.0 + IL_007e: ldc.i8 0xffffffffffffffff + IL_0087: conv.u + IL_0088: ceq + IL_008a: nop + IL_008b: brfalse.s IL_00c7 + + IL_008d: ldc.i4.1 + IL_008e: stloc.1 + IL_008f: ldc.i8 0x0 + IL_0098: conv.i + IL_0099: stloc.2 + IL_009a: ldarg.2 + IL_009b: stloc.3 + IL_009c: br.s IL_00c3 + + IL_009e: ldloc.3 + IL_009f: call void assembly::set_c(native int) + IL_00a4: ldloc.3 + IL_00a5: ldarg.1 + IL_00a6: add + IL_00a7: stloc.3 + IL_00a8: ldloc.2 + IL_00a9: ldc.i8 0x1 + IL_00b2: conv.i + IL_00b3: add + IL_00b4: stloc.2 + IL_00b5: ldloc.2 + IL_00b6: ldc.i8 0x0 + IL_00bf: conv.i + IL_00c0: cgt.un + IL_00c2: stloc.1 + IL_00c3: ldloc.1 + IL_00c4: brtrue.s IL_009e + + IL_00c6: ret - IL_00d6: ldarg.2 - IL_00d7: ldarg.2 - IL_00d8: bge.s IL_00e7 + IL_00c7: ldc.i8 0x0 + IL_00d0: conv.i + IL_00d1: ldarg.1 + IL_00d2: bge.s IL_00f8 + + IL_00d4: ldarg.2 + IL_00d5: ldarg.2 + IL_00d6: bge.s IL_00e5 + + IL_00d8: ldc.i8 0x0 + IL_00e1: conv.i + IL_00e2: nop + IL_00e3: br.s IL_0126 + + IL_00e5: ldarg.2 + IL_00e6: ldarg.2 + IL_00e7: sub + IL_00e8: ldarg.1 + IL_00e9: div.un + IL_00ea: ldc.i8 0x1 + IL_00f3: conv.i + IL_00f4: add.ovf.un + IL_00f5: nop + IL_00f6: br.s IL_0126 + + IL_00f8: ldarg.2 + IL_00f9: ldarg.2 + IL_00fa: bge.s IL_0109 + + IL_00fc: ldc.i8 0x0 + IL_0105: conv.i + IL_0106: nop + IL_0107: br.s IL_0126 - IL_00da: ldc.i8 0x0 - IL_00e3: conv.i - IL_00e4: nop - IL_00e5: br.s IL_012a - - IL_00e7: ldarg.2 - IL_00e8: ldarg.2 - IL_00e9: sub - IL_00ea: ldarg.1 - IL_00eb: div.un - IL_00ec: ldc.i8 0x1 - IL_00f5: conv.i - IL_00f6: add.ovf.un - IL_00f7: nop - IL_00f8: br.s IL_012a - - IL_00fa: ldarg.2 - IL_00fb: ldarg.2 - IL_00fc: bge.s IL_010b - - IL_00fe: ldc.i8 0x0 - IL_0107: conv.i - IL_0108: nop - IL_0109: br.s IL_012a - - IL_010b: ldarg.2 - IL_010c: ldarg.2 - IL_010d: sub - IL_010e: ldarg.1 - IL_010f: not - IL_0110: ldc.i8 0x1 - IL_0119: conv.i - IL_011a: add - IL_011b: div.un - IL_011c: ldc.i8 0x1 - IL_0125: conv.i - IL_0126: add.ovf.un - IL_0127: nop - IL_0128: br.s IL_012a - - IL_012a: stloc.2 - IL_012b: ldc.i8 0x0 - IL_0134: conv.i - IL_0135: stloc.3 - IL_0136: ldarg.2 - IL_0137: stloc.s V_4 - IL_0139: br.s IL_0155 - - IL_013b: ldloc.s V_4 - IL_013d: call void assembly::set_c(native int) - IL_0142: ldloc.s V_4 - IL_0144: ldarg.1 - IL_0145: add - IL_0146: stloc.s V_4 - IL_0148: ldloc.3 - IL_0149: ldc.i8 0x1 - IL_0152: conv.i - IL_0153: add - IL_0154: stloc.3 - IL_0155: ldloc.3 - IL_0156: ldloc.2 - IL_0157: blt.un.s IL_013b - - IL_0159: ret + IL_0109: ldarg.2 + IL_010a: ldarg.2 + IL_010b: sub + IL_010c: ldarg.1 + IL_010d: not + IL_010e: ldc.i8 0x1 + IL_0117: conv.i + IL_0118: add + IL_0119: div.un + IL_011a: ldc.i8 0x1 + IL_0123: conv.i + IL_0124: add.ovf.un + IL_0125: nop + IL_0126: stloc.2 + IL_0127: ldc.i8 0x0 + IL_0130: conv.i + IL_0131: stloc.3 + IL_0132: ldarg.2 + IL_0133: stloc.s V_4 + IL_0135: br.s IL_0151 + + IL_0137: ldloc.s V_4 + IL_0139: call void assembly::set_c(native int) + IL_013e: ldloc.s V_4 + IL_0140: ldarg.1 + IL_0141: add + IL_0142: stloc.s V_4 + IL_0144: ldloc.3 + IL_0145: ldc.i8 0x1 + IL_014e: conv.i + IL_014f: add + IL_0150: stloc.3 + IL_0151: ldloc.3 + IL_0152: ldloc.2 + IL_0153: blt.un.s IL_0137 + + IL_0155: ret } .method public static void f11(native int start, @@ -1347,193 +1339,189 @@ IL_0047: conv.i IL_0048: ldc.i8 0xfffffffffffffffe IL_0051: conv.i - IL_0052: bge.s IL_009d + IL_0052: bge.s IL_009a IL_0054: ldc.i8 0x1 IL_005d: conv.i IL_005e: ldc.i8 0xa IL_0067: conv.i - IL_0068: bge.s IL_007a + IL_0068: bge.s IL_0077 IL_006a: ldc.i8 0x0 IL_0073: conv.i IL_0074: nop - IL_0075: br IL_00ef + IL_0075: br.s IL_00ea + + IL_0077: ldc.i8 0x1 + IL_0080: conv.i + IL_0081: ldc.i8 0xa + IL_008a: conv.i + IL_008b: sub + IL_008c: ldc.i8 0xfffffffffffffffe + IL_0095: conv.i + IL_0096: div.un + IL_0097: nop + IL_0098: br.s IL_00ea - IL_007a: ldc.i8 0x1 - IL_0083: conv.i - IL_0084: ldc.i8 0xa - IL_008d: conv.i - IL_008e: sub - IL_008f: ldc.i8 0xfffffffffffffffe - IL_0098: conv.i - IL_0099: div.un - IL_009a: nop - IL_009b: br.s IL_00ef - - IL_009d: ldc.i8 0xa - IL_00a6: conv.i - IL_00a7: ldc.i8 0x1 - IL_00b0: conv.i - IL_00b1: bge.s IL_00c0 - - IL_00b3: ldc.i8 0x0 - IL_00bc: conv.i - IL_00bd: nop - IL_00be: br.s IL_00ef - - IL_00c0: ldc.i8 0xa - IL_00c9: conv.i - IL_00ca: ldc.i8 0x1 - IL_00d3: conv.i - IL_00d4: sub - IL_00d5: ldc.i8 0xfffffffffffffffe - IL_00de: conv.i - IL_00df: not - IL_00e0: ldc.i8 0x1 - IL_00e9: conv.i - IL_00ea: add - IL_00eb: div.un - IL_00ec: nop - IL_00ed: br.s IL_00ef - - IL_00ef: stloc.0 - IL_00f0: sizeof [runtime]System.IntPtr - IL_00f6: ldc.i4.4 - IL_00f7: bne.un.s IL_0109 - - IL_00f9: ldloc.0 - IL_00fa: ldc.i8 0xffffffff - IL_0103: conv.u - IL_0104: ceq - IL_0106: nop - IL_0107: br.s IL_0117 - - IL_0109: ldloc.0 - IL_010a: ldc.i8 0xffffffffffffffff - IL_0113: conv.u - IL_0114: ceq - IL_0116: nop - IL_0117: brfalse.s IL_0165 - - IL_0119: ldc.i4.1 - IL_011a: stloc.1 - IL_011b: ldc.i8 0x0 - IL_0124: conv.i - IL_0125: stloc.2 - IL_0126: ldc.i8 0xa - IL_012f: conv.i - IL_0130: stloc.3 - IL_0131: br.s IL_0161 - - IL_0133: ldloc.3 - IL_0134: call void assembly::set_c(native int) - IL_0139: ldloc.3 - IL_013a: ldc.i8 0xfffffffffffffffe - IL_0143: conv.i - IL_0144: add - IL_0145: stloc.3 - IL_0146: ldloc.2 - IL_0147: ldc.i8 0x1 - IL_0150: conv.i - IL_0151: add - IL_0152: stloc.2 - IL_0153: ldloc.2 - IL_0154: ldc.i8 0x0 - IL_015d: conv.i - IL_015e: cgt.un - IL_0160: stloc.1 - IL_0161: ldloc.1 - IL_0162: brtrue.s IL_0133 - - IL_0164: ret - - IL_0165: ldc.i8 0x0 - IL_016e: conv.i - IL_016f: ldc.i8 0xfffffffffffffffe - IL_0178: conv.i - IL_0179: bge.s IL_01cf - - IL_017b: ldc.i8 0x1 - IL_0184: conv.i - IL_0185: ldc.i8 0xa - IL_018e: conv.i - IL_018f: bge.s IL_01a1 - - IL_0191: ldc.i8 0x0 - IL_019a: conv.i - IL_019b: nop - IL_019c: br IL_022c - - IL_01a1: ldc.i8 0x1 - IL_01aa: conv.i - IL_01ab: ldc.i8 0xa - IL_01b4: conv.i - IL_01b5: sub - IL_01b6: ldc.i8 0xfffffffffffffffe - IL_01bf: conv.i - IL_01c0: div.un - IL_01c1: ldc.i8 0x1 - IL_01ca: conv.i - IL_01cb: add.ovf.un - IL_01cc: nop - IL_01cd: br.s IL_022c - - IL_01cf: ldc.i8 0xa - IL_01d8: conv.i - IL_01d9: ldc.i8 0x1 - IL_01e2: conv.i - IL_01e3: bge.s IL_01f2 - - IL_01e5: ldc.i8 0x0 - IL_01ee: conv.i - IL_01ef: nop - IL_01f0: br.s IL_022c - - IL_01f2: ldc.i8 0xa - IL_01fb: conv.i - IL_01fc: ldc.i8 0x1 - IL_0205: conv.i - IL_0206: sub - IL_0207: ldc.i8 0xfffffffffffffffe - IL_0210: conv.i - IL_0211: not - IL_0212: ldc.i8 0x1 - IL_021b: conv.i - IL_021c: add - IL_021d: div.un - IL_021e: ldc.i8 0x1 - IL_0227: conv.i - IL_0228: add.ovf.un - IL_0229: nop - IL_022a: br.s IL_022c - - IL_022c: stloc.2 - IL_022d: ldc.i8 0x0 - IL_0236: conv.i - IL_0237: stloc.3 - IL_0238: ldc.i8 0xa - IL_0241: conv.i - IL_0242: stloc.s V_4 - IL_0244: br.s IL_0269 + IL_009a: ldc.i8 0xa + IL_00a3: conv.i + IL_00a4: ldc.i8 0x1 + IL_00ad: conv.i + IL_00ae: bge.s IL_00bd + + IL_00b0: ldc.i8 0x0 + IL_00b9: conv.i + IL_00ba: nop + IL_00bb: br.s IL_00ea + IL_00bd: ldc.i8 0xa + IL_00c6: conv.i + IL_00c7: ldc.i8 0x1 + IL_00d0: conv.i + IL_00d1: sub + IL_00d2: ldc.i8 0xfffffffffffffffe + IL_00db: conv.i + IL_00dc: not + IL_00dd: ldc.i8 0x1 + IL_00e6: conv.i + IL_00e7: add + IL_00e8: div.un + IL_00e9: nop + IL_00ea: stloc.0 + IL_00eb: sizeof [runtime]System.IntPtr + IL_00f1: ldc.i4.4 + IL_00f2: bne.un.s IL_0104 + + IL_00f4: ldloc.0 + IL_00f5: ldc.i8 0xffffffff + IL_00fe: conv.u + IL_00ff: ceq + IL_0101: nop + IL_0102: br.s IL_0112 + + IL_0104: ldloc.0 + IL_0105: ldc.i8 0xffffffffffffffff + IL_010e: conv.u + IL_010f: ceq + IL_0111: nop + IL_0112: brfalse.s IL_0160 + + IL_0114: ldc.i4.1 + IL_0115: stloc.1 + IL_0116: ldc.i8 0x0 + IL_011f: conv.i + IL_0120: stloc.2 + IL_0121: ldc.i8 0xa + IL_012a: conv.i + IL_012b: stloc.3 + IL_012c: br.s IL_015c + + IL_012e: ldloc.3 + IL_012f: call void assembly::set_c(native int) + IL_0134: ldloc.3 + IL_0135: ldc.i8 0xfffffffffffffffe + IL_013e: conv.i + IL_013f: add + IL_0140: stloc.3 + IL_0141: ldloc.2 + IL_0142: ldc.i8 0x1 + IL_014b: conv.i + IL_014c: add + IL_014d: stloc.2 + IL_014e: ldloc.2 + IL_014f: ldc.i8 0x0 + IL_0158: conv.i + IL_0159: cgt.un + IL_015b: stloc.1 + IL_015c: ldloc.1 + IL_015d: brtrue.s IL_012e + + IL_015f: ret + + IL_0160: ldc.i8 0x0 + IL_0169: conv.i + IL_016a: ldc.i8 0xfffffffffffffffe + IL_0173: conv.i + IL_0174: bge.s IL_01ca + + IL_0176: ldc.i8 0x1 + IL_017f: conv.i + IL_0180: ldc.i8 0xa + IL_0189: conv.i + IL_018a: bge.s IL_019c + + IL_018c: ldc.i8 0x0 + IL_0195: conv.i + IL_0196: nop + IL_0197: br IL_0225 + + IL_019c: ldc.i8 0x1 + IL_01a5: conv.i + IL_01a6: ldc.i8 0xa + IL_01af: conv.i + IL_01b0: sub + IL_01b1: ldc.i8 0xfffffffffffffffe + IL_01ba: conv.i + IL_01bb: div.un + IL_01bc: ldc.i8 0x1 + IL_01c5: conv.i + IL_01c6: add.ovf.un + IL_01c7: nop + IL_01c8: br.s IL_0225 + + IL_01ca: ldc.i8 0xa + IL_01d3: conv.i + IL_01d4: ldc.i8 0x1 + IL_01dd: conv.i + IL_01de: bge.s IL_01ed + + IL_01e0: ldc.i8 0x0 + IL_01e9: conv.i + IL_01ea: nop + IL_01eb: br.s IL_0225 + + IL_01ed: ldc.i8 0xa + IL_01f6: conv.i + IL_01f7: ldc.i8 0x1 + IL_0200: conv.i + IL_0201: sub + IL_0202: ldc.i8 0xfffffffffffffffe + IL_020b: conv.i + IL_020c: not + IL_020d: ldc.i8 0x1 + IL_0216: conv.i + IL_0217: add + IL_0218: div.un + IL_0219: ldc.i8 0x1 + IL_0222: conv.i + IL_0223: add.ovf.un + IL_0224: nop + IL_0225: stloc.2 + IL_0226: ldc.i8 0x0 + IL_022f: conv.i + IL_0230: stloc.3 + IL_0231: ldc.i8 0xa + IL_023a: conv.i + IL_023b: stloc.s V_4 + IL_023d: br.s IL_0262 + + IL_023f: ldloc.s V_4 + IL_0241: call void assembly::set_c(native int) IL_0246: ldloc.s V_4 - IL_0248: call void assembly::set_c(native int) - IL_024d: ldloc.s V_4 - IL_024f: ldc.i8 0xfffffffffffffffe - IL_0258: conv.i - IL_0259: add - IL_025a: stloc.s V_4 - IL_025c: ldloc.3 - IL_025d: ldc.i8 0x1 - IL_0266: conv.i - IL_0267: add - IL_0268: stloc.3 - IL_0269: ldloc.3 - IL_026a: ldloc.2 - IL_026b: blt.un.s IL_0246 - - IL_026d: ret + IL_0248: ldc.i8 0xfffffffffffffffe + IL_0251: conv.i + IL_0252: add + IL_0253: stloc.s V_4 + IL_0255: ldloc.3 + IL_0256: ldc.i8 0x1 + IL_025f: conv.i + IL_0260: add + IL_0261: stloc.3 + IL_0262: ldloc.3 + IL_0263: ldloc.2 + IL_0264: blt.un.s IL_023f + + IL_0266: ret } .property native int c() @@ -1570,4 +1558,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepIntPtr.fs.RealInternalSignatureOn.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepIntPtr.fs.RealInternalSignatureOn.OptimizeOn.il.bsl index a1d0492b76f..8c210f2093d 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepIntPtr.fs.RealInternalSignatureOn.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepIntPtr.fs.RealInternalSignatureOn.OptimizeOn.il.bsl @@ -675,7 +675,7 @@ IL_004f: ldc.i8 0x0 IL_0058: conv.i IL_0059: nop - IL_005a: br.s IL_00bf + IL_005a: br.s IL_00bd IL_005c: ldc.i8 0xa IL_0065: conv.i @@ -685,7 +685,7 @@ IL_0071: ldarg.0 IL_0072: div.un IL_0073: nop - IL_0074: br.s IL_00bf + IL_0074: br.s IL_00bd IL_0076: ldc.i8 0x1 IL_007f: conv.i @@ -696,7 +696,7 @@ IL_008c: ldc.i8 0x0 IL_0095: conv.i IL_0096: nop - IL_0097: br.s IL_00bf + IL_0097: br.s IL_00bd IL_0099: ldc.i8 0x1 IL_00a2: conv.i @@ -710,140 +710,136 @@ IL_00ba: add IL_00bb: div.un IL_00bc: nop - IL_00bd: br.s IL_00bf - - IL_00bf: stloc.0 - IL_00c0: sizeof [runtime]System.IntPtr - IL_00c6: ldc.i4.4 - IL_00c7: bne.un.s IL_00d9 - - IL_00c9: ldloc.0 - IL_00ca: ldc.i8 0xffffffff - IL_00d3: conv.u - IL_00d4: ceq - IL_00d6: nop - IL_00d7: br.s IL_00e7 - - IL_00d9: ldloc.0 - IL_00da: ldc.i8 0xffffffffffffffff - IL_00e3: conv.u - IL_00e4: ceq - IL_00e6: nop - IL_00e7: brfalse.s IL_012c - - IL_00e9: ldc.i4.1 - IL_00ea: stloc.1 - IL_00eb: ldc.i8 0x0 - IL_00f4: conv.i - IL_00f5: stloc.2 - IL_00f6: ldc.i8 0x1 - IL_00ff: conv.i - IL_0100: stloc.3 - IL_0101: br.s IL_0128 - - IL_0103: ldloc.3 - IL_0104: call void assembly::set_c(native int) - IL_0109: ldloc.3 - IL_010a: ldarg.0 - IL_010b: add - IL_010c: stloc.3 - IL_010d: ldloc.2 - IL_010e: ldc.i8 0x1 - IL_0117: conv.i - IL_0118: add - IL_0119: stloc.2 - IL_011a: ldloc.2 - IL_011b: ldc.i8 0x0 - IL_0124: conv.i - IL_0125: cgt.un - IL_0127: stloc.1 - IL_0128: ldloc.1 - IL_0129: brtrue.s IL_0103 - - IL_012b: ret - - IL_012c: ldc.i8 0x0 - IL_0135: conv.i - IL_0136: ldarg.0 - IL_0137: bge.s IL_0184 - - IL_0139: ldc.i8 0xa - IL_0142: conv.i - IL_0143: ldc.i8 0x1 - IL_014c: conv.i - IL_014d: bge.s IL_015f + IL_00bd: stloc.0 + IL_00be: sizeof [runtime]System.IntPtr + IL_00c4: ldc.i4.4 + IL_00c5: bne.un.s IL_00d7 + + IL_00c7: ldloc.0 + IL_00c8: ldc.i8 0xffffffff + IL_00d1: conv.u + IL_00d2: ceq + IL_00d4: nop + IL_00d5: br.s IL_00e5 + + IL_00d7: ldloc.0 + IL_00d8: ldc.i8 0xffffffffffffffff + IL_00e1: conv.u + IL_00e2: ceq + IL_00e4: nop + IL_00e5: brfalse.s IL_012a - IL_014f: ldc.i8 0x0 - IL_0158: conv.i - IL_0159: nop - IL_015a: br IL_01d8 - - IL_015f: ldc.i8 0xa - IL_0168: conv.i - IL_0169: ldc.i8 0x1 - IL_0172: conv.i - IL_0173: sub - IL_0174: ldarg.0 - IL_0175: div.un - IL_0176: ldc.i8 0x1 - IL_017f: conv.i - IL_0180: add.ovf.un - IL_0181: nop - IL_0182: br.s IL_01d8 - - IL_0184: ldc.i8 0x1 - IL_018d: conv.i - IL_018e: ldc.i8 0xa - IL_0197: conv.i - IL_0198: bge.s IL_01a7 - - IL_019a: ldc.i8 0x0 - IL_01a3: conv.i - IL_01a4: nop - IL_01a5: br.s IL_01d8 - - IL_01a7: ldc.i8 0x1 - IL_01b0: conv.i - IL_01b1: ldc.i8 0xa - IL_01ba: conv.i - IL_01bb: sub - IL_01bc: ldarg.0 - IL_01bd: not - IL_01be: ldc.i8 0x1 - IL_01c7: conv.i - IL_01c8: add - IL_01c9: div.un - IL_01ca: ldc.i8 0x1 - IL_01d3: conv.i - IL_01d4: add.ovf.un - IL_01d5: nop - IL_01d6: br.s IL_01d8 - - IL_01d8: stloc.2 - IL_01d9: ldc.i8 0x0 - IL_01e2: conv.i - IL_01e3: stloc.3 - IL_01e4: ldc.i8 0x1 - IL_01ed: conv.i - IL_01ee: stloc.s V_4 - IL_01f0: br.s IL_020c - - IL_01f2: ldloc.s V_4 - IL_01f4: call void assembly::set_c(native int) - IL_01f9: ldloc.s V_4 - IL_01fb: ldarg.0 - IL_01fc: add - IL_01fd: stloc.s V_4 - IL_01ff: ldloc.3 - IL_0200: ldc.i8 0x1 - IL_0209: conv.i - IL_020a: add - IL_020b: stloc.3 - IL_020c: ldloc.3 - IL_020d: ldloc.2 - IL_020e: blt.un.s IL_01f2 - - IL_0210: ret + IL_00e7: ldc.i4.1 + IL_00e8: stloc.1 + IL_00e9: ldc.i8 0x0 + IL_00f2: conv.i + IL_00f3: stloc.2 + IL_00f4: ldc.i8 0x1 + IL_00fd: conv.i + IL_00fe: stloc.3 + IL_00ff: br.s IL_0126 + + IL_0101: ldloc.3 + IL_0102: call void assembly::set_c(native int) + IL_0107: ldloc.3 + IL_0108: ldarg.0 + IL_0109: add + IL_010a: stloc.3 + IL_010b: ldloc.2 + IL_010c: ldc.i8 0x1 + IL_0115: conv.i + IL_0116: add + IL_0117: stloc.2 + IL_0118: ldloc.2 + IL_0119: ldc.i8 0x0 + IL_0122: conv.i + IL_0123: cgt.un + IL_0125: stloc.1 + IL_0126: ldloc.1 + IL_0127: brtrue.s IL_0101 + + IL_0129: ret + + IL_012a: ldc.i8 0x0 + IL_0133: conv.i + IL_0134: ldarg.0 + IL_0135: bge.s IL_0182 + + IL_0137: ldc.i8 0xa + IL_0140: conv.i + IL_0141: ldc.i8 0x1 + IL_014a: conv.i + IL_014b: bge.s IL_015d + + IL_014d: ldc.i8 0x0 + IL_0156: conv.i + IL_0157: nop + IL_0158: br IL_01d4 + + IL_015d: ldc.i8 0xa + IL_0166: conv.i + IL_0167: ldc.i8 0x1 + IL_0170: conv.i + IL_0171: sub + IL_0172: ldarg.0 + IL_0173: div.un + IL_0174: ldc.i8 0x1 + IL_017d: conv.i + IL_017e: add.ovf.un + IL_017f: nop + IL_0180: br.s IL_01d4 + + IL_0182: ldc.i8 0x1 + IL_018b: conv.i + IL_018c: ldc.i8 0xa + IL_0195: conv.i + IL_0196: bge.s IL_01a5 + + IL_0198: ldc.i8 0x0 + IL_01a1: conv.i + IL_01a2: nop + IL_01a3: br.s IL_01d4 + + IL_01a5: ldc.i8 0x1 + IL_01ae: conv.i + IL_01af: ldc.i8 0xa + IL_01b8: conv.i + IL_01b9: sub + IL_01ba: ldarg.0 + IL_01bb: not + IL_01bc: ldc.i8 0x1 + IL_01c5: conv.i + IL_01c6: add + IL_01c7: div.un + IL_01c8: ldc.i8 0x1 + IL_01d1: conv.i + IL_01d2: add.ovf.un + IL_01d3: nop + IL_01d4: stloc.2 + IL_01d5: ldc.i8 0x0 + IL_01de: conv.i + IL_01df: stloc.3 + IL_01e0: ldc.i8 0x1 + IL_01e9: conv.i + IL_01ea: stloc.s V_4 + IL_01ec: br.s IL_0208 + + IL_01ee: ldloc.s V_4 + IL_01f0: call void assembly::set_c(native int) + IL_01f5: ldloc.s V_4 + IL_01f7: ldarg.0 + IL_01f8: add + IL_01f9: stloc.s V_4 + IL_01fb: ldloc.3 + IL_01fc: ldc.i8 0x1 + IL_0205: conv.i + IL_0206: add + IL_0207: stloc.3 + IL_0208: ldloc.3 + IL_0209: ldloc.2 + IL_020a: blt.un.s IL_01ee + + IL_020c: ret } .method public static void f9(native int finish) cil managed @@ -943,7 +939,7 @@ IL_002b: ldc.i8 0x0 IL_0034: conv.i IL_0035: nop - IL_0036: br.s IL_0065 + IL_0036: br.s IL_0063 IL_0038: ldarg.2 IL_0039: ldarg.2 @@ -951,7 +947,7 @@ IL_003b: ldarg.1 IL_003c: div.un IL_003d: nop - IL_003e: br.s IL_0065 + IL_003e: br.s IL_0063 IL_0040: ldarg.2 IL_0041: ldarg.2 @@ -960,7 +956,7 @@ IL_0044: ldc.i8 0x0 IL_004d: conv.i IL_004e: nop - IL_004f: br.s IL_0065 + IL_004f: br.s IL_0063 IL_0051: ldarg.2 IL_0052: ldarg.2 @@ -972,130 +968,126 @@ IL_0060: add IL_0061: div.un IL_0062: nop - IL_0063: br.s IL_0065 - - IL_0065: stloc.0 - IL_0066: sizeof [runtime]System.IntPtr - IL_006c: ldc.i4.4 - IL_006d: bne.un.s IL_007f - - IL_006f: ldloc.0 - IL_0070: ldc.i8 0xffffffff - IL_0079: conv.u - IL_007a: ceq - IL_007c: nop - IL_007d: br.s IL_008d - - IL_007f: ldloc.0 - IL_0080: ldc.i8 0xffffffffffffffff - IL_0089: conv.u - IL_008a: ceq - IL_008c: nop - IL_008d: brfalse.s IL_00c9 - - IL_008f: ldc.i4.1 - IL_0090: stloc.1 - IL_0091: ldc.i8 0x0 - IL_009a: conv.i - IL_009b: stloc.2 - IL_009c: ldarg.2 - IL_009d: stloc.3 - IL_009e: br.s IL_00c5 - - IL_00a0: ldloc.3 - IL_00a1: call void assembly::set_c(native int) - IL_00a6: ldloc.3 - IL_00a7: ldarg.1 - IL_00a8: add - IL_00a9: stloc.3 - IL_00aa: ldloc.2 - IL_00ab: ldc.i8 0x1 - IL_00b4: conv.i - IL_00b5: add - IL_00b6: stloc.2 - IL_00b7: ldloc.2 - IL_00b8: ldc.i8 0x0 - IL_00c1: conv.i - IL_00c2: cgt.un - IL_00c4: stloc.1 - IL_00c5: ldloc.1 - IL_00c6: brtrue.s IL_00a0 - - IL_00c8: ret - - IL_00c9: ldc.i8 0x0 - IL_00d2: conv.i - IL_00d3: ldarg.1 - IL_00d4: bge.s IL_00fa + IL_0063: stloc.0 + IL_0064: sizeof [runtime]System.IntPtr + IL_006a: ldc.i4.4 + IL_006b: bne.un.s IL_007d + + IL_006d: ldloc.0 + IL_006e: ldc.i8 0xffffffff + IL_0077: conv.u + IL_0078: ceq + IL_007a: nop + IL_007b: br.s IL_008b + + IL_007d: ldloc.0 + IL_007e: ldc.i8 0xffffffffffffffff + IL_0087: conv.u + IL_0088: ceq + IL_008a: nop + IL_008b: brfalse.s IL_00c7 + + IL_008d: ldc.i4.1 + IL_008e: stloc.1 + IL_008f: ldc.i8 0x0 + IL_0098: conv.i + IL_0099: stloc.2 + IL_009a: ldarg.2 + IL_009b: stloc.3 + IL_009c: br.s IL_00c3 + + IL_009e: ldloc.3 + IL_009f: call void assembly::set_c(native int) + IL_00a4: ldloc.3 + IL_00a5: ldarg.1 + IL_00a6: add + IL_00a7: stloc.3 + IL_00a8: ldloc.2 + IL_00a9: ldc.i8 0x1 + IL_00b2: conv.i + IL_00b3: add + IL_00b4: stloc.2 + IL_00b5: ldloc.2 + IL_00b6: ldc.i8 0x0 + IL_00bf: conv.i + IL_00c0: cgt.un + IL_00c2: stloc.1 + IL_00c3: ldloc.1 + IL_00c4: brtrue.s IL_009e + + IL_00c6: ret - IL_00d6: ldarg.2 - IL_00d7: ldarg.2 - IL_00d8: bge.s IL_00e7 + IL_00c7: ldc.i8 0x0 + IL_00d0: conv.i + IL_00d1: ldarg.1 + IL_00d2: bge.s IL_00f8 + + IL_00d4: ldarg.2 + IL_00d5: ldarg.2 + IL_00d6: bge.s IL_00e5 + + IL_00d8: ldc.i8 0x0 + IL_00e1: conv.i + IL_00e2: nop + IL_00e3: br.s IL_0126 + + IL_00e5: ldarg.2 + IL_00e6: ldarg.2 + IL_00e7: sub + IL_00e8: ldarg.1 + IL_00e9: div.un + IL_00ea: ldc.i8 0x1 + IL_00f3: conv.i + IL_00f4: add.ovf.un + IL_00f5: nop + IL_00f6: br.s IL_0126 + + IL_00f8: ldarg.2 + IL_00f9: ldarg.2 + IL_00fa: bge.s IL_0109 + + IL_00fc: ldc.i8 0x0 + IL_0105: conv.i + IL_0106: nop + IL_0107: br.s IL_0126 - IL_00da: ldc.i8 0x0 - IL_00e3: conv.i - IL_00e4: nop - IL_00e5: br.s IL_012a - - IL_00e7: ldarg.2 - IL_00e8: ldarg.2 - IL_00e9: sub - IL_00ea: ldarg.1 - IL_00eb: div.un - IL_00ec: ldc.i8 0x1 - IL_00f5: conv.i - IL_00f6: add.ovf.un - IL_00f7: nop - IL_00f8: br.s IL_012a - - IL_00fa: ldarg.2 - IL_00fb: ldarg.2 - IL_00fc: bge.s IL_010b - - IL_00fe: ldc.i8 0x0 - IL_0107: conv.i - IL_0108: nop - IL_0109: br.s IL_012a - - IL_010b: ldarg.2 - IL_010c: ldarg.2 - IL_010d: sub - IL_010e: ldarg.1 - IL_010f: not - IL_0110: ldc.i8 0x1 - IL_0119: conv.i - IL_011a: add - IL_011b: div.un - IL_011c: ldc.i8 0x1 - IL_0125: conv.i - IL_0126: add.ovf.un - IL_0127: nop - IL_0128: br.s IL_012a - - IL_012a: stloc.2 - IL_012b: ldc.i8 0x0 - IL_0134: conv.i - IL_0135: stloc.3 - IL_0136: ldarg.2 - IL_0137: stloc.s V_4 - IL_0139: br.s IL_0155 - - IL_013b: ldloc.s V_4 - IL_013d: call void assembly::set_c(native int) - IL_0142: ldloc.s V_4 - IL_0144: ldarg.1 - IL_0145: add - IL_0146: stloc.s V_4 - IL_0148: ldloc.3 - IL_0149: ldc.i8 0x1 - IL_0152: conv.i - IL_0153: add - IL_0154: stloc.3 - IL_0155: ldloc.3 - IL_0156: ldloc.2 - IL_0157: blt.un.s IL_013b - - IL_0159: ret + IL_0109: ldarg.2 + IL_010a: ldarg.2 + IL_010b: sub + IL_010c: ldarg.1 + IL_010d: not + IL_010e: ldc.i8 0x1 + IL_0117: conv.i + IL_0118: add + IL_0119: div.un + IL_011a: ldc.i8 0x1 + IL_0123: conv.i + IL_0124: add.ovf.un + IL_0125: nop + IL_0126: stloc.2 + IL_0127: ldc.i8 0x0 + IL_0130: conv.i + IL_0131: stloc.3 + IL_0132: ldarg.2 + IL_0133: stloc.s V_4 + IL_0135: br.s IL_0151 + + IL_0137: ldloc.s V_4 + IL_0139: call void assembly::set_c(native int) + IL_013e: ldloc.s V_4 + IL_0140: ldarg.1 + IL_0141: add + IL_0142: stloc.s V_4 + IL_0144: ldloc.3 + IL_0145: ldc.i8 0x1 + IL_014e: conv.i + IL_014f: add + IL_0150: stloc.3 + IL_0151: ldloc.3 + IL_0152: ldloc.2 + IL_0153: blt.un.s IL_0137 + + IL_0155: ret } .method public static void f11(native int start, @@ -1349,193 +1341,189 @@ IL_0047: conv.i IL_0048: ldc.i8 0xfffffffffffffffe IL_0051: conv.i - IL_0052: bge.s IL_009d + IL_0052: bge.s IL_009a IL_0054: ldc.i8 0x1 IL_005d: conv.i IL_005e: ldc.i8 0xa IL_0067: conv.i - IL_0068: bge.s IL_007a + IL_0068: bge.s IL_0077 IL_006a: ldc.i8 0x0 IL_0073: conv.i IL_0074: nop - IL_0075: br IL_00ef + IL_0075: br.s IL_00ea + + IL_0077: ldc.i8 0x1 + IL_0080: conv.i + IL_0081: ldc.i8 0xa + IL_008a: conv.i + IL_008b: sub + IL_008c: ldc.i8 0xfffffffffffffffe + IL_0095: conv.i + IL_0096: div.un + IL_0097: nop + IL_0098: br.s IL_00ea - IL_007a: ldc.i8 0x1 - IL_0083: conv.i - IL_0084: ldc.i8 0xa - IL_008d: conv.i - IL_008e: sub - IL_008f: ldc.i8 0xfffffffffffffffe - IL_0098: conv.i - IL_0099: div.un - IL_009a: nop - IL_009b: br.s IL_00ef - - IL_009d: ldc.i8 0xa - IL_00a6: conv.i - IL_00a7: ldc.i8 0x1 - IL_00b0: conv.i - IL_00b1: bge.s IL_00c0 - - IL_00b3: ldc.i8 0x0 - IL_00bc: conv.i - IL_00bd: nop - IL_00be: br.s IL_00ef - - IL_00c0: ldc.i8 0xa - IL_00c9: conv.i - IL_00ca: ldc.i8 0x1 - IL_00d3: conv.i - IL_00d4: sub - IL_00d5: ldc.i8 0xfffffffffffffffe - IL_00de: conv.i - IL_00df: not - IL_00e0: ldc.i8 0x1 - IL_00e9: conv.i - IL_00ea: add - IL_00eb: div.un - IL_00ec: nop - IL_00ed: br.s IL_00ef - - IL_00ef: stloc.0 - IL_00f0: sizeof [runtime]System.IntPtr - IL_00f6: ldc.i4.4 - IL_00f7: bne.un.s IL_0109 - - IL_00f9: ldloc.0 - IL_00fa: ldc.i8 0xffffffff - IL_0103: conv.u - IL_0104: ceq - IL_0106: nop - IL_0107: br.s IL_0117 - - IL_0109: ldloc.0 - IL_010a: ldc.i8 0xffffffffffffffff - IL_0113: conv.u - IL_0114: ceq - IL_0116: nop - IL_0117: brfalse.s IL_0165 - - IL_0119: ldc.i4.1 - IL_011a: stloc.1 - IL_011b: ldc.i8 0x0 - IL_0124: conv.i - IL_0125: stloc.2 - IL_0126: ldc.i8 0xa - IL_012f: conv.i - IL_0130: stloc.3 - IL_0131: br.s IL_0161 - - IL_0133: ldloc.3 - IL_0134: call void assembly::set_c(native int) - IL_0139: ldloc.3 - IL_013a: ldc.i8 0xfffffffffffffffe - IL_0143: conv.i - IL_0144: add - IL_0145: stloc.3 - IL_0146: ldloc.2 - IL_0147: ldc.i8 0x1 - IL_0150: conv.i - IL_0151: add - IL_0152: stloc.2 - IL_0153: ldloc.2 - IL_0154: ldc.i8 0x0 - IL_015d: conv.i - IL_015e: cgt.un - IL_0160: stloc.1 - IL_0161: ldloc.1 - IL_0162: brtrue.s IL_0133 - - IL_0164: ret - - IL_0165: ldc.i8 0x0 - IL_016e: conv.i - IL_016f: ldc.i8 0xfffffffffffffffe - IL_0178: conv.i - IL_0179: bge.s IL_01cf - - IL_017b: ldc.i8 0x1 - IL_0184: conv.i - IL_0185: ldc.i8 0xa - IL_018e: conv.i - IL_018f: bge.s IL_01a1 - - IL_0191: ldc.i8 0x0 - IL_019a: conv.i - IL_019b: nop - IL_019c: br IL_022c - - IL_01a1: ldc.i8 0x1 - IL_01aa: conv.i - IL_01ab: ldc.i8 0xa - IL_01b4: conv.i - IL_01b5: sub - IL_01b6: ldc.i8 0xfffffffffffffffe - IL_01bf: conv.i - IL_01c0: div.un - IL_01c1: ldc.i8 0x1 - IL_01ca: conv.i - IL_01cb: add.ovf.un - IL_01cc: nop - IL_01cd: br.s IL_022c - - IL_01cf: ldc.i8 0xa - IL_01d8: conv.i - IL_01d9: ldc.i8 0x1 - IL_01e2: conv.i - IL_01e3: bge.s IL_01f2 - - IL_01e5: ldc.i8 0x0 - IL_01ee: conv.i - IL_01ef: nop - IL_01f0: br.s IL_022c - - IL_01f2: ldc.i8 0xa - IL_01fb: conv.i - IL_01fc: ldc.i8 0x1 - IL_0205: conv.i - IL_0206: sub - IL_0207: ldc.i8 0xfffffffffffffffe - IL_0210: conv.i - IL_0211: not - IL_0212: ldc.i8 0x1 - IL_021b: conv.i - IL_021c: add - IL_021d: div.un - IL_021e: ldc.i8 0x1 - IL_0227: conv.i - IL_0228: add.ovf.un - IL_0229: nop - IL_022a: br.s IL_022c - - IL_022c: stloc.2 - IL_022d: ldc.i8 0x0 - IL_0236: conv.i - IL_0237: stloc.3 - IL_0238: ldc.i8 0xa - IL_0241: conv.i - IL_0242: stloc.s V_4 - IL_0244: br.s IL_0269 + IL_009a: ldc.i8 0xa + IL_00a3: conv.i + IL_00a4: ldc.i8 0x1 + IL_00ad: conv.i + IL_00ae: bge.s IL_00bd + + IL_00b0: ldc.i8 0x0 + IL_00b9: conv.i + IL_00ba: nop + IL_00bb: br.s IL_00ea + IL_00bd: ldc.i8 0xa + IL_00c6: conv.i + IL_00c7: ldc.i8 0x1 + IL_00d0: conv.i + IL_00d1: sub + IL_00d2: ldc.i8 0xfffffffffffffffe + IL_00db: conv.i + IL_00dc: not + IL_00dd: ldc.i8 0x1 + IL_00e6: conv.i + IL_00e7: add + IL_00e8: div.un + IL_00e9: nop + IL_00ea: stloc.0 + IL_00eb: sizeof [runtime]System.IntPtr + IL_00f1: ldc.i4.4 + IL_00f2: bne.un.s IL_0104 + + IL_00f4: ldloc.0 + IL_00f5: ldc.i8 0xffffffff + IL_00fe: conv.u + IL_00ff: ceq + IL_0101: nop + IL_0102: br.s IL_0112 + + IL_0104: ldloc.0 + IL_0105: ldc.i8 0xffffffffffffffff + IL_010e: conv.u + IL_010f: ceq + IL_0111: nop + IL_0112: brfalse.s IL_0160 + + IL_0114: ldc.i4.1 + IL_0115: stloc.1 + IL_0116: ldc.i8 0x0 + IL_011f: conv.i + IL_0120: stloc.2 + IL_0121: ldc.i8 0xa + IL_012a: conv.i + IL_012b: stloc.3 + IL_012c: br.s IL_015c + + IL_012e: ldloc.3 + IL_012f: call void assembly::set_c(native int) + IL_0134: ldloc.3 + IL_0135: ldc.i8 0xfffffffffffffffe + IL_013e: conv.i + IL_013f: add + IL_0140: stloc.3 + IL_0141: ldloc.2 + IL_0142: ldc.i8 0x1 + IL_014b: conv.i + IL_014c: add + IL_014d: stloc.2 + IL_014e: ldloc.2 + IL_014f: ldc.i8 0x0 + IL_0158: conv.i + IL_0159: cgt.un + IL_015b: stloc.1 + IL_015c: ldloc.1 + IL_015d: brtrue.s IL_012e + + IL_015f: ret + + IL_0160: ldc.i8 0x0 + IL_0169: conv.i + IL_016a: ldc.i8 0xfffffffffffffffe + IL_0173: conv.i + IL_0174: bge.s IL_01ca + + IL_0176: ldc.i8 0x1 + IL_017f: conv.i + IL_0180: ldc.i8 0xa + IL_0189: conv.i + IL_018a: bge.s IL_019c + + IL_018c: ldc.i8 0x0 + IL_0195: conv.i + IL_0196: nop + IL_0197: br IL_0225 + + IL_019c: ldc.i8 0x1 + IL_01a5: conv.i + IL_01a6: ldc.i8 0xa + IL_01af: conv.i + IL_01b0: sub + IL_01b1: ldc.i8 0xfffffffffffffffe + IL_01ba: conv.i + IL_01bb: div.un + IL_01bc: ldc.i8 0x1 + IL_01c5: conv.i + IL_01c6: add.ovf.un + IL_01c7: nop + IL_01c8: br.s IL_0225 + + IL_01ca: ldc.i8 0xa + IL_01d3: conv.i + IL_01d4: ldc.i8 0x1 + IL_01dd: conv.i + IL_01de: bge.s IL_01ed + + IL_01e0: ldc.i8 0x0 + IL_01e9: conv.i + IL_01ea: nop + IL_01eb: br.s IL_0225 + + IL_01ed: ldc.i8 0xa + IL_01f6: conv.i + IL_01f7: ldc.i8 0x1 + IL_0200: conv.i + IL_0201: sub + IL_0202: ldc.i8 0xfffffffffffffffe + IL_020b: conv.i + IL_020c: not + IL_020d: ldc.i8 0x1 + IL_0216: conv.i + IL_0217: add + IL_0218: div.un + IL_0219: ldc.i8 0x1 + IL_0222: conv.i + IL_0223: add.ovf.un + IL_0224: nop + IL_0225: stloc.2 + IL_0226: ldc.i8 0x0 + IL_022f: conv.i + IL_0230: stloc.3 + IL_0231: ldc.i8 0xa + IL_023a: conv.i + IL_023b: stloc.s V_4 + IL_023d: br.s IL_0262 + + IL_023f: ldloc.s V_4 + IL_0241: call void assembly::set_c(native int) IL_0246: ldloc.s V_4 - IL_0248: call void assembly::set_c(native int) - IL_024d: ldloc.s V_4 - IL_024f: ldc.i8 0xfffffffffffffffe - IL_0258: conv.i - IL_0259: add - IL_025a: stloc.s V_4 - IL_025c: ldloc.3 - IL_025d: ldc.i8 0x1 - IL_0266: conv.i - IL_0267: add - IL_0268: stloc.3 - IL_0269: ldloc.3 - IL_026a: ldloc.2 - IL_026b: blt.un.s IL_0246 - - IL_026d: ret + IL_0248: ldc.i8 0xfffffffffffffffe + IL_0251: conv.i + IL_0252: add + IL_0253: stloc.s V_4 + IL_0255: ldloc.3 + IL_0256: ldc.i8 0x1 + IL_025f: conv.i + IL_0260: add + IL_0261: stloc.3 + IL_0262: ldloc.3 + IL_0263: ldloc.2 + IL_0264: blt.un.s IL_023f + + IL_0266: ret } .method private specialname rtspecialname static void .cctor() cil managed @@ -1589,4 +1577,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepSByte.fs.RealInternalSignatureOff.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepSByte.fs.RealInternalSignatureOff.OptimizeOn.il.bsl index 7bd29ca5924..0dbbc35ccf2 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepSByte.fs.RealInternalSignatureOff.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepSByte.fs.RealInternalSignatureOff.OptimizeOn.il.bsl @@ -526,7 +526,7 @@ IL_0018: ldc.i4.0 IL_0019: nop - IL_001a: br.s IL_003d + IL_001a: br.s IL_003b IL_001c: ldarg.2 IL_001d: ldarg.2 @@ -537,7 +537,7 @@ IL_0022: ldc.i4.1 IL_0023: add IL_0024: nop - IL_0025: br.s IL_003d + IL_0025: br.s IL_003b IL_0027: ldarg.2 IL_0028: ldarg.2 @@ -545,7 +545,7 @@ IL_002b: ldc.i4.0 IL_002c: nop - IL_002d: br.s IL_003d + IL_002d: br.s IL_003b IL_002f: ldarg.2 IL_0030: ldarg.2 @@ -559,30 +559,28 @@ IL_0038: ldc.i4.1 IL_0039: add IL_003a: nop - IL_003b: br.s IL_003d - - IL_003d: stloc.0 - IL_003e: ldc.i4.0 - IL_003f: stloc.1 - IL_0040: ldarg.2 - IL_0041: stloc.2 - IL_0042: br.s IL_0052 - - IL_0044: ldloc.2 - IL_0045: call void assembly::set_c(int8) - IL_004a: ldloc.2 - IL_004b: ldarg.1 - IL_004c: add - IL_004d: stloc.2 - IL_004e: ldloc.1 - IL_004f: ldc.i4.1 - IL_0050: add - IL_0051: stloc.1 - IL_0052: ldloc.1 - IL_0053: ldloc.0 - IL_0054: blt.un.s IL_0044 - - IL_0056: ret + IL_003b: stloc.0 + IL_003c: ldc.i4.0 + IL_003d: stloc.1 + IL_003e: ldarg.2 + IL_003f: stloc.2 + IL_0040: br.s IL_0050 + + IL_0042: ldloc.2 + IL_0043: call void assembly::set_c(int8) + IL_0048: ldloc.2 + IL_0049: ldarg.1 + IL_004a: add + IL_004b: stloc.2 + IL_004c: ldloc.1 + IL_004d: ldc.i4.1 + IL_004e: add + IL_004f: stloc.1 + IL_0050: ldloc.1 + IL_0051: ldloc.0 + IL_0052: blt.un.s IL_0042 + + IL_0054: ret } .method public static void f11(int8 start, @@ -756,4 +754,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepSByte.fs.RealInternalSignatureOn.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepSByte.fs.RealInternalSignatureOn.OptimizeOn.il.bsl index 3dcae825c6e..b89bfde296a 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepSByte.fs.RealInternalSignatureOn.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStepSByte.fs.RealInternalSignatureOn.OptimizeOn.il.bsl @@ -528,7 +528,7 @@ IL_0018: ldc.i4.0 IL_0019: nop - IL_001a: br.s IL_003d + IL_001a: br.s IL_003b IL_001c: ldarg.2 IL_001d: ldarg.2 @@ -539,7 +539,7 @@ IL_0022: ldc.i4.1 IL_0023: add IL_0024: nop - IL_0025: br.s IL_003d + IL_0025: br.s IL_003b IL_0027: ldarg.2 IL_0028: ldarg.2 @@ -547,7 +547,7 @@ IL_002b: ldc.i4.0 IL_002c: nop - IL_002d: br.s IL_003d + IL_002d: br.s IL_003b IL_002f: ldarg.2 IL_0030: ldarg.2 @@ -561,30 +561,28 @@ IL_0038: ldc.i4.1 IL_0039: add IL_003a: nop - IL_003b: br.s IL_003d - - IL_003d: stloc.0 - IL_003e: ldc.i4.0 - IL_003f: stloc.1 - IL_0040: ldarg.2 - IL_0041: stloc.2 - IL_0042: br.s IL_0052 - - IL_0044: ldloc.2 - IL_0045: call void assembly::set_c(int8) - IL_004a: ldloc.2 - IL_004b: ldarg.1 - IL_004c: add - IL_004d: stloc.2 - IL_004e: ldloc.1 - IL_004f: ldc.i4.1 - IL_0050: add - IL_0051: stloc.1 - IL_0052: ldloc.1 - IL_0053: ldloc.0 - IL_0054: blt.un.s IL_0044 - - IL_0056: ret + IL_003b: stloc.0 + IL_003c: ldc.i4.0 + IL_003d: stloc.1 + IL_003e: ldarg.2 + IL_003f: stloc.2 + IL_0040: br.s IL_0050 + + IL_0042: ldloc.2 + IL_0043: call void assembly::set_c(int8) + IL_0048: ldloc.2 + IL_0049: ldarg.1 + IL_004a: add + IL_004b: stloc.2 + IL_004c: ldloc.1 + IL_004d: ldc.i4.1 + IL_004e: add + IL_004f: stloc.1 + IL_0050: ldloc.1 + IL_0051: ldloc.0 + IL_0052: blt.un.s IL_0042 + + IL_0054: ret } .method public static void f11(int8 start, @@ -775,4 +773,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStep_UnitsOfMeasure.fs.RealInternalSignatureOff.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStep_UnitsOfMeasure.fs.RealInternalSignatureOff.OptimizeOn.il.bsl index 6bce777c8fa..52540086f58 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStep_UnitsOfMeasure.fs.RealInternalSignatureOff.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStep_UnitsOfMeasure.fs.RealInternalSignatureOff.OptimizeOn.il.bsl @@ -370,7 +370,7 @@ IL_0019: ldc.i4.0 IL_001a: conv.i8 IL_001b: nop - IL_001c: br.s IL_003b + IL_001c: br.s IL_0039 IL_001e: ldarg.2 IL_001f: ldarg.0 @@ -378,7 +378,7 @@ IL_0021: ldarg.1 IL_0022: div.un IL_0023: nop - IL_0024: br.s IL_003b + IL_0024: br.s IL_0039 IL_0026: ldarg.0 IL_0027: ldarg.2 @@ -387,7 +387,7 @@ IL_002a: ldc.i4.0 IL_002b: conv.i8 IL_002c: nop - IL_002d: br.s IL_003b + IL_002d: br.s IL_0039 IL_002f: ldarg.0 IL_0030: ldarg.2 @@ -399,117 +399,113 @@ IL_0036: add IL_0037: div.un IL_0038: nop - IL_0039: br.s IL_003b - - IL_003b: stloc.0 - IL_003c: ldloc.0 - IL_003d: ldc.i4.m1 - IL_003e: conv.i8 - IL_003f: bne.un.s IL_0063 - - IL_0041: ldc.i4.1 - IL_0042: stloc.1 - IL_0043: ldc.i4.0 - IL_0044: conv.i8 - IL_0045: stloc.2 - IL_0046: ldarg.0 - IL_0047: stloc.3 - IL_0048: br.s IL_005f - - IL_004a: ldloc.3 - IL_004b: call void assembly::set_c(int64) - IL_0050: ldloc.3 - IL_0051: ldarg.1 - IL_0052: add - IL_0053: stloc.3 - IL_0054: ldloc.2 - IL_0055: ldc.i4.1 - IL_0056: conv.i8 - IL_0057: add - IL_0058: stloc.2 - IL_0059: ldloc.2 - IL_005a: ldc.i4.0 - IL_005b: conv.i8 - IL_005c: cgt.un - IL_005e: stloc.1 - IL_005f: ldloc.1 - IL_0060: brtrue.s IL_004a - - IL_0062: ret - - IL_0063: ldc.i4.0 - IL_0064: conv.i8 - IL_0065: ldarg.1 - IL_0066: bge.s IL_007c - - IL_0068: ldarg.2 - IL_0069: ldarg.0 - IL_006a: bge.s IL_0071 - - IL_006c: ldc.i4.0 - IL_006d: conv.i8 - IL_006e: nop - IL_006f: br.s IL_0094 - - IL_0071: ldarg.2 - IL_0072: ldarg.0 - IL_0073: sub - IL_0074: ldarg.1 - IL_0075: div.un - IL_0076: ldc.i4.1 - IL_0077: conv.i8 - IL_0078: add.ovf.un - IL_0079: nop - IL_007a: br.s IL_0094 - - IL_007c: ldarg.0 - IL_007d: ldarg.2 - IL_007e: bge.s IL_0085 - - IL_0080: ldc.i4.0 - IL_0081: conv.i8 - IL_0082: nop - IL_0083: br.s IL_0094 - - IL_0085: ldarg.0 - IL_0086: ldarg.2 - IL_0087: sub - IL_0088: ldarg.1 - IL_0089: not - IL_008a: ldc.i4.1 - IL_008b: conv.i8 - IL_008c: add - IL_008d: div.un - IL_008e: ldc.i4.1 - IL_008f: conv.i8 - IL_0090: add.ovf.un - IL_0091: nop - IL_0092: br.s IL_0094 - - IL_0094: stloc.2 - IL_0095: ldc.i4.0 - IL_0096: conv.i8 - IL_0097: stloc.s V_4 - IL_0099: ldarg.0 - IL_009a: stloc.3 - IL_009b: br.s IL_00ae - - IL_009d: ldloc.3 - IL_009e: call void assembly::set_c(int64) - IL_00a3: ldloc.3 - IL_00a4: ldarg.1 - IL_00a5: add - IL_00a6: stloc.3 - IL_00a7: ldloc.s V_4 - IL_00a9: ldc.i4.1 - IL_00aa: conv.i8 - IL_00ab: add - IL_00ac: stloc.s V_4 - IL_00ae: ldloc.s V_4 - IL_00b0: ldloc.2 - IL_00b1: blt.un.s IL_009d - - IL_00b3: ret + IL_0039: stloc.0 + IL_003a: ldloc.0 + IL_003b: ldc.i4.m1 + IL_003c: conv.i8 + IL_003d: bne.un.s IL_0061 + + IL_003f: ldc.i4.1 + IL_0040: stloc.1 + IL_0041: ldc.i4.0 + IL_0042: conv.i8 + IL_0043: stloc.2 + IL_0044: ldarg.0 + IL_0045: stloc.3 + IL_0046: br.s IL_005d + + IL_0048: ldloc.3 + IL_0049: call void assembly::set_c(int64) + IL_004e: ldloc.3 + IL_004f: ldarg.1 + IL_0050: add + IL_0051: stloc.3 + IL_0052: ldloc.2 + IL_0053: ldc.i4.1 + IL_0054: conv.i8 + IL_0055: add + IL_0056: stloc.2 + IL_0057: ldloc.2 + IL_0058: ldc.i4.0 + IL_0059: conv.i8 + IL_005a: cgt.un + IL_005c: stloc.1 + IL_005d: ldloc.1 + IL_005e: brtrue.s IL_0048 + + IL_0060: ret + + IL_0061: ldc.i4.0 + IL_0062: conv.i8 + IL_0063: ldarg.1 + IL_0064: bge.s IL_007a + + IL_0066: ldarg.2 + IL_0067: ldarg.0 + IL_0068: bge.s IL_006f + + IL_006a: ldc.i4.0 + IL_006b: conv.i8 + IL_006c: nop + IL_006d: br.s IL_0090 + + IL_006f: ldarg.2 + IL_0070: ldarg.0 + IL_0071: sub + IL_0072: ldarg.1 + IL_0073: div.un + IL_0074: ldc.i4.1 + IL_0075: conv.i8 + IL_0076: add.ovf.un + IL_0077: nop + IL_0078: br.s IL_0090 + + IL_007a: ldarg.0 + IL_007b: ldarg.2 + IL_007c: bge.s IL_0083 + + IL_007e: ldc.i4.0 + IL_007f: conv.i8 + IL_0080: nop + IL_0081: br.s IL_0090 + + IL_0083: ldarg.0 + IL_0084: ldarg.2 + IL_0085: sub + IL_0086: ldarg.1 + IL_0087: not + IL_0088: ldc.i4.1 + IL_0089: conv.i8 + IL_008a: add + IL_008b: div.un + IL_008c: ldc.i4.1 + IL_008d: conv.i8 + IL_008e: add.ovf.un + IL_008f: nop + IL_0090: stloc.2 + IL_0091: ldc.i4.0 + IL_0092: conv.i8 + IL_0093: stloc.s V_4 + IL_0095: ldarg.0 + IL_0096: stloc.3 + IL_0097: br.s IL_00aa + + IL_0099: ldloc.3 + IL_009a: call void assembly::set_c(int64) + IL_009f: ldloc.3 + IL_00a0: ldarg.1 + IL_00a1: add + IL_00a2: stloc.3 + IL_00a3: ldloc.s V_4 + IL_00a5: ldc.i4.1 + IL_00a6: conv.i8 + IL_00a7: add + IL_00a8: stloc.s V_4 + IL_00aa: ldloc.s V_4 + IL_00ac: ldloc.2 + IL_00ad: blt.un.s IL_0099 + + IL_00af: ret } .method public static void f8(int64 start, @@ -707,4 +703,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStep_UnitsOfMeasure.fs.RealInternalSignatureOn.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStep_UnitsOfMeasure.fs.RealInternalSignatureOn.OptimizeOn.il.bsl index 9e36a79c6d4..b535fab7c65 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStep_UnitsOfMeasure.fs.RealInternalSignatureOn.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/ForEachRangeStep_UnitsOfMeasure.fs.RealInternalSignatureOn.OptimizeOn.il.bsl @@ -372,7 +372,7 @@ IL_0019: ldc.i4.0 IL_001a: conv.i8 IL_001b: nop - IL_001c: br.s IL_003b + IL_001c: br.s IL_0039 IL_001e: ldarg.2 IL_001f: ldarg.0 @@ -380,7 +380,7 @@ IL_0021: ldarg.1 IL_0022: div.un IL_0023: nop - IL_0024: br.s IL_003b + IL_0024: br.s IL_0039 IL_0026: ldarg.0 IL_0027: ldarg.2 @@ -389,7 +389,7 @@ IL_002a: ldc.i4.0 IL_002b: conv.i8 IL_002c: nop - IL_002d: br.s IL_003b + IL_002d: br.s IL_0039 IL_002f: ldarg.0 IL_0030: ldarg.2 @@ -401,117 +401,113 @@ IL_0036: add IL_0037: div.un IL_0038: nop - IL_0039: br.s IL_003b - - IL_003b: stloc.0 - IL_003c: ldloc.0 - IL_003d: ldc.i4.m1 - IL_003e: conv.i8 - IL_003f: bne.un.s IL_0063 - - IL_0041: ldc.i4.1 - IL_0042: stloc.1 - IL_0043: ldc.i4.0 - IL_0044: conv.i8 - IL_0045: stloc.2 - IL_0046: ldarg.0 - IL_0047: stloc.3 - IL_0048: br.s IL_005f - - IL_004a: ldloc.3 - IL_004b: call void assembly::set_c(int64) - IL_0050: ldloc.3 - IL_0051: ldarg.1 - IL_0052: add - IL_0053: stloc.3 - IL_0054: ldloc.2 - IL_0055: ldc.i4.1 - IL_0056: conv.i8 - IL_0057: add - IL_0058: stloc.2 - IL_0059: ldloc.2 - IL_005a: ldc.i4.0 - IL_005b: conv.i8 - IL_005c: cgt.un - IL_005e: stloc.1 - IL_005f: ldloc.1 - IL_0060: brtrue.s IL_004a - - IL_0062: ret - - IL_0063: ldc.i4.0 - IL_0064: conv.i8 - IL_0065: ldarg.1 - IL_0066: bge.s IL_007c - - IL_0068: ldarg.2 - IL_0069: ldarg.0 - IL_006a: bge.s IL_0071 - - IL_006c: ldc.i4.0 - IL_006d: conv.i8 - IL_006e: nop - IL_006f: br.s IL_0094 - - IL_0071: ldarg.2 - IL_0072: ldarg.0 - IL_0073: sub - IL_0074: ldarg.1 - IL_0075: div.un - IL_0076: ldc.i4.1 - IL_0077: conv.i8 - IL_0078: add.ovf.un - IL_0079: nop - IL_007a: br.s IL_0094 - - IL_007c: ldarg.0 - IL_007d: ldarg.2 - IL_007e: bge.s IL_0085 - - IL_0080: ldc.i4.0 - IL_0081: conv.i8 - IL_0082: nop - IL_0083: br.s IL_0094 - - IL_0085: ldarg.0 - IL_0086: ldarg.2 - IL_0087: sub - IL_0088: ldarg.1 - IL_0089: not - IL_008a: ldc.i4.1 - IL_008b: conv.i8 - IL_008c: add - IL_008d: div.un - IL_008e: ldc.i4.1 - IL_008f: conv.i8 - IL_0090: add.ovf.un - IL_0091: nop - IL_0092: br.s IL_0094 - - IL_0094: stloc.2 - IL_0095: ldc.i4.0 - IL_0096: conv.i8 - IL_0097: stloc.s V_4 - IL_0099: ldarg.0 - IL_009a: stloc.3 - IL_009b: br.s IL_00ae - - IL_009d: ldloc.3 - IL_009e: call void assembly::set_c(int64) - IL_00a3: ldloc.3 - IL_00a4: ldarg.1 - IL_00a5: add - IL_00a6: stloc.3 - IL_00a7: ldloc.s V_4 - IL_00a9: ldc.i4.1 - IL_00aa: conv.i8 - IL_00ab: add - IL_00ac: stloc.s V_4 - IL_00ae: ldloc.s V_4 - IL_00b0: ldloc.2 - IL_00b1: blt.un.s IL_009d - - IL_00b3: ret + IL_0039: stloc.0 + IL_003a: ldloc.0 + IL_003b: ldc.i4.m1 + IL_003c: conv.i8 + IL_003d: bne.un.s IL_0061 + + IL_003f: ldc.i4.1 + IL_0040: stloc.1 + IL_0041: ldc.i4.0 + IL_0042: conv.i8 + IL_0043: stloc.2 + IL_0044: ldarg.0 + IL_0045: stloc.3 + IL_0046: br.s IL_005d + + IL_0048: ldloc.3 + IL_0049: call void assembly::set_c(int64) + IL_004e: ldloc.3 + IL_004f: ldarg.1 + IL_0050: add + IL_0051: stloc.3 + IL_0052: ldloc.2 + IL_0053: ldc.i4.1 + IL_0054: conv.i8 + IL_0055: add + IL_0056: stloc.2 + IL_0057: ldloc.2 + IL_0058: ldc.i4.0 + IL_0059: conv.i8 + IL_005a: cgt.un + IL_005c: stloc.1 + IL_005d: ldloc.1 + IL_005e: brtrue.s IL_0048 + + IL_0060: ret + + IL_0061: ldc.i4.0 + IL_0062: conv.i8 + IL_0063: ldarg.1 + IL_0064: bge.s IL_007a + + IL_0066: ldarg.2 + IL_0067: ldarg.0 + IL_0068: bge.s IL_006f + + IL_006a: ldc.i4.0 + IL_006b: conv.i8 + IL_006c: nop + IL_006d: br.s IL_0090 + + IL_006f: ldarg.2 + IL_0070: ldarg.0 + IL_0071: sub + IL_0072: ldarg.1 + IL_0073: div.un + IL_0074: ldc.i4.1 + IL_0075: conv.i8 + IL_0076: add.ovf.un + IL_0077: nop + IL_0078: br.s IL_0090 + + IL_007a: ldarg.0 + IL_007b: ldarg.2 + IL_007c: bge.s IL_0083 + + IL_007e: ldc.i4.0 + IL_007f: conv.i8 + IL_0080: nop + IL_0081: br.s IL_0090 + + IL_0083: ldarg.0 + IL_0084: ldarg.2 + IL_0085: sub + IL_0086: ldarg.1 + IL_0087: not + IL_0088: ldc.i4.1 + IL_0089: conv.i8 + IL_008a: add + IL_008b: div.un + IL_008c: ldc.i4.1 + IL_008d: conv.i8 + IL_008e: add.ovf.un + IL_008f: nop + IL_0090: stloc.2 + IL_0091: ldc.i4.0 + IL_0092: conv.i8 + IL_0093: stloc.s V_4 + IL_0095: ldarg.0 + IL_0096: stloc.3 + IL_0097: br.s IL_00aa + + IL_0099: ldloc.3 + IL_009a: call void assembly::set_c(int64) + IL_009f: ldloc.3 + IL_00a0: ldarg.1 + IL_00a1: add + IL_00a2: stloc.3 + IL_00a3: ldloc.s V_4 + IL_00a5: ldc.i4.1 + IL_00a6: conv.i8 + IL_00a7: add + IL_00a8: stloc.s V_4 + IL_00aa: ldloc.s V_4 + IL_00ac: ldloc.2 + IL_00ad: blt.un.s IL_0099 + + IL_00af: ret } .method public static void f8(int64 start, @@ -726,4 +722,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl index 4edad64c336..a6a002f82f1 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl @@ -146,24 +146,23 @@ IL_0063: bne.un.s IL_0045 IL_0065: nop - IL_0066: nop - IL_0067: call int32[] assembly::get_r() - IL_006c: ldc.i4.0 - IL_006d: ldelem.i4 - IL_006e: ldc.i4.3 - IL_006f: bne.un.s IL_0075 - - IL_0071: ldc.i4.0 - IL_0072: nop - IL_0073: br.s IL_0077 - - IL_0075: ldc.i4.1 - IL_0076: nop - IL_0077: stloc.s V_6 - IL_0079: ldloc.s V_6 - IL_007b: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_0080: pop - IL_0081: ret + IL_0066: call int32[] assembly::get_r() + IL_006b: ldc.i4.0 + IL_006c: ldelem.i4 + IL_006d: ldc.i4.3 + IL_006e: bne.un.s IL_0074 + + IL_0070: ldc.i4.0 + IL_0071: nop + IL_0072: br.s IL_0076 + + IL_0074: ldc.i4.1 + IL_0075: nop + IL_0076: stloc.s V_6 + IL_0078: ldloc.s V_6 + IL_007a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_007f: pop + IL_0080: ret } } @@ -172,4 +171,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd01.fs.RealInternalSignatureOff.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd01.fs.RealInternalSignatureOff.OptimizeOn.il.bsl index ddebf7d47c5..41dda60f26d 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd01.fs.RealInternalSignatureOff.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd01.fs.RealInternalSignatureOff.OptimizeOn.il.bsl @@ -139,22 +139,21 @@ IL_0059: bne.un.s IL_003b IL_005b: nop - IL_005c: nop - IL_005d: call int32[] assembly::get_r() - IL_0062: ldc.i4.0 - IL_0063: ldelem.i4 - IL_0064: ldc.i4.3 - IL_0065: bne.un.s IL_006b - - IL_0067: ldc.i4.0 - IL_0068: nop - IL_0069: br.s IL_006d - - IL_006b: ldc.i4.1 - IL_006c: nop - IL_006d: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_0072: pop - IL_0073: ret + IL_005c: call int32[] assembly::get_r() + IL_0061: ldc.i4.0 + IL_0062: ldelem.i4 + IL_0063: ldc.i4.3 + IL_0064: bne.un.s IL_006a + + IL_0066: ldc.i4.0 + IL_0067: nop + IL_0068: br.s IL_006c + + IL_006a: ldc.i4.1 + IL_006b: nop + IL_006c: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_0071: pop + IL_0072: ret } } @@ -163,4 +162,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl index a3d63ed6c68..2a684c382d0 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl @@ -131,24 +131,23 @@ IL_0059: bne.un.s IL_003b IL_005b: nop - IL_005c: nop - IL_005d: call int32[] assembly::get_r() - IL_0062: ldc.i4.0 - IL_0063: ldelem.i4 - IL_0064: ldc.i4.3 - IL_0065: bne.un.s IL_006b - - IL_0067: ldc.i4.0 - IL_0068: nop - IL_0069: br.s IL_006d - - IL_006b: ldc.i4.1 - IL_006c: nop - IL_006d: stloc.s V_4 - IL_006f: ldloc.s V_4 - IL_0071: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_0076: pop - IL_0077: ret + IL_005c: call int32[] assembly::get_r() + IL_0061: ldc.i4.0 + IL_0062: ldelem.i4 + IL_0063: ldc.i4.3 + IL_0064: bne.un.s IL_006a + + IL_0066: ldc.i4.0 + IL_0067: nop + IL_0068: br.s IL_006c + + IL_006a: ldc.i4.1 + IL_006b: nop + IL_006c: stloc.s V_4 + IL_006e: ldloc.s V_4 + IL_0070: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_0075: pop + IL_0076: ret } .property int32[] r() @@ -185,4 +184,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd01.fs.RealInternalSignatureOn.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd01.fs.RealInternalSignatureOn.OptimizeOn.il.bsl index 749adbce6db..fad2fff1da5 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd01.fs.RealInternalSignatureOn.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd01.fs.RealInternalSignatureOn.OptimizeOn.il.bsl @@ -130,22 +130,21 @@ IL_0059: bne.un.s IL_003b IL_005b: nop - IL_005c: nop - IL_005d: call int32[] assembly::get_r() - IL_0062: ldc.i4.0 - IL_0063: ldelem.i4 - IL_0064: ldc.i4.3 - IL_0065: bne.un.s IL_006b - - IL_0067: ldc.i4.0 - IL_0068: nop - IL_0069: br.s IL_006d - - IL_006b: ldc.i4.1 - IL_006c: nop - IL_006d: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_0072: pop - IL_0073: ret + IL_005c: call int32[] assembly::get_r() + IL_0061: ldc.i4.0 + IL_0062: ldelem.i4 + IL_0063: ldc.i4.3 + IL_0064: bne.un.s IL_006a + + IL_0066: ldc.i4.0 + IL_0067: nop + IL_0068: br.s IL_006c + + IL_006a: ldc.i4.1 + IL_006b: nop + IL_006c: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_0071: pop + IL_0072: ret } .property int32[] r() @@ -182,4 +181,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd02.fs.RealInternalSignatureOff.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd02.fs.RealInternalSignatureOff.OptimizeOff.il.bsl index 5e796c3ffd9..6e885a3a2c2 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd02.fs.RealInternalSignatureOff.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd02.fs.RealInternalSignatureOff.OptimizeOff.il.bsl @@ -146,24 +146,23 @@ IL_0063: bne.un.s IL_0045 IL_0065: nop - IL_0066: nop - IL_0067: call int32[] assembly::get_r() - IL_006c: ldc.i4.0 - IL_006d: ldelem.i4 - IL_006e: ldc.i4.3 - IL_006f: bne.un.s IL_0075 - - IL_0071: ldc.i4.0 - IL_0072: nop - IL_0073: br.s IL_0077 - - IL_0075: ldc.i4.1 - IL_0076: nop - IL_0077: stloc.s V_6 - IL_0079: ldloc.s V_6 - IL_007b: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_0080: pop - IL_0081: ret + IL_0066: call int32[] assembly::get_r() + IL_006b: ldc.i4.0 + IL_006c: ldelem.i4 + IL_006d: ldc.i4.3 + IL_006e: bne.un.s IL_0074 + + IL_0070: ldc.i4.0 + IL_0071: nop + IL_0072: br.s IL_0076 + + IL_0074: ldc.i4.1 + IL_0075: nop + IL_0076: stloc.s V_6 + IL_0078: ldloc.s V_6 + IL_007a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_007f: pop + IL_0080: ret } } @@ -172,4 +171,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd02.fs.RealInternalSignatureOff.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd02.fs.RealInternalSignatureOff.OptimizeOn.il.bsl index 7960127a11a..29b635df056 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd02.fs.RealInternalSignatureOff.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd02.fs.RealInternalSignatureOff.OptimizeOn.il.bsl @@ -137,22 +137,21 @@ IL_0059: bne.un.s IL_003b IL_005b: nop - IL_005c: nop - IL_005d: call int32[] assembly::get_r() - IL_0062: ldc.i4.0 - IL_0063: ldelem.i4 - IL_0064: ldc.i4.3 - IL_0065: bne.un.s IL_006b - - IL_0067: ldc.i4.0 - IL_0068: nop - IL_0069: br.s IL_006d - - IL_006b: ldc.i4.1 - IL_006c: nop - IL_006d: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_0072: pop - IL_0073: ret + IL_005c: call int32[] assembly::get_r() + IL_0061: ldc.i4.0 + IL_0062: ldelem.i4 + IL_0063: ldc.i4.3 + IL_0064: bne.un.s IL_006a + + IL_0066: ldc.i4.0 + IL_0067: nop + IL_0068: br.s IL_006c + + IL_006a: ldc.i4.1 + IL_006b: nop + IL_006c: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_0071: pop + IL_0072: ret } } @@ -161,4 +160,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd02.fs.RealInternalSignatureOn.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd02.fs.RealInternalSignatureOn.OptimizeOff.il.bsl index 4b86fe9dda7..b3795b62bcb 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd02.fs.RealInternalSignatureOn.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd02.fs.RealInternalSignatureOn.OptimizeOff.il.bsl @@ -131,24 +131,23 @@ IL_0059: bne.un.s IL_003b IL_005b: nop - IL_005c: nop - IL_005d: call int32[] assembly::get_r() - IL_0062: ldc.i4.0 - IL_0063: ldelem.i4 - IL_0064: ldc.i4.3 - IL_0065: bne.un.s IL_006b - - IL_0067: ldc.i4.0 - IL_0068: nop - IL_0069: br.s IL_006d - - IL_006b: ldc.i4.1 - IL_006c: nop - IL_006d: stloc.s V_4 - IL_006f: ldloc.s V_4 - IL_0071: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_0076: pop - IL_0077: ret + IL_005c: call int32[] assembly::get_r() + IL_0061: ldc.i4.0 + IL_0062: ldelem.i4 + IL_0063: ldc.i4.3 + IL_0064: bne.un.s IL_006a + + IL_0066: ldc.i4.0 + IL_0067: nop + IL_0068: br.s IL_006c + + IL_006a: ldc.i4.1 + IL_006b: nop + IL_006c: stloc.s V_4 + IL_006e: ldloc.s V_4 + IL_0070: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_0075: pop + IL_0076: ret } .property int32[] r() @@ -185,4 +184,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd02.fs.RealInternalSignatureOn.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd02.fs.RealInternalSignatureOn.OptimizeOn.il.bsl index d166df1349e..dfe6f80d7cd 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd02.fs.RealInternalSignatureOn.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd02.fs.RealInternalSignatureOn.OptimizeOn.il.bsl @@ -128,22 +128,21 @@ IL_0059: bne.un.s IL_003b IL_005b: nop - IL_005c: nop - IL_005d: call int32[] assembly::get_r() - IL_0062: ldc.i4.0 - IL_0063: ldelem.i4 - IL_0064: ldc.i4.3 - IL_0065: bne.un.s IL_006b - - IL_0067: ldc.i4.0 - IL_0068: nop - IL_0069: br.s IL_006d - - IL_006b: ldc.i4.1 - IL_006c: nop - IL_006d: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_0072: pop - IL_0073: ret + IL_005c: call int32[] assembly::get_r() + IL_0061: ldc.i4.0 + IL_0062: ldelem.i4 + IL_0063: ldc.i4.3 + IL_0064: bne.un.s IL_006a + + IL_0066: ldc.i4.0 + IL_0067: nop + IL_0068: br.s IL_006c + + IL_006a: ldc.i4.1 + IL_006b: nop + IL_006c: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_0071: pop + IL_0072: ret } .property int32[] r() @@ -180,4 +179,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd03.fs.RealInternalSignatureOff.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd03.fs.RealInternalSignatureOff.OptimizeOff.il.bsl index 850034154d8..7d3a2266316 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd03.fs.RealInternalSignatureOff.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd03.fs.RealInternalSignatureOff.OptimizeOff.il.bsl @@ -197,24 +197,23 @@ IL_00b8: brtrue.s IL_008a IL_00ba: nop - IL_00bb: nop - IL_00bc: call int32[] assembly::get_r() - IL_00c1: ldc.i4.0 - IL_00c2: ldelem.i4 - IL_00c3: ldc.i4.3 - IL_00c4: bne.un.s IL_00ca - - IL_00c6: ldc.i4.0 - IL_00c7: nop - IL_00c8: br.s IL_00cc - - IL_00ca: ldc.i4.1 - IL_00cb: nop - IL_00cc: stloc.s V_12 - IL_00ce: ldloc.s V_12 - IL_00d0: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_00d5: pop - IL_00d6: ret + IL_00bb: call int32[] assembly::get_r() + IL_00c0: ldc.i4.0 + IL_00c1: ldelem.i4 + IL_00c2: ldc.i4.3 + IL_00c3: bne.un.s IL_00c9 + + IL_00c5: ldc.i4.0 + IL_00c6: nop + IL_00c7: br.s IL_00cb + + IL_00c9: ldc.i4.1 + IL_00ca: nop + IL_00cb: stloc.s V_12 + IL_00cd: ldloc.s V_12 + IL_00cf: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_00d4: pop + IL_00d5: ret } } @@ -223,4 +222,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd03.fs.RealInternalSignatureOff.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd03.fs.RealInternalSignatureOff.OptimizeOn.il.bsl index e6ad100692a..d02a36e4380 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd03.fs.RealInternalSignatureOff.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd03.fs.RealInternalSignatureOff.OptimizeOn.il.bsl @@ -267,22 +267,21 @@ IL_00dc: brtrue.s IL_009d IL_00de: nop - IL_00df: nop - IL_00e0: call int32[] assembly::get_r() - IL_00e5: ldc.i4.0 - IL_00e6: ldelem.i4 - IL_00e7: ldc.i4.3 - IL_00e8: bne.un.s IL_00ee - - IL_00ea: ldc.i4.0 - IL_00eb: nop - IL_00ec: br.s IL_00f0 - - IL_00ee: ldc.i4.1 - IL_00ef: nop - IL_00f0: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_00f5: pop - IL_00f6: ret + IL_00df: call int32[] assembly::get_r() + IL_00e4: ldc.i4.0 + IL_00e5: ldelem.i4 + IL_00e6: ldc.i4.3 + IL_00e7: bne.un.s IL_00ed + + IL_00e9: ldc.i4.0 + IL_00ea: nop + IL_00eb: br.s IL_00ef + + IL_00ed: ldc.i4.1 + IL_00ee: nop + IL_00ef: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_00f4: pop + IL_00f5: ret } } @@ -291,4 +290,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd03.fs.RealInternalSignatureOn.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd03.fs.RealInternalSignatureOn.OptimizeOff.il.bsl index fd4594b88ce..5dd54387d12 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd03.fs.RealInternalSignatureOn.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd03.fs.RealInternalSignatureOn.OptimizeOff.il.bsl @@ -182,24 +182,23 @@ IL_00ae: brtrue.s IL_0080 IL_00b0: nop - IL_00b1: nop - IL_00b2: call int32[] assembly::get_r() - IL_00b7: ldc.i4.0 - IL_00b8: ldelem.i4 - IL_00b9: ldc.i4.3 - IL_00ba: bne.un.s IL_00c0 - - IL_00bc: ldc.i4.0 - IL_00bd: nop - IL_00be: br.s IL_00c2 - - IL_00c0: ldc.i4.1 - IL_00c1: nop - IL_00c2: stloc.s V_10 - IL_00c4: ldloc.s V_10 - IL_00c6: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_00cb: pop - IL_00cc: ret + IL_00b1: call int32[] assembly::get_r() + IL_00b6: ldc.i4.0 + IL_00b7: ldelem.i4 + IL_00b8: ldc.i4.3 + IL_00b9: bne.un.s IL_00bf + + IL_00bb: ldc.i4.0 + IL_00bc: nop + IL_00bd: br.s IL_00c1 + + IL_00bf: ldc.i4.1 + IL_00c0: nop + IL_00c1: stloc.s V_10 + IL_00c3: ldloc.s V_10 + IL_00c5: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_00ca: pop + IL_00cb: ret } .property int32[] r() @@ -236,4 +235,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd03.fs.RealInternalSignatureOn.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd03.fs.RealInternalSignatureOn.OptimizeOn.il.bsl index 1dc60a2932b..df41868f98e 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd03.fs.RealInternalSignatureOn.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd03.fs.RealInternalSignatureOn.OptimizeOn.il.bsl @@ -234,22 +234,21 @@ IL_00dc: brtrue.s IL_009d IL_00de: nop - IL_00df: nop - IL_00e0: call int32[] assembly::get_r() - IL_00e5: ldc.i4.0 - IL_00e6: ldelem.i4 - IL_00e7: ldc.i4.3 - IL_00e8: bne.un.s IL_00ee - - IL_00ea: ldc.i4.0 - IL_00eb: nop - IL_00ec: br.s IL_00f0 - - IL_00ee: ldc.i4.1 - IL_00ef: nop - IL_00f0: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_00f5: pop - IL_00f6: ret + IL_00df: call int32[] assembly::get_r() + IL_00e4: ldc.i4.0 + IL_00e5: ldelem.i4 + IL_00e6: ldc.i4.3 + IL_00e7: bne.un.s IL_00ed + + IL_00e9: ldc.i4.0 + IL_00ea: nop + IL_00eb: br.s IL_00ef + + IL_00ed: ldc.i4.1 + IL_00ee: nop + IL_00ef: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_00f4: pop + IL_00f5: ret } .property int32[] r() @@ -310,4 +309,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd04.fs.RealInternalSignatureOff.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd04.fs.RealInternalSignatureOff.OptimizeOff.il.bsl index 0bef72ae5ab..1a310305148 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd04.fs.RealInternalSignatureOff.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd04.fs.RealInternalSignatureOff.OptimizeOff.il.bsl @@ -197,24 +197,23 @@ IL_00b8: brtrue.s IL_008a IL_00ba: nop - IL_00bb: nop - IL_00bc: call int32[] assembly::get_r() - IL_00c1: ldc.i4.0 - IL_00c2: ldelem.i4 - IL_00c3: ldc.i4.3 - IL_00c4: bne.un.s IL_00ca - - IL_00c6: ldc.i4.0 - IL_00c7: nop - IL_00c8: br.s IL_00cc - - IL_00ca: ldc.i4.1 - IL_00cb: nop - IL_00cc: stloc.s V_12 - IL_00ce: ldloc.s V_12 - IL_00d0: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_00d5: pop - IL_00d6: ret + IL_00bb: call int32[] assembly::get_r() + IL_00c0: ldc.i4.0 + IL_00c1: ldelem.i4 + IL_00c2: ldc.i4.3 + IL_00c3: bne.un.s IL_00c9 + + IL_00c5: ldc.i4.0 + IL_00c6: nop + IL_00c7: br.s IL_00cb + + IL_00c9: ldc.i4.1 + IL_00ca: nop + IL_00cb: stloc.s V_12 + IL_00cd: ldloc.s V_12 + IL_00cf: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_00d4: pop + IL_00d5: ret } } @@ -223,4 +222,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd04.fs.RealInternalSignatureOff.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd04.fs.RealInternalSignatureOff.OptimizeOn.il.bsl index 47edca14f0e..f4d54e51733 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd04.fs.RealInternalSignatureOff.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd04.fs.RealInternalSignatureOff.OptimizeOn.il.bsl @@ -267,22 +267,21 @@ IL_00dc: brtrue.s IL_009d IL_00de: nop - IL_00df: nop - IL_00e0: call int32[] assembly::get_r() - IL_00e5: ldc.i4.0 - IL_00e6: ldelem.i4 - IL_00e7: ldc.i4.3 - IL_00e8: bne.un.s IL_00ee - - IL_00ea: ldc.i4.0 - IL_00eb: nop - IL_00ec: br.s IL_00f0 - - IL_00ee: ldc.i4.1 - IL_00ef: nop - IL_00f0: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_00f5: pop - IL_00f6: ret + IL_00df: call int32[] assembly::get_r() + IL_00e4: ldc.i4.0 + IL_00e5: ldelem.i4 + IL_00e6: ldc.i4.3 + IL_00e7: bne.un.s IL_00ed + + IL_00e9: ldc.i4.0 + IL_00ea: nop + IL_00eb: br.s IL_00ef + + IL_00ed: ldc.i4.1 + IL_00ee: nop + IL_00ef: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_00f4: pop + IL_00f5: ret } } @@ -291,4 +290,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd04.fs.RealInternalSignatureOn.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd04.fs.RealInternalSignatureOn.OptimizeOff.il.bsl index a894133f442..45abb0be06b 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd04.fs.RealInternalSignatureOn.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd04.fs.RealInternalSignatureOn.OptimizeOff.il.bsl @@ -182,24 +182,23 @@ IL_00ae: brtrue.s IL_0080 IL_00b0: nop - IL_00b1: nop - IL_00b2: call int32[] assembly::get_r() - IL_00b7: ldc.i4.0 - IL_00b8: ldelem.i4 - IL_00b9: ldc.i4.3 - IL_00ba: bne.un.s IL_00c0 - - IL_00bc: ldc.i4.0 - IL_00bd: nop - IL_00be: br.s IL_00c2 - - IL_00c0: ldc.i4.1 - IL_00c1: nop - IL_00c2: stloc.s V_10 - IL_00c4: ldloc.s V_10 - IL_00c6: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_00cb: pop - IL_00cc: ret + IL_00b1: call int32[] assembly::get_r() + IL_00b6: ldc.i4.0 + IL_00b7: ldelem.i4 + IL_00b8: ldc.i4.3 + IL_00b9: bne.un.s IL_00bf + + IL_00bb: ldc.i4.0 + IL_00bc: nop + IL_00bd: br.s IL_00c1 + + IL_00bf: ldc.i4.1 + IL_00c0: nop + IL_00c1: stloc.s V_10 + IL_00c3: ldloc.s V_10 + IL_00c5: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_00ca: pop + IL_00cb: ret } .property int32[] r() @@ -236,4 +235,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd04.fs.RealInternalSignatureOn.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd04.fs.RealInternalSignatureOn.OptimizeOn.il.bsl index dd30e3d3ab6..675345cd341 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd04.fs.RealInternalSignatureOn.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd04.fs.RealInternalSignatureOn.OptimizeOn.il.bsl @@ -234,22 +234,21 @@ IL_00dc: brtrue.s IL_009d IL_00de: nop - IL_00df: nop - IL_00e0: call int32[] assembly::get_r() - IL_00e5: ldc.i4.0 - IL_00e6: ldelem.i4 - IL_00e7: ldc.i4.3 - IL_00e8: bne.un.s IL_00ee - - IL_00ea: ldc.i4.0 - IL_00eb: nop - IL_00ec: br.s IL_00f0 - - IL_00ee: ldc.i4.1 - IL_00ef: nop - IL_00f0: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_00f5: pop - IL_00f6: ret + IL_00df: call int32[] assembly::get_r() + IL_00e4: ldc.i4.0 + IL_00e5: ldelem.i4 + IL_00e6: ldc.i4.3 + IL_00e7: bne.un.s IL_00ed + + IL_00e9: ldc.i4.0 + IL_00ea: nop + IL_00eb: br.s IL_00ef + + IL_00ed: ldc.i4.1 + IL_00ee: nop + IL_00ef: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_00f4: pop + IL_00f5: ret } .property int32[] r() @@ -310,4 +309,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd05.fs.RealInternalSignatureOff.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd05.fs.RealInternalSignatureOff.OptimizeOff.il.bsl index f5c3b19dc7e..79fc55418bf 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd05.fs.RealInternalSignatureOff.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd05.fs.RealInternalSignatureOff.OptimizeOff.il.bsl @@ -187,24 +187,23 @@ IL_00a1: bne.un.s IL_0045 IL_00a3: nop - IL_00a4: nop - IL_00a5: call int32[] assembly::get_r() - IL_00aa: ldc.i4.0 - IL_00ab: ldelem.i4 - IL_00ac: ldc.i4.s 11 - IL_00ae: bne.un.s IL_00b4 - - IL_00b0: ldc.i4.0 - IL_00b1: nop - IL_00b2: br.s IL_00b6 - - IL_00b4: ldc.i4.1 - IL_00b5: nop - IL_00b6: stloc.s V_10 - IL_00b8: ldloc.s V_10 - IL_00ba: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_00bf: pop - IL_00c0: ret + IL_00a4: call int32[] assembly::get_r() + IL_00a9: ldc.i4.0 + IL_00aa: ldelem.i4 + IL_00ab: ldc.i4.s 11 + IL_00ad: bne.un.s IL_00b3 + + IL_00af: ldc.i4.0 + IL_00b0: nop + IL_00b1: br.s IL_00b5 + + IL_00b3: ldc.i4.1 + IL_00b4: nop + IL_00b5: stloc.s V_10 + IL_00b7: ldloc.s V_10 + IL_00b9: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_00be: pop + IL_00bf: ret } } @@ -213,4 +212,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd05.fs.RealInternalSignatureOff.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd05.fs.RealInternalSignatureOff.OptimizeOn.il.bsl index c5f058d0325..7174e727265 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd05.fs.RealInternalSignatureOff.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd05.fs.RealInternalSignatureOff.OptimizeOn.il.bsl @@ -178,22 +178,21 @@ IL_008c: bne.un.s IL_003b IL_008e: nop - IL_008f: nop - IL_0090: call int32[] assembly::get_r() - IL_0095: ldc.i4.0 - IL_0096: ldelem.i4 - IL_0097: ldc.i4.s 11 - IL_0099: bne.un.s IL_009f - - IL_009b: ldc.i4.0 - IL_009c: nop - IL_009d: br.s IL_00a1 - - IL_009f: ldc.i4.1 - IL_00a0: nop - IL_00a1: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_00a6: pop - IL_00a7: ret + IL_008f: call int32[] assembly::get_r() + IL_0094: ldc.i4.0 + IL_0095: ldelem.i4 + IL_0096: ldc.i4.s 11 + IL_0098: bne.un.s IL_009e + + IL_009a: ldc.i4.0 + IL_009b: nop + IL_009c: br.s IL_00a0 + + IL_009e: ldc.i4.1 + IL_009f: nop + IL_00a0: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_00a5: pop + IL_00a6: ret } } @@ -202,4 +201,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd05.fs.RealInternalSignatureOn.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd05.fs.RealInternalSignatureOn.OptimizeOff.il.bsl index e98b90a8c6e..5e09a2674b7 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd05.fs.RealInternalSignatureOn.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd05.fs.RealInternalSignatureOn.OptimizeOff.il.bsl @@ -172,24 +172,23 @@ IL_0097: bne.un.s IL_003b IL_0099: nop - IL_009a: nop - IL_009b: call int32[] assembly::get_r() - IL_00a0: ldc.i4.0 - IL_00a1: ldelem.i4 - IL_00a2: ldc.i4.s 11 - IL_00a4: bne.un.s IL_00aa - - IL_00a6: ldc.i4.0 - IL_00a7: nop - IL_00a8: br.s IL_00ac - - IL_00aa: ldc.i4.1 - IL_00ab: nop - IL_00ac: stloc.s V_8 - IL_00ae: ldloc.s V_8 - IL_00b0: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_00b5: pop - IL_00b6: ret + IL_009a: call int32[] assembly::get_r() + IL_009f: ldc.i4.0 + IL_00a0: ldelem.i4 + IL_00a1: ldc.i4.s 11 + IL_00a3: bne.un.s IL_00a9 + + IL_00a5: ldc.i4.0 + IL_00a6: nop + IL_00a7: br.s IL_00ab + + IL_00a9: ldc.i4.1 + IL_00aa: nop + IL_00ab: stloc.s V_8 + IL_00ad: ldloc.s V_8 + IL_00af: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_00b4: pop + IL_00b5: ret } .property int32[] r() @@ -226,4 +225,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd05.fs.RealInternalSignatureOn.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd05.fs.RealInternalSignatureOn.OptimizeOn.il.bsl index 267d6527954..51acc79a355 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd05.fs.RealInternalSignatureOn.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/NonTrivialBranchingBindingInEnd05.fs.RealInternalSignatureOn.OptimizeOn.il.bsl @@ -169,22 +169,21 @@ IL_008c: bne.un.s IL_003b IL_008e: nop - IL_008f: nop - IL_0090: call int32[] assembly::get_r() - IL_0095: ldc.i4.0 - IL_0096: ldelem.i4 - IL_0097: ldc.i4.s 11 - IL_0099: bne.un.s IL_009f - - IL_009b: ldc.i4.0 - IL_009c: nop - IL_009d: br.s IL_00a1 - - IL_009f: ldc.i4.1 - IL_00a0: nop - IL_00a1: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_00a6: pop - IL_00a7: ret + IL_008f: call int32[] assembly::get_r() + IL_0094: ldc.i4.0 + IL_0095: ldelem.i4 + IL_0096: ldc.i4.s 11 + IL_0098: bne.un.s IL_009e + + IL_009a: ldc.i4.0 + IL_009b: nop + IL_009c: br.s IL_00a0 + + IL_009e: ldc.i4.1 + IL_009f: nop + IL_00a0: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_00a5: pop + IL_00a6: ret } .property int32[] r() @@ -221,4 +220,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/GenericComparison/Compare04.fsx.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/GenericComparison/Compare04.fsx.il.net472.bsl index ee6fbc129b0..7a9887c3f7d 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/GenericComparison/Compare04.fsx.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/GenericComparison/Compare04.fsx.il.net472.bsl @@ -8,7 +8,7 @@ .assembly extern netstandard { .publickeytoken = (CC 7B 13 FF CD 2D DD 51 ) - .ver 2:0:0:0 + .ver 2:1:0:0 } .assembly assembly { @@ -55,7 +55,7 @@ IL_0003: nop IL_0004: ldc.i4.0 IL_0005: stloc.1 - IL_0006: br IL_0097 + IL_0006: br IL_0092 IL_000b: ldstr "5" IL_0010: ldstr "5" @@ -63,59 +63,57 @@ string) IL_001a: stloc.2 IL_001b: ldloc.2 - IL_001c: brfalse.s IL_0025 + IL_001c: brfalse.s IL_0022 IL_001e: ldloc.2 IL_001f: nop - IL_0020: br IL_0092 - - IL_0025: ldc.r8 6.0999999999999996 - IL_002e: ldc.r8 7.0999999999999996 - IL_0037: clt - IL_0039: brfalse.s IL_003f - - IL_003b: ldc.i4.m1 - IL_003c: nop - IL_003d: br.s IL_0092 - - IL_003f: ldc.r8 6.0999999999999996 - IL_0048: ldc.r8 7.0999999999999996 - IL_0051: cgt - IL_0053: brfalse.s IL_0059 - - IL_0055: ldc.i4.1 - IL_0056: nop - IL_0057: br.s IL_0092 - - IL_0059: ldc.r8 6.0999999999999996 - IL_0062: ldc.r8 7.0999999999999996 - IL_006b: ceq - IL_006d: brfalse.s IL_0073 - - IL_006f: ldc.i4.0 - IL_0070: nop - IL_0071: br.s IL_0092 - - IL_0073: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() - IL_0078: ldc.r8 6.0999999999999996 - IL_0081: ldc.r8 7.0999999999999996 - IL_008a: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericComparisonWithComparerIntrinsic(class [runtime]System.Collections.IComparer, + IL_0020: br.s IL_008d + + IL_0022: ldc.r8 6.0999999999999996 + IL_002b: ldc.r8 7.0999999999999996 + IL_0034: clt + IL_0036: brfalse.s IL_003c + + IL_0038: ldc.i4.m1 + IL_0039: nop + IL_003a: br.s IL_008d + + IL_003c: ldc.r8 6.0999999999999996 + IL_0045: ldc.r8 7.0999999999999996 + IL_004e: cgt + IL_0050: brfalse.s IL_0056 + + IL_0052: ldc.i4.1 + IL_0053: nop + IL_0054: br.s IL_008d + + IL_0056: ldc.r8 6.0999999999999996 + IL_005f: ldc.r8 7.0999999999999996 + IL_0068: ceq + IL_006a: brfalse.s IL_0070 + + IL_006c: ldc.i4.0 + IL_006d: nop + IL_006e: br.s IL_008d + + IL_0070: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0075: ldc.r8 6.0999999999999996 + IL_007e: ldc.r8 7.0999999999999996 + IL_0087: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericComparisonWithComparerIntrinsic(class [runtime]System.Collections.IComparer, !!0, !!0) - IL_008f: nop - IL_0090: br.s IL_0092 - - IL_0092: stloc.0 - IL_0093: ldloc.1 - IL_0094: ldc.i4.1 - IL_0095: add - IL_0096: stloc.1 - IL_0097: ldloc.1 - IL_0098: ldc.i4 0x989681 - IL_009d: blt IL_000b - - IL_00a2: ldloc.0 - IL_00a3: ret + IL_008c: nop + IL_008d: stloc.0 + IL_008e: ldloc.1 + IL_008f: ldc.i4.1 + IL_0090: add + IL_0091: stloc.1 + IL_0092: ldloc.1 + IL_0093: ldc.i4 0x989681 + IL_0098: blt IL_000b + + IL_009d: ldloc.0 + IL_009e: ret } } @@ -139,3 +137,4 @@ + diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/GenericComparison/Compare04.fsx.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/GenericComparison/Compare04.fsx.il.netcore.bsl index 2affd16feb7..4bd7bc234cb 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/GenericComparison/Compare04.fsx.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/GenericComparison/Compare04.fsx.il.netcore.bsl @@ -55,7 +55,7 @@ IL_0003: nop IL_0004: ldc.i4.0 IL_0005: stloc.1 - IL_0006: br IL_0097 + IL_0006: br IL_0092 IL_000b: ldstr "5" IL_0010: ldstr "5" @@ -63,59 +63,57 @@ string) IL_001a: stloc.2 IL_001b: ldloc.2 - IL_001c: brfalse.s IL_0025 + IL_001c: brfalse.s IL_0022 IL_001e: ldloc.2 IL_001f: nop - IL_0020: br IL_0092 - - IL_0025: ldc.r8 6.0999999999999996 - IL_002e: ldc.r8 7.0999999999999996 - IL_0037: clt - IL_0039: brfalse.s IL_003f - - IL_003b: ldc.i4.m1 - IL_003c: nop - IL_003d: br.s IL_0092 - - IL_003f: ldc.r8 6.0999999999999996 - IL_0048: ldc.r8 7.0999999999999996 - IL_0051: cgt - IL_0053: brfalse.s IL_0059 - - IL_0055: ldc.i4.1 - IL_0056: nop - IL_0057: br.s IL_0092 - - IL_0059: ldc.r8 6.0999999999999996 - IL_0062: ldc.r8 7.0999999999999996 - IL_006b: ceq - IL_006d: brfalse.s IL_0073 - - IL_006f: ldc.i4.0 - IL_0070: nop - IL_0071: br.s IL_0092 - - IL_0073: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() - IL_0078: ldc.r8 6.0999999999999996 - IL_0081: ldc.r8 7.0999999999999996 - IL_008a: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericComparisonWithComparerIntrinsic(class [runtime]System.Collections.IComparer, + IL_0020: br.s IL_008d + + IL_0022: ldc.r8 6.0999999999999996 + IL_002b: ldc.r8 7.0999999999999996 + IL_0034: clt + IL_0036: brfalse.s IL_003c + + IL_0038: ldc.i4.m1 + IL_0039: nop + IL_003a: br.s IL_008d + + IL_003c: ldc.r8 6.0999999999999996 + IL_0045: ldc.r8 7.0999999999999996 + IL_004e: cgt + IL_0050: brfalse.s IL_0056 + + IL_0052: ldc.i4.1 + IL_0053: nop + IL_0054: br.s IL_008d + + IL_0056: ldc.r8 6.0999999999999996 + IL_005f: ldc.r8 7.0999999999999996 + IL_0068: ceq + IL_006a: brfalse.s IL_0070 + + IL_006c: ldc.i4.0 + IL_006d: nop + IL_006e: br.s IL_008d + + IL_0070: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() + IL_0075: ldc.r8 6.0999999999999996 + IL_007e: ldc.r8 7.0999999999999996 + IL_0087: call int32 [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/HashCompare::GenericComparisonWithComparerIntrinsic(class [runtime]System.Collections.IComparer, !!0, !!0) - IL_008f: nop - IL_0090: br.s IL_0092 - - IL_0092: stloc.0 - IL_0093: ldloc.1 - IL_0094: ldc.i4.1 - IL_0095: add - IL_0096: stloc.1 - IL_0097: ldloc.1 - IL_0098: ldc.i4 0x989681 - IL_009d: blt IL_000b - - IL_00a2: ldloc.0 - IL_00a3: ret + IL_008c: nop + IL_008d: stloc.0 + IL_008e: ldloc.1 + IL_008f: ldc.i4.1 + IL_0090: add + IL_0091: stloc.1 + IL_0092: ldloc.1 + IL_0093: ldc.i4 0x989681 + IL_0098: blt IL_000b + + IL_009d: ldloc.0 + IL_009e: ret } } @@ -139,4 +137,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/GenericComparison/Equals03.fsx.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/GenericComparison/Equals03.fsx.il.net472.bsl index 66d03ec92a2..45e7c9f3a35 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/GenericComparison/Equals03.fsx.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/GenericComparison/Equals03.fsx.il.net472.bsl @@ -8,7 +8,7 @@ .assembly extern netstandard { .publickeytoken = (CC 7B 13 FF CD 2D DD 51 ) - .ver 2:0:0:0 + .ver 2:1:0:0 } .assembly assembly { @@ -21,16 +21,6 @@ .hash algorithm 0x00008004 .ver 0:0:0:0 -} -.mresource public FSharpSignatureCompressedData.assembly -{ - - -} -.mresource public FSharpOptimizationCompressedData.assembly -{ - - } .module assembly.exe @@ -64,34 +54,33 @@ IL_0003: nop IL_0004: ldc.i4.0 IL_0005: stloc.1 - IL_0006: br.s IL_0038 + IL_0006: br.s IL_0037 - IL_0008: nop - IL_0009: ldstr "5" - IL_000e: ldstr "5" - IL_0013: call bool [netstandard]System.String::Equals(string, + IL_0008: ldstr "5" + IL_000d: ldstr "5" + IL_0012: call bool [netstandard]System.String::Equals(string, string) - IL_0018: brfalse.s IL_0031 - - IL_001a: ldc.r8 6.0999999999999996 - IL_0023: ldc.r8 7.0999999999999996 - IL_002c: ceq - IL_002e: nop - IL_002f: br.s IL_0033 - - IL_0031: ldc.i4.0 - IL_0032: nop - IL_0033: stloc.0 - IL_0034: ldloc.1 - IL_0035: ldc.i4.1 - IL_0036: add - IL_0037: stloc.1 - IL_0038: ldloc.1 - IL_0039: ldc.i4 0x989681 - IL_003e: blt.s IL_0008 - - IL_0040: ldloc.0 - IL_0041: ret + IL_0017: brfalse.s IL_0030 + + IL_0019: ldc.r8 6.0999999999999996 + IL_0022: ldc.r8 7.0999999999999996 + IL_002b: ceq + IL_002d: nop + IL_002e: br.s IL_0032 + + IL_0030: ldc.i4.0 + IL_0031: nop + IL_0032: stloc.0 + IL_0033: ldloc.1 + IL_0034: ldc.i4.1 + IL_0035: add + IL_0036: stloc.1 + IL_0037: ldloc.1 + IL_0038: ldc.i4 0x989681 + IL_003d: blt.s IL_0008 + + IL_003f: ldloc.0 + IL_0040: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/GenericComparison/Equals03.fsx.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/GenericComparison/Equals03.fsx.il.netcore.bsl index b2bd0c7436d..cf0a4ed4a01 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/GenericComparison/Equals03.fsx.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/GenericComparison/Equals03.fsx.il.netcore.bsl @@ -54,34 +54,33 @@ IL_0003: nop IL_0004: ldc.i4.0 IL_0005: stloc.1 - IL_0006: br.s IL_0038 + IL_0006: br.s IL_0037 - IL_0008: nop - IL_0009: ldstr "5" - IL_000e: ldstr "5" - IL_0013: call bool [netstandard]System.String::Equals(string, + IL_0008: ldstr "5" + IL_000d: ldstr "5" + IL_0012: call bool [netstandard]System.String::Equals(string, string) - IL_0018: brfalse.s IL_0031 - - IL_001a: ldc.r8 6.0999999999999996 - IL_0023: ldc.r8 7.0999999999999996 - IL_002c: ceq - IL_002e: nop - IL_002f: br.s IL_0033 - - IL_0031: ldc.i4.0 - IL_0032: nop - IL_0033: stloc.0 - IL_0034: ldloc.1 - IL_0035: ldc.i4.1 - IL_0036: add - IL_0037: stloc.1 - IL_0038: ldloc.1 - IL_0039: ldc.i4 0x989681 - IL_003e: blt.s IL_0008 - - IL_0040: ldloc.0 - IL_0041: ret + IL_0017: brfalse.s IL_0030 + + IL_0019: ldc.r8 6.0999999999999996 + IL_0022: ldc.r8 7.0999999999999996 + IL_002b: ceq + IL_002d: nop + IL_002e: br.s IL_0032 + + IL_0030: ldc.i4.0 + IL_0031: nop + IL_0032: stloc.0 + IL_0033: ldloc.1 + IL_0034: ldc.i4.1 + IL_0035: add + IL_0036: stloc.1 + IL_0037: ldloc.1 + IL_0038: ldc.i4 0x989681 + IL_003d: blt.s IL_0008 + + IL_003f: ldloc.0 + IL_0040: ret } } @@ -105,4 +104,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/InequalityComparison/InequalityComparison05.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/InequalityComparison/InequalityComparison05.fs.il.bsl index 3ae71f53b4d..5d9fafce20c 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/InequalityComparison/InequalityComparison05.fs.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/InequalityComparison/InequalityComparison05.fs.il.bsl @@ -42,16 +42,15 @@ 00 00 01 00 00 00 00 00 ) .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: ldarg.1 - IL_0003: ble.s IL_0007 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: ble.s IL_0006 - IL_0005: ldarg.2 - IL_0006: ret + IL_0004: ldarg.2 + IL_0005: ret - IL_0007: ldarg.3 - IL_0008: ret + IL_0006: ldarg.3 + IL_0007: ret } } @@ -73,4 +72,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/EmptyStringPattern.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/EmptyStringPattern.fs.il.bsl index 955786e3027..8128edc9a1a 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/EmptyStringPattern.fs.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/EmptyStringPattern.fs.il.bsl @@ -37,222 +37,214 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: brfalse.s IL_0010 + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_000f - IL_0004: ldarg.0 - IL_0005: callvirt instance int32 [runtime]System.String::get_Length() - IL_000a: ldc.i4.0 - IL_000b: ceq - IL_000d: nop - IL_000e: br.s IL_0012 + IL_0003: ldarg.0 + IL_0004: callvirt instance int32 [runtime]System.String::get_Length() + IL_0009: ldc.i4.0 + IL_000a: ceq + IL_000c: nop + IL_000d: br.s IL_0011 - IL_0010: ldc.i4.0 - IL_0011: nop - IL_0012: brtrue.s IL_0019 + IL_000f: ldc.i4.0 + IL_0010: nop + IL_0011: brtrue.s IL_0018 - IL_0014: ldarg.0 - IL_0015: brfalse.s IL_001f + IL_0013: ldarg.0 + IL_0014: brfalse.s IL_001e - IL_0017: br.s IL_0025 + IL_0016: br.s IL_0024 - IL_0019: ldstr "empty" - IL_001e: ret + IL_0018: ldstr "empty" + IL_001d: ret - IL_001f: ldstr "null" - IL_0024: ret + IL_001e: ldstr "null" + IL_0023: ret - IL_0025: ldstr "other" - IL_002a: ret + IL_0024: ldstr "other" + IL_0029: ret } .method public static int32 testEmptyStringOnly(string s) cil managed { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: brfalse.s IL_000e + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_000d - IL_0004: ldarg.0 - IL_0005: callvirt instance int32 [runtime]System.String::get_Length() - IL_000a: brtrue.s IL_000e + IL_0003: ldarg.0 + IL_0004: callvirt instance int32 [runtime]System.String::get_Length() + IL_0009: brtrue.s IL_000d - IL_000c: ldc.i4.1 - IL_000d: ret + IL_000b: ldc.i4.1 + IL_000c: ret - IL_000e: ldc.i4.0 - IL_000f: ret + IL_000d: ldc.i4.0 + IL_000e: ret } .method public static int32 testBundledNullAndEmpty(string s) cil managed { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: brfalse.s IL_0017 + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0016 - IL_0004: ldarg.0 - IL_0005: brfalse.s IL_0013 + IL_0003: ldarg.0 + IL_0004: brfalse.s IL_0012 - IL_0007: ldarg.0 - IL_0008: callvirt instance int32 [runtime]System.String::get_Length() - IL_000d: ldc.i4.0 - IL_000e: ceq - IL_0010: nop - IL_0011: br.s IL_0015 + IL_0006: ldarg.0 + IL_0007: callvirt instance int32 [runtime]System.String::get_Length() + IL_000c: ldc.i4.0 + IL_000d: ceq + IL_000f: nop + IL_0010: br.s IL_0014 - IL_0013: ldc.i4.0 - IL_0014: nop - IL_0015: brfalse.s IL_0019 + IL_0012: ldc.i4.0 + IL_0013: nop + IL_0014: brfalse.s IL_0018 - IL_0017: ldc.i4.0 - IL_0018: ret + IL_0016: ldc.i4.0 + IL_0017: ret - IL_0019: ldc.i4.1 - IL_001a: ret + IL_0018: ldc.i4.1 + IL_0019: ret } .method public static int32 testBundledEmptyAndNull(string s) cil managed { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: brfalse.s IL_0010 + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_000f - IL_0004: ldarg.0 - IL_0005: callvirt instance int32 [runtime]System.String::get_Length() - IL_000a: ldc.i4.0 - IL_000b: ceq - IL_000d: nop - IL_000e: br.s IL_0012 + IL_0003: ldarg.0 + IL_0004: callvirt instance int32 [runtime]System.String::get_Length() + IL_0009: ldc.i4.0 + IL_000a: ceq + IL_000c: nop + IL_000d: br.s IL_0011 - IL_0010: ldc.i4.0 - IL_0011: nop - IL_0012: brtrue.s IL_0017 + IL_000f: ldc.i4.0 + IL_0010: nop + IL_0011: brtrue.s IL_0016 - IL_0014: ldarg.0 - IL_0015: brtrue.s IL_0019 + IL_0013: ldarg.0 + IL_0014: brtrue.s IL_0018 - IL_0017: ldc.i4.0 - IL_0018: ret + IL_0016: ldc.i4.0 + IL_0017: ret - IL_0019: ldc.i4.1 - IL_001a: ret + IL_0018: ldc.i4.1 + IL_0019: ret } .method public static string useClassifyString(string s) cil managed { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: brfalse.s IL_0010 + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_000f - IL_0004: ldarg.0 - IL_0005: callvirt instance int32 [runtime]System.String::get_Length() - IL_000a: ldc.i4.0 - IL_000b: ceq - IL_000d: nop - IL_000e: br.s IL_0012 + IL_0003: ldarg.0 + IL_0004: callvirt instance int32 [runtime]System.String::get_Length() + IL_0009: ldc.i4.0 + IL_000a: ceq + IL_000c: nop + IL_000d: br.s IL_0011 - IL_0010: ldc.i4.0 - IL_0011: nop - IL_0012: brtrue.s IL_0019 + IL_000f: ldc.i4.0 + IL_0010: nop + IL_0011: brtrue.s IL_0018 - IL_0014: ldarg.0 - IL_0015: brfalse.s IL_001f + IL_0013: ldarg.0 + IL_0014: brfalse.s IL_001e - IL_0017: br.s IL_0025 + IL_0016: br.s IL_0024 - IL_0019: ldstr "empty" - IL_001e: ret + IL_0018: ldstr "empty" + IL_001d: ret - IL_001f: ldstr "null" - IL_0024: ret + IL_001e: ldstr "null" + IL_0023: ret - IL_0025: ldstr "other" - IL_002a: ret + IL_0024: ldstr "other" + IL_0029: ret } .method public static int32 useTestEmptyStringOnly(string s) cil managed { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: brfalse.s IL_000e + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_000d - IL_0004: ldarg.0 - IL_0005: callvirt instance int32 [runtime]System.String::get_Length() - IL_000a: brtrue.s IL_000e + IL_0003: ldarg.0 + IL_0004: callvirt instance int32 [runtime]System.String::get_Length() + IL_0009: brtrue.s IL_000d - IL_000c: ldc.i4.1 - IL_000d: ret + IL_000b: ldc.i4.1 + IL_000c: ret - IL_000e: ldc.i4.0 - IL_000f: ret + IL_000d: ldc.i4.0 + IL_000e: ret } .method public static int32 useBundledNullAndEmpty(string s) cil managed { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: brfalse.s IL_0017 + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_0016 - IL_0004: ldarg.0 - IL_0005: brfalse.s IL_0013 + IL_0003: ldarg.0 + IL_0004: brfalse.s IL_0012 - IL_0007: ldarg.0 - IL_0008: callvirt instance int32 [runtime]System.String::get_Length() - IL_000d: ldc.i4.0 - IL_000e: ceq - IL_0010: nop - IL_0011: br.s IL_0015 + IL_0006: ldarg.0 + IL_0007: callvirt instance int32 [runtime]System.String::get_Length() + IL_000c: ldc.i4.0 + IL_000d: ceq + IL_000f: nop + IL_0010: br.s IL_0014 - IL_0013: ldc.i4.0 - IL_0014: nop - IL_0015: brfalse.s IL_0019 + IL_0012: ldc.i4.0 + IL_0013: nop + IL_0014: brfalse.s IL_0018 - IL_0017: ldc.i4.0 - IL_0018: ret + IL_0016: ldc.i4.0 + IL_0017: ret - IL_0019: ldc.i4.1 - IL_001a: ret + IL_0018: ldc.i4.1 + IL_0019: ret } .method public static int32 useBundledEmptyAndNull(string s) cil managed { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: brfalse.s IL_0010 + IL_0000: ldarg.0 + IL_0001: brfalse.s IL_000f - IL_0004: ldarg.0 - IL_0005: callvirt instance int32 [runtime]System.String::get_Length() - IL_000a: ldc.i4.0 - IL_000b: ceq - IL_000d: nop - IL_000e: br.s IL_0012 + IL_0003: ldarg.0 + IL_0004: callvirt instance int32 [runtime]System.String::get_Length() + IL_0009: ldc.i4.0 + IL_000a: ceq + IL_000c: nop + IL_000d: br.s IL_0011 - IL_0010: ldc.i4.0 - IL_0011: nop - IL_0012: brtrue.s IL_0017 + IL_000f: ldc.i4.0 + IL_0010: nop + IL_0011: brtrue.s IL_0016 - IL_0014: ldarg.0 - IL_0015: brtrue.s IL_0019 + IL_0013: ldarg.0 + IL_0014: brtrue.s IL_0018 - IL_0017: ldc.i4.0 - IL_0018: ret + IL_0016: ldc.i4.0 + IL_0017: ret - IL_0019: ldc.i4.1 - IL_001a: ret + IL_0018: ldc.i4.1 + IL_0019: ret } } @@ -274,4 +266,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01.fs.RealInternalSignatureOff.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01.fs.RealInternalSignatureOff.il.net472.bsl index 5c436321899..e62b570a683 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01.fs.RealInternalSignatureOff.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01.fs.RealInternalSignatureOff.il.net472.bsl @@ -1103,27 +1103,26 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: call instance int32 assembly/Test1::get_Tag() - IL_0007: switch ( - IL_001c, - IL_0028, - IL_002a, - IL_002c) - IL_001c: ldarg.0 - IL_001d: castclass assembly/Test1/X11 - IL_0022: ldfld int32 assembly/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 + IL_0000: ldarg.0 + IL_0001: call instance int32 assembly/Test1::get_Tag() + IL_0006: switch ( + IL_001b, + IL_0027, + IL_0029, + IL_002b) + IL_001b: ldarg.0 + IL_001c: castclass assembly/Test1/X11 + IL_0021: ldfld int32 assembly/Test1/X11::item + IL_0026: ret + + IL_0027: ldc.i4.2 + IL_0028: ret + + IL_0029: ldc.i4.3 + IL_002a: ret + + IL_002b: ldc.i4.4 + IL_002c: ret } .method public static int32 fm(class assembly/Test1 y) cil managed diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01.fs.RealInternalSignatureOff.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01.fs.RealInternalSignatureOff.il.netcore.bsl index b9a5590952e..823749bc7e8 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01.fs.RealInternalSignatureOff.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01.fs.RealInternalSignatureOff.il.netcore.bsl @@ -1103,27 +1103,26 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: call instance int32 assembly/Test1::get_Tag() - IL_0007: switch ( - IL_001c, - IL_0028, - IL_002a, - IL_002c) - IL_001c: ldarg.0 - IL_001d: castclass assembly/Test1/X11 - IL_0022: ldfld int32 assembly/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 + IL_0000: ldarg.0 + IL_0001: call instance int32 assembly/Test1::get_Tag() + IL_0006: switch ( + IL_001b, + IL_0027, + IL_0029, + IL_002b) + IL_001b: ldarg.0 + IL_001c: castclass assembly/Test1/X11 + IL_0021: ldfld int32 assembly/Test1/X11::item + IL_0026: ret + + IL_0027: ldc.i4.2 + IL_0028: ret + + IL_0029: ldc.i4.3 + IL_002a: ret + + IL_002b: ldc.i4.4 + IL_002c: ret } .method public static int32 fm(class assembly/Test1 y) cil managed @@ -1423,4 +1422,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01.fs.RealInternalSignatureOn.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01.fs.RealInternalSignatureOn.il.net472.bsl index 3553599f1e1..0cd76d708b4 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01.fs.RealInternalSignatureOn.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01.fs.RealInternalSignatureOn.il.net472.bsl @@ -29,15 +29,15 @@ -.class public abstract auto ansi sealed Match01 +.class public abstract auto ansi sealed assembly 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 abstract auto autochar serializable nested public beforefieldinit Test1 extends [runtime]System.Object - implements class [runtime]System.IEquatable`1, + implements class [runtime]System.IEquatable`1, [runtime]System.Collections.IStructuralEquatable, - class [runtime]System.IComparable`1, + class [runtime]System.IComparable`1, [runtime]System.IComparable, [runtime]System.Collections.IStructuralComparable { @@ -54,7 +54,7 @@ } .class auto ansi serializable nested public beforefieldinit specialname X11 - extends Match01/Test1 + extends assembly/Test1 { .custom instance void [runtime]System.Diagnostics.DebuggerTypeProxyAttribute::.ctor(class [runtime]System.Type) = ( 01 00 20 4D 61 74 63 68 30 31 2B 54 65 73 74 31 2B 58 31 31 40 44 65 62 75 67 54 79 70 65 50 72 @@ -76,10 +76,10 @@ .maxstack 8 IL_0000: ldarg.0 IL_0001: ldc.i4.0 - IL_0002: call instance void Match01/Test1::.ctor(int32) + IL_0002: call instance void assembly/Test1::.ctor(int32) IL_0007: ldarg.0 IL_0008: ldarg.1 - IL_0009: stfld int32 Match01/Test1/X11::item + IL_0009: stfld int32 assembly/Test1/X11::item IL_000e: ret } @@ -90,7 +90,7 @@ .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld int32 Match01/Test1/X11::item + IL_0001: ldfld int32 assembly/Test1/X11::item IL_0006: ret } @@ -101,12 +101,12 @@ int32) = ( 01 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 ) .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 ) - .get instance int32 Match01/Test1/X11::get_Item() + .get instance int32 assembly/Test1/X11::get_Item() } } .class auto ansi serializable nested public beforefieldinit specialname X12 - extends Match01/Test1 + extends assembly/Test1 { .custom instance void [runtime]System.Diagnostics.DebuggerTypeProxyAttribute::.ctor(class [runtime]System.Type) = ( 01 00 20 4D 61 74 63 68 30 31 2B 54 65 73 74 31 2B 58 31 32 40 44 65 62 75 67 54 79 70 65 50 72 @@ -128,10 +128,10 @@ .maxstack 8 IL_0000: ldarg.0 IL_0001: ldc.i4.1 - IL_0002: call instance void Match01/Test1::.ctor(int32) + IL_0002: call instance void assembly/Test1::.ctor(int32) IL_0007: ldarg.0 IL_0008: ldarg.1 - IL_0009: stfld int32 Match01/Test1/X12::item + IL_0009: stfld int32 assembly/Test1/X12::item IL_000e: ret } @@ -142,7 +142,7 @@ .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld int32 Match01/Test1/X12::item + IL_0001: ldfld int32 assembly/Test1/X12::item IL_0006: ret } @@ -153,12 +153,12 @@ int32) = ( 01 00 04 00 00 00 01 00 00 00 00 00 00 00 00 00 ) .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 ) - .get instance int32 Match01/Test1/X12::get_Item() + .get instance int32 assembly/Test1/X12::get_Item() } } .class auto ansi serializable nested public beforefieldinit specialname X13 - extends Match01/Test1 + extends assembly/Test1 { .custom instance void [runtime]System.Diagnostics.DebuggerTypeProxyAttribute::.ctor(class [runtime]System.Type) = ( 01 00 20 4D 61 74 63 68 30 31 2B 54 65 73 74 31 2B 58 31 33 40 44 65 62 75 67 54 79 70 65 50 72 @@ -180,10 +180,10 @@ .maxstack 8 IL_0000: ldarg.0 IL_0001: ldc.i4.2 - IL_0002: call instance void Match01/Test1::.ctor(int32) + IL_0002: call instance void assembly/Test1::.ctor(int32) IL_0007: ldarg.0 IL_0008: ldarg.1 - IL_0009: stfld int32 Match01/Test1/X13::item + IL_0009: stfld int32 assembly/Test1/X13::item IL_000e: ret } @@ -194,7 +194,7 @@ .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld int32 Match01/Test1/X13::item + IL_0001: ldfld int32 assembly/Test1/X13::item IL_0006: ret } @@ -205,12 +205,12 @@ int32) = ( 01 00 04 00 00 00 02 00 00 00 00 00 00 00 00 00 ) .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 ) - .get instance int32 Match01/Test1/X13::get_Item() + .get instance int32 assembly/Test1/X13::get_Item() } } .class auto ansi serializable nested public beforefieldinit specialname X14 - extends Match01/Test1 + extends assembly/Test1 { .custom instance void [runtime]System.Diagnostics.DebuggerTypeProxyAttribute::.ctor(class [runtime]System.Type) = ( 01 00 20 4D 61 74 63 68 30 31 2B 54 65 73 74 31 2B 58 31 34 40 44 65 62 75 67 54 79 70 65 50 72 @@ -232,10 +232,10 @@ .maxstack 8 IL_0000: ldarg.0 IL_0001: ldc.i4.3 - IL_0002: call instance void Match01/Test1::.ctor(int32) + IL_0002: call instance void assembly/Test1::.ctor(int32) IL_0007: ldarg.0 IL_0008: ldarg.1 - IL_0009: stfld int32 Match01/Test1/X14::item + IL_0009: stfld int32 assembly/Test1/X14::item IL_000e: ret } @@ -246,7 +246,7 @@ .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld int32 Match01/Test1/X14::item + IL_0001: ldfld int32 assembly/Test1/X14::item IL_0006: ret } @@ -257,18 +257,18 @@ int32) = ( 01 00 04 00 00 00 03 00 00 00 00 00 00 00 00 00 ) .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 ) - .get instance int32 Match01/Test1/X14::get_Item() + .get instance int32 assembly/Test1/X14::get_Item() } } .class auto ansi nested assembly beforefieldinit specialname X11@DebugTypeProxy extends [runtime]System.Object { - .field assembly class Match01/Test1/X11 _obj + .field assembly class assembly/Test1/X11 _obj .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .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 ) - .method public specialname rtspecialname instance void .ctor(class Match01/Test1/X11 obj) cil managed + .method public specialname rtspecialname instance void .ctor(class assembly/Test1/X11 obj) cil managed { .custom instance void System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute::.ctor(valuetype System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes, class [runtime]System.Type) = ( 01 00 60 06 00 00 0D 4D 61 74 63 68 30 31 2B 54 @@ -281,7 +281,7 @@ IL_0001: call instance void [runtime]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld class Match01/Test1/X11 Match01/Test1/X11@DebugTypeProxy::_obj + IL_0008: stfld class assembly/Test1/X11 assembly/Test1/X11@DebugTypeProxy::_obj IL_000d: ret } @@ -292,8 +292,8 @@ .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld class Match01/Test1/X11 Match01/Test1/X11@DebugTypeProxy::_obj - IL_0006: ldfld int32 Match01/Test1/X11::item + IL_0001: ldfld class assembly/Test1/X11 assembly/Test1/X11@DebugTypeProxy::_obj + IL_0006: ldfld int32 assembly/Test1/X11::item IL_000b: ret } @@ -304,18 +304,18 @@ int32) = ( 01 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 ) .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 ) - .get instance int32 Match01/Test1/X11@DebugTypeProxy::get_Item() + .get instance int32 assembly/Test1/X11@DebugTypeProxy::get_Item() } } .class auto ansi nested assembly beforefieldinit specialname X12@DebugTypeProxy extends [runtime]System.Object { - .field assembly class Match01/Test1/X12 _obj + .field assembly class assembly/Test1/X12 _obj .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .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 ) - .method public specialname rtspecialname instance void .ctor(class Match01/Test1/X12 obj) cil managed + .method public specialname rtspecialname instance void .ctor(class assembly/Test1/X12 obj) cil managed { .custom instance void System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute::.ctor(valuetype System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes, class [runtime]System.Type) = ( 01 00 60 06 00 00 0D 4D 61 74 63 68 30 31 2B 54 @@ -328,7 +328,7 @@ IL_0001: call instance void [runtime]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld class Match01/Test1/X12 Match01/Test1/X12@DebugTypeProxy::_obj + IL_0008: stfld class assembly/Test1/X12 assembly/Test1/X12@DebugTypeProxy::_obj IL_000d: ret } @@ -339,8 +339,8 @@ .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld class Match01/Test1/X12 Match01/Test1/X12@DebugTypeProxy::_obj - IL_0006: ldfld int32 Match01/Test1/X12::item + IL_0001: ldfld class assembly/Test1/X12 assembly/Test1/X12@DebugTypeProxy::_obj + IL_0006: ldfld int32 assembly/Test1/X12::item IL_000b: ret } @@ -351,18 +351,18 @@ int32) = ( 01 00 04 00 00 00 01 00 00 00 00 00 00 00 00 00 ) .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 ) - .get instance int32 Match01/Test1/X12@DebugTypeProxy::get_Item() + .get instance int32 assembly/Test1/X12@DebugTypeProxy::get_Item() } } .class auto ansi nested assembly beforefieldinit specialname X13@DebugTypeProxy extends [runtime]System.Object { - .field assembly class Match01/Test1/X13 _obj + .field assembly class assembly/Test1/X13 _obj .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .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 ) - .method public specialname rtspecialname instance void .ctor(class Match01/Test1/X13 obj) cil managed + .method public specialname rtspecialname instance void .ctor(class assembly/Test1/X13 obj) cil managed { .custom instance void System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute::.ctor(valuetype System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes, class [runtime]System.Type) = ( 01 00 60 06 00 00 0D 4D 61 74 63 68 30 31 2B 54 @@ -375,7 +375,7 @@ IL_0001: call instance void [runtime]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld class Match01/Test1/X13 Match01/Test1/X13@DebugTypeProxy::_obj + IL_0008: stfld class assembly/Test1/X13 assembly/Test1/X13@DebugTypeProxy::_obj IL_000d: ret } @@ -386,8 +386,8 @@ .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld class Match01/Test1/X13 Match01/Test1/X13@DebugTypeProxy::_obj - IL_0006: ldfld int32 Match01/Test1/X13::item + IL_0001: ldfld class assembly/Test1/X13 assembly/Test1/X13@DebugTypeProxy::_obj + IL_0006: ldfld int32 assembly/Test1/X13::item IL_000b: ret } @@ -398,18 +398,18 @@ int32) = ( 01 00 04 00 00 00 02 00 00 00 00 00 00 00 00 00 ) .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 ) - .get instance int32 Match01/Test1/X13@DebugTypeProxy::get_Item() + .get instance int32 assembly/Test1/X13@DebugTypeProxy::get_Item() } } .class auto ansi nested assembly beforefieldinit specialname X14@DebugTypeProxy extends [runtime]System.Object { - .field assembly class Match01/Test1/X14 _obj + .field assembly class assembly/Test1/X14 _obj .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .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 ) - .method public specialname rtspecialname instance void .ctor(class Match01/Test1/X14 obj) cil managed + .method public specialname rtspecialname instance void .ctor(class assembly/Test1/X14 obj) cil managed { .custom instance void System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute::.ctor(valuetype System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes, class [runtime]System.Type) = ( 01 00 60 06 00 00 0D 4D 61 74 63 68 30 31 2B 54 @@ -422,7 +422,7 @@ IL_0001: call instance void [runtime]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld class Match01/Test1/X14 Match01/Test1/X14@DebugTypeProxy::_obj + IL_0008: stfld class assembly/Test1/X14 assembly/Test1/X14@DebugTypeProxy::_obj IL_000d: ret } @@ -433,8 +433,8 @@ .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld class Match01/Test1/X14 Match01/Test1/X14@DebugTypeProxy::_obj - IL_0006: ldfld int32 Match01/Test1/X14::item + IL_0001: ldfld class assembly/Test1/X14 assembly/Test1/X14@DebugTypeProxy::_obj + IL_0006: ldfld int32 assembly/Test1/X14::item IL_000b: ret } @@ -445,22 +445,22 @@ int32) = ( 01 00 04 00 00 00 03 00 00 00 00 00 00 00 00 00 ) .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 ) - .get instance int32 Match01/Test1/X14@DebugTypeProxy::get_Item() + .get instance int32 assembly/Test1/X14@DebugTypeProxy::get_Item() } } .class auto ansi serializable sealed nested assembly beforefieldinit clo@4 extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 { - .field public class Match01/Test1 this + .field public class assembly/Test1 this .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .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 ) - .field public class Match01/Test1 obj + .field public class assembly/Test1 obj .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .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 ) - .method assembly specialname rtspecialname instance void .ctor(class Match01/Test1 this, class Match01/Test1 obj) cil managed + .method assembly specialname rtspecialname instance void .ctor(class assembly/Test1 this, class assembly/Test1 obj) 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 ) @@ -470,10 +470,10 @@ IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld class Match01/Test1 Match01/Test1/clo@4::this + IL_0008: stfld class assembly/Test1 assembly/Test1/clo@4::this IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld class Match01/Test1 Match01/Test1/clo@4::obj + IL_000f: stfld class assembly/Test1 assembly/Test1/clo@4::obj IL_0014: ret } @@ -483,52 +483,52 @@ .maxstack 7 .locals init (int32 V_0, int32 V_1, - class Match01/Test1/X11 V_2, - class Match01/Test1/X11 V_3, + class assembly/Test1/X11 V_2, + class assembly/Test1/X11 V_3, class [runtime]System.Collections.IComparer V_4, int32 V_5, int32 V_6, - class Match01/Test1/X12 V_7, - class Match01/Test1/X12 V_8, - class Match01/Test1/X13 V_9, - class Match01/Test1/X13 V_10, - class Match01/Test1/X14 V_11, - class Match01/Test1/X14 V_12) + class assembly/Test1/X12 V_7, + class assembly/Test1/X12 V_8, + class assembly/Test1/X13 V_9, + class assembly/Test1/X13 V_10, + class assembly/Test1/X14 V_11, + class assembly/Test1/X14 V_12) IL_0000: ldarg.0 - IL_0001: ldfld class Match01/Test1 Match01/Test1/clo@4::this - IL_0006: ldfld int32 Match01/Test1::_tag + IL_0001: ldfld class assembly/Test1 assembly/Test1/clo@4::this + IL_0006: ldfld int32 assembly/Test1::_tag IL_000b: stloc.0 IL_000c: ldarg.0 - IL_000d: ldfld class Match01/Test1 Match01/Test1/clo@4::obj - IL_0012: ldfld int32 Match01/Test1::_tag + IL_000d: ldfld class assembly/Test1 assembly/Test1/clo@4::obj + IL_0012: ldfld int32 assembly/Test1::_tag IL_0017: stloc.1 IL_0018: ldloc.0 IL_0019: ldloc.1 IL_001a: bne.un IL_013f IL_001f: ldarg.0 - IL_0020: ldfld class Match01/Test1 Match01/Test1/clo@4::this - IL_0025: call instance int32 Match01/Test1::get_Tag() + IL_0020: ldfld class assembly/Test1 assembly/Test1/clo@4::this + IL_0025: call instance int32 assembly/Test1::get_Tag() IL_002a: switch ( IL_003f, IL_007c, IL_00bd, IL_00fe) IL_003f: ldarg.0 - IL_0040: ldfld class Match01/Test1 Match01/Test1/clo@4::this - IL_0045: castclass Match01/Test1/X11 + IL_0040: ldfld class assembly/Test1 assembly/Test1/clo@4::this + IL_0045: castclass assembly/Test1/X11 IL_004a: stloc.2 IL_004b: ldarg.0 - IL_004c: ldfld class Match01/Test1 Match01/Test1/clo@4::obj - IL_0051: castclass Match01/Test1/X11 + IL_004c: ldfld class assembly/Test1 assembly/Test1/clo@4::obj + IL_0051: castclass assembly/Test1/X11 IL_0056: stloc.3 IL_0057: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() IL_005c: stloc.s V_4 IL_005e: ldloc.2 - IL_005f: ldfld int32 Match01/Test1/X11::item + IL_005f: ldfld int32 assembly/Test1/X11::item IL_0064: stloc.s V_5 IL_0066: ldloc.3 - IL_0067: ldfld int32 Match01/Test1/X11::item + IL_0067: ldfld int32 assembly/Test1/X11::item IL_006c: stloc.s V_6 IL_006e: ldloc.s V_5 IL_0070: ldloc.s V_6 @@ -540,20 +540,20 @@ IL_007b: ret IL_007c: ldarg.0 - IL_007d: ldfld class Match01/Test1 Match01/Test1/clo@4::this - IL_0082: castclass Match01/Test1/X12 + IL_007d: ldfld class assembly/Test1 assembly/Test1/clo@4::this + IL_0082: castclass assembly/Test1/X12 IL_0087: stloc.s V_7 IL_0089: ldarg.0 - IL_008a: ldfld class Match01/Test1 Match01/Test1/clo@4::obj - IL_008f: castclass Match01/Test1/X12 + IL_008a: ldfld class assembly/Test1 assembly/Test1/clo@4::obj + IL_008f: castclass assembly/Test1/X12 IL_0094: stloc.s V_8 IL_0096: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() IL_009b: stloc.s V_4 IL_009d: ldloc.s V_7 - IL_009f: ldfld int32 Match01/Test1/X12::item + IL_009f: ldfld int32 assembly/Test1/X12::item IL_00a4: stloc.s V_5 IL_00a6: ldloc.s V_8 - IL_00a8: ldfld int32 Match01/Test1/X12::item + IL_00a8: ldfld int32 assembly/Test1/X12::item IL_00ad: stloc.s V_6 IL_00af: ldloc.s V_5 IL_00b1: ldloc.s V_6 @@ -565,20 +565,20 @@ IL_00bc: ret IL_00bd: ldarg.0 - IL_00be: ldfld class Match01/Test1 Match01/Test1/clo@4::this - IL_00c3: castclass Match01/Test1/X13 + IL_00be: ldfld class assembly/Test1 assembly/Test1/clo@4::this + IL_00c3: castclass assembly/Test1/X13 IL_00c8: stloc.s V_9 IL_00ca: ldarg.0 - IL_00cb: ldfld class Match01/Test1 Match01/Test1/clo@4::obj - IL_00d0: castclass Match01/Test1/X13 + IL_00cb: ldfld class assembly/Test1 assembly/Test1/clo@4::obj + IL_00d0: castclass assembly/Test1/X13 IL_00d5: stloc.s V_10 IL_00d7: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() IL_00dc: stloc.s V_4 IL_00de: ldloc.s V_9 - IL_00e0: ldfld int32 Match01/Test1/X13::item + IL_00e0: ldfld int32 assembly/Test1/X13::item IL_00e5: stloc.s V_5 IL_00e7: ldloc.s V_10 - IL_00e9: ldfld int32 Match01/Test1/X13::item + IL_00e9: ldfld int32 assembly/Test1/X13::item IL_00ee: stloc.s V_6 IL_00f0: ldloc.s V_5 IL_00f2: ldloc.s V_6 @@ -590,20 +590,20 @@ IL_00fd: ret IL_00fe: ldarg.0 - IL_00ff: ldfld class Match01/Test1 Match01/Test1/clo@4::this - IL_0104: castclass Match01/Test1/X14 + IL_00ff: ldfld class assembly/Test1 assembly/Test1/clo@4::this + IL_0104: castclass assembly/Test1/X14 IL_0109: stloc.s V_11 IL_010b: ldarg.0 - IL_010c: ldfld class Match01/Test1 Match01/Test1/clo@4::obj - IL_0111: castclass Match01/Test1/X14 + IL_010c: ldfld class assembly/Test1 assembly/Test1/clo@4::obj + IL_0111: castclass assembly/Test1/X14 IL_0116: stloc.s V_12 IL_0118: call class [runtime]System.Collections.IComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericComparer() IL_011d: stloc.s V_4 IL_011f: ldloc.s V_11 - IL_0121: ldfld int32 Match01/Test1/X14::item + IL_0121: ldfld int32 assembly/Test1/X14::item IL_0126: stloc.s V_5 IL_0128: ldloc.s V_12 - IL_012a: ldfld int32 Match01/Test1/X14::item + IL_012a: ldfld int32 assembly/Test1/X14::item IL_012f: stloc.s V_6 IL_0131: ldloc.s V_5 IL_0133: ldloc.s V_6 @@ -625,7 +625,7 @@ .class auto ansi serializable sealed nested assembly beforefieldinit 'clo@4-1' extends class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 { - .field public class Match01/Test1 this + .field public class assembly/Test1 this .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .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 ) @@ -633,14 +633,14 @@ .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .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 ) - .field public class Match01/Test1 objTemp + .field public class assembly/Test1 objTemp .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .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 ) .method assembly specialname rtspecialname - instance void .ctor(class Match01/Test1 this, + instance void .ctor(class assembly/Test1 this, object obj, - class Match01/Test1 objTemp) cil managed + class assembly/Test1 objTemp) 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 ) @@ -650,13 +650,13 @@ IL_0001: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld class Match01/Test1 Match01/Test1/'clo@4-1'::this + IL_0008: stfld class assembly/Test1 assembly/Test1/'clo@4-1'::this IL_000d: ldarg.0 IL_000e: ldarg.2 - IL_000f: stfld object Match01/Test1/'clo@4-1'::obj + IL_000f: stfld object assembly/Test1/'clo@4-1'::obj IL_0014: ldarg.0 IL_0015: ldarg.3 - IL_0016: stfld class Match01/Test1 Match01/Test1/'clo@4-1'::objTemp + IL_0016: stfld class assembly/Test1 assembly/Test1/'clo@4-1'::objTemp IL_001b: ret } @@ -666,54 +666,54 @@ .maxstack 7 .locals init (int32 V_0, int32 V_1, - class Match01/Test1/X11 V_2, - class Match01/Test1/X11 V_3, + class assembly/Test1/X11 V_2, + class assembly/Test1/X11 V_3, int32 V_4, int32 V_5, - class Match01/Test1/X12 V_6, - class Match01/Test1/X12 V_7, - class Match01/Test1/X13 V_8, - class Match01/Test1/X13 V_9, - class Match01/Test1/X14 V_10, - class Match01/Test1/X14 V_11) + class assembly/Test1/X12 V_6, + class assembly/Test1/X12 V_7, + class assembly/Test1/X13 V_8, + class assembly/Test1/X13 V_9, + class assembly/Test1/X14 V_10, + class assembly/Test1/X14 V_11) IL_0000: ldarg.0 - IL_0001: ldfld object Match01/Test1/'clo@4-1'::obj - IL_0006: unbox.any Match01/Test1 + IL_0001: ldfld object assembly/Test1/'clo@4-1'::obj + IL_0006: unbox.any assembly/Test1 IL_000b: brfalse IL_0137 IL_0010: ldarg.0 - IL_0011: ldfld class Match01/Test1 Match01/Test1/'clo@4-1'::this - IL_0016: ldfld int32 Match01/Test1::_tag + IL_0011: ldfld class assembly/Test1 assembly/Test1/'clo@4-1'::this + IL_0016: ldfld int32 assembly/Test1::_tag IL_001b: stloc.0 IL_001c: ldarg.0 - IL_001d: ldfld class Match01/Test1 Match01/Test1/'clo@4-1'::objTemp - IL_0022: ldfld int32 Match01/Test1::_tag + IL_001d: ldfld class assembly/Test1 assembly/Test1/'clo@4-1'::objTemp + IL_0022: ldfld int32 assembly/Test1::_tag IL_0027: stloc.1 IL_0028: ldloc.0 IL_0029: ldloc.1 IL_002a: bne.un IL_0133 IL_002f: ldarg.0 - IL_0030: ldfld class Match01/Test1 Match01/Test1/'clo@4-1'::this - IL_0035: call instance int32 Match01/Test1::get_Tag() + IL_0030: ldfld class assembly/Test1 assembly/Test1/'clo@4-1'::this + IL_0035: call instance int32 assembly/Test1::get_Tag() IL_003a: switch ( IL_004f, IL_0085, IL_00bf, IL_00f9) IL_004f: ldarg.0 - IL_0050: ldfld class Match01/Test1 Match01/Test1/'clo@4-1'::this - IL_0055: castclass Match01/Test1/X11 + IL_0050: ldfld class assembly/Test1 assembly/Test1/'clo@4-1'::this + IL_0055: castclass assembly/Test1/X11 IL_005a: stloc.2 IL_005b: ldarg.0 - IL_005c: ldfld class Match01/Test1 Match01/Test1/'clo@4-1'::objTemp - IL_0061: castclass Match01/Test1/X11 + IL_005c: ldfld class assembly/Test1 assembly/Test1/'clo@4-1'::objTemp + IL_0061: castclass assembly/Test1/X11 IL_0066: stloc.3 IL_0067: ldloc.2 - IL_0068: ldfld int32 Match01/Test1/X11::item + IL_0068: ldfld int32 assembly/Test1/X11::item IL_006d: stloc.s V_4 IL_006f: ldloc.3 - IL_0070: ldfld int32 Match01/Test1/X11::item + IL_0070: ldfld int32 assembly/Test1/X11::item IL_0075: stloc.s V_5 IL_0077: ldloc.s V_4 IL_0079: ldloc.s V_5 @@ -725,18 +725,18 @@ IL_0084: ret IL_0085: ldarg.0 - IL_0086: ldfld class Match01/Test1 Match01/Test1/'clo@4-1'::this - IL_008b: castclass Match01/Test1/X12 + IL_0086: ldfld class assembly/Test1 assembly/Test1/'clo@4-1'::this + IL_008b: castclass assembly/Test1/X12 IL_0090: stloc.s V_6 IL_0092: ldarg.0 - IL_0093: ldfld class Match01/Test1 Match01/Test1/'clo@4-1'::objTemp - IL_0098: castclass Match01/Test1/X12 + IL_0093: ldfld class assembly/Test1 assembly/Test1/'clo@4-1'::objTemp + IL_0098: castclass assembly/Test1/X12 IL_009d: stloc.s V_7 IL_009f: ldloc.s V_6 - IL_00a1: ldfld int32 Match01/Test1/X12::item + IL_00a1: ldfld int32 assembly/Test1/X12::item IL_00a6: stloc.s V_4 IL_00a8: ldloc.s V_7 - IL_00aa: ldfld int32 Match01/Test1/X12::item + IL_00aa: ldfld int32 assembly/Test1/X12::item IL_00af: stloc.s V_5 IL_00b1: ldloc.s V_4 IL_00b3: ldloc.s V_5 @@ -748,18 +748,18 @@ IL_00be: ret IL_00bf: ldarg.0 - IL_00c0: ldfld class Match01/Test1 Match01/Test1/'clo@4-1'::this - IL_00c5: castclass Match01/Test1/X13 + IL_00c0: ldfld class assembly/Test1 assembly/Test1/'clo@4-1'::this + IL_00c5: castclass assembly/Test1/X13 IL_00ca: stloc.s V_8 IL_00cc: ldarg.0 - IL_00cd: ldfld class Match01/Test1 Match01/Test1/'clo@4-1'::objTemp - IL_00d2: castclass Match01/Test1/X13 + IL_00cd: ldfld class assembly/Test1 assembly/Test1/'clo@4-1'::objTemp + IL_00d2: castclass assembly/Test1/X13 IL_00d7: stloc.s V_9 IL_00d9: ldloc.s V_8 - IL_00db: ldfld int32 Match01/Test1/X13::item + IL_00db: ldfld int32 assembly/Test1/X13::item IL_00e0: stloc.s V_4 IL_00e2: ldloc.s V_9 - IL_00e4: ldfld int32 Match01/Test1/X13::item + IL_00e4: ldfld int32 assembly/Test1/X13::item IL_00e9: stloc.s V_5 IL_00eb: ldloc.s V_4 IL_00ed: ldloc.s V_5 @@ -771,18 +771,18 @@ IL_00f8: ret IL_00f9: ldarg.0 - IL_00fa: ldfld class Match01/Test1 Match01/Test1/'clo@4-1'::this - IL_00ff: castclass Match01/Test1/X14 + IL_00fa: ldfld class assembly/Test1 assembly/Test1/'clo@4-1'::this + IL_00ff: castclass assembly/Test1/X14 IL_0104: stloc.s V_10 IL_0106: ldarg.0 - IL_0107: ldfld class Match01/Test1 Match01/Test1/'clo@4-1'::objTemp - IL_010c: castclass Match01/Test1/X14 + IL_0107: ldfld class assembly/Test1 assembly/Test1/'clo@4-1'::objTemp + IL_010c: castclass assembly/Test1/X14 IL_0111: stloc.s V_11 IL_0113: ldloc.s V_10 - IL_0115: ldfld int32 Match01/Test1/X14::item + IL_0115: ldfld int32 assembly/Test1/X14::item IL_011a: stloc.s V_4 IL_011c: ldloc.s V_11 - IL_011e: ldfld int32 Match01/Test1/X14::item + IL_011e: ldfld int32 assembly/Test1/X14::item IL_0123: stloc.s V_5 IL_0125: ldloc.s V_4 IL_0127: ldloc.s V_5 @@ -821,11 +821,11 @@ IL_0001: call instance void [runtime]System.Object::.ctor() IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: stfld int32 Match01/Test1::_tag + IL_0008: stfld int32 assembly/Test1::_tag IL_000d: ret } - .method public static class Match01/Test1 NewX11(int32 item) cil managed + .method public static class assembly/Test1 NewX11(int32 item) cil managed { .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) @@ -834,7 +834,7 @@ .maxstack 8 IL_0000: ldarg.0 - IL_0001: newobj instance void Match01/Test1/X11::.ctor(int32) + IL_0001: newobj instance void assembly/Test1/X11::.ctor(int32) IL_0006: ret } @@ -845,13 +845,13 @@ .maxstack 8 IL_0000: ldarg.0 - IL_0001: call instance int32 Match01/Test1::get_Tag() + IL_0001: call instance int32 assembly/Test1::get_Tag() IL_0006: ldc.i4.0 IL_0007: ceq IL_0009: ret } - .method public static class Match01/Test1 NewX12(int32 item) cil managed + .method public static class assembly/Test1 NewX12(int32 item) cil managed { .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, int32) = ( 01 00 08 00 00 00 01 00 00 00 00 00 ) @@ -860,7 +860,7 @@ .maxstack 8 IL_0000: ldarg.0 - IL_0001: newobj instance void Match01/Test1/X12::.ctor(int32) + IL_0001: newobj instance void assembly/Test1/X12::.ctor(int32) IL_0006: ret } @@ -871,13 +871,13 @@ .maxstack 8 IL_0000: ldarg.0 - IL_0001: call instance int32 Match01/Test1::get_Tag() + IL_0001: call instance int32 assembly/Test1::get_Tag() IL_0006: ldc.i4.1 IL_0007: ceq IL_0009: ret } - .method public static class Match01/Test1 NewX13(int32 item) cil managed + .method public static class assembly/Test1 NewX13(int32 item) cil managed { .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, int32) = ( 01 00 08 00 00 00 02 00 00 00 00 00 ) @@ -886,7 +886,7 @@ .maxstack 8 IL_0000: ldarg.0 - IL_0001: newobj instance void Match01/Test1/X13::.ctor(int32) + IL_0001: newobj instance void assembly/Test1/X13::.ctor(int32) IL_0006: ret } @@ -897,13 +897,13 @@ .maxstack 8 IL_0000: ldarg.0 - IL_0001: call instance int32 Match01/Test1::get_Tag() + IL_0001: call instance int32 assembly/Test1::get_Tag() IL_0006: ldc.i4.2 IL_0007: ceq IL_0009: ret } - .method public static class Match01/Test1 NewX14(int32 item) cil managed + .method public static class assembly/Test1 NewX14(int32 item) cil managed { .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags, int32) = ( 01 00 08 00 00 00 03 00 00 00 00 00 ) @@ -912,7 +912,7 @@ .maxstack 8 IL_0000: ldarg.0 - IL_0001: newobj instance void Match01/Test1/X14::.ctor(int32) + IL_0001: newobj instance void assembly/Test1/X14::.ctor(int32) IL_0006: ret } @@ -923,7 +923,7 @@ .maxstack 8 IL_0000: ldarg.0 - IL_0001: call instance int32 Match01/Test1::get_Tag() + IL_0001: call instance int32 assembly/Test1::get_Tag() IL_0006: ldc.i4.3 IL_0007: ceq IL_0009: ret @@ -936,7 +936,7 @@ .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld int32 Match01/Test1::_tag + IL_0001: ldfld int32 assembly/Test1::_tag IL_0006: ret } @@ -947,10 +947,10 @@ .maxstack 8 IL_0000: ldstr "%+0.8A" - IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) - IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) IL_000f: ldarg.0 - IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) IL_0015: ret } @@ -960,14 +960,14 @@ .maxstack 8 IL_0000: ldstr "%+A" - IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class Match01/Test1>::.ctor(string) - IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class assembly/Test1>::.ctor(string) + IL_000a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatToString>(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) IL_000f: ldarg.0 - IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) IL_0015: ret } - .method public hidebysig virtual final instance int32 CompareTo(class Match01/Test1 obj) cil managed + .method public hidebysig virtual final instance int32 CompareTo(class assembly/Test1 obj) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -981,8 +981,8 @@ IL_0006: ldarg.0 IL_0007: ldarg.1 - IL_0008: newobj instance void Match01/Test1/clo@4::.ctor(class Match01/Test1, - class Match01/Test1) + IL_0008: newobj instance void assembly/Test1/clo@4::.ctor(class assembly/Test1, + class assembly/Test1) IL_000d: stloc.0 IL_000e: ldloc.0 IL_000f: ldnull @@ -1010,8 +1010,8 @@ .maxstack 8 IL_0000: ldarg.0 IL_0001: ldarg.1 - IL_0002: unbox.any Match01/Test1 - IL_0007: callvirt instance int32 Match01/Test1::CompareTo(class Match01/Test1) + IL_0002: unbox.any assembly/Test1 + IL_0007: callvirt instance int32 assembly/Test1::CompareTo(class assembly/Test1) IL_000c: ret } @@ -1020,10 +1020,10 @@ .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .maxstack 5 - .locals init (class Match01/Test1 V_0, + .locals init (class assembly/Test1 V_0, class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 V_1) IL_0000: ldarg.1 - IL_0001: unbox.any Match01/Test1 + IL_0001: unbox.any assembly/Test1 IL_0006: stloc.0 IL_0007: ldarg.0 IL_0008: brfalse.s IL_001d @@ -1031,9 +1031,9 @@ IL_000a: ldarg.0 IL_000b: ldarg.1 IL_000c: ldloc.0 - IL_000d: newobj instance void Match01/Test1/'clo@4-1'::.ctor(class Match01/Test1, + IL_000d: newobj instance void assembly/Test1/'clo@4-1'::.ctor(class assembly/Test1, object, - class Match01/Test1) + class assembly/Test1) IL_0012: stloc.1 IL_0013: ldloc.1 IL_0014: ldnull @@ -1042,7 +1042,7 @@ IL_001c: ret IL_001d: ldarg.1 - IL_001e: unbox.any Match01/Test1 + IL_001e: unbox.any assembly/Test1 IL_0023: brfalse.s IL_0027 IL_0025: ldc.i4.m1 @@ -1058,30 +1058,30 @@ .maxstack 7 .locals init (int32 V_0, - class Match01/Test1/X11 V_1, - class Match01/Test1/X12 V_2, - class Match01/Test1/X13 V_3, - class Match01/Test1/X14 V_4) + class assembly/Test1/X11 V_1, + class assembly/Test1/X12 V_2, + class assembly/Test1/X13 V_3, + class assembly/Test1/X14 V_4) IL_0000: ldarg.0 IL_0001: brfalse IL_00a5 IL_0006: ldc.i4.0 IL_0007: stloc.0 IL_0008: ldarg.0 - IL_0009: call instance int32 Match01/Test1::get_Tag() + IL_0009: call instance int32 assembly/Test1::get_Tag() IL_000e: switch ( IL_0023, IL_0043, IL_0063, IL_0083) IL_0023: ldarg.0 - IL_0024: castclass Match01/Test1/X11 + IL_0024: castclass assembly/Test1/X11 IL_0029: stloc.1 IL_002a: ldc.i4.0 IL_002b: stloc.0 IL_002c: ldc.i4 0x9e3779b9 IL_0031: ldloc.1 - IL_0032: ldfld int32 Match01/Test1/X11::item + IL_0032: ldfld int32 assembly/Test1/X11::item IL_0037: ldloc.0 IL_0038: ldc.i4.6 IL_0039: shl @@ -1096,13 +1096,13 @@ IL_0042: ret IL_0043: ldarg.0 - IL_0044: castclass Match01/Test1/X12 + IL_0044: castclass assembly/Test1/X12 IL_0049: stloc.2 IL_004a: ldc.i4.1 IL_004b: stloc.0 IL_004c: ldc.i4 0x9e3779b9 IL_0051: ldloc.2 - IL_0052: ldfld int32 Match01/Test1/X12::item + IL_0052: ldfld int32 assembly/Test1/X12::item IL_0057: ldloc.0 IL_0058: ldc.i4.6 IL_0059: shl @@ -1117,13 +1117,13 @@ IL_0062: ret IL_0063: ldarg.0 - IL_0064: castclass Match01/Test1/X13 + IL_0064: castclass assembly/Test1/X13 IL_0069: stloc.3 IL_006a: ldc.i4.2 IL_006b: stloc.0 IL_006c: ldc.i4 0x9e3779b9 IL_0071: ldloc.3 - IL_0072: ldfld int32 Match01/Test1/X13::item + IL_0072: ldfld int32 assembly/Test1/X13::item IL_0077: ldloc.0 IL_0078: ldc.i4.6 IL_0079: shl @@ -1138,13 +1138,13 @@ IL_0082: ret IL_0083: ldarg.0 - IL_0084: castclass Match01/Test1/X14 + IL_0084: castclass assembly/Test1/X14 IL_0089: stloc.s V_4 IL_008b: ldc.i4.3 IL_008c: stloc.0 IL_008d: ldc.i4 0x9e3779b9 IL_0092: ldloc.s V_4 - IL_0094: ldfld int32 Match01/Test1/X14::item + IL_0094: ldfld int32 assembly/Test1/X14::item IL_0099: ldloc.0 IL_009a: ldc.i4.6 IL_009b: shl @@ -1169,25 +1169,25 @@ .maxstack 8 IL_0000: ldarg.0 IL_0001: call class [runtime]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() - IL_0006: callvirt instance int32 Match01/Test1::GetHashCode(class [runtime]System.Collections.IEqualityComparer) + IL_0006: callvirt instance int32 assembly/Test1::GetHashCode(class [runtime]System.Collections.IEqualityComparer) IL_000b: ret } - .method public hidebysig instance bool Equals(class Match01/Test1 obj, class [runtime]System.Collections.IEqualityComparer comp) cil managed + .method public hidebysig instance bool Equals(class assembly/Test1 obj, class [runtime]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .maxstack 4 .locals init (int32 V_0, int32 V_1, - class Match01/Test1/X11 V_2, - class Match01/Test1/X11 V_3, - class Match01/Test1/X12 V_4, - class Match01/Test1/X12 V_5, - class Match01/Test1/X13 V_6, - class Match01/Test1/X13 V_7, - class Match01/Test1/X14 V_8, - class Match01/Test1/X14 V_9) + class assembly/Test1/X11 V_2, + class assembly/Test1/X11 V_3, + class assembly/Test1/X12 V_4, + class assembly/Test1/X12 V_5, + class assembly/Test1/X13 V_6, + class assembly/Test1/X13 V_7, + class assembly/Test1/X14 V_8, + class assembly/Test1/X14 V_9) IL_0000: ldarg.0 IL_0001: brfalse IL_00c0 @@ -1195,71 +1195,71 @@ IL_0007: brfalse IL_00be IL_000c: ldarg.0 - IL_000d: ldfld int32 Match01/Test1::_tag + IL_000d: ldfld int32 assembly/Test1::_tag IL_0012: stloc.0 IL_0013: ldarg.1 - IL_0014: ldfld int32 Match01/Test1::_tag + IL_0014: ldfld int32 assembly/Test1::_tag IL_0019: stloc.1 IL_001a: ldloc.0 IL_001b: ldloc.1 IL_001c: bne.un IL_00bc IL_0021: ldarg.0 - IL_0022: call instance int32 Match01/Test1::get_Tag() + IL_0022: call instance int32 assembly/Test1::get_Tag() IL_0027: switch ( IL_003c, IL_0059, IL_007a, IL_009b) IL_003c: ldarg.0 - IL_003d: castclass Match01/Test1/X11 + IL_003d: castclass assembly/Test1/X11 IL_0042: stloc.2 IL_0043: ldarg.1 - IL_0044: castclass Match01/Test1/X11 + IL_0044: castclass assembly/Test1/X11 IL_0049: stloc.3 IL_004a: ldloc.2 - IL_004b: ldfld int32 Match01/Test1/X11::item + IL_004b: ldfld int32 assembly/Test1/X11::item IL_0050: ldloc.3 - IL_0051: ldfld int32 Match01/Test1/X11::item + IL_0051: ldfld int32 assembly/Test1/X11::item IL_0056: ceq IL_0058: ret IL_0059: ldarg.0 - IL_005a: castclass Match01/Test1/X12 + IL_005a: castclass assembly/Test1/X12 IL_005f: stloc.s V_4 IL_0061: ldarg.1 - IL_0062: castclass Match01/Test1/X12 + IL_0062: castclass assembly/Test1/X12 IL_0067: stloc.s V_5 IL_0069: ldloc.s V_4 - IL_006b: ldfld int32 Match01/Test1/X12::item + IL_006b: ldfld int32 assembly/Test1/X12::item IL_0070: ldloc.s V_5 - IL_0072: ldfld int32 Match01/Test1/X12::item + IL_0072: ldfld int32 assembly/Test1/X12::item IL_0077: ceq IL_0079: ret IL_007a: ldarg.0 - IL_007b: castclass Match01/Test1/X13 + IL_007b: castclass assembly/Test1/X13 IL_0080: stloc.s V_6 IL_0082: ldarg.1 - IL_0083: castclass Match01/Test1/X13 + IL_0083: castclass assembly/Test1/X13 IL_0088: stloc.s V_7 IL_008a: ldloc.s V_6 - IL_008c: ldfld int32 Match01/Test1/X13::item + IL_008c: ldfld int32 assembly/Test1/X13::item IL_0091: ldloc.s V_7 - IL_0093: ldfld int32 Match01/Test1/X13::item + IL_0093: ldfld int32 assembly/Test1/X13::item IL_0098: ceq IL_009a: ret IL_009b: ldarg.0 - IL_009c: castclass Match01/Test1/X14 + IL_009c: castclass assembly/Test1/X14 IL_00a1: stloc.s V_8 IL_00a3: ldarg.1 - IL_00a4: castclass Match01/Test1/X14 + IL_00a4: castclass assembly/Test1/X14 IL_00a9: stloc.s V_9 IL_00ab: ldloc.s V_8 - IL_00ad: ldfld int32 Match01/Test1/X14::item + IL_00ad: ldfld int32 assembly/Test1/X14::item IL_00b2: ldloc.s V_9 - IL_00b4: ldfld int32 Match01/Test1/X14::item + IL_00b4: ldfld int32 assembly/Test1/X14::item IL_00b9: ceq IL_00bb: ret @@ -1282,9 +1282,9 @@ .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .maxstack 5 - .locals init (class Match01/Test1 V_0) + .locals init (class assembly/Test1 V_0) IL_0000: ldarg.1 - IL_0001: isinst Match01/Test1 + IL_0001: isinst assembly/Test1 IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_0013 @@ -1292,7 +1292,7 @@ IL_000a: ldarg.0 IL_000b: ldloc.0 IL_000c: ldarg.2 - IL_000d: callvirt instance bool Match01/Test1::Equals(class Match01/Test1, + IL_000d: callvirt instance bool assembly/Test1::Equals(class assembly/Test1, class [runtime]System.Collections.IEqualityComparer) IL_0012: ret @@ -1300,21 +1300,21 @@ IL_0014: ret } - .method public hidebysig virtual final instance bool Equals(class Match01/Test1 obj) cil managed + .method public hidebysig virtual final instance bool Equals(class assembly/Test1 obj) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .maxstack 4 .locals init (int32 V_0, int32 V_1, - class Match01/Test1/X11 V_2, - class Match01/Test1/X11 V_3, - class Match01/Test1/X12 V_4, - class Match01/Test1/X12 V_5, - class Match01/Test1/X13 V_6, - class Match01/Test1/X13 V_7, - class Match01/Test1/X14 V_8, - class Match01/Test1/X14 V_9) + class assembly/Test1/X11 V_2, + class assembly/Test1/X11 V_3, + class assembly/Test1/X12 V_4, + class assembly/Test1/X12 V_5, + class assembly/Test1/X13 V_6, + class assembly/Test1/X13 V_7, + class assembly/Test1/X14 V_8, + class assembly/Test1/X14 V_9) IL_0000: ldarg.0 IL_0001: brfalse IL_00c0 @@ -1322,71 +1322,71 @@ IL_0007: brfalse IL_00be IL_000c: ldarg.0 - IL_000d: ldfld int32 Match01/Test1::_tag + IL_000d: ldfld int32 assembly/Test1::_tag IL_0012: stloc.0 IL_0013: ldarg.1 - IL_0014: ldfld int32 Match01/Test1::_tag + IL_0014: ldfld int32 assembly/Test1::_tag IL_0019: stloc.1 IL_001a: ldloc.0 IL_001b: ldloc.1 IL_001c: bne.un IL_00bc IL_0021: ldarg.0 - IL_0022: call instance int32 Match01/Test1::get_Tag() + IL_0022: call instance int32 assembly/Test1::get_Tag() IL_0027: switch ( IL_003c, IL_0059, IL_007a, IL_009b) IL_003c: ldarg.0 - IL_003d: castclass Match01/Test1/X11 + IL_003d: castclass assembly/Test1/X11 IL_0042: stloc.2 IL_0043: ldarg.1 - IL_0044: castclass Match01/Test1/X11 + IL_0044: castclass assembly/Test1/X11 IL_0049: stloc.3 IL_004a: ldloc.2 - IL_004b: ldfld int32 Match01/Test1/X11::item + IL_004b: ldfld int32 assembly/Test1/X11::item IL_0050: ldloc.3 - IL_0051: ldfld int32 Match01/Test1/X11::item + IL_0051: ldfld int32 assembly/Test1/X11::item IL_0056: ceq IL_0058: ret IL_0059: ldarg.0 - IL_005a: castclass Match01/Test1/X12 + IL_005a: castclass assembly/Test1/X12 IL_005f: stloc.s V_4 IL_0061: ldarg.1 - IL_0062: castclass Match01/Test1/X12 + IL_0062: castclass assembly/Test1/X12 IL_0067: stloc.s V_5 IL_0069: ldloc.s V_4 - IL_006b: ldfld int32 Match01/Test1/X12::item + IL_006b: ldfld int32 assembly/Test1/X12::item IL_0070: ldloc.s V_5 - IL_0072: ldfld int32 Match01/Test1/X12::item + IL_0072: ldfld int32 assembly/Test1/X12::item IL_0077: ceq IL_0079: ret IL_007a: ldarg.0 - IL_007b: castclass Match01/Test1/X13 + IL_007b: castclass assembly/Test1/X13 IL_0080: stloc.s V_6 IL_0082: ldarg.1 - IL_0083: castclass Match01/Test1/X13 + IL_0083: castclass assembly/Test1/X13 IL_0088: stloc.s V_7 IL_008a: ldloc.s V_6 - IL_008c: ldfld int32 Match01/Test1/X13::item + IL_008c: ldfld int32 assembly/Test1/X13::item IL_0091: ldloc.s V_7 - IL_0093: ldfld int32 Match01/Test1/X13::item + IL_0093: ldfld int32 assembly/Test1/X13::item IL_0098: ceq IL_009a: ret IL_009b: ldarg.0 - IL_009c: castclass Match01/Test1/X14 + IL_009c: castclass assembly/Test1/X14 IL_00a1: stloc.s V_8 IL_00a3: ldarg.1 - IL_00a4: castclass Match01/Test1/X14 + IL_00a4: castclass assembly/Test1/X14 IL_00a9: stloc.s V_9 IL_00ab: ldloc.s V_8 - IL_00ad: ldfld int32 Match01/Test1/X14::item + IL_00ad: ldfld int32 assembly/Test1/X14::item IL_00b2: ldloc.s V_9 - IL_00b4: ldfld int32 Match01/Test1/X14::item + IL_00b4: ldfld int32 assembly/Test1/X14::item IL_00b9: ceq IL_00bb: ret @@ -1409,16 +1409,16 @@ .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .maxstack 4 - .locals init (class Match01/Test1 V_0) + .locals init (class assembly/Test1 V_0) IL_0000: ldarg.1 - IL_0001: isinst Match01/Test1 + IL_0001: isinst assembly/Test1 IL_0006: stloc.0 IL_0007: ldloc.0 IL_0008: brfalse.s IL_0012 IL_000a: ldarg.0 IL_000b: ldloc.0 - IL_000c: callvirt instance bool Match01/Test1::Equals(class Match01/Test1) + IL_000c: callvirt instance bool assembly/Test1::Equals(class assembly/Test1) IL_0011: ret IL_0012: ldc.i4.0 @@ -1430,77 +1430,76 @@ .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 ) .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) - .get instance int32 Match01/Test1::get_Tag() + .get instance int32 assembly/Test1::get_Tag() } .property instance bool IsX11() { .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 ) .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) - .get instance bool Match01/Test1::get_IsX11() + .get instance bool assembly/Test1::get_IsX11() } .property instance bool IsX12() { .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 ) .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) - .get instance bool Match01/Test1::get_IsX12() + .get instance bool assembly/Test1::get_IsX12() } .property instance bool IsX13() { .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 ) .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) - .get instance bool Match01/Test1::get_IsX13() + .get instance bool assembly/Test1::get_IsX13() } .property instance bool IsX14() { .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 ) .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) - .get instance bool Match01/Test1::get_IsX14() + .get instance bool assembly/Test1::get_IsX14() } } - .method public static int32 select1(class Match01/Test1 x) cil managed + .method public static int32 select1(class assembly/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 + IL_0000: ldarg.0 + IL_0001: call instance int32 assembly/Test1::get_Tag() + IL_0006: switch ( + IL_001b, + IL_0027, + IL_0029, + IL_002b) + IL_001b: ldarg.0 + IL_001c: castclass assembly/Test1/X11 + IL_0021: ldfld int32 assembly/Test1/X11::item + IL_0026: ret + + IL_0027: ldc.i4.2 + IL_0028: ret + + IL_0029: ldc.i4.3 + IL_002a: ret + + IL_002b: ldc.i4.4 + IL_002c: ret } - .method public static int32 fm(class Match01/Test1 y) cil managed + .method public static int32 fm(class assembly/Test1 y) cil managed { .maxstack 8 IL_0000: ldarg.0 - IL_0001: call int32 Match01::select1(class Match01/Test1) + IL_0001: call int32 assembly::select1(class assembly/Test1) IL_0006: ret } } -.class private abstract auto ansi sealed ''.$Match01 +.class private abstract auto ansi sealed ''.$assembly extends [runtime]System.Object { .method public static void main@() cil managed diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01.fs.RealInternalSignatureOn.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01.fs.RealInternalSignatureOn.il.netcore.bsl index b0035f72dbc..f31b1b8842d 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01.fs.RealInternalSignatureOn.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/Match01.fs.RealInternalSignatureOn.il.netcore.bsl @@ -1466,27 +1466,26 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: call instance int32 assembly/Test1::get_Tag() - IL_0007: switch ( - IL_001c, - IL_0028, - IL_002a, - IL_002c) - IL_001c: ldarg.0 - IL_001d: castclass assembly/Test1/X11 - IL_0022: ldfld int32 assembly/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 + IL_0000: ldarg.0 + IL_0001: call instance int32 assembly/Test1::get_Tag() + IL_0006: switch ( + IL_001b, + IL_0027, + IL_0029, + IL_002b) + IL_001b: ldarg.0 + IL_001c: castclass assembly/Test1/X11 + IL_0021: ldfld int32 assembly/Test1/X11::item + IL_0026: ret + + IL_0027: ldc.i4.2 + IL_0028: ret + + IL_0029: ldc.i4.3 + IL_002a: ret + + IL_002b: ldc.i4.4 + IL_002c: ret } .method public static int32 fm(class assembly/Test1 y) cil managed @@ -1517,4 +1516,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/StructUnion01.fs.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/StructUnion01.fs.il.net472.bsl index 7a3e23d7437..f8a235eb1d6 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/StructUnion01.fs.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/StructUnion01.fs.il.net472.bsl @@ -466,25 +466,24 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldarga.s x - IL_0003: ldfld int32 assembly/U::item1 - IL_0008: ldc.i4.3 - IL_0009: sub - IL_000a: switch ( - IL_0015) - IL_0013: br.s IL_001d - - IL_0015: ldarga.s x - IL_0017: ldfld int32 assembly/U::item2 - IL_001c: ret - - IL_001d: ldarga.s x - IL_001f: ldfld int32 assembly/U::item1 - IL_0024: ldarga.s x - IL_0026: ldfld int32 assembly/U::item2 - IL_002b: add - IL_002c: ret + IL_0000: ldarga.s x + IL_0002: ldfld int32 assembly/U::item1 + IL_0007: ldc.i4.3 + IL_0008: sub + IL_0009: switch ( + IL_0014) + IL_0012: br.s IL_001c + + IL_0014: ldarga.s x + IL_0016: ldfld int32 assembly/U::item2 + IL_001b: ret + + IL_001c: ldarga.s x + IL_001e: ldfld int32 assembly/U::item1 + IL_0023: ldarga.s x + IL_0025: ldfld int32 assembly/U::item2 + IL_002a: add + IL_002b: ret } .method public static int32 g4(valuetype assembly/U x, @@ -497,62 +496,61 @@ int32 V_1, int32 V_2, int32 V_3) - IL_0000: nop - IL_0001: ldarga.s x - IL_0003: ldfld int32 assembly/U::item1 - IL_0008: ldc.i4.3 - IL_0009: sub - IL_000a: switch ( - IL_0015) - IL_0013: br.s IL_0059 - - IL_0015: ldarga.s y - IL_0017: ldfld int32 assembly/U::item1 - IL_001c: ldc.i4.5 - IL_001d: sub - IL_001e: switch ( - IL_0049) - IL_0027: ldarga.s y - IL_0029: ldfld int32 assembly/U::item2 - IL_002e: ldarga.s y - IL_0030: ldfld int32 assembly/U::item1 - IL_0035: ldarga.s x - IL_0037: ldfld int32 assembly/U::item2 - IL_003c: ldarga.s x - IL_003e: ldfld int32 assembly/U::item1 - IL_0043: stloc.3 - IL_0044: stloc.2 - IL_0045: stloc.1 - IL_0046: stloc.0 - IL_0047: br.s IL_0079 - - IL_0049: ldarga.s x - IL_004b: ldfld int32 assembly/U::item2 - IL_0050: ldarga.s y - IL_0052: ldfld int32 assembly/U::item2 - IL_0057: add - IL_0058: ret - - IL_0059: ldarga.s y - IL_005b: ldfld int32 assembly/U::item2 - IL_0060: stloc.0 - IL_0061: ldarga.s y - IL_0063: ldfld int32 assembly/U::item1 - IL_0068: stloc.1 - IL_0069: ldarga.s x - IL_006b: ldfld int32 assembly/U::item2 - IL_0070: stloc.2 - IL_0071: ldarga.s x - IL_0073: ldfld int32 assembly/U::item1 - IL_0078: stloc.3 - IL_0079: ldloc.3 - IL_007a: ldloc.2 - IL_007b: add - IL_007c: ldloc.1 - IL_007d: add - IL_007e: ldloc.0 - IL_007f: add - IL_0080: ret + IL_0000: ldarga.s x + IL_0002: ldfld int32 assembly/U::item1 + IL_0007: ldc.i4.3 + IL_0008: sub + IL_0009: switch ( + IL_0014) + IL_0012: br.s IL_0058 + + IL_0014: ldarga.s y + IL_0016: ldfld int32 assembly/U::item1 + IL_001b: ldc.i4.5 + IL_001c: sub + IL_001d: switch ( + IL_0048) + IL_0026: ldarga.s y + IL_0028: ldfld int32 assembly/U::item2 + IL_002d: ldarga.s y + IL_002f: ldfld int32 assembly/U::item1 + IL_0034: ldarga.s x + IL_0036: ldfld int32 assembly/U::item2 + IL_003b: ldarga.s x + IL_003d: ldfld int32 assembly/U::item1 + IL_0042: stloc.3 + IL_0043: stloc.2 + IL_0044: stloc.1 + IL_0045: stloc.0 + IL_0046: br.s IL_0078 + + IL_0048: ldarga.s x + IL_004a: ldfld int32 assembly/U::item2 + IL_004f: ldarga.s y + IL_0051: ldfld int32 assembly/U::item2 + IL_0056: add + IL_0057: ret + + IL_0058: ldarga.s y + IL_005a: ldfld int32 assembly/U::item2 + IL_005f: stloc.0 + IL_0060: ldarga.s y + IL_0062: ldfld int32 assembly/U::item1 + IL_0067: stloc.1 + IL_0068: ldarga.s x + IL_006a: ldfld int32 assembly/U::item2 + IL_006f: stloc.2 + IL_0070: ldarga.s x + IL_0072: ldfld int32 assembly/U::item1 + IL_0077: stloc.3 + IL_0078: ldloc.3 + IL_0079: ldloc.2 + IL_007a: add + IL_007b: ldloc.1 + IL_007c: add + IL_007d: ldloc.0 + IL_007e: add + IL_007f: ret } .method public static int32 f1(valuetype assembly/U& x) cil managed @@ -585,25 +583,24 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: ldfld int32 assembly/U::item1 - IL_0007: ldc.i4.3 - IL_0008: sub - IL_0009: switch ( - IL_0014) - IL_0012: br.s IL_001b - - IL_0014: ldarg.0 - IL_0015: ldfld int32 assembly/U::item2 - IL_001a: ret - - IL_001b: ldarg.0 - IL_001c: ldfld int32 assembly/U::item1 - IL_0021: ldarg.0 - IL_0022: ldfld int32 assembly/U::item2 - IL_0027: add - IL_0028: ret + IL_0000: ldarg.0 + IL_0001: ldfld int32 assembly/U::item1 + IL_0006: ldc.i4.3 + IL_0007: sub + IL_0008: switch ( + IL_0013) + IL_0011: br.s IL_001a + + IL_0013: ldarg.0 + IL_0014: ldfld int32 assembly/U::item2 + IL_0019: ret + + IL_001a: ldarg.0 + IL_001b: ldfld int32 assembly/U::item1 + IL_0020: ldarg.0 + IL_0021: ldfld int32 assembly/U::item2 + IL_0026: add + IL_0027: ret } .method public static int32 f4(valuetype assembly/U& x, @@ -624,62 +621,61 @@ IL_0007: ldarg.1 IL_0008: ldobj assembly/U IL_000d: stloc.1 - IL_000e: nop - IL_000f: ldloca.s V_0 - IL_0011: ldfld int32 assembly/U::item1 - IL_0016: ldc.i4.3 - IL_0017: sub - IL_0018: switch ( - IL_0023) - IL_0021: br.s IL_0069 - - IL_0023: ldloca.s V_1 - IL_0025: ldfld int32 assembly/U::item1 - IL_002a: ldc.i4.5 - IL_002b: sub - IL_002c: switch ( - IL_0059) - IL_0035: ldloca.s V_1 - IL_0037: ldfld int32 assembly/U::item2 - IL_003c: ldloca.s V_1 - IL_003e: ldfld int32 assembly/U::item1 - IL_0043: ldloca.s V_0 - IL_0045: ldfld int32 assembly/U::item2 - IL_004a: ldloca.s V_0 - IL_004c: ldfld int32 assembly/U::item1 - IL_0051: stloc.s V_5 - IL_0053: stloc.s V_4 - IL_0055: stloc.3 - IL_0056: stloc.2 - IL_0057: br.s IL_008b - - IL_0059: ldloca.s V_0 - IL_005b: ldfld int32 assembly/U::item2 - IL_0060: ldloca.s V_1 - IL_0062: ldfld int32 assembly/U::item2 - IL_0067: add - IL_0068: ret - - IL_0069: ldloca.s V_1 - IL_006b: ldfld int32 assembly/U::item2 - IL_0070: stloc.2 - IL_0071: ldloca.s V_1 - IL_0073: ldfld int32 assembly/U::item1 - IL_0078: stloc.3 - IL_0079: ldloca.s V_0 - IL_007b: ldfld int32 assembly/U::item2 - IL_0080: stloc.s V_4 - IL_0082: ldloca.s V_0 - IL_0084: ldfld int32 assembly/U::item1 - IL_0089: stloc.s V_5 - IL_008b: ldloc.s V_5 - IL_008d: ldloc.s V_4 - IL_008f: add - IL_0090: ldloc.3 - IL_0091: add - IL_0092: ldloc.2 - IL_0093: add - IL_0094: ret + IL_000e: ldloca.s V_0 + IL_0010: ldfld int32 assembly/U::item1 + IL_0015: ldc.i4.3 + IL_0016: sub + IL_0017: switch ( + IL_0022) + IL_0020: br.s IL_0068 + + IL_0022: ldloca.s V_1 + IL_0024: ldfld int32 assembly/U::item1 + IL_0029: ldc.i4.5 + IL_002a: sub + IL_002b: switch ( + IL_0058) + IL_0034: ldloca.s V_1 + IL_0036: ldfld int32 assembly/U::item2 + IL_003b: ldloca.s V_1 + IL_003d: ldfld int32 assembly/U::item1 + IL_0042: ldloca.s V_0 + IL_0044: ldfld int32 assembly/U::item2 + IL_0049: ldloca.s V_0 + IL_004b: ldfld int32 assembly/U::item1 + IL_0050: stloc.s V_5 + IL_0052: stloc.s V_4 + IL_0054: stloc.3 + IL_0055: stloc.2 + IL_0056: br.s IL_008a + + IL_0058: ldloca.s V_0 + IL_005a: ldfld int32 assembly/U::item2 + IL_005f: ldloca.s V_1 + IL_0061: ldfld int32 assembly/U::item2 + IL_0066: add + IL_0067: ret + + IL_0068: ldloca.s V_1 + IL_006a: ldfld int32 assembly/U::item2 + IL_006f: stloc.2 + IL_0070: ldloca.s V_1 + IL_0072: ldfld int32 assembly/U::item1 + IL_0077: stloc.3 + IL_0078: ldloca.s V_0 + IL_007a: ldfld int32 assembly/U::item2 + IL_007f: stloc.s V_4 + IL_0081: ldloca.s V_0 + IL_0083: ldfld int32 assembly/U::item1 + IL_0088: stloc.s V_5 + IL_008a: ldloc.s V_5 + IL_008c: ldloc.s V_4 + IL_008e: add + IL_008f: ldloc.3 + IL_0090: add + IL_0091: ldloc.2 + IL_0092: add + IL_0093: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/StructUnion01.fs.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/StructUnion01.fs.il.netcore.bsl index 9780ed57c0f..dc1ae34b9cd 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/StructUnion01.fs.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Inlining/StructUnion01.fs.il.netcore.bsl @@ -466,25 +466,24 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldarga.s x - IL_0003: ldfld int32 assembly/U::item1 - IL_0008: ldc.i4.3 - IL_0009: sub - IL_000a: switch ( - IL_0015) - IL_0013: br.s IL_001d - - IL_0015: ldarga.s x - IL_0017: ldfld int32 assembly/U::item2 - IL_001c: ret - - IL_001d: ldarga.s x - IL_001f: ldfld int32 assembly/U::item1 - IL_0024: ldarga.s x - IL_0026: ldfld int32 assembly/U::item2 - IL_002b: add - IL_002c: ret + IL_0000: ldarga.s x + IL_0002: ldfld int32 assembly/U::item1 + IL_0007: ldc.i4.3 + IL_0008: sub + IL_0009: switch ( + IL_0014) + IL_0012: br.s IL_001c + + IL_0014: ldarga.s x + IL_0016: ldfld int32 assembly/U::item2 + IL_001b: ret + + IL_001c: ldarga.s x + IL_001e: ldfld int32 assembly/U::item1 + IL_0023: ldarga.s x + IL_0025: ldfld int32 assembly/U::item2 + IL_002a: add + IL_002b: ret } .method public static int32 g4(valuetype assembly/U x, @@ -497,62 +496,61 @@ int32 V_1, int32 V_2, int32 V_3) - IL_0000: nop - IL_0001: ldarga.s x - IL_0003: ldfld int32 assembly/U::item1 - IL_0008: ldc.i4.3 - IL_0009: sub - IL_000a: switch ( - IL_0015) - IL_0013: br.s IL_0059 - - IL_0015: ldarga.s y - IL_0017: ldfld int32 assembly/U::item1 - IL_001c: ldc.i4.5 - IL_001d: sub - IL_001e: switch ( - IL_0049) - IL_0027: ldarga.s y - IL_0029: ldfld int32 assembly/U::item2 - IL_002e: ldarga.s y - IL_0030: ldfld int32 assembly/U::item1 - IL_0035: ldarga.s x - IL_0037: ldfld int32 assembly/U::item2 - IL_003c: ldarga.s x - IL_003e: ldfld int32 assembly/U::item1 - IL_0043: stloc.3 - IL_0044: stloc.2 - IL_0045: stloc.1 - IL_0046: stloc.0 - IL_0047: br.s IL_0079 - - IL_0049: ldarga.s x - IL_004b: ldfld int32 assembly/U::item2 - IL_0050: ldarga.s y - IL_0052: ldfld int32 assembly/U::item2 - IL_0057: add - IL_0058: ret - - IL_0059: ldarga.s y - IL_005b: ldfld int32 assembly/U::item2 - IL_0060: stloc.0 - IL_0061: ldarga.s y - IL_0063: ldfld int32 assembly/U::item1 - IL_0068: stloc.1 - IL_0069: ldarga.s x - IL_006b: ldfld int32 assembly/U::item2 - IL_0070: stloc.2 - IL_0071: ldarga.s x - IL_0073: ldfld int32 assembly/U::item1 - IL_0078: stloc.3 - IL_0079: ldloc.3 - IL_007a: ldloc.2 - IL_007b: add - IL_007c: ldloc.1 - IL_007d: add - IL_007e: ldloc.0 - IL_007f: add - IL_0080: ret + IL_0000: ldarga.s x + IL_0002: ldfld int32 assembly/U::item1 + IL_0007: ldc.i4.3 + IL_0008: sub + IL_0009: switch ( + IL_0014) + IL_0012: br.s IL_0058 + + IL_0014: ldarga.s y + IL_0016: ldfld int32 assembly/U::item1 + IL_001b: ldc.i4.5 + IL_001c: sub + IL_001d: switch ( + IL_0048) + IL_0026: ldarga.s y + IL_0028: ldfld int32 assembly/U::item2 + IL_002d: ldarga.s y + IL_002f: ldfld int32 assembly/U::item1 + IL_0034: ldarga.s x + IL_0036: ldfld int32 assembly/U::item2 + IL_003b: ldarga.s x + IL_003d: ldfld int32 assembly/U::item1 + IL_0042: stloc.3 + IL_0043: stloc.2 + IL_0044: stloc.1 + IL_0045: stloc.0 + IL_0046: br.s IL_0078 + + IL_0048: ldarga.s x + IL_004a: ldfld int32 assembly/U::item2 + IL_004f: ldarga.s y + IL_0051: ldfld int32 assembly/U::item2 + IL_0056: add + IL_0057: ret + + IL_0058: ldarga.s y + IL_005a: ldfld int32 assembly/U::item2 + IL_005f: stloc.0 + IL_0060: ldarga.s y + IL_0062: ldfld int32 assembly/U::item1 + IL_0067: stloc.1 + IL_0068: ldarga.s x + IL_006a: ldfld int32 assembly/U::item2 + IL_006f: stloc.2 + IL_0070: ldarga.s x + IL_0072: ldfld int32 assembly/U::item1 + IL_0077: stloc.3 + IL_0078: ldloc.3 + IL_0079: ldloc.2 + IL_007a: add + IL_007b: ldloc.1 + IL_007c: add + IL_007d: ldloc.0 + IL_007e: add + IL_007f: ret } .method public static int32 f1(valuetype assembly/U& x) cil managed @@ -585,25 +583,24 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: ldfld int32 assembly/U::item1 - IL_0007: ldc.i4.3 - IL_0008: sub - IL_0009: switch ( - IL_0014) - IL_0012: br.s IL_001b - - IL_0014: ldarg.0 - IL_0015: ldfld int32 assembly/U::item2 - IL_001a: ret - - IL_001b: ldarg.0 - IL_001c: ldfld int32 assembly/U::item1 - IL_0021: ldarg.0 - IL_0022: ldfld int32 assembly/U::item2 - IL_0027: add - IL_0028: ret + IL_0000: ldarg.0 + IL_0001: ldfld int32 assembly/U::item1 + IL_0006: ldc.i4.3 + IL_0007: sub + IL_0008: switch ( + IL_0013) + IL_0011: br.s IL_001a + + IL_0013: ldarg.0 + IL_0014: ldfld int32 assembly/U::item2 + IL_0019: ret + + IL_001a: ldarg.0 + IL_001b: ldfld int32 assembly/U::item1 + IL_0020: ldarg.0 + IL_0021: ldfld int32 assembly/U::item2 + IL_0026: add + IL_0027: ret } .method public static int32 f4(valuetype assembly/U& x, @@ -624,62 +621,61 @@ IL_0007: ldarg.1 IL_0008: ldobj assembly/U IL_000d: stloc.1 - IL_000e: nop - IL_000f: ldloca.s V_0 - IL_0011: ldfld int32 assembly/U::item1 - IL_0016: ldc.i4.3 - IL_0017: sub - IL_0018: switch ( - IL_0023) - IL_0021: br.s IL_0069 - - IL_0023: ldloca.s V_1 - IL_0025: ldfld int32 assembly/U::item1 - IL_002a: ldc.i4.5 - IL_002b: sub - IL_002c: switch ( - IL_0059) - IL_0035: ldloca.s V_1 - IL_0037: ldfld int32 assembly/U::item2 - IL_003c: ldloca.s V_1 - IL_003e: ldfld int32 assembly/U::item1 - IL_0043: ldloca.s V_0 - IL_0045: ldfld int32 assembly/U::item2 - IL_004a: ldloca.s V_0 - IL_004c: ldfld int32 assembly/U::item1 - IL_0051: stloc.s V_5 - IL_0053: stloc.s V_4 - IL_0055: stloc.3 - IL_0056: stloc.2 - IL_0057: br.s IL_008b - - IL_0059: ldloca.s V_0 - IL_005b: ldfld int32 assembly/U::item2 - IL_0060: ldloca.s V_1 - IL_0062: ldfld int32 assembly/U::item2 - IL_0067: add - IL_0068: ret - - IL_0069: ldloca.s V_1 - IL_006b: ldfld int32 assembly/U::item2 - IL_0070: stloc.2 - IL_0071: ldloca.s V_1 - IL_0073: ldfld int32 assembly/U::item1 - IL_0078: stloc.3 - IL_0079: ldloca.s V_0 - IL_007b: ldfld int32 assembly/U::item2 - IL_0080: stloc.s V_4 - IL_0082: ldloca.s V_0 - IL_0084: ldfld int32 assembly/U::item1 - IL_0089: stloc.s V_5 - IL_008b: ldloc.s V_5 - IL_008d: ldloc.s V_4 - IL_008f: add - IL_0090: ldloc.3 - IL_0091: add - IL_0092: ldloc.2 - IL_0093: add - IL_0094: ret + IL_000e: ldloca.s V_0 + IL_0010: ldfld int32 assembly/U::item1 + IL_0015: ldc.i4.3 + IL_0016: sub + IL_0017: switch ( + IL_0022) + IL_0020: br.s IL_0068 + + IL_0022: ldloca.s V_1 + IL_0024: ldfld int32 assembly/U::item1 + IL_0029: ldc.i4.5 + IL_002a: sub + IL_002b: switch ( + IL_0058) + IL_0034: ldloca.s V_1 + IL_0036: ldfld int32 assembly/U::item2 + IL_003b: ldloca.s V_1 + IL_003d: ldfld int32 assembly/U::item1 + IL_0042: ldloca.s V_0 + IL_0044: ldfld int32 assembly/U::item2 + IL_0049: ldloca.s V_0 + IL_004b: ldfld int32 assembly/U::item1 + IL_0050: stloc.s V_5 + IL_0052: stloc.s V_4 + IL_0054: stloc.3 + IL_0055: stloc.2 + IL_0056: br.s IL_008a + + IL_0058: ldloca.s V_0 + IL_005a: ldfld int32 assembly/U::item2 + IL_005f: ldloca.s V_1 + IL_0061: ldfld int32 assembly/U::item2 + IL_0066: add + IL_0067: ret + + IL_0068: ldloca.s V_1 + IL_006a: ldfld int32 assembly/U::item2 + IL_006f: stloc.2 + IL_0070: ldloca.s V_1 + IL_0072: ldfld int32 assembly/U::item1 + IL_0077: stloc.3 + IL_0078: ldloca.s V_0 + IL_007a: ldfld int32 assembly/U::item2 + IL_007f: stloc.s V_4 + IL_0081: ldloca.s V_0 + IL_0083: ldfld int32 assembly/U::item1 + IL_0088: stloc.s V_5 + IL_008a: ldloc.s V_5 + IL_008c: ldloc.s V_4 + IL_008e: add + IL_008f: ldloc.3 + IL_0090: add + IL_0091: ldloc.2 + IL_0092: add + IL_0093: ret } } @@ -701,4 +697,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/CodeGenRenamings01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/CodeGenRenamings01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl index ab00b682e5f..b6a57f176c1 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/CodeGenRenamings01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/CodeGenRenamings01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl @@ -75,49 +75,47 @@ IL_0019: br.s IL_0024 IL_001b: nop - IL_001c: br.s IL_003d + IL_001c: br.s IL_003b IL_001e: nop - IL_001f: br.s IL_0053 + IL_001f: br.s IL_0051 IL_0021: nop - IL_0022: br.s IL_005a + IL_0022: br.s IL_0058 IL_0024: nop - IL_0025: br.s IL_0027 - - IL_0027: ldarg.0 - IL_0028: ldc.i4.1 - IL_0029: stfld int32 assembly/seq1@9::pc - IL_002e: ldarg.0 - IL_002f: ldc.i4.1 - IL_0030: ldc.i4.1 - IL_0031: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: stfld int32 assembly/seq1@9::pc + IL_002c: ldarg.0 + IL_002d: ldc.i4.1 + IL_002e: ldc.i4.1 + IL_002f: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, !1) - IL_0036: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current - IL_003b: ldc.i4.1 - IL_003c: ret - - IL_003d: ldarg.0 - IL_003e: ldc.i4.2 - IL_003f: stfld int32 assembly/seq1@9::pc - IL_0044: ldarg.0 - IL_0045: ldc.i4.2 - IL_0046: ldc.i4.2 - IL_0047: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, + IL_0034: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current + IL_0039: ldc.i4.1 + IL_003a: ret + + IL_003b: ldarg.0 + IL_003c: ldc.i4.2 + IL_003d: stfld int32 assembly/seq1@9::pc + IL_0042: ldarg.0 + IL_0043: ldc.i4.2 + IL_0044: ldc.i4.2 + IL_0045: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, !1) - IL_004c: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current - IL_0051: ldc.i4.1 - IL_0052: ret - - IL_0053: ldarg.0 - IL_0054: ldc.i4.3 - IL_0055: stfld int32 assembly/seq1@9::pc - IL_005a: ldarg.0 - IL_005b: ldnull - IL_005c: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current - IL_0061: ldc.i4.0 - IL_0062: ret + IL_004a: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current + IL_004f: ldc.i4.1 + IL_0050: ret + + IL_0051: ldarg.0 + IL_0052: ldc.i4.3 + IL_0053: stfld int32 assembly/seq1@9::pc + IL_0058: ldarg.0 + IL_0059: ldnull + IL_005a: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current + IL_005f: ldc.i4.0 + IL_0060: ret } .method public strict virtual instance void Close() cil managed @@ -144,28 +142,26 @@ IL_001b: br.s IL_0029 IL_001d: nop - IL_001e: br.s IL_0030 + IL_001e: br.s IL_002e IL_0020: nop - IL_0021: br.s IL_002e + IL_0021: br.s IL_002c IL_0023: nop - IL_0024: br.s IL_002c + IL_0024: br.s IL_002a IL_0026: nop - IL_0027: br.s IL_0030 + IL_0027: br.s IL_002e IL_0029: nop - IL_002a: br.s IL_002c + IL_002a: ldc.i4.0 + IL_002b: ret IL_002c: ldc.i4.0 IL_002d: ret IL_002e: ldc.i4.0 IL_002f: ret - - IL_0030: ldc.i4.0 - IL_0031: ret } .method public strict virtual instance class [runtime]System.Tuple`2 get_LastGenerated() cil managed diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/CodeGenRenamings01.fs.RealInternalSignatureOff.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/CodeGenRenamings01.fs.RealInternalSignatureOff.OptimizeOn.il.bsl index 849ee7b5fc0..d44e7ae5552 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/CodeGenRenamings01.fs.RealInternalSignatureOff.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/CodeGenRenamings01.fs.RealInternalSignatureOff.OptimizeOn.il.bsl @@ -80,49 +80,47 @@ IL_0019: br.s IL_0024 IL_001b: nop - IL_001c: br.s IL_003d + IL_001c: br.s IL_003b IL_001e: nop - IL_001f: br.s IL_0053 + IL_001f: br.s IL_0051 IL_0021: nop - IL_0022: br.s IL_005a + IL_0022: br.s IL_0058 IL_0024: nop - IL_0025: br.s IL_0027 - - IL_0027: ldarg.0 - IL_0028: ldc.i4.1 - IL_0029: stfld int32 assembly/seq1@9::pc - IL_002e: ldarg.0 - IL_002f: ldc.i4.1 - IL_0030: ldc.i4.1 - IL_0031: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: stfld int32 assembly/seq1@9::pc + IL_002c: ldarg.0 + IL_002d: ldc.i4.1 + IL_002e: ldc.i4.1 + IL_002f: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, !1) - IL_0036: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current - IL_003b: ldc.i4.1 - IL_003c: ret - - IL_003d: ldarg.0 - IL_003e: ldc.i4.2 - IL_003f: stfld int32 assembly/seq1@9::pc - IL_0044: ldarg.0 - IL_0045: ldc.i4.2 - IL_0046: ldc.i4.2 - IL_0047: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, + IL_0034: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current + IL_0039: ldc.i4.1 + IL_003a: ret + + IL_003b: ldarg.0 + IL_003c: ldc.i4.2 + IL_003d: stfld int32 assembly/seq1@9::pc + IL_0042: ldarg.0 + IL_0043: ldc.i4.2 + IL_0044: ldc.i4.2 + IL_0045: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, !1) - IL_004c: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current - IL_0051: ldc.i4.1 - IL_0052: ret - - IL_0053: ldarg.0 - IL_0054: ldc.i4.3 - IL_0055: stfld int32 assembly/seq1@9::pc - IL_005a: ldarg.0 - IL_005b: ldnull - IL_005c: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current - IL_0061: ldc.i4.0 - IL_0062: ret + IL_004a: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current + IL_004f: ldc.i4.1 + IL_0050: ret + + IL_0051: ldarg.0 + IL_0052: ldc.i4.3 + IL_0053: stfld int32 assembly/seq1@9::pc + IL_0058: ldarg.0 + IL_0059: ldnull + IL_005a: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current + IL_005f: ldc.i4.0 + IL_0060: ret } .method public strict virtual instance void Close() cil managed @@ -149,28 +147,26 @@ IL_001b: br.s IL_0029 IL_001d: nop - IL_001e: br.s IL_0030 + IL_001e: br.s IL_002e IL_0020: nop - IL_0021: br.s IL_002e + IL_0021: br.s IL_002c IL_0023: nop - IL_0024: br.s IL_002c + IL_0024: br.s IL_002a IL_0026: nop - IL_0027: br.s IL_0030 + IL_0027: br.s IL_002e IL_0029: nop - IL_002a: br.s IL_002c + IL_002a: ldc.i4.0 + IL_002b: ret IL_002c: ldc.i4.0 IL_002d: ret IL_002e: ldc.i4.0 IL_002f: ret - - IL_0030: ldc.i4.0 - IL_0031: ret } .method public strict virtual instance class [runtime]System.Tuple`2 get_LastGenerated() cil managed diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/CodeGenRenamings01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/CodeGenRenamings01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl index 773fc662974..4551382f605 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/CodeGenRenamings01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/CodeGenRenamings01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl @@ -75,49 +75,47 @@ IL_0019: br.s IL_0024 IL_001b: nop - IL_001c: br.s IL_003d + IL_001c: br.s IL_003b IL_001e: nop - IL_001f: br.s IL_0053 + IL_001f: br.s IL_0051 IL_0021: nop - IL_0022: br.s IL_005a + IL_0022: br.s IL_0058 IL_0024: nop - IL_0025: br.s IL_0027 - - IL_0027: ldarg.0 - IL_0028: ldc.i4.1 - IL_0029: stfld int32 assembly/seq1@9::pc - IL_002e: ldarg.0 - IL_002f: ldc.i4.1 - IL_0030: ldc.i4.1 - IL_0031: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: stfld int32 assembly/seq1@9::pc + IL_002c: ldarg.0 + IL_002d: ldc.i4.1 + IL_002e: ldc.i4.1 + IL_002f: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, !1) - IL_0036: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current - IL_003b: ldc.i4.1 - IL_003c: ret - - IL_003d: ldarg.0 - IL_003e: ldc.i4.2 - IL_003f: stfld int32 assembly/seq1@9::pc - IL_0044: ldarg.0 - IL_0045: ldc.i4.2 - IL_0046: ldc.i4.2 - IL_0047: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, + IL_0034: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current + IL_0039: ldc.i4.1 + IL_003a: ret + + IL_003b: ldarg.0 + IL_003c: ldc.i4.2 + IL_003d: stfld int32 assembly/seq1@9::pc + IL_0042: ldarg.0 + IL_0043: ldc.i4.2 + IL_0044: ldc.i4.2 + IL_0045: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, !1) - IL_004c: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current - IL_0051: ldc.i4.1 - IL_0052: ret - - IL_0053: ldarg.0 - IL_0054: ldc.i4.3 - IL_0055: stfld int32 assembly/seq1@9::pc - IL_005a: ldarg.0 - IL_005b: ldnull - IL_005c: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current - IL_0061: ldc.i4.0 - IL_0062: ret + IL_004a: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current + IL_004f: ldc.i4.1 + IL_0050: ret + + IL_0051: ldarg.0 + IL_0052: ldc.i4.3 + IL_0053: stfld int32 assembly/seq1@9::pc + IL_0058: ldarg.0 + IL_0059: ldnull + IL_005a: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current + IL_005f: ldc.i4.0 + IL_0060: ret } .method public strict virtual instance void Close() cil managed @@ -144,28 +142,26 @@ IL_001b: br.s IL_0029 IL_001d: nop - IL_001e: br.s IL_0030 + IL_001e: br.s IL_002e IL_0020: nop - IL_0021: br.s IL_002e + IL_0021: br.s IL_002c IL_0023: nop - IL_0024: br.s IL_002c + IL_0024: br.s IL_002a IL_0026: nop - IL_0027: br.s IL_0030 + IL_0027: br.s IL_002e IL_0029: nop - IL_002a: br.s IL_002c + IL_002a: ldc.i4.0 + IL_002b: ret IL_002c: ldc.i4.0 IL_002d: ret IL_002e: ldc.i4.0 IL_002f: ret - - IL_0030: ldc.i4.0 - IL_0031: ret } .method public strict virtual instance class [runtime]System.Tuple`2 get_LastGenerated() cil managed diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/CodeGenRenamings01.fs.RealInternalSignatureOn.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/CodeGenRenamings01.fs.RealInternalSignatureOn.OptimizeOn.il.bsl index ed4376c76a3..99383dc268b 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/CodeGenRenamings01.fs.RealInternalSignatureOn.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/CodeGenRenamings01.fs.RealInternalSignatureOn.OptimizeOn.il.bsl @@ -80,49 +80,47 @@ IL_0019: br.s IL_0024 IL_001b: nop - IL_001c: br.s IL_003d + IL_001c: br.s IL_003b IL_001e: nop - IL_001f: br.s IL_0053 + IL_001f: br.s IL_0051 IL_0021: nop - IL_0022: br.s IL_005a + IL_0022: br.s IL_0058 IL_0024: nop - IL_0025: br.s IL_0027 - - IL_0027: ldarg.0 - IL_0028: ldc.i4.1 - IL_0029: stfld int32 assembly/seq1@9::pc - IL_002e: ldarg.0 - IL_002f: ldc.i4.1 - IL_0030: ldc.i4.1 - IL_0031: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: stfld int32 assembly/seq1@9::pc + IL_002c: ldarg.0 + IL_002d: ldc.i4.1 + IL_002e: ldc.i4.1 + IL_002f: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, !1) - IL_0036: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current - IL_003b: ldc.i4.1 - IL_003c: ret - - IL_003d: ldarg.0 - IL_003e: ldc.i4.2 - IL_003f: stfld int32 assembly/seq1@9::pc - IL_0044: ldarg.0 - IL_0045: ldc.i4.2 - IL_0046: ldc.i4.2 - IL_0047: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, + IL_0034: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current + IL_0039: ldc.i4.1 + IL_003a: ret + + IL_003b: ldarg.0 + IL_003c: ldc.i4.2 + IL_003d: stfld int32 assembly/seq1@9::pc + IL_0042: ldarg.0 + IL_0043: ldc.i4.2 + IL_0044: ldc.i4.2 + IL_0045: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, !1) - IL_004c: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current - IL_0051: ldc.i4.1 - IL_0052: ret - - IL_0053: ldarg.0 - IL_0054: ldc.i4.3 - IL_0055: stfld int32 assembly/seq1@9::pc - IL_005a: ldarg.0 - IL_005b: ldnull - IL_005c: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current - IL_0061: ldc.i4.0 - IL_0062: ret + IL_004a: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current + IL_004f: ldc.i4.1 + IL_0050: ret + + IL_0051: ldarg.0 + IL_0052: ldc.i4.3 + IL_0053: stfld int32 assembly/seq1@9::pc + IL_0058: ldarg.0 + IL_0059: ldnull + IL_005a: stfld class [runtime]System.Tuple`2 assembly/seq1@9::current + IL_005f: ldc.i4.0 + IL_0060: ret } .method public strict virtual instance void Close() cil managed @@ -149,28 +147,26 @@ IL_001b: br.s IL_0029 IL_001d: nop - IL_001e: br.s IL_0030 + IL_001e: br.s IL_002e IL_0020: nop - IL_0021: br.s IL_002e + IL_0021: br.s IL_002c IL_0023: nop - IL_0024: br.s IL_002c + IL_0024: br.s IL_002a IL_0026: nop - IL_0027: br.s IL_0030 + IL_0027: br.s IL_002e IL_0029: nop - IL_002a: br.s IL_002c + IL_002a: ldc.i4.0 + IL_002b: ret IL_002c: ldc.i4.0 IL_002d: ret IL_002e: ldc.i4.0 IL_002f: ret - - IL_0030: ldc.i4.0 - IL_0031: ret } .method public strict virtual instance class [runtime]System.Tuple`2 get_LastGenerated() cil managed diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/EntryPoint01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/EntryPoint01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl index efcc71e6692..17bc38dafe9 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/EntryPoint01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/EntryPoint01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl @@ -54,20 +54,19 @@ IL_0006: ldsfld int32 ''.$assembly::init@ IL_000b: pop IL_000c: nop - IL_000d: nop - IL_000e: call int32 assembly::get_static_initializer() - IL_0013: ldc.i4.s 10 - IL_0015: bne.un.s IL_001b - - IL_0017: ldc.i4.0 - IL_0018: nop - IL_0019: br.s IL_001d - - IL_001b: ldc.i4.1 - IL_001c: nop - IL_001d: tail. - IL_001f: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_0024: ret + IL_000d: call int32 assembly::get_static_initializer() + IL_0012: ldc.i4.s 10 + IL_0014: bne.un.s IL_001a + + IL_0016: ldc.i4.0 + IL_0017: nop + IL_0018: br.s IL_001c + + IL_001a: ldc.i4.1 + IL_001b: nop + IL_001c: tail. + IL_001e: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_0023: ret } .property int32 static_initializer() diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/EntryPoint01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/EntryPoint01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl index 42385696441..449d7281ef9 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/EntryPoint01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/EntryPoint01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl @@ -49,21 +49,42 @@ .custom instance void [FSharp.Core]Microsoft.FSharp.Core.EntryPointAttribute::.ctor() = ( 01 00 00 00 ) .maxstack 8 - IL_0000: nop - IL_0001: nop - IL_0002: call int32 assembly::get_static_initializer() - IL_0007: ldc.i4.s 10 - IL_0009: bne.un.s IL_000f - - IL_000b: ldc.i4.0 + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 ''.$assembly::init@ + IL_0006: ldsfld int32 ''.$assembly::init@ + IL_000b: pop IL_000c: nop - IL_000d: br.s IL_0011 + IL_000d: call int32 assembly::get_static_initializer() + IL_0012: ldc.i4.s 10 + IL_0014: bne.un.s IL_001a + + IL_0016: ldc.i4.0 + IL_0017: nop + IL_0018: br.s IL_001c + + IL_001a: ldc.i4.1 + IL_001b: nop + IL_001c: tail. + IL_001e: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) + IL_0023: ret + } - IL_000f: ldc.i4.1 - IL_0010: nop - IL_0011: tail. - IL_0013: call !!0 [FSharp.Core]Microsoft.FSharp.Core.Operators::Exit(int32) - IL_0018: ret + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 ''.$assembly::init@ + IL_0006: ldsfld int32 ''.$assembly::init@ + IL_000b: pop + IL_000c: ret + } + + .method assembly static void staticInitialization@() cil managed + { + + .maxstack 8 + IL_0000: ret } .property int32 static_initializer() @@ -75,6 +96,18 @@ .class private abstract auto ansi sealed ''.$assembly extends [runtime]System.Object { + .field static assembly int32 init@ + .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .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 ) + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 8 + IL_0000: call void assembly::staticInitialization@() + IL_0005: ret + } + } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/GenericTypeStaticField.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/GenericTypeStaticField.fs.il.bsl index a320f73520a..159874b01a1 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/GenericTypeStaticField.fs.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/GenericTypeStaticField.fs.il.bsl @@ -66,20 +66,19 @@ { .maxstack 8 - IL_0000: nop - IL_0001: volatile. - IL_0003: ldsfld int32 class assembly/Foo`1::init@2 - IL_0008: ldc.i4.1 - IL_0009: bge.s IL_0014 + IL_0000: volatile. + IL_0002: ldsfld int32 class assembly/Foo`1::init@2 + IL_0007: ldc.i4.1 + IL_0008: bge.s IL_0013 - IL_000b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000f: nop IL_0010: nop - IL_0011: nop - IL_0012: br.s IL_0015 + IL_0011: br.s IL_0014 - IL_0014: nop - IL_0015: ldsfld class assembly/Foo`1 class assembly/Foo`1::theInstance - IL_001a: ret + IL_0013: nop + IL_0014: ldsfld class assembly/Foo`1 class assembly/Foo`1::theInstance + IL_0019: ret } .property class assembly/Foo`1 @@ -122,20 +121,19 @@ { .maxstack 8 - IL_0000: nop - IL_0001: volatile. - IL_0003: ldsfld int32 class assembly/Bar`2::'init@6-1' - IL_0008: ldc.i4.1 - IL_0009: bge.s IL_0014 + IL_0000: volatile. + IL_0002: ldsfld int32 class assembly/Bar`2::'init@6-1' + IL_0007: ldc.i4.1 + IL_0008: bge.s IL_0013 - IL_000b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000f: nop IL_0010: nop - IL_0011: nop - IL_0012: br.s IL_0015 + IL_0011: br.s IL_0014 - IL_0014: nop - IL_0015: ldsfld class assembly/Bar`2 class assembly/Bar`2::theInstance - IL_001a: ret + IL_0013: nop + IL_0014: ldsfld class assembly/Bar`2 class assembly/Bar`2::theInstance + IL_0019: ret } .property class assembly/Bar`2 @@ -164,4 +162,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/IfThenElse01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/IfThenElse01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl index f9c75893b0c..7ae1d8d1a50 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/IfThenElse01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/IfThenElse01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl @@ -112,16 +112,15 @@ IL_0000: ldarg.0 IL_0001: ldfld class assembly/M/f5@5 class assembly/M/f5@5T::self0@ IL_0006: stloc.0 - IL_0007: nop - IL_0008: ldarg.1 - IL_0009: ldarg.2 - IL_000a: ble.s IL_000e + IL_0007: ldarg.1 + IL_0008: ldarg.2 + IL_0009: ble.s IL_000d - IL_000c: ldarg.3 - IL_000d: ret + IL_000b: ldarg.3 + IL_000c: ret - IL_000e: ldarg.s w - IL_0010: ret + IL_000d: ldarg.s w + IL_000f: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/IfThenElse01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/IfThenElse01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl index fd1a1e646a2..57fba0b4697 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/IfThenElse01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/IfThenElse01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl @@ -112,16 +112,15 @@ IL_0000: ldarg.0 IL_0001: ldfld class assembly/M/f5@5 class assembly/M/f5@5T::self0@ IL_0006: stloc.0 - IL_0007: nop - IL_0008: ldarg.1 - IL_0009: ldarg.2 - IL_000a: ble.s IL_000e + IL_0007: ldarg.1 + IL_0008: ldarg.2 + IL_0009: ble.s IL_000d - IL_000c: ldarg.3 - IL_000d: ret + IL_000b: ldarg.3 + IL_000c: ret - IL_000e: ldarg.s w - IL_0010: ret + IL_000d: ldarg.s w + IL_000f: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/LetIfThenElse01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/LetIfThenElse01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl index 7ca778a5170..608baf95e8f 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/LetIfThenElse01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/LetIfThenElse01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl @@ -45,75 +45,71 @@ valuetype [runtime]System.DateTime V_5, int32 V_6, valuetype [runtime]System.DateTime V_7) - IL_0000: nop - IL_0001: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() - IL_0006: stloc.1 - IL_0007: ldloca.s V_1 - IL_0009: call instance int32 [runtime]System.DateTime::get_Year() - IL_000e: ldc.i4 0x7d0 - IL_0013: ble.s IL_0019 - - IL_0015: ldc.i4.1 - IL_0016: nop - IL_0017: br.s IL_001b - - IL_0019: ldc.i4.2 - IL_001a: nop - IL_001b: stloc.0 - IL_001c: nop - IL_001d: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() - IL_0022: stloc.3 - IL_0023: ldloca.s V_3 - IL_0025: call instance int32 [runtime]System.DateTime::get_Year() - IL_002a: ldc.i4 0x7d0 - IL_002f: ble.s IL_0035 - - IL_0031: ldc.i4.1 - IL_0032: nop - IL_0033: br.s IL_0037 - - IL_0035: ldc.i4.2 - IL_0036: nop - IL_0037: stloc.2 - IL_0038: nop - IL_0039: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() - IL_003e: stloc.s V_5 - IL_0040: ldloca.s V_5 - IL_0042: call instance int32 [runtime]System.DateTime::get_Year() - IL_0047: ldc.i4 0x7d0 - IL_004c: bge.s IL_0052 - - IL_004e: ldc.i4.1 - IL_004f: nop - IL_0050: br.s IL_0054 - - IL_0052: ldc.i4.2 - IL_0053: nop - IL_0054: stloc.s V_4 - IL_0056: nop - IL_0057: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() - IL_005c: stloc.s V_7 - IL_005e: ldloca.s V_7 - IL_0060: call instance int32 [runtime]System.DateTime::get_Year() - IL_0065: ldc.i4 0x7d0 - IL_006a: bge.s IL_0070 - - IL_006c: ldc.i4.1 + IL_0000: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() + IL_0005: stloc.1 + IL_0006: ldloca.s V_1 + IL_0008: call instance int32 [runtime]System.DateTime::get_Year() + IL_000d: ldc.i4 0x7d0 + IL_0012: ble.s IL_0018 + + IL_0014: ldc.i4.1 + IL_0015: nop + IL_0016: br.s IL_001a + + IL_0018: ldc.i4.2 + IL_0019: nop + IL_001a: stloc.0 + IL_001b: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() + IL_0020: stloc.3 + IL_0021: ldloca.s V_3 + IL_0023: call instance int32 [runtime]System.DateTime::get_Year() + IL_0028: ldc.i4 0x7d0 + IL_002d: ble.s IL_0033 + + IL_002f: ldc.i4.1 + IL_0030: nop + IL_0031: br.s IL_0035 + + IL_0033: ldc.i4.2 + IL_0034: nop + IL_0035: stloc.2 + IL_0036: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() + IL_003b: stloc.s V_5 + IL_003d: ldloca.s V_5 + IL_003f: call instance int32 [runtime]System.DateTime::get_Year() + IL_0044: ldc.i4 0x7d0 + IL_0049: bge.s IL_004f + + IL_004b: ldc.i4.1 + IL_004c: nop + IL_004d: br.s IL_0051 + + IL_004f: ldc.i4.2 + IL_0050: nop + IL_0051: stloc.s V_4 + IL_0053: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() + IL_0058: stloc.s V_7 + IL_005a: ldloca.s V_7 + IL_005c: call instance int32 [runtime]System.DateTime::get_Year() + IL_0061: ldc.i4 0x7d0 + IL_0066: bge.s IL_006c + + IL_0068: ldc.i4.1 + IL_0069: nop + IL_006a: br.s IL_006e + + IL_006c: ldc.i4.2 IL_006d: nop - IL_006e: br.s IL_0072 - - IL_0070: ldc.i4.2 - IL_0071: nop - IL_0072: stloc.s V_6 - IL_0074: ldloc.0 - IL_0075: ldloc.2 - IL_0076: ldloc.s V_4 - IL_0078: ldloc.s V_6 - IL_007a: newobj instance void class [runtime]System.Tuple`4::.ctor(!0, + IL_006e: stloc.s V_6 + IL_0070: ldloc.0 + IL_0071: ldloc.2 + IL_0072: ldloc.s V_4 + IL_0074: ldloc.s V_6 + IL_0076: newobj instance void class [runtime]System.Tuple`4::.ctor(!0, !1, !2, !3) - IL_007f: ret + IL_007b: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/LetIfThenElse01.fs.RealInternalSignatureOff.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/LetIfThenElse01.fs.RealInternalSignatureOff.OptimizeOn.il.bsl index 83be9e49788..e73a8df340f 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/LetIfThenElse01.fs.RealInternalSignatureOff.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/LetIfThenElse01.fs.RealInternalSignatureOff.OptimizeOn.il.bsl @@ -60,100 +60,99 @@ int32 V_20, int32 V_21) IL_0000: nop - IL_0001: nop - IL_0002: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() - IL_0007: stloc.0 - IL_0008: ldloca.s V_0 - IL_000a: call instance int32 [runtime]System.DateTime::get_Year() - IL_000f: ldc.i4 0x7d0 - IL_0014: ble.s IL_001a - - IL_0016: ldc.i4.1 - IL_0017: nop - IL_0018: br.s IL_001c - - IL_001a: ldc.i4.2 - IL_001b: nop - IL_001c: stloc.1 - IL_001d: ldloc.1 - IL_001e: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() - IL_0023: stloc.2 - IL_0024: ldloca.s V_2 - IL_0026: call instance int32 [runtime]System.DateTime::get_Year() - IL_002b: ldc.i4 0x7d0 - IL_0030: ble.s IL_0038 - - IL_0032: stloc.3 - IL_0033: ldloc.3 - IL_0034: ldc.i4.1 - IL_0035: nop - IL_0036: br.s IL_003e - - IL_0038: stloc.s V_4 - IL_003a: ldloc.s V_4 - IL_003c: ldc.i4.2 - IL_003d: nop - IL_003e: stloc.s V_5 - IL_0040: stloc.s V_6 - IL_0042: ldloc.s V_6 - IL_0044: ldloc.s V_5 - IL_0046: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() - IL_004b: stloc.s V_7 - IL_004d: ldloca.s V_7 - IL_004f: call instance int32 [runtime]System.DateTime::get_Year() - IL_0054: ldc.i4 0x7d0 - IL_0059: bge.s IL_0067 - - IL_005b: stloc.s V_8 - IL_005d: stloc.s V_9 - IL_005f: ldloc.s V_9 - IL_0061: ldloc.s V_8 - IL_0063: ldc.i4.1 - IL_0064: nop - IL_0065: br.s IL_0071 - - IL_0067: stloc.s V_10 - IL_0069: stloc.s V_11 - IL_006b: ldloc.s V_11 - IL_006d: ldloc.s V_10 - IL_006f: ldc.i4.2 - IL_0070: nop - IL_0071: stloc.s V_12 - IL_0073: stloc.s V_13 - IL_0075: stloc.s V_14 - IL_0077: ldloc.s V_14 - IL_0079: ldloc.s V_13 - IL_007b: ldloc.s V_12 - IL_007d: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() - IL_0082: stloc.s V_15 - IL_0084: ldloca.s V_15 - IL_0086: call instance int32 [runtime]System.DateTime::get_Year() - IL_008b: ldc.i4 0x7d0 - IL_0090: bge.s IL_00a2 - - IL_0092: stloc.s V_16 - IL_0094: stloc.s V_17 - IL_0096: stloc.s V_18 - IL_0098: ldloc.s V_18 - IL_009a: ldloc.s V_17 - IL_009c: ldloc.s V_16 - IL_009e: ldc.i4.1 - IL_009f: nop - IL_00a0: br.s IL_00b0 - - IL_00a2: stloc.s V_19 - IL_00a4: stloc.s V_20 - IL_00a6: stloc.s V_21 - IL_00a8: ldloc.s V_21 - IL_00aa: ldloc.s V_20 - IL_00ac: ldloc.s V_19 - IL_00ae: ldc.i4.2 - IL_00af: nop - IL_00b0: newobj instance void class [runtime]System.Tuple`4::.ctor(!0, + IL_0001: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() + IL_0006: stloc.0 + IL_0007: ldloca.s V_0 + IL_0009: call instance int32 [runtime]System.DateTime::get_Year() + IL_000e: ldc.i4 0x7d0 + IL_0013: ble.s IL_0019 + + IL_0015: ldc.i4.1 + IL_0016: nop + IL_0017: br.s IL_001b + + IL_0019: ldc.i4.2 + IL_001a: nop + IL_001b: stloc.1 + IL_001c: ldloc.1 + IL_001d: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() + IL_0022: stloc.2 + IL_0023: ldloca.s V_2 + IL_0025: call instance int32 [runtime]System.DateTime::get_Year() + IL_002a: ldc.i4 0x7d0 + IL_002f: ble.s IL_0037 + + IL_0031: stloc.3 + IL_0032: ldloc.3 + IL_0033: ldc.i4.1 + IL_0034: nop + IL_0035: br.s IL_003d + + IL_0037: stloc.s V_4 + IL_0039: ldloc.s V_4 + IL_003b: ldc.i4.2 + IL_003c: nop + IL_003d: stloc.s V_5 + IL_003f: stloc.s V_6 + IL_0041: ldloc.s V_6 + IL_0043: ldloc.s V_5 + IL_0045: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() + IL_004a: stloc.s V_7 + IL_004c: ldloca.s V_7 + IL_004e: call instance int32 [runtime]System.DateTime::get_Year() + IL_0053: ldc.i4 0x7d0 + IL_0058: bge.s IL_0066 + + IL_005a: stloc.s V_8 + IL_005c: stloc.s V_9 + IL_005e: ldloc.s V_9 + IL_0060: ldloc.s V_8 + IL_0062: ldc.i4.1 + IL_0063: nop + IL_0064: br.s IL_0070 + + IL_0066: stloc.s V_10 + IL_0068: stloc.s V_11 + IL_006a: ldloc.s V_11 + IL_006c: ldloc.s V_10 + IL_006e: ldc.i4.2 + IL_006f: nop + IL_0070: stloc.s V_12 + IL_0072: stloc.s V_13 + IL_0074: stloc.s V_14 + IL_0076: ldloc.s V_14 + IL_0078: ldloc.s V_13 + IL_007a: ldloc.s V_12 + IL_007c: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() + IL_0081: stloc.s V_15 + IL_0083: ldloca.s V_15 + IL_0085: call instance int32 [runtime]System.DateTime::get_Year() + IL_008a: ldc.i4 0x7d0 + IL_008f: bge.s IL_00a1 + + IL_0091: stloc.s V_16 + IL_0093: stloc.s V_17 + IL_0095: stloc.s V_18 + IL_0097: ldloc.s V_18 + IL_0099: ldloc.s V_17 + IL_009b: ldloc.s V_16 + IL_009d: ldc.i4.1 + IL_009e: nop + IL_009f: br.s IL_00af + + IL_00a1: stloc.s V_19 + IL_00a3: stloc.s V_20 + IL_00a5: stloc.s V_21 + IL_00a7: ldloc.s V_21 + IL_00a9: ldloc.s V_20 + IL_00ab: ldloc.s V_19 + IL_00ad: ldc.i4.2 + IL_00ae: nop + IL_00af: newobj instance void class [runtime]System.Tuple`4::.ctor(!0, !1, !2, !3) - IL_00b5: ret + IL_00b4: ret } .method assembly specialname static class [runtime]System.Tuple`4 get_arg@1() cil managed diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/LetIfThenElse01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/LetIfThenElse01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl index f27f4f4801f..3ac63d2454a 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/LetIfThenElse01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/LetIfThenElse01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl @@ -45,75 +45,71 @@ valuetype [runtime]System.DateTime V_5, int32 V_6, valuetype [runtime]System.DateTime V_7) - IL_0000: nop - IL_0001: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() - IL_0006: stloc.1 - IL_0007: ldloca.s V_1 - IL_0009: call instance int32 [runtime]System.DateTime::get_Year() - IL_000e: ldc.i4 0x7d0 - IL_0013: ble.s IL_0019 - - IL_0015: ldc.i4.1 - IL_0016: nop - IL_0017: br.s IL_001b - - IL_0019: ldc.i4.2 - IL_001a: nop - IL_001b: stloc.0 - IL_001c: nop - IL_001d: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() - IL_0022: stloc.3 - IL_0023: ldloca.s V_3 - IL_0025: call instance int32 [runtime]System.DateTime::get_Year() - IL_002a: ldc.i4 0x7d0 - IL_002f: ble.s IL_0035 - - IL_0031: ldc.i4.1 - IL_0032: nop - IL_0033: br.s IL_0037 - - IL_0035: ldc.i4.2 - IL_0036: nop - IL_0037: stloc.2 - IL_0038: nop - IL_0039: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() - IL_003e: stloc.s V_5 - IL_0040: ldloca.s V_5 - IL_0042: call instance int32 [runtime]System.DateTime::get_Year() - IL_0047: ldc.i4 0x7d0 - IL_004c: bge.s IL_0052 - - IL_004e: ldc.i4.1 - IL_004f: nop - IL_0050: br.s IL_0054 - - IL_0052: ldc.i4.2 - IL_0053: nop - IL_0054: stloc.s V_4 - IL_0056: nop - IL_0057: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() - IL_005c: stloc.s V_7 - IL_005e: ldloca.s V_7 - IL_0060: call instance int32 [runtime]System.DateTime::get_Year() - IL_0065: ldc.i4 0x7d0 - IL_006a: bge.s IL_0070 - - IL_006c: ldc.i4.1 + IL_0000: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() + IL_0005: stloc.1 + IL_0006: ldloca.s V_1 + IL_0008: call instance int32 [runtime]System.DateTime::get_Year() + IL_000d: ldc.i4 0x7d0 + IL_0012: ble.s IL_0018 + + IL_0014: ldc.i4.1 + IL_0015: nop + IL_0016: br.s IL_001a + + IL_0018: ldc.i4.2 + IL_0019: nop + IL_001a: stloc.0 + IL_001b: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() + IL_0020: stloc.3 + IL_0021: ldloca.s V_3 + IL_0023: call instance int32 [runtime]System.DateTime::get_Year() + IL_0028: ldc.i4 0x7d0 + IL_002d: ble.s IL_0033 + + IL_002f: ldc.i4.1 + IL_0030: nop + IL_0031: br.s IL_0035 + + IL_0033: ldc.i4.2 + IL_0034: nop + IL_0035: stloc.2 + IL_0036: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() + IL_003b: stloc.s V_5 + IL_003d: ldloca.s V_5 + IL_003f: call instance int32 [runtime]System.DateTime::get_Year() + IL_0044: ldc.i4 0x7d0 + IL_0049: bge.s IL_004f + + IL_004b: ldc.i4.1 + IL_004c: nop + IL_004d: br.s IL_0051 + + IL_004f: ldc.i4.2 + IL_0050: nop + IL_0051: stloc.s V_4 + IL_0053: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() + IL_0058: stloc.s V_7 + IL_005a: ldloca.s V_7 + IL_005c: call instance int32 [runtime]System.DateTime::get_Year() + IL_0061: ldc.i4 0x7d0 + IL_0066: bge.s IL_006c + + IL_0068: ldc.i4.1 + IL_0069: nop + IL_006a: br.s IL_006e + + IL_006c: ldc.i4.2 IL_006d: nop - IL_006e: br.s IL_0072 - - IL_0070: ldc.i4.2 - IL_0071: nop - IL_0072: stloc.s V_6 - IL_0074: ldloc.0 - IL_0075: ldloc.2 - IL_0076: ldloc.s V_4 - IL_0078: ldloc.s V_6 - IL_007a: newobj instance void class [runtime]System.Tuple`4::.ctor(!0, + IL_006e: stloc.s V_6 + IL_0070: ldloc.0 + IL_0071: ldloc.2 + IL_0072: ldloc.s V_4 + IL_0074: ldloc.s V_6 + IL_0076: newobj instance void class [runtime]System.Tuple`4::.ctor(!0, !1, !2, !3) - IL_007f: ret + IL_007b: ret } .method private specialname rtspecialname static void .cctor() cil managed diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/LetIfThenElse01.fs.RealInternalSignatureOn.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/LetIfThenElse01.fs.RealInternalSignatureOn.OptimizeOn.il.bsl index 5139e7470eb..65d5657ad44 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/LetIfThenElse01.fs.RealInternalSignatureOn.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/LetIfThenElse01.fs.RealInternalSignatureOn.OptimizeOn.il.bsl @@ -62,100 +62,99 @@ int32 V_20, int32 V_21) IL_0000: nop - IL_0001: nop - IL_0002: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() - IL_0007: stloc.0 - IL_0008: ldloca.s V_0 - IL_000a: call instance int32 [runtime]System.DateTime::get_Year() - IL_000f: ldc.i4 0x7d0 - IL_0014: ble.s IL_001a - - IL_0016: ldc.i4.1 - IL_0017: nop - IL_0018: br.s IL_001c - - IL_001a: ldc.i4.2 - IL_001b: nop - IL_001c: stloc.1 - IL_001d: ldloc.1 - IL_001e: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() - IL_0023: stloc.2 - IL_0024: ldloca.s V_2 - IL_0026: call instance int32 [runtime]System.DateTime::get_Year() - IL_002b: ldc.i4 0x7d0 - IL_0030: ble.s IL_0038 - - IL_0032: stloc.3 - IL_0033: ldloc.3 - IL_0034: ldc.i4.1 - IL_0035: nop - IL_0036: br.s IL_003e - - IL_0038: stloc.s V_4 - IL_003a: ldloc.s V_4 - IL_003c: ldc.i4.2 - IL_003d: nop - IL_003e: stloc.s V_5 - IL_0040: stloc.s V_6 - IL_0042: ldloc.s V_6 - IL_0044: ldloc.s V_5 - IL_0046: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() - IL_004b: stloc.s V_7 - IL_004d: ldloca.s V_7 - IL_004f: call instance int32 [runtime]System.DateTime::get_Year() - IL_0054: ldc.i4 0x7d0 - IL_0059: bge.s IL_0067 - - IL_005b: stloc.s V_8 - IL_005d: stloc.s V_9 - IL_005f: ldloc.s V_9 - IL_0061: ldloc.s V_8 - IL_0063: ldc.i4.1 - IL_0064: nop - IL_0065: br.s IL_0071 - - IL_0067: stloc.s V_10 - IL_0069: stloc.s V_11 - IL_006b: ldloc.s V_11 - IL_006d: ldloc.s V_10 - IL_006f: ldc.i4.2 - IL_0070: nop - IL_0071: stloc.s V_12 - IL_0073: stloc.s V_13 - IL_0075: stloc.s V_14 - IL_0077: ldloc.s V_14 - IL_0079: ldloc.s V_13 - IL_007b: ldloc.s V_12 - IL_007d: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() - IL_0082: stloc.s V_15 - IL_0084: ldloca.s V_15 - IL_0086: call instance int32 [runtime]System.DateTime::get_Year() - IL_008b: ldc.i4 0x7d0 - IL_0090: bge.s IL_00a2 - - IL_0092: stloc.s V_16 - IL_0094: stloc.s V_17 - IL_0096: stloc.s V_18 - IL_0098: ldloc.s V_18 - IL_009a: ldloc.s V_17 - IL_009c: ldloc.s V_16 - IL_009e: ldc.i4.1 - IL_009f: nop - IL_00a0: br.s IL_00b0 - - IL_00a2: stloc.s V_19 - IL_00a4: stloc.s V_20 - IL_00a6: stloc.s V_21 - IL_00a8: ldloc.s V_21 - IL_00aa: ldloc.s V_20 - IL_00ac: ldloc.s V_19 - IL_00ae: ldc.i4.2 - IL_00af: nop - IL_00b0: newobj instance void class [runtime]System.Tuple`4::.ctor(!0, + IL_0001: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() + IL_0006: stloc.0 + IL_0007: ldloca.s V_0 + IL_0009: call instance int32 [runtime]System.DateTime::get_Year() + IL_000e: ldc.i4 0x7d0 + IL_0013: ble.s IL_0019 + + IL_0015: ldc.i4.1 + IL_0016: nop + IL_0017: br.s IL_001b + + IL_0019: ldc.i4.2 + IL_001a: nop + IL_001b: stloc.1 + IL_001c: ldloc.1 + IL_001d: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() + IL_0022: stloc.2 + IL_0023: ldloca.s V_2 + IL_0025: call instance int32 [runtime]System.DateTime::get_Year() + IL_002a: ldc.i4 0x7d0 + IL_002f: ble.s IL_0037 + + IL_0031: stloc.3 + IL_0032: ldloc.3 + IL_0033: ldc.i4.1 + IL_0034: nop + IL_0035: br.s IL_003d + + IL_0037: stloc.s V_4 + IL_0039: ldloc.s V_4 + IL_003b: ldc.i4.2 + IL_003c: nop + IL_003d: stloc.s V_5 + IL_003f: stloc.s V_6 + IL_0041: ldloc.s V_6 + IL_0043: ldloc.s V_5 + IL_0045: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() + IL_004a: stloc.s V_7 + IL_004c: ldloca.s V_7 + IL_004e: call instance int32 [runtime]System.DateTime::get_Year() + IL_0053: ldc.i4 0x7d0 + IL_0058: bge.s IL_0066 + + IL_005a: stloc.s V_8 + IL_005c: stloc.s V_9 + IL_005e: ldloc.s V_9 + IL_0060: ldloc.s V_8 + IL_0062: ldc.i4.1 + IL_0063: nop + IL_0064: br.s IL_0070 + + IL_0066: stloc.s V_10 + IL_0068: stloc.s V_11 + IL_006a: ldloc.s V_11 + IL_006c: ldloc.s V_10 + IL_006e: ldc.i4.2 + IL_006f: nop + IL_0070: stloc.s V_12 + IL_0072: stloc.s V_13 + IL_0074: stloc.s V_14 + IL_0076: ldloc.s V_14 + IL_0078: ldloc.s V_13 + IL_007a: ldloc.s V_12 + IL_007c: call valuetype [runtime]System.DateTime [runtime]System.DateTime::get_Now() + IL_0081: stloc.s V_15 + IL_0083: ldloca.s V_15 + IL_0085: call instance int32 [runtime]System.DateTime::get_Year() + IL_008a: ldc.i4 0x7d0 + IL_008f: bge.s IL_00a1 + + IL_0091: stloc.s V_16 + IL_0093: stloc.s V_17 + IL_0095: stloc.s V_18 + IL_0097: ldloc.s V_18 + IL_0099: ldloc.s V_17 + IL_009b: ldloc.s V_16 + IL_009d: ldc.i4.1 + IL_009e: nop + IL_009f: br.s IL_00af + + IL_00a1: stloc.s V_19 + IL_00a3: stloc.s V_20 + IL_00a5: stloc.s V_21 + IL_00a7: ldloc.s V_21 + IL_00a9: ldloc.s V_20 + IL_00ab: ldloc.s V_19 + IL_00ad: ldc.i4.2 + IL_00ae: nop + IL_00af: newobj instance void class [runtime]System.Tuple`4::.ctor(!0, !1, !2, !3) - IL_00b5: ret + IL_00b4: ret } .method assembly specialname static class [runtime]System.Tuple`4 get_arg@1() cil managed diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/Seq_for_all01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/Seq_for_all01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl index 1d660278c37..92ec87cffc6 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/Seq_for_all01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/Seq_for_all01.fs.RealInternalSignatureOff.OptimizeOff.il.bsl @@ -52,20 +52,19 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldc.i4.1 - IL_0002: ldc.i4.0 - IL_0003: ceq - IL_0005: nop - IL_0006: brfalse.s IL_000c + IL_0000: ldc.i4.1 + IL_0001: ldc.i4.0 + IL_0002: ceq + IL_0004: nop + IL_0005: brfalse.s IL_000b + IL_0007: nop IL_0008: nop - IL_0009: nop - IL_000a: br.s IL_000d + IL_0009: br.s IL_000c - IL_000c: nop - IL_000d: ldc.i4.1 - IL_000e: ret + IL_000b: nop + IL_000c: ldc.i4.1 + IL_000d: ret } .method private specialname rtspecialname static void .cctor() cil managed diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/Seq_for_all01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/Seq_for_all01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl index 37a0b0d53f2..76069114c94 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/Seq_for_all01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/Seq_for_all01.fs.RealInternalSignatureOn.OptimizeOff.il.bsl @@ -52,20 +52,19 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldc.i4.1 - IL_0002: ldc.i4.0 - IL_0003: ceq - IL_0005: nop - IL_0006: brfalse.s IL_000c + IL_0000: ldc.i4.1 + IL_0001: ldc.i4.0 + IL_0002: ceq + IL_0004: nop + IL_0005: brfalse.s IL_000b + IL_0007: nop IL_0008: nop - IL_0009: nop - IL_000a: br.s IL_000d + IL_0009: br.s IL_000c - IL_000c: nop - IL_000d: ldc.i4.1 - IL_000e: ret + IL_000b: nop + IL_000c: ldc.i4.1 + IL_000d: ret } .method private specialname rtspecialname static void .cctor() cil managed diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest01.fs.RealInternalSignatureOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest01.fs.RealInternalSignatureOff.il.bsl index 8aa5823770f..999a3eacb1f 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest01.fs.RealInternalSignatureOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest01.fs.RealInternalSignatureOff.il.bsl @@ -67,7 +67,7 @@ .method public strict virtual instance int32 GenerateNext(class [runtime]System.Collections.Generic.IEnumerable`1& next) cil managed { - .maxstack 6 + .maxstack 8 IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::pc IL_0006: ldc.i4.1 @@ -78,31 +78,29 @@ IL_0015: br.s IL_001d IL_0017: nop - IL_0018: br.s IL_0030 + IL_0018: br.s IL_002e IL_001a: nop - IL_001b: br.s IL_0037 + IL_001b: br.s IL_0035 IL_001d: nop - IL_001e: br.s IL_0020 - - IL_0020: ldarg.0 - IL_0021: ldc.i4.1 - IL_0022: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::pc - IL_0027: ldarg.0 - IL_0028: ldc.i4.1 - IL_0029: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::current - IL_002e: ldc.i4.1 - IL_002f: ret - - IL_0030: ldarg.0 - IL_0031: ldc.i4.2 - IL_0032: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::pc - IL_0037: ldarg.0 - IL_0038: ldc.i4.0 - IL_0039: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::current - IL_003e: ldc.i4.0 - IL_003f: ret + IL_001e: ldarg.0 + IL_001f: ldc.i4.1 + IL_0020: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::pc + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::current + IL_002c: ldc.i4.1 + IL_002d: ret + + IL_002e: ldarg.0 + IL_002f: ldc.i4.2 + IL_0030: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::pc + IL_0035: ldarg.0 + IL_0036: ldc.i4.0 + IL_0037: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::current + IL_003c: ldc.i4.0 + IL_003d: ret } .method public strict virtual instance void Close() cil managed @@ -128,22 +126,20 @@ IL_0017: br.s IL_0022 IL_0019: nop - IL_001a: br.s IL_0027 + IL_001a: br.s IL_0025 IL_001c: nop - IL_001d: br.s IL_0025 + IL_001d: br.s IL_0023 IL_001f: nop - IL_0020: br.s IL_0027 + IL_0020: br.s IL_0025 IL_0022: nop - IL_0023: br.s IL_0025 + IL_0023: ldc.i4.0 + IL_0024: ret IL_0025: ldc.i4.0 IL_0026: ret - - IL_0027: ldc.i4.0 - IL_0028: ret } .method public strict virtual instance int32 get_LastGenerated() cil managed @@ -214,4 +210,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest01.fs.RealInternalSignatureOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest01.fs.RealInternalSignatureOn.il.bsl index e692c0be6fc..0e9ba6e9ba1 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest01.fs.RealInternalSignatureOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest01.fs.RealInternalSignatureOn.il.bsl @@ -67,7 +67,7 @@ .method public strict virtual instance int32 GenerateNext(class [runtime]System.Collections.Generic.IEnumerable`1& next) cil managed { - .maxstack 6 + .maxstack 8 IL_0000: ldarg.0 IL_0001: ldfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::pc IL_0006: ldc.i4.1 @@ -78,31 +78,29 @@ IL_0015: br.s IL_001d IL_0017: nop - IL_0018: br.s IL_0030 + IL_0018: br.s IL_002e IL_001a: nop - IL_001b: br.s IL_0037 + IL_001b: br.s IL_0035 IL_001d: nop - IL_001e: br.s IL_0020 - - IL_0020: ldarg.0 - IL_0021: ldc.i4.1 - IL_0022: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::pc - IL_0027: ldarg.0 - IL_0028: ldc.i4.1 - IL_0029: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::current - IL_002e: ldc.i4.1 - IL_002f: ret - - IL_0030: ldarg.0 - IL_0031: ldc.i4.2 - IL_0032: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::pc - IL_0037: ldarg.0 - IL_0038: ldc.i4.0 - IL_0039: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::current - IL_003e: ldc.i4.0 - IL_003f: ret + IL_001e: ldarg.0 + IL_001f: ldc.i4.1 + IL_0020: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::pc + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::current + IL_002c: ldc.i4.1 + IL_002d: ret + + IL_002e: ldarg.0 + IL_002f: ldc.i4.2 + IL_0030: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::pc + IL_0035: ldarg.0 + IL_0036: ldc.i4.0 + IL_0037: stfld int32 SeqExpressionSteppingTest1/SeqExpressionSteppingTest1/f0@6::current + IL_003c: ldc.i4.0 + IL_003d: ret } .method public strict virtual instance void Close() cil managed @@ -128,22 +126,20 @@ IL_0017: br.s IL_0022 IL_0019: nop - IL_001a: br.s IL_0027 + IL_001a: br.s IL_0025 IL_001c: nop - IL_001d: br.s IL_0025 + IL_001d: br.s IL_0023 IL_001f: nop - IL_0020: br.s IL_0027 + IL_0020: br.s IL_0025 IL_0022: nop - IL_0023: br.s IL_0025 + IL_0023: ldc.i4.0 + IL_0024: ret IL_0025: ldc.i4.0 IL_0026: ret - - IL_0027: ldc.i4.0 - IL_0028: ret } .method public strict virtual instance int32 get_LastGenerated() cil managed @@ -252,4 +248,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest02.fs.RealInternalSignatureOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest02.fs.RealInternalSignatureOff.il.bsl index caa0f3cb2c8..29b9a75dde7 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest02.fs.RealInternalSignatureOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest02.fs.RealInternalSignatureOff.il.bsl @@ -79,51 +79,49 @@ IL_0019: br.s IL_0024 IL_001b: nop - IL_001c: br.s IL_0047 + IL_001c: br.s IL_0045 IL_001e: nop - IL_001f: br.s IL_0067 + IL_001f: br.s IL_0065 IL_0021: nop - IL_0022: br.s IL_006e + IL_0022: br.s IL_006c IL_0024: nop - IL_0025: br.s IL_0027 - - IL_0027: ldstr "hello" - IL_002c: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0031: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0036: pop - IL_0037: ldarg.0 - IL_0038: ldc.i4.1 - IL_0039: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc - IL_003e: ldarg.0 - IL_003f: ldc.i4.1 - IL_0040: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::current - IL_0045: ldc.i4.1 - IL_0046: ret - - IL_0047: ldstr "goodbye" - IL_004c: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0051: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0056: pop - IL_0057: ldarg.0 - IL_0058: ldc.i4.2 - IL_0059: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc - IL_005e: ldarg.0 - IL_005f: ldc.i4.2 - IL_0060: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::current - IL_0065: ldc.i4.1 - IL_0066: ret - - IL_0067: ldarg.0 - IL_0068: ldc.i4.3 - IL_0069: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc - IL_006e: ldarg.0 - IL_006f: ldc.i4.0 - IL_0070: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::current - IL_0075: ldc.i4.0 - IL_0076: ret + IL_0025: ldstr "hello" + IL_002a: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_002f: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0034: pop + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc + IL_003c: ldarg.0 + IL_003d: ldc.i4.1 + IL_003e: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::current + IL_0043: ldc.i4.1 + IL_0044: ret + + IL_0045: ldstr "goodbye" + IL_004a: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_004f: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0054: pop + IL_0055: ldarg.0 + IL_0056: ldc.i4.2 + IL_0057: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc + IL_005c: ldarg.0 + IL_005d: ldc.i4.2 + IL_005e: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::current + IL_0063: ldc.i4.1 + IL_0064: ret + + IL_0065: ldarg.0 + IL_0066: ldc.i4.3 + IL_0067: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc + IL_006c: ldarg.0 + IL_006d: ldc.i4.0 + IL_006e: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::current + IL_0073: ldc.i4.0 + IL_0074: ret } .method public strict virtual instance void Close() cil managed @@ -150,28 +148,26 @@ IL_001b: br.s IL_0029 IL_001d: nop - IL_001e: br.s IL_0030 + IL_001e: br.s IL_002e IL_0020: nop - IL_0021: br.s IL_002e + IL_0021: br.s IL_002c IL_0023: nop - IL_0024: br.s IL_002c + IL_0024: br.s IL_002a IL_0026: nop - IL_0027: br.s IL_0030 + IL_0027: br.s IL_002e IL_0029: nop - IL_002a: br.s IL_002c + IL_002a: ldc.i4.0 + IL_002b: ret IL_002c: ldc.i4.0 IL_002d: ret IL_002e: ldc.i4.0 IL_002f: ret - - IL_0030: ldc.i4.0 - IL_0031: ret } .method public strict virtual instance int32 get_LastGenerated() cil managed @@ -242,4 +238,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest02.fs.RealInternalSignatureOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest02.fs.RealInternalSignatureOn.il.bsl index a92b1ebd5be..f6a5ed6993f 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest02.fs.RealInternalSignatureOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest02.fs.RealInternalSignatureOn.il.bsl @@ -79,51 +79,49 @@ IL_0019: br.s IL_0024 IL_001b: nop - IL_001c: br.s IL_0047 + IL_001c: br.s IL_0045 IL_001e: nop - IL_001f: br.s IL_0067 + IL_001f: br.s IL_0065 IL_0021: nop - IL_0022: br.s IL_006e + IL_0022: br.s IL_006c IL_0024: nop - IL_0025: br.s IL_0027 - - IL_0027: ldstr "hello" - IL_002c: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0031: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0036: pop - IL_0037: ldarg.0 - IL_0038: ldc.i4.1 - IL_0039: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc - IL_003e: ldarg.0 - IL_003f: ldc.i4.1 - IL_0040: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::current - IL_0045: ldc.i4.1 - IL_0046: ret - - IL_0047: ldstr "goodbye" - IL_004c: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0051: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0056: pop - IL_0057: ldarg.0 - IL_0058: ldc.i4.2 - IL_0059: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc - IL_005e: ldarg.0 - IL_005f: ldc.i4.2 - IL_0060: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::current - IL_0065: ldc.i4.1 - IL_0066: ret - - IL_0067: ldarg.0 - IL_0068: ldc.i4.3 - IL_0069: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc - IL_006e: ldarg.0 - IL_006f: ldc.i4.0 - IL_0070: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::current - IL_0075: ldc.i4.0 - IL_0076: ret + IL_0025: ldstr "hello" + IL_002a: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_002f: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0034: pop + IL_0035: ldarg.0 + IL_0036: ldc.i4.1 + IL_0037: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc + IL_003c: ldarg.0 + IL_003d: ldc.i4.1 + IL_003e: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::current + IL_0043: ldc.i4.1 + IL_0044: ret + + IL_0045: ldstr "goodbye" + IL_004a: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_004f: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0054: pop + IL_0055: ldarg.0 + IL_0056: ldc.i4.2 + IL_0057: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc + IL_005c: ldarg.0 + IL_005d: ldc.i4.2 + IL_005e: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::current + IL_0063: ldc.i4.1 + IL_0064: ret + + IL_0065: ldarg.0 + IL_0066: ldc.i4.3 + IL_0067: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::pc + IL_006c: ldarg.0 + IL_006d: ldc.i4.0 + IL_006e: stfld int32 SeqExpressionSteppingTest2/SeqExpressionSteppingTest2/f1@5::current + IL_0073: ldc.i4.0 + IL_0074: ret } .method public strict virtual instance void Close() cil managed @@ -150,28 +148,26 @@ IL_001b: br.s IL_0029 IL_001d: nop - IL_001e: br.s IL_0030 + IL_001e: br.s IL_002e IL_0020: nop - IL_0021: br.s IL_002e + IL_0021: br.s IL_002c IL_0023: nop - IL_0024: br.s IL_002c + IL_0024: br.s IL_002a IL_0026: nop - IL_0027: br.s IL_0030 + IL_0027: br.s IL_002e IL_0029: nop - IL_002a: br.s IL_002c + IL_002a: ldc.i4.0 + IL_002b: ret IL_002c: ldc.i4.0 IL_002d: ret IL_002e: ldc.i4.0 IL_002f: ret - - IL_0030: ldc.i4.0 - IL_0031: ret } .method public strict virtual instance int32 get_LastGenerated() cil managed @@ -280,4 +276,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest03.fs.RealInternalSignatureOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest03.fs.RealInternalSignatureOff.il.bsl index 28b90fa0b35..ba5aaad53be 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest03.fs.RealInternalSignatureOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest03.fs.RealInternalSignatureOff.il.bsl @@ -85,53 +85,51 @@ IL_0015: br.s IL_001d IL_0017: nop - IL_0018: br.s IL_0064 + IL_0018: br.s IL_0062 IL_001a: nop - IL_001b: br.s IL_0079 + IL_001b: br.s IL_0077 IL_001d: nop - IL_001e: br.s IL_0020 - - IL_0020: br.s IL_0064 - - IL_0022: ldarg.0 - IL_0023: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::x - IL_0028: ldarg.0 - IL_0029: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::x - IL_002e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_0033: ldc.i4.1 - IL_0034: add - IL_0035: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) - IL_003a: ldstr "hello" - IL_003f: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0044: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0049: pop - IL_004a: ldarg.0 - IL_004b: ldc.i4.1 - IL_004c: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::pc - IL_0051: ldarg.0 - IL_0052: ldarg.0 - IL_0053: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::x - IL_0058: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_005d: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::current - IL_0062: ldc.i4.1 - IL_0063: ret - - IL_0064: ldarg.0 - IL_0065: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::x - IL_006a: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_006f: ldc.i4.4 - IL_0070: blt.s IL_0022 - - IL_0072: ldarg.0 - IL_0073: ldc.i4.2 - IL_0074: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::pc - IL_0079: ldarg.0 - IL_007a: ldc.i4.0 - IL_007b: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::current - IL_0080: ldc.i4.0 - IL_0081: ret + IL_001e: br.s IL_0062 + + IL_0020: ldarg.0 + IL_0021: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::x + IL_0026: ldarg.0 + IL_0027: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::x + IL_002c: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_0031: ldc.i4.1 + IL_0032: add + IL_0033: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) + IL_0038: ldstr "hello" + IL_003d: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_0042: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0047: pop + IL_0048: ldarg.0 + IL_0049: ldc.i4.1 + IL_004a: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::pc + IL_004f: ldarg.0 + IL_0050: ldarg.0 + IL_0051: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::x + IL_0056: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_005b: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::current + IL_0060: ldc.i4.1 + IL_0061: ret + + IL_0062: ldarg.0 + IL_0063: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::x + IL_0068: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_006d: ldc.i4.4 + IL_006e: blt.s IL_0020 + + IL_0070: ldarg.0 + IL_0071: ldc.i4.2 + IL_0072: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::pc + IL_0077: ldarg.0 + IL_0078: ldc.i4.0 + IL_0079: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::current + IL_007e: ldc.i4.0 + IL_007f: ret } .method public strict virtual instance void Close() cil managed @@ -157,22 +155,20 @@ IL_0017: br.s IL_0022 IL_0019: nop - IL_001a: br.s IL_0027 + IL_001a: br.s IL_0025 IL_001c: nop - IL_001d: br.s IL_0025 + IL_001d: br.s IL_0023 IL_001f: nop - IL_0020: br.s IL_0027 + IL_0020: br.s IL_0025 IL_0022: nop - IL_0023: br.s IL_0025 + IL_0023: ldc.i4.0 + IL_0024: ret IL_0025: ldc.i4.0 IL_0026: ret - - IL_0027: ldc.i4.0 - IL_0028: ret } .method public strict virtual instance int32 get_LastGenerated() cil managed @@ -252,4 +248,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest03.fs.RealInternalSignatureOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest03.fs.RealInternalSignatureOn.il.bsl index f1cf30c15a7..d73c677bc54 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest03.fs.RealInternalSignatureOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest03.fs.RealInternalSignatureOn.il.bsl @@ -85,53 +85,51 @@ IL_0015: br.s IL_001d IL_0017: nop - IL_0018: br.s IL_0064 + IL_0018: br.s IL_0062 IL_001a: nop - IL_001b: br.s IL_0079 + IL_001b: br.s IL_0077 IL_001d: nop - IL_001e: br.s IL_0020 - - IL_0020: br.s IL_0064 - - IL_0022: ldarg.0 - IL_0023: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::x - IL_0028: ldarg.0 - IL_0029: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::x - IL_002e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_0033: ldc.i4.1 - IL_0034: add - IL_0035: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) - IL_003a: ldstr "hello" - IL_003f: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0044: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0049: pop - IL_004a: ldarg.0 - IL_004b: ldc.i4.1 - IL_004c: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::pc - IL_0051: ldarg.0 - IL_0052: ldarg.0 - IL_0053: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::x - IL_0058: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_005d: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::current - IL_0062: ldc.i4.1 - IL_0063: ret - - IL_0064: ldarg.0 - IL_0065: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::x - IL_006a: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_006f: ldc.i4.4 - IL_0070: blt.s IL_0022 - - IL_0072: ldarg.0 - IL_0073: ldc.i4.2 - IL_0074: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::pc - IL_0079: ldarg.0 - IL_007a: ldc.i4.0 - IL_007b: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::current - IL_0080: ldc.i4.0 - IL_0081: ret + IL_001e: br.s IL_0062 + + IL_0020: ldarg.0 + IL_0021: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::x + IL_0026: ldarg.0 + IL_0027: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::x + IL_002c: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_0031: ldc.i4.1 + IL_0032: add + IL_0033: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) + IL_0038: ldstr "hello" + IL_003d: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_0042: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0047: pop + IL_0048: ldarg.0 + IL_0049: ldc.i4.1 + IL_004a: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::pc + IL_004f: ldarg.0 + IL_0050: ldarg.0 + IL_0051: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::x + IL_0056: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_005b: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::current + IL_0060: ldc.i4.1 + IL_0061: ret + + IL_0062: ldarg.0 + IL_0063: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::x + IL_0068: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_006d: ldc.i4.4 + IL_006e: blt.s IL_0020 + + IL_0070: ldarg.0 + IL_0071: ldc.i4.2 + IL_0072: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::pc + IL_0077: ldarg.0 + IL_0078: ldc.i4.0 + IL_0079: stfld int32 SeqExpressionSteppingTest3/SeqExpressionSteppingTest3/f2@7::current + IL_007e: ldc.i4.0 + IL_007f: ret } .method public strict virtual instance void Close() cil managed @@ -157,22 +155,20 @@ IL_0017: br.s IL_0022 IL_0019: nop - IL_001a: br.s IL_0027 + IL_001a: br.s IL_0025 IL_001c: nop - IL_001d: br.s IL_0025 + IL_001d: br.s IL_0023 IL_001f: nop - IL_0020: br.s IL_0027 + IL_0020: br.s IL_0025 IL_0022: nop - IL_0023: br.s IL_0025 + IL_0023: ldc.i4.0 + IL_0024: ret IL_0025: ldc.i4.0 IL_0026: ret - - IL_0027: ldc.i4.0 - IL_0028: ret } .method public strict virtual instance int32 get_LastGenerated() cil managed @@ -290,4 +286,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest04.fs.RealInternalSignatureOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest04.fs.RealInternalSignatureOff.il.bsl index a6dab7f8f66..989d0323600 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest04.fs.RealInternalSignatureOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest04.fs.RealInternalSignatureOff.il.bsl @@ -92,83 +92,81 @@ IL_0019: br.s IL_002a IL_001b: nop - IL_001c: br.s IL_008f + IL_001c: br.s IL_008d IL_001e: nop - IL_001f: br IL_00b7 + IL_001f: br IL_00b5 IL_0024: nop - IL_0025: br IL_00cc + IL_0025: br IL_00ca IL_002a: nop - IL_002b: br.s IL_002d - - IL_002d: ldarg.0 - IL_002e: ldc.i4.0 - IL_002f: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::.ctor(!0) - IL_0034: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x - IL_0039: ldarg.0 - IL_003a: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x - IL_003f: ldarg.0 - IL_0040: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x - IL_0045: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_004a: ldc.i4.1 - IL_004b: add - IL_004c: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) - IL_0051: ldarg.0 - IL_0052: ldc.i4.0 - IL_0053: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::.ctor(!0) - IL_0058: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y - IL_005d: ldarg.0 - IL_005e: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y - IL_0063: ldarg.0 - IL_0064: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y - IL_0069: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_006e: ldc.i4.1 - IL_006f: add - IL_0070: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) - IL_0075: ldarg.0 - IL_0076: ldc.i4.1 - IL_0077: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::pc - IL_007c: ldarg.0 - IL_007d: ldarg.0 - IL_007e: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x - IL_0083: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_0088: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::current - IL_008d: ldc.i4.1 - IL_008e: ret - - IL_008f: ldarg.0 - IL_0090: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x - IL_0095: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_009a: ldarg.0 - IL_009b: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y - IL_00a0: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_00a5: add - IL_00a6: stloc.0 - IL_00a7: ldarg.0 - IL_00a8: ldc.i4.2 - IL_00a9: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::pc - IL_00ae: ldarg.0 - IL_00af: ldloc.0 - IL_00b0: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::current - IL_00b5: ldc.i4.1 - IL_00b6: ret - - IL_00b7: ldarg.0 - IL_00b8: ldnull - IL_00b9: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y - IL_00be: ldarg.0 - IL_00bf: ldnull - IL_00c0: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x - IL_00c5: ldarg.0 - IL_00c6: ldc.i4.3 - IL_00c7: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::pc - IL_00cc: ldarg.0 - IL_00cd: ldc.i4.0 - IL_00ce: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::current - IL_00d3: ldc.i4.0 - IL_00d4: ret + IL_002b: ldarg.0 + IL_002c: ldc.i4.0 + IL_002d: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::.ctor(!0) + IL_0032: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x + IL_0037: ldarg.0 + IL_0038: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x + IL_003d: ldarg.0 + IL_003e: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x + IL_0043: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_0048: ldc.i4.1 + IL_0049: add + IL_004a: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) + IL_004f: ldarg.0 + IL_0050: ldc.i4.0 + IL_0051: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::.ctor(!0) + IL_0056: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y + IL_005b: ldarg.0 + IL_005c: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y + IL_0061: ldarg.0 + IL_0062: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y + IL_0067: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_006c: ldc.i4.1 + IL_006d: add + IL_006e: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) + IL_0073: ldarg.0 + IL_0074: ldc.i4.1 + IL_0075: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::pc + IL_007a: ldarg.0 + IL_007b: ldarg.0 + IL_007c: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x + IL_0081: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_0086: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::current + IL_008b: ldc.i4.1 + IL_008c: ret + + IL_008d: ldarg.0 + IL_008e: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x + IL_0093: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_0098: ldarg.0 + IL_0099: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y + IL_009e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_00a3: add + IL_00a4: stloc.0 + IL_00a5: ldarg.0 + IL_00a6: ldc.i4.2 + IL_00a7: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::pc + IL_00ac: ldarg.0 + IL_00ad: ldloc.0 + IL_00ae: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::current + IL_00b3: ldc.i4.1 + IL_00b4: ret + + IL_00b5: ldarg.0 + IL_00b6: ldnull + IL_00b7: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y + IL_00bc: ldarg.0 + IL_00bd: ldnull + IL_00be: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x + IL_00c3: ldarg.0 + IL_00c4: ldc.i4.3 + IL_00c5: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::pc + IL_00ca: ldarg.0 + IL_00cb: ldc.i4.0 + IL_00cc: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::current + IL_00d1: ldc.i4.0 + IL_00d2: ret } .method public strict virtual instance void Close() cil managed @@ -195,28 +193,26 @@ IL_001b: br.s IL_0029 IL_001d: nop - IL_001e: br.s IL_0030 + IL_001e: br.s IL_002e IL_0020: nop - IL_0021: br.s IL_002e + IL_0021: br.s IL_002c IL_0023: nop - IL_0024: br.s IL_002c + IL_0024: br.s IL_002a IL_0026: nop - IL_0027: br.s IL_0030 + IL_0027: br.s IL_002e IL_0029: nop - IL_002a: br.s IL_002c + IL_002a: ldc.i4.0 + IL_002b: ret IL_002c: ldc.i4.0 IL_002d: ret IL_002e: ldc.i4.0 IL_002f: ret - - IL_0030: ldc.i4.0 - IL_0031: ret } .method public strict virtual instance int32 get_LastGenerated() cil managed @@ -295,4 +291,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest04.fs.RealInternalSignatureOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest04.fs.RealInternalSignatureOn.il.bsl index cad791c94b5..2eec3a62fd4 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest04.fs.RealInternalSignatureOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest04.fs.RealInternalSignatureOn.il.bsl @@ -92,83 +92,81 @@ IL_0019: br.s IL_002a IL_001b: nop - IL_001c: br.s IL_008f + IL_001c: br.s IL_008d IL_001e: nop - IL_001f: br IL_00b7 + IL_001f: br IL_00b5 IL_0024: nop - IL_0025: br IL_00cc + IL_0025: br IL_00ca IL_002a: nop - IL_002b: br.s IL_002d - - IL_002d: ldarg.0 - IL_002e: ldc.i4.0 - IL_002f: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::.ctor(!0) - IL_0034: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x - IL_0039: ldarg.0 - IL_003a: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x - IL_003f: ldarg.0 - IL_0040: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x - IL_0045: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_004a: ldc.i4.1 - IL_004b: add - IL_004c: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) - IL_0051: ldarg.0 - IL_0052: ldc.i4.0 - IL_0053: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::.ctor(!0) - IL_0058: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y - IL_005d: ldarg.0 - IL_005e: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y - IL_0063: ldarg.0 - IL_0064: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y - IL_0069: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_006e: ldc.i4.1 - IL_006f: add - IL_0070: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) - IL_0075: ldarg.0 - IL_0076: ldc.i4.1 - IL_0077: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::pc - IL_007c: ldarg.0 - IL_007d: ldarg.0 - IL_007e: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x - IL_0083: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_0088: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::current - IL_008d: ldc.i4.1 - IL_008e: ret - - IL_008f: ldarg.0 - IL_0090: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x - IL_0095: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_009a: ldarg.0 - IL_009b: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y - IL_00a0: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_00a5: add - IL_00a6: stloc.0 - IL_00a7: ldarg.0 - IL_00a8: ldc.i4.2 - IL_00a9: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::pc - IL_00ae: ldarg.0 - IL_00af: ldloc.0 - IL_00b0: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::current - IL_00b5: ldc.i4.1 - IL_00b6: ret - - IL_00b7: ldarg.0 - IL_00b8: ldnull - IL_00b9: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y - IL_00be: ldarg.0 - IL_00bf: ldnull - IL_00c0: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x - IL_00c5: ldarg.0 - IL_00c6: ldc.i4.3 - IL_00c7: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::pc - IL_00cc: ldarg.0 - IL_00cd: ldc.i4.0 - IL_00ce: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::current - IL_00d3: ldc.i4.0 - IL_00d4: ret + IL_002b: ldarg.0 + IL_002c: ldc.i4.0 + IL_002d: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::.ctor(!0) + IL_0032: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x + IL_0037: ldarg.0 + IL_0038: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x + IL_003d: ldarg.0 + IL_003e: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x + IL_0043: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_0048: ldc.i4.1 + IL_0049: add + IL_004a: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) + IL_004f: ldarg.0 + IL_0050: ldc.i4.0 + IL_0051: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::.ctor(!0) + IL_0056: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y + IL_005b: ldarg.0 + IL_005c: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y + IL_0061: ldarg.0 + IL_0062: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y + IL_0067: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_006c: ldc.i4.1 + IL_006d: add + IL_006e: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) + IL_0073: ldarg.0 + IL_0074: ldc.i4.1 + IL_0075: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::pc + IL_007a: ldarg.0 + IL_007b: ldarg.0 + IL_007c: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x + IL_0081: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_0086: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::current + IL_008b: ldc.i4.1 + IL_008c: ret + + IL_008d: ldarg.0 + IL_008e: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x + IL_0093: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_0098: ldarg.0 + IL_0099: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y + IL_009e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_00a3: add + IL_00a4: stloc.0 + IL_00a5: ldarg.0 + IL_00a6: ldc.i4.2 + IL_00a7: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::pc + IL_00ac: ldarg.0 + IL_00ad: ldloc.0 + IL_00ae: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::current + IL_00b3: ldc.i4.1 + IL_00b4: ret + + IL_00b5: ldarg.0 + IL_00b6: ldnull + IL_00b7: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::y + IL_00bc: ldarg.0 + IL_00bd: ldnull + IL_00be: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::x + IL_00c3: ldarg.0 + IL_00c4: ldc.i4.3 + IL_00c5: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::pc + IL_00ca: ldarg.0 + IL_00cb: ldc.i4.0 + IL_00cc: stfld int32 SeqExpressionSteppingTest4/SeqExpressionSteppingTest4/f3@6::current + IL_00d1: ldc.i4.0 + IL_00d2: ret } .method public strict virtual instance void Close() cil managed @@ -195,28 +193,26 @@ IL_001b: br.s IL_0029 IL_001d: nop - IL_001e: br.s IL_0030 + IL_001e: br.s IL_002e IL_0020: nop - IL_0021: br.s IL_002e + IL_0021: br.s IL_002c IL_0023: nop - IL_0024: br.s IL_002c + IL_0024: br.s IL_002a IL_0026: nop - IL_0027: br.s IL_0030 + IL_0027: br.s IL_002e IL_0029: nop - IL_002a: br.s IL_002c + IL_002a: ldc.i4.0 + IL_002b: ret IL_002c: ldc.i4.0 IL_002d: ret IL_002e: ldc.i4.0 IL_002f: ret - - IL_0030: ldc.i4.0 - IL_0031: ret } .method public strict virtual instance int32 get_LastGenerated() cil managed @@ -333,4 +329,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest05.fs.RealInternalSignatureOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest05.fs.RealInternalSignatureOff.il.bsl index fc33a5f8b50..2b7c6337a76 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest05.fs.RealInternalSignatureOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest05.fs.RealInternalSignatureOff.il.bsl @@ -93,96 +93,94 @@ IL_001d: br.s IL_0034 IL_001f: nop - IL_0020: br IL_00b7 + IL_0020: br IL_00b5 IL_0025: nop - IL_0026: br.s IL_0088 + IL_0026: br.s IL_0086 IL_0028: nop - IL_0029: br IL_00b0 + IL_0029: br IL_00ae IL_002e: nop - IL_002f: br IL_00f4 + IL_002f: br IL_00f2 IL_0034: nop - IL_0035: br.s IL_0037 - - IL_0037: ldarg.0 - IL_0038: ldc.i4.0 - IL_0039: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::.ctor(!0) - IL_003e: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x - IL_0043: ldarg.0 - IL_0044: ldc.i4.1 - IL_0045: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc - IL_004a: ldarg.0 - IL_004b: ldc.i4.0 - IL_004c: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::.ctor(!0) - IL_0051: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y - IL_0056: ldarg.0 - IL_0057: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y - IL_005c: ldarg.0 - IL_005d: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y - IL_0062: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_0067: ldc.i4.1 - IL_0068: add - IL_0069: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) - IL_006e: ldarg.0 - IL_006f: ldc.i4.2 - IL_0070: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc - IL_0075: ldarg.0 - IL_0076: ldarg.0 - IL_0077: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x - IL_007c: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_0081: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::current - IL_0086: ldc.i4.1 - IL_0087: ret - - IL_0088: ldarg.0 - IL_0089: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x - IL_008e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_0093: ldarg.0 - IL_0094: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y - IL_0099: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_009e: add - IL_009f: stloc.0 - IL_00a0: ldarg.0 - IL_00a1: ldc.i4.3 - IL_00a2: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc - IL_00a7: ldarg.0 - IL_00a8: ldloc.0 - IL_00a9: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::current - IL_00ae: ldc.i4.1 - IL_00af: ret - - IL_00b0: ldarg.0 - IL_00b1: ldnull - IL_00b2: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y - IL_00b7: ldarg.0 - IL_00b8: ldc.i4.4 - IL_00b9: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc - IL_00be: ldarg.0 - IL_00bf: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x - IL_00c4: ldarg.0 - IL_00c5: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x - IL_00ca: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_00cf: ldc.i4.1 - IL_00d0: add - IL_00d1: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) - IL_00d6: ldstr "done" - IL_00db: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_00e0: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_00e5: pop - IL_00e6: ldarg.0 - IL_00e7: ldnull - IL_00e8: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x - IL_00ed: ldarg.0 - IL_00ee: ldc.i4.4 - IL_00ef: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc - IL_00f4: ldarg.0 - IL_00f5: ldc.i4.0 - IL_00f6: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::current - IL_00fb: ldc.i4.0 - IL_00fc: ret + IL_0035: ldarg.0 + IL_0036: ldc.i4.0 + IL_0037: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::.ctor(!0) + IL_003c: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x + IL_0041: ldarg.0 + IL_0042: ldc.i4.1 + IL_0043: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc + IL_0048: ldarg.0 + IL_0049: ldc.i4.0 + IL_004a: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::.ctor(!0) + IL_004f: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y + IL_0054: ldarg.0 + IL_0055: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y + IL_005a: ldarg.0 + IL_005b: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y + IL_0060: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_0065: ldc.i4.1 + IL_0066: add + IL_0067: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) + IL_006c: ldarg.0 + IL_006d: ldc.i4.2 + IL_006e: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc + IL_0073: ldarg.0 + IL_0074: ldarg.0 + IL_0075: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x + IL_007a: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_007f: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::current + IL_0084: ldc.i4.1 + IL_0085: ret + + IL_0086: ldarg.0 + IL_0087: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x + IL_008c: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_0091: ldarg.0 + IL_0092: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y + IL_0097: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_009c: add + IL_009d: stloc.0 + IL_009e: ldarg.0 + IL_009f: ldc.i4.3 + IL_00a0: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc + IL_00a5: ldarg.0 + IL_00a6: ldloc.0 + IL_00a7: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::current + IL_00ac: ldc.i4.1 + IL_00ad: ret + + IL_00ae: ldarg.0 + IL_00af: ldnull + IL_00b0: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y + IL_00b5: ldarg.0 + IL_00b6: ldc.i4.4 + IL_00b7: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc + IL_00bc: ldarg.0 + IL_00bd: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x + IL_00c2: ldarg.0 + IL_00c3: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x + IL_00c8: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_00cd: ldc.i4.1 + IL_00ce: add + IL_00cf: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) + IL_00d4: ldstr "done" + IL_00d9: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_00de: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_00e3: pop + IL_00e4: ldarg.0 + IL_00e5: ldnull + IL_00e6: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x + IL_00eb: ldarg.0 + IL_00ec: ldc.i4.4 + IL_00ed: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc + IL_00f2: ldarg.0 + IL_00f3: ldc.i4.0 + IL_00f4: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::current + IL_00f9: ldc.i4.0 + IL_00fa: ret } .method public strict virtual instance void Close() cil managed @@ -200,7 +198,7 @@ IL_0011: br.s IL_0019 IL_0013: nop - IL_0014: br IL_00a1 + IL_0014: br IL_009f IL_0019: nop .try @@ -216,71 +214,69 @@ IL_0039: br.s IL_004a IL_003b: nop - IL_003c: br.s IL_0081 + IL_003c: br.s IL_007f IL_003e: nop - IL_003f: br.s IL_0051 + IL_003f: br.s IL_004f IL_0041: nop - IL_0042: br.s IL_0050 + IL_0042: br.s IL_004e IL_0044: nop - IL_0045: br.s IL_004d + IL_0045: br.s IL_004b IL_0047: nop - IL_0048: br.s IL_0081 + IL_0048: br.s IL_007f IL_004a: nop - IL_004b: br.s IL_004d - - IL_004d: nop - IL_004e: br.s IL_0051 - - IL_0050: nop - IL_0051: ldarg.0 - IL_0052: ldc.i4.4 - IL_0053: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc - IL_0058: ldarg.0 - IL_0059: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x - IL_005e: ldarg.0 - IL_005f: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x - IL_0064: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_0069: ldc.i4.1 - IL_006a: add - IL_006b: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) - IL_0070: ldstr "done" - IL_0075: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_007a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_007f: pop - IL_0080: nop - IL_0081: ldarg.0 - IL_0082: ldc.i4.4 - IL_0083: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc - IL_0088: ldarg.0 - IL_0089: ldc.i4.0 - IL_008a: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::current - IL_008f: leave.s IL_009b + IL_004b: nop + IL_004c: br.s IL_004f + + IL_004e: nop + IL_004f: ldarg.0 + IL_0050: ldc.i4.4 + IL_0051: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc + IL_0056: ldarg.0 + IL_0057: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x + IL_005c: ldarg.0 + IL_005d: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x + IL_0062: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_0067: ldc.i4.1 + IL_0068: add + IL_0069: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) + IL_006e: ldstr "done" + IL_0073: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_0078: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_007d: pop + IL_007e: nop + IL_007f: ldarg.0 + IL_0080: ldc.i4.4 + IL_0081: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc + IL_0086: ldarg.0 + IL_0087: ldc.i4.0 + IL_0088: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::current + IL_008d: leave.s IL_0099 } catch [runtime]System.Object { - IL_0091: castclass [runtime]System.Exception - IL_0096: stloc.1 - IL_0097: ldloc.1 - IL_0098: stloc.0 - IL_0099: leave.s IL_009b + IL_008f: castclass [runtime]System.Exception + IL_0094: stloc.1 + IL_0095: ldloc.1 + IL_0096: stloc.0 + IL_0097: leave.s IL_0099 } - IL_009b: nop - IL_009c: br IL_0000 + IL_0099: nop + IL_009a: br IL_0000 - IL_00a1: ldloc.0 - IL_00a2: brfalse.s IL_00a6 + IL_009f: ldloc.0 + IL_00a0: brfalse.s IL_00a4 - IL_00a4: ldloc.0 - IL_00a5: throw + IL_00a2: ldloc.0 + IL_00a3: throw - IL_00a6: ret + IL_00a4: ret } .method public strict virtual instance bool get_CheckClose() cil managed @@ -298,22 +294,23 @@ IL_001f: br.s IL_0030 IL_0021: nop - IL_0022: br.s IL_0039 + IL_0022: br.s IL_0037 IL_0024: nop - IL_0025: br.s IL_0037 + IL_0025: br.s IL_0035 IL_0027: nop - IL_0028: br.s IL_0035 + IL_0028: br.s IL_0033 IL_002a: nop - IL_002b: br.s IL_0033 + IL_002b: br.s IL_0031 IL_002d: nop - IL_002e: br.s IL_0039 + IL_002e: br.s IL_0037 IL_0030: nop - IL_0031: br.s IL_0033 + IL_0031: ldc.i4.1 + IL_0032: ret IL_0033: ldc.i4.1 IL_0034: ret @@ -321,11 +318,8 @@ IL_0035: ldc.i4.1 IL_0036: ret - IL_0037: ldc.i4.1 + IL_0037: ldc.i4.0 IL_0038: ret - - IL_0039: ldc.i4.0 - IL_003a: ret } .method public strict virtual instance int32 get_LastGenerated() cil managed @@ -404,4 +398,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest05.fs.RealInternalSignatureOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest05.fs.RealInternalSignatureOn.il.bsl index 4c1ae0b7231..3d1146befee 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest05.fs.RealInternalSignatureOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest05.fs.RealInternalSignatureOn.il.bsl @@ -93,96 +93,94 @@ IL_001d: br.s IL_0034 IL_001f: nop - IL_0020: br IL_00b7 + IL_0020: br IL_00b5 IL_0025: nop - IL_0026: br.s IL_0088 + IL_0026: br.s IL_0086 IL_0028: nop - IL_0029: br IL_00b0 + IL_0029: br IL_00ae IL_002e: nop - IL_002f: br IL_00f4 + IL_002f: br IL_00f2 IL_0034: nop - IL_0035: br.s IL_0037 - - IL_0037: ldarg.0 - IL_0038: ldc.i4.0 - IL_0039: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::.ctor(!0) - IL_003e: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x - IL_0043: ldarg.0 - IL_0044: ldc.i4.1 - IL_0045: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc - IL_004a: ldarg.0 - IL_004b: ldc.i4.0 - IL_004c: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::.ctor(!0) - IL_0051: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y - IL_0056: ldarg.0 - IL_0057: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y - IL_005c: ldarg.0 - IL_005d: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y - IL_0062: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_0067: ldc.i4.1 - IL_0068: add - IL_0069: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) - IL_006e: ldarg.0 - IL_006f: ldc.i4.2 - IL_0070: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc - IL_0075: ldarg.0 - IL_0076: ldarg.0 - IL_0077: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x - IL_007c: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_0081: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::current - IL_0086: ldc.i4.1 - IL_0087: ret - - IL_0088: ldarg.0 - IL_0089: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x - IL_008e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_0093: ldarg.0 - IL_0094: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y - IL_0099: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_009e: add - IL_009f: stloc.0 - IL_00a0: ldarg.0 - IL_00a1: ldc.i4.3 - IL_00a2: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc - IL_00a7: ldarg.0 - IL_00a8: ldloc.0 - IL_00a9: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::current - IL_00ae: ldc.i4.1 - IL_00af: ret - - IL_00b0: ldarg.0 - IL_00b1: ldnull - IL_00b2: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y - IL_00b7: ldarg.0 - IL_00b8: ldc.i4.4 - IL_00b9: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc - IL_00be: ldarg.0 - IL_00bf: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x - IL_00c4: ldarg.0 - IL_00c5: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x - IL_00ca: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_00cf: ldc.i4.1 - IL_00d0: add - IL_00d1: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) - IL_00d6: ldstr "done" - IL_00db: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_00e0: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_00e5: pop - IL_00e6: ldarg.0 - IL_00e7: ldnull - IL_00e8: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x - IL_00ed: ldarg.0 - IL_00ee: ldc.i4.4 - IL_00ef: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc - IL_00f4: ldarg.0 - IL_00f5: ldc.i4.0 - IL_00f6: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::current - IL_00fb: ldc.i4.0 - IL_00fc: ret + IL_0035: ldarg.0 + IL_0036: ldc.i4.0 + IL_0037: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::.ctor(!0) + IL_003c: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x + IL_0041: ldarg.0 + IL_0042: ldc.i4.1 + IL_0043: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc + IL_0048: ldarg.0 + IL_0049: ldc.i4.0 + IL_004a: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::.ctor(!0) + IL_004f: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y + IL_0054: ldarg.0 + IL_0055: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y + IL_005a: ldarg.0 + IL_005b: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y + IL_0060: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_0065: ldc.i4.1 + IL_0066: add + IL_0067: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) + IL_006c: ldarg.0 + IL_006d: ldc.i4.2 + IL_006e: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc + IL_0073: ldarg.0 + IL_0074: ldarg.0 + IL_0075: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x + IL_007a: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_007f: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::current + IL_0084: ldc.i4.1 + IL_0085: ret + + IL_0086: ldarg.0 + IL_0087: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x + IL_008c: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_0091: ldarg.0 + IL_0092: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y + IL_0097: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_009c: add + IL_009d: stloc.0 + IL_009e: ldarg.0 + IL_009f: ldc.i4.3 + IL_00a0: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc + IL_00a5: ldarg.0 + IL_00a6: ldloc.0 + IL_00a7: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::current + IL_00ac: ldc.i4.1 + IL_00ad: ret + + IL_00ae: ldarg.0 + IL_00af: ldnull + IL_00b0: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::y + IL_00b5: ldarg.0 + IL_00b6: ldc.i4.4 + IL_00b7: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc + IL_00bc: ldarg.0 + IL_00bd: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x + IL_00c2: ldarg.0 + IL_00c3: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x + IL_00c8: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_00cd: ldc.i4.1 + IL_00ce: add + IL_00cf: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) + IL_00d4: ldstr "done" + IL_00d9: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_00de: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_00e3: pop + IL_00e4: ldarg.0 + IL_00e5: ldnull + IL_00e6: stfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x + IL_00eb: ldarg.0 + IL_00ec: ldc.i4.4 + IL_00ed: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc + IL_00f2: ldarg.0 + IL_00f3: ldc.i4.0 + IL_00f4: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::current + IL_00f9: ldc.i4.0 + IL_00fa: ret } .method public strict virtual instance void Close() cil managed @@ -200,7 +198,7 @@ IL_0011: br.s IL_0019 IL_0013: nop - IL_0014: br IL_00a1 + IL_0014: br IL_009f IL_0019: nop .try @@ -216,71 +214,69 @@ IL_0039: br.s IL_004a IL_003b: nop - IL_003c: br.s IL_0081 + IL_003c: br.s IL_007f IL_003e: nop - IL_003f: br.s IL_0051 + IL_003f: br.s IL_004f IL_0041: nop - IL_0042: br.s IL_0050 + IL_0042: br.s IL_004e IL_0044: nop - IL_0045: br.s IL_004d + IL_0045: br.s IL_004b IL_0047: nop - IL_0048: br.s IL_0081 + IL_0048: br.s IL_007f IL_004a: nop - IL_004b: br.s IL_004d - - IL_004d: nop - IL_004e: br.s IL_0051 - - IL_0050: nop - IL_0051: ldarg.0 - IL_0052: ldc.i4.4 - IL_0053: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc - IL_0058: ldarg.0 - IL_0059: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x - IL_005e: ldarg.0 - IL_005f: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x - IL_0064: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() - IL_0069: ldc.i4.1 - IL_006a: add - IL_006b: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) - IL_0070: ldstr "done" - IL_0075: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_007a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_007f: pop - IL_0080: nop - IL_0081: ldarg.0 - IL_0082: ldc.i4.4 - IL_0083: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc - IL_0088: ldarg.0 - IL_0089: ldc.i4.0 - IL_008a: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::current - IL_008f: leave.s IL_009b + IL_004b: nop + IL_004c: br.s IL_004f + + IL_004e: nop + IL_004f: ldarg.0 + IL_0050: ldc.i4.4 + IL_0051: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc + IL_0056: ldarg.0 + IL_0057: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x + IL_005c: ldarg.0 + IL_005d: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::x + IL_0062: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::get_contents() + IL_0067: ldc.i4.1 + IL_0068: add + IL_0069: call instance void class [FSharp.Core]Microsoft.FSharp.Core.FSharpRef`1::set_contents(!0) + IL_006e: ldstr "done" + IL_0073: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_0078: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_007d: pop + IL_007e: nop + IL_007f: ldarg.0 + IL_0080: ldc.i4.4 + IL_0081: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::pc + IL_0086: ldarg.0 + IL_0087: ldc.i4.0 + IL_0088: stfld int32 SeqExpressionSteppingTest5/SeqExpressionSteppingTest5/f4@6::current + IL_008d: leave.s IL_0099 } catch [runtime]System.Object { - IL_0091: castclass [runtime]System.Exception - IL_0096: stloc.1 - IL_0097: ldloc.1 - IL_0098: stloc.0 - IL_0099: leave.s IL_009b + IL_008f: castclass [runtime]System.Exception + IL_0094: stloc.1 + IL_0095: ldloc.1 + IL_0096: stloc.0 + IL_0097: leave.s IL_0099 } - IL_009b: nop - IL_009c: br IL_0000 + IL_0099: nop + IL_009a: br IL_0000 - IL_00a1: ldloc.0 - IL_00a2: brfalse.s IL_00a6 + IL_009f: ldloc.0 + IL_00a0: brfalse.s IL_00a4 - IL_00a4: ldloc.0 - IL_00a5: throw + IL_00a2: ldloc.0 + IL_00a3: throw - IL_00a6: ret + IL_00a4: ret } .method public strict virtual instance bool get_CheckClose() cil managed @@ -298,22 +294,23 @@ IL_001f: br.s IL_0030 IL_0021: nop - IL_0022: br.s IL_0039 + IL_0022: br.s IL_0037 IL_0024: nop - IL_0025: br.s IL_0037 + IL_0025: br.s IL_0035 IL_0027: nop - IL_0028: br.s IL_0035 + IL_0028: br.s IL_0033 IL_002a: nop - IL_002b: br.s IL_0033 + IL_002b: br.s IL_0031 IL_002d: nop - IL_002e: br.s IL_0039 + IL_002e: br.s IL_0037 IL_0030: nop - IL_0031: br.s IL_0033 + IL_0031: ldc.i4.1 + IL_0032: ret IL_0033: ldc.i4.1 IL_0034: ret @@ -321,11 +318,8 @@ IL_0035: ldc.i4.1 IL_0036: ret - IL_0037: ldc.i4.1 + IL_0037: ldc.i4.0 IL_0038: ret - - IL_0039: ldc.i4.0 - IL_003a: ret } .method public strict virtual instance int32 get_LastGenerated() cil managed @@ -442,4 +436,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest06.fs.RealInternalSignatureOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest06.fs.RealInternalSignatureOff.il.bsl index 0af1fadae60..9b0653e6fb9 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest06.fs.RealInternalSignatureOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest06.fs.RealInternalSignatureOff.il.bsl @@ -103,117 +103,115 @@ IL_0021: br.s IL_003b IL_0023: nop - IL_0024: br.s IL_0092 + IL_0024: br.s IL_0090 IL_0026: nop - IL_0027: br.s IL_0085 + IL_0027: br.s IL_0083 IL_0029: nop - IL_002a: br IL_0100 + IL_002a: br IL_00fe IL_002f: nop - IL_0030: br IL_00f3 + IL_0030: br IL_00f1 IL_0035: nop - IL_0036: br IL_0121 + IL_0036: br IL_011f IL_003b: nop - IL_003c: br.s IL_003e - - IL_003e: ldarg.0 - IL_003f: stloc.0 - IL_0040: ldloc.0 - IL_0041: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6::get_es() - IL_0046: callvirt instance class [runtime]System.Collections.Generic.IEnumerator`1 class [runtime]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_004b: stfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' - IL_0050: ldarg.0 - IL_0051: ldc.i4.1 - IL_0052: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_0057: br.s IL_0085 - - IL_0059: ldarg.0 - IL_005a: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' - IL_005f: callvirt instance !0 class [runtime]System.Collections.Generic.IEnumerator`1::get_Current() - IL_0064: stloc.1 - IL_0065: ldstr "hello" - IL_006a: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_006f: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0074: pop - IL_0075: ldarg.0 - IL_0076: ldc.i4.2 - IL_0077: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_007c: ldarg.0 - IL_007d: ldloc.1 - IL_007e: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current - IL_0083: ldc.i4.1 - IL_0084: ret - - IL_0085: ldarg.0 - IL_0086: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' - IL_008b: callvirt instance bool [runtime]System.Collections.IEnumerator::MoveNext() - IL_0090: brtrue.s IL_0059 - - IL_0092: ldarg.0 - IL_0093: ldc.i4.5 - IL_0094: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_0099: ldarg.0 - IL_009a: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' - IL_009f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_00a4: nop - IL_00a5: ldarg.0 - IL_00a6: ldnull - IL_00a7: stfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' - IL_00ac: ldarg.0 - IL_00ad: stloc.2 - IL_00ae: ldloc.2 - IL_00af: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6::get_es() - IL_00b4: callvirt instance class [runtime]System.Collections.Generic.IEnumerator`1 class [runtime]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_00b9: stfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 - IL_00be: ldarg.0 - IL_00bf: ldc.i4.3 - IL_00c0: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_00c5: br.s IL_00f3 - - IL_00c7: ldarg.0 - IL_00c8: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 - IL_00cd: callvirt instance !0 class [runtime]System.Collections.Generic.IEnumerator`1::get_Current() - IL_00d2: stloc.3 - IL_00d3: ldstr "goodbye" - IL_00d8: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_00dd: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_00e2: pop - IL_00e3: ldarg.0 - IL_00e4: ldc.i4.4 - IL_00e5: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_00ea: ldarg.0 - IL_00eb: ldloc.3 - IL_00ec: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current - IL_00f1: ldc.i4.1 - IL_00f2: ret - - IL_00f3: ldarg.0 - IL_00f4: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 - IL_00f9: callvirt instance bool [runtime]System.Collections.IEnumerator::MoveNext() - IL_00fe: brtrue.s IL_00c7 - - IL_0100: ldarg.0 - IL_0101: ldc.i4.5 - IL_0102: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_0107: ldarg.0 - IL_0108: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 - IL_010d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0112: nop - IL_0113: ldarg.0 - IL_0114: ldnull - IL_0115: stfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 - IL_011a: ldarg.0 - IL_011b: ldc.i4.5 - IL_011c: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_0121: ldarg.0 - IL_0122: ldc.i4.0 - IL_0123: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current - IL_0128: ldc.i4.0 - IL_0129: ret + IL_003c: ldarg.0 + IL_003d: stloc.0 + IL_003e: ldloc.0 + IL_003f: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6::get_es() + IL_0044: callvirt instance class [runtime]System.Collections.Generic.IEnumerator`1 class [runtime]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0049: stfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' + IL_004e: ldarg.0 + IL_004f: ldc.i4.1 + IL_0050: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_0055: br.s IL_0083 + + IL_0057: ldarg.0 + IL_0058: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' + IL_005d: callvirt instance !0 class [runtime]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0062: stloc.1 + IL_0063: ldstr "hello" + IL_0068: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_006d: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0072: pop + IL_0073: ldarg.0 + IL_0074: ldc.i4.2 + IL_0075: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_007a: ldarg.0 + IL_007b: ldloc.1 + IL_007c: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current + IL_0081: ldc.i4.1 + IL_0082: ret + + IL_0083: ldarg.0 + IL_0084: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' + IL_0089: callvirt instance bool [runtime]System.Collections.IEnumerator::MoveNext() + IL_008e: brtrue.s IL_0057 + + IL_0090: ldarg.0 + IL_0091: ldc.i4.5 + IL_0092: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_0097: ldarg.0 + IL_0098: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' + IL_009d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_00a2: nop + IL_00a3: ldarg.0 + IL_00a4: ldnull + IL_00a5: stfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' + IL_00aa: ldarg.0 + IL_00ab: stloc.2 + IL_00ac: ldloc.2 + IL_00ad: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6::get_es() + IL_00b2: callvirt instance class [runtime]System.Collections.Generic.IEnumerator`1 class [runtime]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_00b7: stfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 + IL_00bc: ldarg.0 + IL_00bd: ldc.i4.3 + IL_00be: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_00c3: br.s IL_00f1 + + IL_00c5: ldarg.0 + IL_00c6: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 + IL_00cb: callvirt instance !0 class [runtime]System.Collections.Generic.IEnumerator`1::get_Current() + IL_00d0: stloc.3 + IL_00d1: ldstr "goodbye" + IL_00d6: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_00db: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_00e0: pop + IL_00e1: ldarg.0 + IL_00e2: ldc.i4.4 + IL_00e3: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_00e8: ldarg.0 + IL_00e9: ldloc.3 + IL_00ea: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current + IL_00ef: ldc.i4.1 + IL_00f0: ret + + IL_00f1: ldarg.0 + IL_00f2: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 + IL_00f7: callvirt instance bool [runtime]System.Collections.IEnumerator::MoveNext() + IL_00fc: brtrue.s IL_00c5 + + IL_00fe: ldarg.0 + IL_00ff: ldc.i4.5 + IL_0100: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_0105: ldarg.0 + IL_0106: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 + IL_010b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0110: nop + IL_0111: ldarg.0 + IL_0112: ldnull + IL_0113: stfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 + IL_0118: ldarg.0 + IL_0119: ldc.i4.5 + IL_011a: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_011f: ldarg.0 + IL_0120: ldc.i4.0 + IL_0121: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current + IL_0126: ldc.i4.0 + IL_0127: ret } .method public strict virtual instance void Close() cil managed @@ -231,7 +229,7 @@ IL_0011: br.s IL_0019 IL_0013: nop - IL_0014: br IL_00a0 + IL_0014: br IL_009e IL_0019: nop .try @@ -248,74 +246,72 @@ IL_003d: br.s IL_0051 IL_003f: nop - IL_0040: br.s IL_0080 + IL_0040: br.s IL_007e IL_0042: nop - IL_0043: br.s IL_006c + IL_0043: br.s IL_006a IL_0045: nop - IL_0046: br.s IL_006b + IL_0046: br.s IL_0069 IL_0048: nop - IL_0049: br.s IL_0055 + IL_0049: br.s IL_0053 IL_004b: nop - IL_004c: br.s IL_0054 + IL_004c: br.s IL_0052 IL_004e: nop - IL_004f: br.s IL_0080 + IL_004f: br.s IL_007e IL_0051: nop - IL_0052: br.s IL_0054 - - IL_0054: nop - IL_0055: ldarg.0 - IL_0056: ldc.i4.5 - IL_0057: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_005c: ldarg.0 - IL_005d: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 - IL_0062: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0067: nop - IL_0068: nop - IL_0069: br.s IL_0080 - - IL_006b: nop - IL_006c: ldarg.0 - IL_006d: ldc.i4.5 - IL_006e: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_0073: ldarg.0 - IL_0074: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' - IL_0079: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_007e: nop - IL_007f: nop - IL_0080: ldarg.0 - IL_0081: ldc.i4.5 - IL_0082: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_0087: ldarg.0 - IL_0088: ldc.i4.0 - IL_0089: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current - IL_008e: leave.s IL_009a + IL_0052: nop + IL_0053: ldarg.0 + IL_0054: ldc.i4.5 + IL_0055: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_005a: ldarg.0 + IL_005b: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 + IL_0060: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0065: nop + IL_0066: nop + IL_0067: br.s IL_007e + + IL_0069: nop + IL_006a: ldarg.0 + IL_006b: ldc.i4.5 + IL_006c: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_0071: ldarg.0 + IL_0072: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: nop + IL_007e: ldarg.0 + IL_007f: ldc.i4.5 + IL_0080: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_0085: ldarg.0 + IL_0086: ldc.i4.0 + IL_0087: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current + IL_008c: leave.s IL_0098 } catch [runtime]System.Object { - IL_0090: castclass [runtime]System.Exception - IL_0095: stloc.1 - IL_0096: ldloc.1 - IL_0097: stloc.0 - IL_0098: leave.s IL_009a + IL_008e: castclass [runtime]System.Exception + IL_0093: stloc.1 + IL_0094: ldloc.1 + IL_0095: stloc.0 + IL_0096: leave.s IL_0098 } - IL_009a: nop - IL_009b: br IL_0000 + IL_0098: nop + IL_0099: br IL_0000 - IL_00a0: ldloc.0 - IL_00a1: brfalse.s IL_00a5 + IL_009e: ldloc.0 + IL_009f: brfalse.s IL_00a3 - IL_00a3: ldloc.0 - IL_00a4: throw + IL_00a1: ldloc.0 + IL_00a2: throw - IL_00a5: ret + IL_00a3: ret } .method public strict virtual instance bool get_CheckClose() cil managed @@ -334,25 +330,26 @@ IL_0023: br.s IL_0037 IL_0025: nop - IL_0026: br.s IL_0042 + IL_0026: br.s IL_0040 IL_0028: nop - IL_0029: br.s IL_0040 + IL_0029: br.s IL_003e IL_002b: nop - IL_002c: br.s IL_003e + IL_002c: br.s IL_003c IL_002e: nop - IL_002f: br.s IL_003c + IL_002f: br.s IL_003a IL_0031: nop - IL_0032: br.s IL_003a + IL_0032: br.s IL_0038 IL_0034: nop - IL_0035: br.s IL_0042 + IL_0035: br.s IL_0040 IL_0037: nop - IL_0038: br.s IL_003a + IL_0038: ldc.i4.1 + IL_0039: ret IL_003a: ldc.i4.1 IL_003b: ret @@ -363,11 +360,8 @@ IL_003e: ldc.i4.1 IL_003f: ret - IL_0040: ldc.i4.1 + IL_0040: ldc.i4.0 IL_0041: ret - - IL_0042: ldc.i4.0 - IL_0043: ret } .method public strict virtual instance int32 get_LastGenerated() cil managed diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest06.fs.RealInternalSignatureOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest06.fs.RealInternalSignatureOn.il.bsl index b1eb89b93cc..07be7e37b90 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest06.fs.RealInternalSignatureOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionStepping/SeqExpressionSteppingTest06.fs.RealInternalSignatureOn.il.bsl @@ -103,117 +103,115 @@ IL_0021: br.s IL_003b IL_0023: nop - IL_0024: br.s IL_0092 + IL_0024: br.s IL_0090 IL_0026: nop - IL_0027: br.s IL_0085 + IL_0027: br.s IL_0083 IL_0029: nop - IL_002a: br IL_0100 + IL_002a: br IL_00fe IL_002f: nop - IL_0030: br IL_00f3 + IL_0030: br IL_00f1 IL_0035: nop - IL_0036: br IL_0121 + IL_0036: br IL_011f IL_003b: nop - IL_003c: br.s IL_003e - - IL_003e: ldarg.0 - IL_003f: stloc.0 - IL_0040: ldloc.0 - IL_0041: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6::get_es() - IL_0046: callvirt instance class [runtime]System.Collections.Generic.IEnumerator`1 class [runtime]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_004b: stfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' - IL_0050: ldarg.0 - IL_0051: ldc.i4.1 - IL_0052: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_0057: br.s IL_0085 - - IL_0059: ldarg.0 - IL_005a: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' - IL_005f: callvirt instance !0 class [runtime]System.Collections.Generic.IEnumerator`1::get_Current() - IL_0064: stloc.1 - IL_0065: ldstr "hello" - IL_006a: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_006f: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0074: pop - IL_0075: ldarg.0 - IL_0076: ldc.i4.2 - IL_0077: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_007c: ldarg.0 - IL_007d: ldloc.1 - IL_007e: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current - IL_0083: ldc.i4.1 - IL_0084: ret - - IL_0085: ldarg.0 - IL_0086: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' - IL_008b: callvirt instance bool [runtime]System.Collections.IEnumerator::MoveNext() - IL_0090: brtrue.s IL_0059 - - IL_0092: ldarg.0 - IL_0093: ldc.i4.5 - IL_0094: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_0099: ldarg.0 - IL_009a: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' - IL_009f: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_00a4: nop - IL_00a5: ldarg.0 - IL_00a6: ldnull - IL_00a7: stfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' - IL_00ac: ldarg.0 - IL_00ad: stloc.2 - IL_00ae: ldloc.2 - IL_00af: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6::get_es() - IL_00b4: callvirt instance class [runtime]System.Collections.Generic.IEnumerator`1 class [runtime]System.Collections.Generic.IEnumerable`1::GetEnumerator() - IL_00b9: stfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 - IL_00be: ldarg.0 - IL_00bf: ldc.i4.3 - IL_00c0: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_00c5: br.s IL_00f3 - - IL_00c7: ldarg.0 - IL_00c8: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 - IL_00cd: callvirt instance !0 class [runtime]System.Collections.Generic.IEnumerator`1::get_Current() - IL_00d2: stloc.3 - IL_00d3: ldstr "goodbye" - IL_00d8: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_00dd: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_00e2: pop - IL_00e3: ldarg.0 - IL_00e4: ldc.i4.4 - IL_00e5: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_00ea: ldarg.0 - IL_00eb: ldloc.3 - IL_00ec: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current - IL_00f1: ldc.i4.1 - IL_00f2: ret - - IL_00f3: ldarg.0 - IL_00f4: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 - IL_00f9: callvirt instance bool [runtime]System.Collections.IEnumerator::MoveNext() - IL_00fe: brtrue.s IL_00c7 - - IL_0100: ldarg.0 - IL_0101: ldc.i4.5 - IL_0102: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_0107: ldarg.0 - IL_0108: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 - IL_010d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0112: nop - IL_0113: ldarg.0 - IL_0114: ldnull - IL_0115: stfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 - IL_011a: ldarg.0 - IL_011b: ldc.i4.5 - IL_011c: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_0121: ldarg.0 - IL_0122: ldc.i4.0 - IL_0123: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current - IL_0128: ldc.i4.0 - IL_0129: ret + IL_003c: ldarg.0 + IL_003d: stloc.0 + IL_003e: ldloc.0 + IL_003f: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6::get_es() + IL_0044: callvirt instance class [runtime]System.Collections.Generic.IEnumerator`1 class [runtime]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_0049: stfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' + IL_004e: ldarg.0 + IL_004f: ldc.i4.1 + IL_0050: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_0055: br.s IL_0083 + + IL_0057: ldarg.0 + IL_0058: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' + IL_005d: callvirt instance !0 class [runtime]System.Collections.Generic.IEnumerator`1::get_Current() + IL_0062: stloc.1 + IL_0063: ldstr "hello" + IL_0068: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_006d: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0072: pop + IL_0073: ldarg.0 + IL_0074: ldc.i4.2 + IL_0075: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_007a: ldarg.0 + IL_007b: ldloc.1 + IL_007c: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current + IL_0081: ldc.i4.1 + IL_0082: ret + + IL_0083: ldarg.0 + IL_0084: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' + IL_0089: callvirt instance bool [runtime]System.Collections.IEnumerator::MoveNext() + IL_008e: brtrue.s IL_0057 + + IL_0090: ldarg.0 + IL_0091: ldc.i4.5 + IL_0092: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_0097: ldarg.0 + IL_0098: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' + IL_009d: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_00a2: nop + IL_00a3: ldarg.0 + IL_00a4: ldnull + IL_00a5: stfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' + IL_00aa: ldarg.0 + IL_00ab: stloc.2 + IL_00ac: ldloc.2 + IL_00ad: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6::get_es() + IL_00b2: callvirt instance class [runtime]System.Collections.Generic.IEnumerator`1 class [runtime]System.Collections.Generic.IEnumerable`1::GetEnumerator() + IL_00b7: stfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 + IL_00bc: ldarg.0 + IL_00bd: ldc.i4.3 + IL_00be: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_00c3: br.s IL_00f1 + + IL_00c5: ldarg.0 + IL_00c6: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 + IL_00cb: callvirt instance !0 class [runtime]System.Collections.Generic.IEnumerator`1::get_Current() + IL_00d0: stloc.3 + IL_00d1: ldstr "goodbye" + IL_00d6: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_00db: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_00e0: pop + IL_00e1: ldarg.0 + IL_00e2: ldc.i4.4 + IL_00e3: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_00e8: ldarg.0 + IL_00e9: ldloc.3 + IL_00ea: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current + IL_00ef: ldc.i4.1 + IL_00f0: ret + + IL_00f1: ldarg.0 + IL_00f2: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 + IL_00f7: callvirt instance bool [runtime]System.Collections.IEnumerator::MoveNext() + IL_00fc: brtrue.s IL_00c5 + + IL_00fe: ldarg.0 + IL_00ff: ldc.i4.5 + IL_0100: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_0105: ldarg.0 + IL_0106: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 + IL_010b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0110: nop + IL_0111: ldarg.0 + IL_0112: ldnull + IL_0113: stfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 + IL_0118: ldarg.0 + IL_0119: ldc.i4.5 + IL_011a: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_011f: ldarg.0 + IL_0120: ldc.i4.0 + IL_0121: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current + IL_0126: ldc.i4.0 + IL_0127: ret } .method public strict virtual instance void Close() cil managed @@ -231,7 +229,7 @@ IL_0011: br.s IL_0019 IL_0013: nop - IL_0014: br IL_00a0 + IL_0014: br IL_009e IL_0019: nop .try @@ -248,74 +246,72 @@ IL_003d: br.s IL_0051 IL_003f: nop - IL_0040: br.s IL_0080 + IL_0040: br.s IL_007e IL_0042: nop - IL_0043: br.s IL_006c + IL_0043: br.s IL_006a IL_0045: nop - IL_0046: br.s IL_006b + IL_0046: br.s IL_0069 IL_0048: nop - IL_0049: br.s IL_0055 + IL_0049: br.s IL_0053 IL_004b: nop - IL_004c: br.s IL_0054 + IL_004c: br.s IL_0052 IL_004e: nop - IL_004f: br.s IL_0080 + IL_004f: br.s IL_007e IL_0051: nop - IL_0052: br.s IL_0054 - - IL_0054: nop - IL_0055: ldarg.0 - IL_0056: ldc.i4.5 - IL_0057: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_005c: ldarg.0 - IL_005d: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 - IL_0062: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_0067: nop - IL_0068: nop - IL_0069: br.s IL_0080 - - IL_006b: nop - IL_006c: ldarg.0 - IL_006d: ldc.i4.5 - IL_006e: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_0073: ldarg.0 - IL_0074: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' - IL_0079: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) - IL_007e: nop - IL_007f: nop - IL_0080: ldarg.0 - IL_0081: ldc.i4.5 - IL_0082: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc - IL_0087: ldarg.0 - IL_0088: ldc.i4.0 - IL_0089: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current - IL_008e: leave.s IL_009a + IL_0052: nop + IL_0053: ldarg.0 + IL_0054: ldc.i4.5 + IL_0055: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_005a: ldarg.0 + IL_005b: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::enum0 + IL_0060: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_0065: nop + IL_0066: nop + IL_0067: br.s IL_007e + + IL_0069: nop + IL_006a: ldarg.0 + IL_006b: ldc.i4.5 + IL_006c: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_0071: ldarg.0 + IL_0072: ldfld class [runtime]System.Collections.Generic.IEnumerator`1 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::'enum' + IL_0077: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::Dispose>(!!0) + IL_007c: nop + IL_007d: nop + IL_007e: ldarg.0 + IL_007f: ldc.i4.5 + IL_0080: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::pc + IL_0085: ldarg.0 + IL_0086: ldc.i4.0 + IL_0087: stfld int32 SeqExpressionSteppingTest6/SeqExpressionSteppingTest6/f7@6::current + IL_008c: leave.s IL_0098 } catch [runtime]System.Object { - IL_0090: castclass [runtime]System.Exception - IL_0095: stloc.1 - IL_0096: ldloc.1 - IL_0097: stloc.0 - IL_0098: leave.s IL_009a + IL_008e: castclass [runtime]System.Exception + IL_0093: stloc.1 + IL_0094: ldloc.1 + IL_0095: stloc.0 + IL_0096: leave.s IL_0098 } - IL_009a: nop - IL_009b: br IL_0000 + IL_0098: nop + IL_0099: br IL_0000 - IL_00a0: ldloc.0 - IL_00a1: brfalse.s IL_00a5 + IL_009e: ldloc.0 + IL_009f: brfalse.s IL_00a3 - IL_00a3: ldloc.0 - IL_00a4: throw + IL_00a1: ldloc.0 + IL_00a2: throw - IL_00a5: ret + IL_00a3: ret } .method public strict virtual instance bool get_CheckClose() cil managed @@ -334,25 +330,26 @@ IL_0023: br.s IL_0037 IL_0025: nop - IL_0026: br.s IL_0042 + IL_0026: br.s IL_0040 IL_0028: nop - IL_0029: br.s IL_0040 + IL_0029: br.s IL_003e IL_002b: nop - IL_002c: br.s IL_003e + IL_002c: br.s IL_003c IL_002e: nop - IL_002f: br.s IL_003c + IL_002f: br.s IL_003a IL_0031: nop - IL_0032: br.s IL_003a + IL_0032: br.s IL_0038 IL_0034: nop - IL_0035: br.s IL_0042 + IL_0035: br.s IL_0040 IL_0037: nop - IL_0038: br.s IL_003a + IL_0038: ldc.i4.1 + IL_0039: ret IL_003a: ldc.i4.1 IL_003b: ret @@ -363,11 +360,8 @@ IL_003e: ldc.i4.1 IL_003f: ret - IL_0040: ldc.i4.1 + IL_0040: ldc.i4.0 IL_0041: ret - - IL_0042: ldc.i4.0 - IL_0043: ret } .method public strict virtual instance int32 get_LastGenerated() cil managed diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionTailCalls/SeqExpressionTailCalls01.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionTailCalls/SeqExpressionTailCalls01.fs.il.bsl index ae0733ddc72..cc70a5711fb 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionTailCalls/SeqExpressionTailCalls01.fs.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionTailCalls/SeqExpressionTailCalls01.fs.il.bsl @@ -82,48 +82,46 @@ IL_0019: br.s IL_0024 IL_001b: nop - IL_001c: br.s IL_003c + IL_001c: br.s IL_003a IL_001e: nop - IL_001f: br.s IL_0058 + IL_001f: br.s IL_0056 IL_0021: nop - IL_0022: br.s IL_005f + IL_0022: br.s IL_005d IL_0024: nop - IL_0025: br.s IL_0027 - - IL_0027: ldarg.0 - IL_0028: ldc.i4.1 - IL_0029: stfld int32 assembly/rwalk@3::pc - IL_002e: ldarg.0 - IL_002f: ldarg.0 - IL_0030: ldfld int32 assembly/rwalk@3::x - IL_0035: stfld int32 assembly/rwalk@3::current - IL_003a: ldc.i4.1 - IL_003b: ret - - IL_003c: ldarg.0 - IL_003d: ldc.i4.2 - IL_003e: stfld int32 assembly/rwalk@3::pc - IL_0043: ldarg.1 - IL_0044: ldarg.0 - IL_0045: ldfld int32 assembly/rwalk@3::x - IL_004a: ldc.i4.1 - IL_004b: add - IL_004c: call class [runtime]System.Collections.Generic.IEnumerable`1 assembly::rwalk(int32) - IL_0051: stobj class [runtime]System.Collections.Generic.IEnumerable`1 - IL_0056: ldc.i4.2 - IL_0057: ret - - IL_0058: ldarg.0 - IL_0059: ldc.i4.3 - IL_005a: stfld int32 assembly/rwalk@3::pc - IL_005f: ldarg.0 - IL_0060: ldc.i4.0 - IL_0061: stfld int32 assembly/rwalk@3::current - IL_0066: ldc.i4.0 - IL_0067: ret + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: stfld int32 assembly/rwalk@3::pc + IL_002c: ldarg.0 + IL_002d: ldarg.0 + IL_002e: ldfld int32 assembly/rwalk@3::x + IL_0033: stfld int32 assembly/rwalk@3::current + IL_0038: ldc.i4.1 + IL_0039: ret + + IL_003a: ldarg.0 + IL_003b: ldc.i4.2 + IL_003c: stfld int32 assembly/rwalk@3::pc + IL_0041: ldarg.1 + IL_0042: ldarg.0 + IL_0043: ldfld int32 assembly/rwalk@3::x + IL_0048: ldc.i4.1 + IL_0049: add + IL_004a: call class [runtime]System.Collections.Generic.IEnumerable`1 assembly::rwalk(int32) + IL_004f: stobj class [runtime]System.Collections.Generic.IEnumerable`1 + IL_0054: ldc.i4.2 + IL_0055: ret + + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 assembly/rwalk@3::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 assembly/rwalk@3::current + IL_0064: ldc.i4.0 + IL_0065: ret } .method public strict virtual instance void Close() cil managed @@ -150,28 +148,26 @@ IL_001b: br.s IL_0029 IL_001d: nop - IL_001e: br.s IL_0030 + IL_001e: br.s IL_002e IL_0020: nop - IL_0021: br.s IL_002e + IL_0021: br.s IL_002c IL_0023: nop - IL_0024: br.s IL_002c + IL_0024: br.s IL_002a IL_0026: nop - IL_0027: br.s IL_0030 + IL_0027: br.s IL_002e IL_0029: nop - IL_002a: br.s IL_002c + IL_002a: ldc.i4.0 + IL_002b: ret IL_002c: ldc.i4.0 IL_002d: ret IL_002e: ldc.i4.0 IL_002f: ret - - IL_0030: ldc.i4.0 - IL_0031: ret } .method public strict virtual instance int32 get_LastGenerated() cil managed @@ -235,4 +231,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionTailCalls/SeqExpressionTailCalls02.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionTailCalls/SeqExpressionTailCalls02.fs.il.bsl index 81f8e166fe6..675ea4559ea 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionTailCalls/SeqExpressionTailCalls02.fs.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SeqExpressionTailCalls/SeqExpressionTailCalls02.fs.il.bsl @@ -82,48 +82,46 @@ IL_0019: br.s IL_0024 IL_001b: nop - IL_001c: br.s IL_003c + IL_001c: br.s IL_003a IL_001e: nop - IL_001f: br.s IL_0058 + IL_001f: br.s IL_0056 IL_0021: nop - IL_0022: br.s IL_005f + IL_0022: br.s IL_005d IL_0024: nop - IL_0025: br.s IL_0027 - - IL_0027: ldarg.0 - IL_0028: ldc.i4.1 - IL_0029: stfld int32 assembly/rwalk1@5::pc - IL_002e: ldarg.0 - IL_002f: ldarg.0 - IL_0030: ldfld int32 assembly/rwalk1@5::x - IL_0035: stfld int32 assembly/rwalk1@5::current - IL_003a: ldc.i4.1 - IL_003b: ret - - IL_003c: ldarg.0 - IL_003d: ldc.i4.2 - IL_003e: stfld int32 assembly/rwalk1@5::pc - IL_0043: ldarg.1 - IL_0044: ldarg.0 - IL_0045: ldfld int32 assembly/rwalk1@5::x - IL_004a: ldc.i4.1 - IL_004b: add - IL_004c: call class [runtime]System.Collections.Generic.IEnumerable`1 assembly::rwalk2(int32) - IL_0051: stobj class [runtime]System.Collections.Generic.IEnumerable`1 - IL_0056: ldc.i4.2 - IL_0057: ret - - IL_0058: ldarg.0 - IL_0059: ldc.i4.3 - IL_005a: stfld int32 assembly/rwalk1@5::pc - IL_005f: ldarg.0 - IL_0060: ldc.i4.0 - IL_0061: stfld int32 assembly/rwalk1@5::current - IL_0066: ldc.i4.0 - IL_0067: ret + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: stfld int32 assembly/rwalk1@5::pc + IL_002c: ldarg.0 + IL_002d: ldarg.0 + IL_002e: ldfld int32 assembly/rwalk1@5::x + IL_0033: stfld int32 assembly/rwalk1@5::current + IL_0038: ldc.i4.1 + IL_0039: ret + + IL_003a: ldarg.0 + IL_003b: ldc.i4.2 + IL_003c: stfld int32 assembly/rwalk1@5::pc + IL_0041: ldarg.1 + IL_0042: ldarg.0 + IL_0043: ldfld int32 assembly/rwalk1@5::x + IL_0048: ldc.i4.1 + IL_0049: add + IL_004a: call class [runtime]System.Collections.Generic.IEnumerable`1 assembly::rwalk2(int32) + IL_004f: stobj class [runtime]System.Collections.Generic.IEnumerable`1 + IL_0054: ldc.i4.2 + IL_0055: ret + + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 assembly/rwalk1@5::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 assembly/rwalk1@5::current + IL_0064: ldc.i4.0 + IL_0065: ret } .method public strict virtual instance void Close() cil managed @@ -150,28 +148,26 @@ IL_001b: br.s IL_0029 IL_001d: nop - IL_001e: br.s IL_0030 + IL_001e: br.s IL_002e IL_0020: nop - IL_0021: br.s IL_002e + IL_0021: br.s IL_002c IL_0023: nop - IL_0024: br.s IL_002c + IL_0024: br.s IL_002a IL_0026: nop - IL_0027: br.s IL_0030 + IL_0027: br.s IL_002e IL_0029: nop - IL_002a: br.s IL_002c + IL_002a: ldc.i4.0 + IL_002b: ret IL_002c: ldc.i4.0 IL_002d: ret IL_002e: ldc.i4.0 IL_002f: ret - - IL_0030: ldc.i4.0 - IL_0031: ret } .method public strict virtual instance int32 get_LastGenerated() cil managed @@ -252,48 +248,46 @@ IL_0019: br.s IL_0024 IL_001b: nop - IL_001c: br.s IL_003c + IL_001c: br.s IL_003a IL_001e: nop - IL_001f: br.s IL_0058 + IL_001f: br.s IL_0056 IL_0021: nop - IL_0022: br.s IL_005f + IL_0022: br.s IL_005d IL_0024: nop - IL_0025: br.s IL_0027 - - IL_0027: ldarg.0 - IL_0028: ldc.i4.1 - IL_0029: stfld int32 assembly/rwalk2@6::pc - IL_002e: ldarg.0 - IL_002f: ldarg.0 - IL_0030: ldfld int32 assembly/rwalk2@6::x - IL_0035: stfld int32 assembly/rwalk2@6::current - IL_003a: ldc.i4.1 - IL_003b: ret - - IL_003c: ldarg.0 - IL_003d: ldc.i4.2 - IL_003e: stfld int32 assembly/rwalk2@6::pc - IL_0043: ldarg.1 - IL_0044: ldarg.0 - IL_0045: ldfld int32 assembly/rwalk2@6::x - IL_004a: ldc.i4.1 - IL_004b: add - IL_004c: call class [runtime]System.Collections.Generic.IEnumerable`1 assembly::rwalk1(int32) - IL_0051: stobj class [runtime]System.Collections.Generic.IEnumerable`1 - IL_0056: ldc.i4.2 - IL_0057: ret - - IL_0058: ldarg.0 - IL_0059: ldc.i4.3 - IL_005a: stfld int32 assembly/rwalk2@6::pc - IL_005f: ldarg.0 - IL_0060: ldc.i4.0 - IL_0061: stfld int32 assembly/rwalk2@6::current - IL_0066: ldc.i4.0 - IL_0067: ret + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: stfld int32 assembly/rwalk2@6::pc + IL_002c: ldarg.0 + IL_002d: ldarg.0 + IL_002e: ldfld int32 assembly/rwalk2@6::x + IL_0033: stfld int32 assembly/rwalk2@6::current + IL_0038: ldc.i4.1 + IL_0039: ret + + IL_003a: ldarg.0 + IL_003b: ldc.i4.2 + IL_003c: stfld int32 assembly/rwalk2@6::pc + IL_0041: ldarg.1 + IL_0042: ldarg.0 + IL_0043: ldfld int32 assembly/rwalk2@6::x + IL_0048: ldc.i4.1 + IL_0049: add + IL_004a: call class [runtime]System.Collections.Generic.IEnumerable`1 assembly::rwalk1(int32) + IL_004f: stobj class [runtime]System.Collections.Generic.IEnumerable`1 + IL_0054: ldc.i4.2 + IL_0055: ret + + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld int32 assembly/rwalk2@6::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld int32 assembly/rwalk2@6::current + IL_0064: ldc.i4.0 + IL_0065: ret } .method public strict virtual instance void Close() cil managed @@ -320,28 +314,26 @@ IL_001b: br.s IL_0029 IL_001d: nop - IL_001e: br.s IL_0030 + IL_001e: br.s IL_002e IL_0020: nop - IL_0021: br.s IL_002e + IL_0021: br.s IL_002c IL_0023: nop - IL_0024: br.s IL_002c + IL_0024: br.s IL_002a IL_0026: nop - IL_0027: br.s IL_0030 + IL_0027: br.s IL_002e IL_0029: nop - IL_002a: br.s IL_002c + IL_002a: ldc.i4.0 + IL_002b: ret IL_002c: ldc.i4.0 IL_002d: ret IL_002e: ldc.i4.0 IL_002f: ret - - IL_0030: ldc.i4.0 - IL_0031: ret } .method public strict virtual instance int32 get_LastGenerated() cil managed @@ -418,4 +410,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - Erased call 02.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - Erased call 02.bsl new file mode 100644 index 00000000000..5ef583ab9b1 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - Erased call 02.bsl @@ -0,0 +1,14 @@ +module Module + +let i = + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" +-------------------------------------------------------------------------------- + +Module::.cctor + + IL_0000: ldc.i4.0 + IL_0001: stsfld $Module::init@ + IL_0006: ldsfld $Module::init@ + IL_000b: pop + IL_000c: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - Erased call 03.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - Erased call 03.bsl new file mode 100644 index 00000000000..3c7693a8b97 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - Erased call 03.bsl @@ -0,0 +1,15 @@ +module Module + +let i = + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" +-------------------------------------------------------------------------------- + +Module::.cctor + + IL_0000: ldc.i4.0 + IL_0001: stsfld $Module::init@ + IL_0006: ldsfld $Module::init@ + IL_000b: pop + IL_000c: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - Erased call 04.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - Erased call 04.bsl new file mode 100644 index 00000000000..c906ed2a67f --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - Erased call 04.bsl @@ -0,0 +1,21 @@ +module Module + +let i = + () + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" +-------------------------------------------------------------------------------- + +Module::.cctor + + IL_0000: ldc.i4.0 + IL_0001: stsfld $Module::init@ + IL_0006: ldsfld $Module::init@ + IL_000b: pop + IL_000c: ret + +Module::staticInitialization@ + (4,5-4,7) () + IL_0000: ldnull + IL_0001: stsfld Module::i@3 + IL_0006: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - Erased call 05.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - Erased call 05.bsl new file mode 100644 index 00000000000..7b8e1d01ed0 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - Erased call 05.bsl @@ -0,0 +1,21 @@ +module Module + +let i = + System.Diagnostics.Debug.Write "" + () + System.Diagnostics.Debug.Write "" +-------------------------------------------------------------------------------- + +Module::.cctor + + IL_0000: ldc.i4.0 + IL_0001: stsfld $Module::init@ + IL_0006: ldsfld $Module::init@ + IL_000b: pop + IL_000c: ret + +Module::staticInitialization@ + (5,5-5,7) () + IL_0000: ldnull + IL_0001: stsfld Module::i@3 + IL_0006: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - Erased call 06.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - Erased call 06.bsl new file mode 100644 index 00000000000..418becdf336 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - Erased call 06.bsl @@ -0,0 +1,21 @@ +module Module + +let i = + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" + () +-------------------------------------------------------------------------------- + +Module::.cctor + + IL_0000: ldc.i4.0 + IL_0001: stsfld $Module::init@ + IL_0006: ldsfld $Module::init@ + IL_000b: pop + IL_000c: ret + +Module::staticInitialization@ + (6,5-6,7) () + IL_0000: ldnull + IL_0001: stsfld Module::i@3 + IL_0006: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - ErasedCall 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - ErasedCall 01.bsl new file mode 100644 index 00000000000..8784f1fe3c3 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - ErasedCall 01.bsl @@ -0,0 +1,10 @@ +module Module + +do + let i = System.Diagnostics.Debug.Write "" + () +-------------------------------------------------------------------------------- + +Module::staticInitialization@ + (5,5-5,7) () + IL_0000: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - SequentialUnits 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - SequentialUnits 01.bsl new file mode 100644 index 00000000000..39a42b809a6 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - SequentialUnits 01.bsl @@ -0,0 +1,17 @@ +module Module + +do + let i = () + let j = () + () +-------------------------------------------------------------------------------- + +Module::staticInitialization@ + (4,5-4,15) let i = () + IL_0000: nop + + (5,5-5,15) let j = () + IL_0001: nop + + (6,5-6,7) () + IL_0002: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - Unit 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - Unit 01.bsl new file mode 100644 index 00000000000..89970bd86f7 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Local - Unit 01.bsl @@ -0,0 +1,13 @@ +module Module + +do + let i = () + () +-------------------------------------------------------------------------------- + +Module::staticInitialization@ + (4,5-4,15) let i = () + IL_0000: nop + + (5,5-5,7) () + IL_0001: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - Erased call 02.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - Erased call 02.bsl new file mode 100644 index 00000000000..5ef583ab9b1 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - Erased call 02.bsl @@ -0,0 +1,14 @@ +module Module + +let i = + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" +-------------------------------------------------------------------------------- + +Module::.cctor + + IL_0000: ldc.i4.0 + IL_0001: stsfld $Module::init@ + IL_0006: ldsfld $Module::init@ + IL_000b: pop + IL_000c: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - Erased call 03.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - Erased call 03.bsl new file mode 100644 index 00000000000..3c7693a8b97 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - Erased call 03.bsl @@ -0,0 +1,15 @@ +module Module + +let i = + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" +-------------------------------------------------------------------------------- + +Module::.cctor + + IL_0000: ldc.i4.0 + IL_0001: stsfld $Module::init@ + IL_0006: ldsfld $Module::init@ + IL_000b: pop + IL_000c: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - Erased call 04.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - Erased call 04.bsl new file mode 100644 index 00000000000..c906ed2a67f --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - Erased call 04.bsl @@ -0,0 +1,21 @@ +module Module + +let i = + () + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" +-------------------------------------------------------------------------------- + +Module::.cctor + + IL_0000: ldc.i4.0 + IL_0001: stsfld $Module::init@ + IL_0006: ldsfld $Module::init@ + IL_000b: pop + IL_000c: ret + +Module::staticInitialization@ + (4,5-4,7) () + IL_0000: ldnull + IL_0001: stsfld Module::i@3 + IL_0006: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - Erased call 05.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - Erased call 05.bsl new file mode 100644 index 00000000000..7b8e1d01ed0 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - Erased call 05.bsl @@ -0,0 +1,21 @@ +module Module + +let i = + System.Diagnostics.Debug.Write "" + () + System.Diagnostics.Debug.Write "" +-------------------------------------------------------------------------------- + +Module::.cctor + + IL_0000: ldc.i4.0 + IL_0001: stsfld $Module::init@ + IL_0006: ldsfld $Module::init@ + IL_000b: pop + IL_000c: ret + +Module::staticInitialization@ + (5,5-5,7) () + IL_0000: ldnull + IL_0001: stsfld Module::i@3 + IL_0006: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - Erased call 06.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - Erased call 06.bsl new file mode 100644 index 00000000000..418becdf336 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - Erased call 06.bsl @@ -0,0 +1,21 @@ +module Module + +let i = + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" + () +-------------------------------------------------------------------------------- + +Module::.cctor + + IL_0000: ldc.i4.0 + IL_0001: stsfld $Module::init@ + IL_0006: ldsfld $Module::init@ + IL_000b: pop + IL_000c: ret + +Module::staticInitialization@ + (6,5-6,7) () + IL_0000: ldnull + IL_0001: stsfld Module::i@3 + IL_0006: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - ErasedCall 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - ErasedCall 01.bsl new file mode 100644 index 00000000000..7def5b5213a --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - ErasedCall 01.bsl @@ -0,0 +1,6 @@ +module Module + +let i = System.Diagnostics.Debug.Write "" +-------------------------------------------------------------------------------- + + diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - SequentialUnits 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - SequentialUnits 01.bsl new file mode 100644 index 00000000000..527031e40ea --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - SequentialUnits 01.bsl @@ -0,0 +1,12 @@ +module Module + +let i = () +let j = () +-------------------------------------------------------------------------------- + +Module::staticInitialization@ + (3,1-3,11) let i = () + IL_0000: nop + + (4,1-4,11) let j = () + IL_0001: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - Unit 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - Unit 01.bsl new file mode 100644 index 00000000000..690723ece92 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Binding/Module - Unit 01.bsl @@ -0,0 +1,8 @@ +module Module + +let i = () +-------------------------------------------------------------------------------- + +Module::staticInitialization@ + (3,1-3,11) let i = () + IL_0000: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Body - MultipleStatements 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Body - MultipleStatements 01.bsl index beb451d8511..c9f769e27f8 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Body - MultipleStatements 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Body - MultipleStatements 01.bsl @@ -1,26 +1,34 @@ +module Module + +let f (l: int[]) = + for i in l do + System.Console.WriteLine i + System.Console.WriteLine(i + 1) +-------------------------------------------------------------------------------- + Module::f - (5,14-5,15) l + (4,14-4,15) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldc.i4.0 IL_0003: stloc.1 IL_0004: br.s IL_001c - (5,5-5,10) for i + (4,5-4,10) for i IL_0006: ldloc.0 IL_0007: ldloc.1 IL_0008: ldelem.i4 IL_0009: stloc.2 - (6,9-6,35) System.Console.WriteLine i + (5,9-5,35) System.Console.WriteLine i IL_000a: ldloc.2 - IL_000b: call WriteLine + IL_000b: call Console::WriteLine - (7,9-7,40) System.Console.WriteLine(i + 1) + (6,9-6,40) System.Console.WriteLine(i + 1) IL_0010: ldloc.2 IL_0011: ldc.i4.1 IL_0012: add - IL_0013: call WriteLine + IL_0013: call Console::WriteLine IL_0018: ldloc.1 @@ -28,7 +36,7 @@ Module::f IL_001a: add IL_001b: stloc.1 - (5,11-5,13) in + (4,11-4,13) in IL_001c: ldloc.1 IL_001d: ldloc.0 IL_001e: ldlen diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Body - SingleStatement 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Body - SingleStatement 01.bsl index 022d36579ed..6a52a9513a8 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Body - SingleStatement 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Body - SingleStatement 01.bsl @@ -1,20 +1,27 @@ +module Module + +let f (l: int[]) = + for i in l do + System.Console.WriteLine i +-------------------------------------------------------------------------------- + Module::f - (5,14-5,15) l + (4,14-4,15) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldc.i4.0 IL_0003: stloc.1 IL_0004: br.s IL_0014 - (5,5-5,10) for i + (4,5-4,10) for i IL_0006: ldloc.0 IL_0007: ldloc.1 IL_0008: ldelem.i4 IL_0009: stloc.2 - (6,9-6,35) System.Console.WriteLine i + (5,9-5,35) System.Console.WriteLine i IL_000a: ldloc.2 - IL_000b: call WriteLine + IL_000b: call Console::WriteLine IL_0010: ldloc.1 @@ -22,7 +29,7 @@ Module::f IL_0012: add IL_0013: stloc.1 - (5,11-5,13) in + (4,11-4,13) in IL_0014: ldloc.1 IL_0015: ldloc.0 IL_0016: ldlen diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - ActivePattern 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - ActivePattern 01.bsl index a2dd006417a..8fcc590231f 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - ActivePattern 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - ActivePattern 01.bsl @@ -1,13 +1,24 @@ +module Module + +let (|Id|) (x: int) = x + +let f (l: int list) = + [| + for Id i in l do + yield i + |] +-------------------------------------------------------------------------------- + Module::|Id| - (4,23-4,24) x + (3,23-3,24) x IL_0000: ldarg.0 IL_0001: ret Module::f - (7,5-10,7) [| for Id i in l do yield i |] + (6,5-9,7) [| for Id i in l do yield i |] IL_0000: nop - (8,9-8,12) for + (7,9-7,12) for IL_0001: ldarg.0 IL_0002: callvirt GetEnumerator IL_0007: stloc.1 @@ -16,20 +27,20 @@ Module::f IL_000b: callvirt get_Current IL_0010: stloc.3 IL_0011: ldloc.3 - IL_0012: call |Id| + IL_0012: call Module::|Id| IL_0017: stloc.s 4 IL_0019: ldloc.s 4 IL_001b: stloc.s 5 - (9,13-9,20) yield i + (8,13-8,20) yield i IL_001d: ldloca.s 0 IL_001f: ldloc.s 5 IL_0021: call Add IL_0026: nop - (8,18-8,20) in + (7,18-7,20) in IL_0027: ldloc.1 - IL_0028: callvirt MoveNext + IL_0028: callvirt IEnumerator::MoveNext IL_002d: brtrue.s IL_000a IL_002f: ldnull IL_0030: stloc.2 @@ -37,14 +48,12 @@ Module::f IL_0033: ldloc.1 IL_0034: isinst IDisposable IL_0039: stloc.s 6 - - IL_003b: ldloc.s 6 IL_003d: brfalse.s IL_0047 IL_003f: ldloc.s 6 - IL_0041: callvirt Dispose + IL_0041: callvirt IDisposable::Dispose IL_0046: endfinally diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Arrow 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Arrow 01.bsl index 048c51b972b..d0b94cae31a 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Arrow 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Arrow 01.bsl @@ -1,8 +1,16 @@ +module Module + +let f (l: int list) = + [| + for n in l -> n + |] +-------------------------------------------------------------------------------- + Module::f - (5,5-7,7) [| for n in l -> n |] + (4,5-6,7) [| for n in l -> n |] IL_0000: nop - (6,9-6,12) for + (5,9-5,12) for IL_0001: ldarg.0 IL_0002: callvirt GetEnumerator IL_0007: stloc.1 @@ -13,15 +21,15 @@ Module::f IL_0011: ldloca.s 0 IL_0013: stloc.s 4 - (6,23-6,24) n + (5,23-5,24) n IL_0015: ldloc.s 4 IL_0017: ldloc.3 IL_0018: call Add IL_001d: nop - (6,15-6,17) in + (5,15-5,17) in IL_001e: ldloc.1 - IL_001f: callvirt MoveNext + IL_001f: callvirt IEnumerator::MoveNext IL_0024: brtrue.s IL_000a IL_0026: ldnull IL_0027: stloc.2 @@ -29,14 +37,12 @@ Module::f IL_002a: ldloc.1 IL_002b: isinst IDisposable IL_0030: stloc.s 5 - - IL_0032: ldloc.s 5 IL_0034: brfalse.s IL_003e IL_0036: ldloc.s 5 - IL_0038: callvirt Dispose + IL_0038: callvirt IDisposable::Dispose IL_003d: endfinally diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Tuple 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Tuple 01.bsl index 234b112f656..3aba9f3f29c 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Tuple 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Tuple 01.bsl @@ -1,8 +1,17 @@ +module Module + +let f (l: (int * int) list) = + [| + for n in l do + yield n + |] +-------------------------------------------------------------------------------- + Module::f - (5,5-8,7) [| for n in l do yield n |] + (4,5-7,7) [| for n in l do yield n |] IL_0000: nop - (6,9-6,12) for + (5,9-5,12) for IL_0001: ldarg.0 IL_0002: callvirt GetEnumerator IL_0007: stloc.1 @@ -13,15 +22,15 @@ Module::f IL_0011: ldloca.s 0 IL_0013: stloc.s 4 - (7,13-7,20) yield n + (6,13-6,20) yield n IL_0015: ldloc.s 4 IL_0017: ldloc.3 IL_0018: call Add IL_001d: nop - (6,15-6,17) in + (5,15-5,17) in IL_001e: ldloc.1 - IL_001f: callvirt MoveNext + IL_001f: callvirt IEnumerator::MoveNext IL_0024: brtrue.s IL_000a IL_0026: ldnull IL_0027: stloc.2 @@ -29,14 +38,12 @@ Module::f IL_002a: ldloc.1 IL_002b: isinst IDisposable IL_0030: stloc.s 5 - - IL_0032: ldloc.s 5 IL_0034: brfalse.s IL_003e IL_0036: ldloc.s 5 - IL_0038: callvirt Dispose + IL_0038: callvirt IDisposable::Dispose IL_003d: endfinally diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Tuple 02.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Tuple 02.bsl index d9b3362ac39..709b28fc197 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Tuple 02.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Tuple 02.bsl @@ -1,8 +1,17 @@ +module Module + +let f (l: (int * int) list) = + [| + for i, i1 in l do + yield i + |] +-------------------------------------------------------------------------------- + Module::f - (5,5-8,7) [| for i, i1 in l do yield i |] + (4,5-7,7) [| for i, i1 in l do yield i |] IL_0000: nop - (6,9-6,12) for + (5,9-5,12) for IL_0001: ldarg.0 IL_0002: callvirt GetEnumerator IL_0007: stloc.1 @@ -17,15 +26,15 @@ Module::f IL_001a: call get_Item1 IL_001f: stloc.s 5 - (7,13-7,20) yield i + (6,13-6,20) yield i IL_0021: ldloca.s 0 IL_0023: ldloc.s 5 IL_0025: call Add IL_002a: nop - (6,19-6,21) in + (5,19-5,21) in IL_002b: ldloc.1 - IL_002c: callvirt MoveNext + IL_002c: callvirt IEnumerator::MoveNext IL_0031: brtrue.s IL_000a IL_0033: ldnull IL_0034: stloc.2 @@ -33,14 +42,12 @@ Module::f IL_0037: ldloc.1 IL_0038: isinst IDisposable IL_003d: stloc.s 6 - - IL_003f: ldloc.s 6 IL_0041: brfalse.s IL_004b IL_0043: ldloc.s 6 - IL_0045: callvirt Dispose + IL_0045: callvirt IDisposable::Dispose IL_004a: endfinally diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Value 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Value 01.bsl index 0e9884491ae..418bef6dacb 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Value 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Value 01.bsl @@ -1,13 +1,22 @@ +module Module + +let a = + [| + for n in 1..10 do + yield n + |] +-------------------------------------------------------------------------------- + Module::.cctor IL_0000: ldc.i4.0 - IL_0001: stsfld init@ - IL_0006: ldsfld init@ + IL_0001: stsfld $Module::init@ + IL_0006: ldsfld $Module::init@ IL_000b: pop IL_000c: ret Module::staticInitialization@ - (4,1-8,7) let a = [| for n in 1..10 do yield n |] + (3,1-7,7) let a = [| for n in 1..10 do yield n |] IL_0000: ldc.i4.s 10 IL_0002: conv.i8 IL_0003: conv.ovf.i.un @@ -22,14 +31,14 @@ Module::staticInitialization@ IL_0011: ldloc.2 IL_0012: stloc.3 - (6,9-6,12) for + (5,9-5,12) for IL_0013: ldloc.0 IL_0014: ldloc.1 IL_0015: conv.i IL_0016: stloc.s 4 IL_0018: stloc.s 5 - (7,13-7,20) yield n + (6,13-6,20) yield n IL_001a: ldloc.s 5 IL_001c: ldloc.s 4 IL_001e: ldloc.3 @@ -44,11 +53,11 @@ Module::staticInitialization@ IL_0027: add IL_0028: stloc.1 - (6,15-6,17) in + (5,15-5,17) in IL_0029: ldloc.1 IL_002a: ldc.i4.s 10 IL_002c: conv.i8 IL_002d: blt.un.s IL_0011 IL_002f: ldloc.0 - IL_0030: stsfld a@4 + IL_0030: stsfld Module::a@3 IL_0035: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Value 02.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Value 02.bsl index 234b112f656..8a483c3b775 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Value 02.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Comprehensions - Value 02.bsl @@ -1,8 +1,17 @@ +module Module + +let f (l: int list) = + [| + for n in l do + yield n + |] +-------------------------------------------------------------------------------- + Module::f - (5,5-8,7) [| for n in l do yield n |] + (4,5-7,7) [| for n in l do yield n |] IL_0000: nop - (6,9-6,12) for + (5,9-5,12) for IL_0001: ldarg.0 IL_0002: callvirt GetEnumerator IL_0007: stloc.1 @@ -13,15 +22,15 @@ Module::f IL_0011: ldloca.s 0 IL_0013: stloc.s 4 - (7,13-7,20) yield n + (6,13-6,20) yield n IL_0015: ldloc.s 4 IL_0017: ldloc.3 IL_0018: call Add IL_001d: nop - (6,15-6,17) in + (5,15-5,17) in IL_001e: ldloc.1 - IL_001f: callvirt MoveNext + IL_001f: callvirt IEnumerator::MoveNext IL_0024: brtrue.s IL_000a IL_0026: ldnull IL_0027: stloc.2 @@ -29,14 +38,12 @@ Module::f IL_002a: ldloc.1 IL_002b: isinst IDisposable IL_0030: stloc.s 5 - - IL_0032: ldloc.s 5 IL_0034: brfalse.s IL_003e IL_0036: ldloc.s 5 - IL_0038: callvirt Dispose + IL_0038: callvirt IDisposable::Dispose IL_003d: endfinally diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Pattern - ActivePattern 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Pattern - ActivePattern 01.bsl index 735b64ef291..759337a3017 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Pattern - ActivePattern 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Pattern - ActivePattern 01.bsl @@ -1,28 +1,37 @@ +module Module + +let (|Id|) (x: int) = x + +let f (l: int[]) = + for Id i in l do + () +-------------------------------------------------------------------------------- + Module::|Id| - (4,23-4,24) x + (3,23-3,24) x IL_0000: ldarg.0 IL_0001: ret Module::f - (7,17-7,18) l + (6,17-6,18) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldc.i4.0 IL_0003: stloc.1 IL_0004: br.s IL_0019 - (7,5-7,13) for Id i + (6,5-6,13) for Id i IL_0006: ldloc.0 IL_0007: ldloc.1 IL_0008: ldelem.i4 IL_0009: stloc.2 IL_000a: ldloc.2 - IL_000b: call |Id| + IL_000b: call Module::|Id| IL_0010: stloc.3 IL_0011: ldloc.3 IL_0012: stloc.s 4 - (8,9-8,11) () + (7,9-7,11) () IL_0014: nop @@ -31,7 +40,7 @@ Module::f IL_0017: add IL_0018: stloc.1 - (7,14-7,16) in + (6,14-6,16) in IL_0019: ldloc.1 IL_001a: ldloc.0 IL_001b: ldlen diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Pattern - Tuple 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Pattern - Tuple 01.bsl index 117072dd130..f8618ea40c5 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Pattern - Tuple 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Pattern - Tuple 01.bsl @@ -1,12 +1,19 @@ +module Module + +let f (l: (int * int)[]) = + for i1, i2 in l do + () +-------------------------------------------------------------------------------- + Module::f - (5,19-5,20) l + (4,19-4,20) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldc.i4.0 IL_0003: stloc.1 IL_0004: br.s IL_0022 - (5,5-5,15) for i1, i2 + (4,5-4,15) for i1, i2 IL_0006: ldloc.0 IL_0007: ldloc.1 IL_0008: ldelem 0x1b000001 @@ -18,7 +25,7 @@ Module::f IL_0016: call get_Item1 IL_001b: stloc.s 4 - (6,9-6,11) () + (5,9-5,11) () IL_001d: nop @@ -27,7 +34,7 @@ Module::f IL_0020: add IL_0021: stloc.1 - (5,16-5,18) in + (4,16-4,18) in IL_0022: ldloc.1 IL_0023: ldloc.0 IL_0024: ldlen diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Simple 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Simple 01.bsl index ad1455f0b35..5b6e9dedcc1 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Simple 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Array - Simple 01.bsl @@ -1,18 +1,25 @@ +module Module + +let f (l: int[]) = + for i in l do + () +-------------------------------------------------------------------------------- + Module::f - (5,14-5,15) l + (4,14-4,15) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldc.i4.0 IL_0003: stloc.1 IL_0004: br.s IL_000f - (5,5-5,10) for i + (4,5-4,10) for i IL_0006: ldloc.0 IL_0007: ldloc.1 IL_0008: ldelem.i4 IL_0009: stloc.2 - (6,9-6,11) () + (5,9-5,11) () IL_000a: nop @@ -21,7 +28,7 @@ Module::f IL_000d: add IL_000e: stloc.1 - (5,11-5,13) in + (4,11-4,13) in IL_000f: ldloc.1 IL_0010: ldloc.0 IL_0011: ldlen diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - ErasedCall 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - ErasedCall 01.bsl new file mode 100644 index 00000000000..fc9ede4e5a9 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - ErasedCall 01.bsl @@ -0,0 +1,32 @@ +module Module + +let f (l: int list) = + for i in l do + System.Diagnostics.Debug.Write "" +-------------------------------------------------------------------------------- + +Module::f + (4,14-4,15) l + IL_0000: ldarg.0 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: call get_TailOrNull + IL_0008: stloc.1 + IL_0009: br.s IL_001b + + (4,5-4,10) for i + IL_000b: ldloc.0 + IL_000c: call get_HeadOrDefault + IL_0011: stloc.2 + + + IL_0012: ldloc.1 + IL_0013: stloc.0 + IL_0014: ldloc.0 + IL_0015: call get_TailOrNull + IL_001a: stloc.1 + + (4,11-4,13) in + IL_001b: ldloc.1 + IL_001c: brtrue.s IL_000b + IL_001e: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - ErasedThenKeptCall 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - ErasedThenKeptCall 01.bsl new file mode 100644 index 00000000000..4afdfd4e7c6 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - ErasedThenKeptCall 01.bsl @@ -0,0 +1,37 @@ +module Module + +let f (l: int list) = + for i in l do + System.Diagnostics.Debug.Write "" + System.Console.WriteLine "" +-------------------------------------------------------------------------------- + +Module::f + (4,14-4,15) l + IL_0000: ldarg.0 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: call get_TailOrNull + IL_0008: stloc.1 + IL_0009: br.s IL_0025 + + (4,5-4,10) for i + IL_000b: ldloc.0 + IL_000c: call get_HeadOrDefault + IL_0011: stloc.2 + + (6,9-6,36) System.Console.WriteLine "" + IL_0012: ldstr "" + IL_0017: call Console::WriteLine + + + IL_001c: ldloc.1 + IL_001d: stloc.0 + IL_001e: ldloc.0 + IL_001f: call get_TailOrNull + IL_0024: stloc.1 + + (4,11-4,13) in + IL_0025: ldloc.1 + IL_0026: brtrue.s IL_000b + IL_0028: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - KeptThenErasedCall 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - KeptThenErasedCall 01.bsl new file mode 100644 index 00000000000..a3ca5cd7750 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - KeptThenErasedCall 01.bsl @@ -0,0 +1,37 @@ +module Module + +let f (l: int list) = + for i in l do + System.Console.WriteLine "" + System.Diagnostics.Debug.Write "" +-------------------------------------------------------------------------------- + +Module::f + (4,14-4,15) l + IL_0000: ldarg.0 + IL_0001: stloc.0 + IL_0002: ldloc.0 + IL_0003: call get_TailOrNull + IL_0008: stloc.1 + IL_0009: br.s IL_0025 + + (4,5-4,10) for i + IL_000b: ldloc.0 + IL_000c: call get_HeadOrDefault + IL_0011: stloc.2 + + (5,9-5,36) System.Console.WriteLine "" + IL_0012: ldstr "" + IL_0017: call Console::WriteLine + + + IL_001c: ldloc.1 + IL_001d: stloc.0 + IL_001e: ldloc.0 + IL_001f: call get_TailOrNull + IL_0024: stloc.1 + + (4,11-4,13) in + IL_0025: ldloc.1 + IL_0026: brtrue.s IL_000b + IL_0028: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - LetUnit 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - LetUnit 01.bsl index 5eec9beaeb0..d6607455ef3 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - LetUnit 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - LetUnit 01.bsl @@ -1,5 +1,13 @@ +module Module + +let f (l: int list) = + for i in l do + let _ = () + () +-------------------------------------------------------------------------------- + Module::f - (5,14-5,15) l + (4,14-4,15) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 @@ -7,15 +15,15 @@ Module::f IL_0008: stloc.1 IL_0009: br.s IL_001d - (5,5-5,10) for i + (4,5-4,10) for i IL_000b: ldloc.0 IL_000c: call get_HeadOrDefault IL_0011: stloc.2 - (6,17-6,19) () + (5,17-5,19) () IL_0012: nop - (7,9-7,11) () + (6,9-6,11) () IL_0013: nop @@ -25,7 +33,7 @@ Module::f IL_0017: call get_TailOrNull IL_001c: stloc.1 - (5,11-5,13) in + (4,11-4,13) in IL_001d: ldloc.1 IL_001e: brtrue.s IL_000b IL_0020: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - MultipleStatements 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - MultipleStatements 01.bsl index cabffb41911..0ea5fd169cc 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - MultipleStatements 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - MultipleStatements 01.bsl @@ -1,5 +1,13 @@ +module Module + +let f (l: int list) = + for i in l do + System.Console.WriteLine i + System.Console.WriteLine(i + 1) +-------------------------------------------------------------------------------- + Module::f - (5,14-5,15) l + (4,14-4,15) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 @@ -7,20 +15,20 @@ Module::f IL_0008: stloc.1 IL_0009: br.s IL_0029 - (5,5-5,10) for i + (4,5-4,10) for i IL_000b: ldloc.0 IL_000c: call get_HeadOrDefault IL_0011: stloc.2 - (6,9-6,35) System.Console.WriteLine i + (5,9-5,35) System.Console.WriteLine i IL_0012: ldloc.2 - IL_0013: call WriteLine + IL_0013: call Console::WriteLine - (7,9-7,40) System.Console.WriteLine(i + 1) + (6,9-6,40) System.Console.WriteLine(i + 1) IL_0018: ldloc.2 IL_0019: ldc.i4.1 IL_001a: add - IL_001b: call WriteLine + IL_001b: call Console::WriteLine IL_0020: ldloc.1 @@ -29,7 +37,7 @@ Module::f IL_0023: call get_TailOrNull IL_0028: stloc.1 - (5,11-5,13) in + (4,11-4,13) in IL_0029: ldloc.1 IL_002a: brtrue.s IL_000b IL_002c: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - ParenUnit 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - ParenUnit 01.bsl index 401652494b3..f6f184a7701 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - ParenUnit 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - ParenUnit 01.bsl @@ -1,5 +1,12 @@ +module Module + +let f (l: int list) = + for i in l do + (()) +-------------------------------------------------------------------------------- + Module::f - (5,14-5,15) l + (4,14-4,15) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 @@ -7,12 +14,12 @@ Module::f IL_0008: stloc.1 IL_0009: br.s IL_001c - (5,5-5,10) for i + (4,5-4,10) for i IL_000b: ldloc.0 IL_000c: call get_HeadOrDefault IL_0011: stloc.2 - (6,10-6,12) () + (5,10-5,12) () IL_0012: nop @@ -22,7 +29,7 @@ Module::f IL_0016: call get_TailOrNull IL_001b: stloc.1 - (5,11-5,13) in + (4,11-4,13) in IL_001c: ldloc.1 IL_001d: brtrue.s IL_000b IL_001f: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - SequentialUnits 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - SequentialUnits 01.bsl index c3c76afe5aa..315504bd6a5 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - SequentialUnits 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - SequentialUnits 01.bsl @@ -1,5 +1,13 @@ +module Module + +let f (l: int list) = + for i in l do + () + () +-------------------------------------------------------------------------------- + Module::f - (5,14-5,15) l + (4,14-4,15) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 @@ -7,15 +15,15 @@ Module::f IL_0008: stloc.1 IL_0009: br.s IL_001d - (5,5-5,10) for i + (4,5-4,10) for i IL_000b: ldloc.0 IL_000c: call get_HeadOrDefault IL_0011: stloc.2 - (6,9-6,11) () + (5,9-5,11) () IL_0012: nop - (7,9-7,11) () + (6,9-6,11) () IL_0013: nop @@ -25,7 +33,7 @@ Module::f IL_0017: call get_TailOrNull IL_001c: stloc.1 - (5,11-5,13) in + (4,11-4,13) in IL_001d: ldloc.1 IL_001e: brtrue.s IL_000b IL_0020: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - SingleStatement 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - SingleStatement 01.bsl index 9dc76f432cc..713a03b68f9 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - SingleStatement 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Body - SingleStatement 01.bsl @@ -1,5 +1,12 @@ +module Module + +let f (l: int list) = + for i in l do + System.Console.WriteLine i +-------------------------------------------------------------------------------- + Module::f - (5,14-5,15) l + (4,14-4,15) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 @@ -7,14 +14,14 @@ Module::f IL_0008: stloc.1 IL_0009: br.s IL_0021 - (5,5-5,10) for i + (4,5-4,10) for i IL_000b: ldloc.0 IL_000c: call get_HeadOrDefault IL_0011: stloc.2 - (6,9-6,35) System.Console.WriteLine i + (5,9-5,35) System.Console.WriteLine i IL_0012: ldloc.2 - IL_0013: call WriteLine + IL_0013: call Console::WriteLine IL_0018: ldloc.1 @@ -23,7 +30,7 @@ Module::f IL_001b: call get_TailOrNull IL_0020: stloc.1 - (5,11-5,13) in + (4,11-4,13) in IL_0021: ldloc.1 IL_0022: brtrue.s IL_000b IL_0024: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - ActivePattern 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - ActivePattern 01.bsl index 08615e86be6..3ae778d9a23 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - ActivePattern 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - ActivePattern 01.bsl @@ -1,13 +1,24 @@ +module Module + +let (|Id|) (x: int) = x + +let f (l: int list) = + [ + for Id i in l do + yield i + ] +-------------------------------------------------------------------------------- + Module::|Id| - (4,23-4,24) x + (3,23-3,24) x IL_0000: ldarg.0 IL_0001: ret Module::f - (7,5-10,6) [ for Id i in l do yield i ] + (6,5-9,6) [ for Id i in l do yield i ] IL_0000: nop - (8,9-8,12) for + (7,9-7,12) for IL_0001: ldarg.0 IL_0002: stloc.1 IL_0003: ldloc.1 @@ -19,13 +30,13 @@ Module::f IL_0012: stloc.3 IL_0013: ldloca.s 0 IL_0015: ldloc.3 - IL_0016: call |Id| + IL_0016: call Module::|Id| IL_001b: stloc.s 4 IL_001d: ldloc.s 4 IL_001f: stloc.s 5 IL_0021: stloc.s 6 - (9,13-9,20) yield i + (8,13-8,20) yield i IL_0023: ldloc.s 6 IL_0025: ldloc.s 5 IL_0027: call Add @@ -36,7 +47,7 @@ Module::f IL_0030: call get_TailOrNull IL_0035: stloc.2 - (8,18-8,20) in + (7,18-7,20) in IL_0036: ldloc.2 IL_0037: brtrue.s IL_000c IL_0039: ldloca.s 0 diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Arrow 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Arrow 01.bsl index 108c8700c6f..b63ad05c8dd 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Arrow 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Arrow 01.bsl @@ -1,8 +1,16 @@ +module Module + +let f (l: int list) = + [ + for n in l -> n + ] +-------------------------------------------------------------------------------- + Module::f - (5,5-7,6) [ for n in l -> n ] + (4,5-6,6) [ for n in l -> n ] IL_0000: nop - (6,9-6,12) for + (5,9-5,12) for IL_0001: ldarg.0 IL_0002: stloc.1 IL_0003: ldloc.1 @@ -15,7 +23,7 @@ Module::f IL_0013: ldloca.s 0 IL_0015: stloc.s 4 - (6,23-6,24) n + (5,23-5,24) n IL_0017: ldloc.s 4 IL_0019: ldloc.3 IL_001a: call Add @@ -26,7 +34,7 @@ Module::f IL_0023: call get_TailOrNull IL_0028: stloc.2 - (6,15-6,17) in + (5,15-5,17) in IL_0029: ldloc.2 IL_002a: brtrue.s IL_000c IL_002c: ldloca.s 0 diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Tuple 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Tuple 01.bsl index 3a82bf3d6bf..e89ee794a8c 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Tuple 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Tuple 01.bsl @@ -1,8 +1,17 @@ +module Module + +let f (l: (int * int) list) = + [ + for n in l do + yield n + ] +-------------------------------------------------------------------------------- + Module::f - (5,5-8,6) [ for n in l do yield n ] + (4,5-7,6) [ for n in l do yield n ] IL_0000: nop - (6,9-6,12) for + (5,9-5,12) for IL_0001: ldarg.0 IL_0002: stloc.1 IL_0003: ldloc.1 @@ -15,7 +24,7 @@ Module::f IL_0013: ldloca.s 0 IL_0015: stloc.s 4 - (7,13-7,20) yield n + (6,13-6,20) yield n IL_0017: ldloc.s 4 IL_0019: ldloc.3 IL_001a: call Add @@ -26,7 +35,7 @@ Module::f IL_0023: call get_TailOrNull IL_0028: stloc.2 - (6,15-6,17) in + (5,15-5,17) in IL_0029: ldloc.2 IL_002a: brtrue.s IL_000c IL_002c: ldloca.s 0 diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Tuple 02.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Tuple 02.bsl index d308682b1cc..52d43e9b92e 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Tuple 02.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Tuple 02.bsl @@ -1,8 +1,17 @@ +module Module + +let f (l: (int * int) list) = + [ + for i, i1 in l do + yield i + ] +-------------------------------------------------------------------------------- + Module::f - (5,5-8,6) [ for i, i1 in l do yield i ] + (4,5-7,6) [ for i, i1 in l do yield i ] IL_0000: nop - (6,9-6,12) for + (5,9-5,12) for IL_0001: ldarg.0 IL_0002: stloc.1 IL_0003: ldloc.1 @@ -21,7 +30,7 @@ Module::f IL_0023: stloc.s 5 IL_0025: stloc.s 6 - (7,13-7,20) yield i + (6,13-6,20) yield i IL_0027: ldloc.s 6 IL_0029: ldloc.s 5 IL_002b: call Add @@ -32,7 +41,7 @@ Module::f IL_0034: call get_TailOrNull IL_0039: stloc.2 - (6,19-6,21) in + (5,19-5,21) in IL_003a: ldloc.2 IL_003b: brtrue.s IL_000c IL_003d: ldloca.s 0 diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Value 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Value 01.bsl index 5e0accf23b8..0a7de799786 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Value 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Value 01.bsl @@ -1,13 +1,22 @@ +module Module + +let a = + [ + for n in 1..10 do + yield n + ] +-------------------------------------------------------------------------------- + Module::.cctor IL_0000: ldc.i4.0 - IL_0001: stsfld init@ - IL_0006: ldsfld init@ + IL_0001: stsfld $Module::init@ + IL_0006: ldsfld $Module::init@ IL_000b: pop IL_000c: ret Module::staticInitialization@ - (4,1-8,6) let a = [ for n in 1..10 do yield n ] + (3,1-7,6) let a = [ for n in 1..10 do yield n ] IL_0000: ldc.i4.0 IL_0001: conv.i8 IL_0002: stloc.1 @@ -17,11 +26,11 @@ Module::staticInitialization@ IL_0007: ldloc.2 IL_0008: stloc.3 - (6,9-6,12) for + (5,9-5,12) for IL_0009: ldloca.s 0 IL_000b: stloc.s 4 - (7,13-7,20) yield n + (6,13-6,20) yield n IL_000d: ldloc.s 4 IL_000f: ldloc.3 IL_0010: call Add @@ -36,12 +45,12 @@ Module::staticInitialization@ IL_001d: add IL_001e: stloc.1 - (6,15-6,17) in + (5,15-5,17) in IL_001f: ldloc.1 IL_0020: ldc.i4.s 10 IL_0022: conv.i8 IL_0023: blt.un.s IL_0007 IL_0025: ldloca.s 0 IL_0027: call Close - IL_002c: stsfld a@4 + IL_002c: stsfld Module::a@3 IL_0031: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Value 02.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Value 02.bsl index 3a82bf3d6bf..c4071f0681a 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Value 02.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Comprehensions - Value 02.bsl @@ -1,8 +1,17 @@ +module Module + +let f (l: int list) = + [ + for n in l do + yield n + ] +-------------------------------------------------------------------------------- + Module::f - (5,5-8,6) [ for n in l do yield n ] + (4,5-7,6) [ for n in l do yield n ] IL_0000: nop - (6,9-6,12) for + (5,9-5,12) for IL_0001: ldarg.0 IL_0002: stloc.1 IL_0003: ldloc.1 @@ -15,7 +24,7 @@ Module::f IL_0013: ldloca.s 0 IL_0015: stloc.s 4 - (7,13-7,20) yield n + (6,13-6,20) yield n IL_0017: ldloc.s 4 IL_0019: ldloc.3 IL_001a: call Add @@ -26,7 +35,7 @@ Module::f IL_0023: call get_TailOrNull IL_0028: stloc.2 - (6,15-6,17) in + (5,15-5,17) in IL_0029: ldloc.2 IL_002a: brtrue.s IL_000c IL_002c: ldloca.s 0 diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Pattern - ActivePattern 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Pattern - ActivePattern 01.bsl index 04c4ef9351d..de47c9cd161 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Pattern - ActivePattern 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Pattern - ActivePattern 01.bsl @@ -1,10 +1,19 @@ +module Module + +let (|Id|) (x: int) = x + +let f (l: int list) = + for Id i in l do + () +-------------------------------------------------------------------------------- + Module::|Id| - (4,23-4,24) x + (3,23-3,24) x IL_0000: ldarg.0 IL_0001: ret Module::f - (7,17-7,18) l + (6,17-6,18) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 @@ -12,17 +21,17 @@ Module::f IL_0008: stloc.1 IL_0009: br.s IL_0026 - (7,5-7,13) for Id i + (6,5-6,13) for Id i IL_000b: ldloc.0 IL_000c: call get_HeadOrDefault IL_0011: stloc.2 IL_0012: ldloc.2 - IL_0013: call |Id| + IL_0013: call Module::|Id| IL_0018: stloc.3 IL_0019: ldloc.3 IL_001a: stloc.s 4 - (8,9-8,11) () + (7,9-7,11) () IL_001c: nop @@ -32,7 +41,7 @@ Module::f IL_0020: call get_TailOrNull IL_0025: stloc.1 - (7,14-7,16) in + (6,14-6,16) in IL_0026: ldloc.1 IL_0027: brtrue.s IL_000b IL_0029: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Pattern - Tuple 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Pattern - Tuple 01.bsl index afdc8ca112c..b00aa0c54a9 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Pattern - Tuple 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Pattern - Tuple 01.bsl @@ -1,5 +1,12 @@ +module Module + +let f (l: (int * int) list) = + for i1, i2 in l do + () +-------------------------------------------------------------------------------- + Module::f - (5,19-5,20) l + (4,19-4,20) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 @@ -7,7 +14,7 @@ Module::f IL_0008: stloc.1 IL_0009: br.s IL_002b - (5,5-5,15) for i1, i2 + (4,5-4,15) for i1, i2 IL_000b: ldloc.0 IL_000c: call get_HeadOrDefault IL_0011: stloc.2 @@ -18,7 +25,7 @@ Module::f IL_001a: call get_Item1 IL_001f: stloc.s 4 - (6,9-6,11) () + (5,9-5,11) () IL_0021: nop @@ -28,7 +35,7 @@ Module::f IL_0025: call get_TailOrNull IL_002a: stloc.1 - (5,16-5,18) in + (4,16-4,18) in IL_002b: ldloc.1 IL_002c: brtrue.s IL_000b IL_002e: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Simple 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Simple 01.bsl index e0cc6be0c47..c1a29adad2c 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Simple 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/List - Simple 01.bsl @@ -1,5 +1,12 @@ +module Module + +let f (l: int list) = + for i in l do + () +-------------------------------------------------------------------------------- + Module::f - (5,14-5,15) l + (4,14-4,15) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 @@ -7,12 +14,12 @@ Module::f IL_0008: stloc.1 IL_0009: br.s IL_001c - (5,5-5,10) for i + (4,5-4,10) for i IL_000b: ldloc.0 IL_000c: call get_HeadOrDefault IL_0011: stloc.2 - (6,9-6,11) () + (5,9-5,11) () IL_0012: nop @@ -22,7 +29,7 @@ Module::f IL_0016: call get_TailOrNull IL_001b: stloc.1 - (5,11-5,13) in + (4,11-4,13) in IL_001c: ldloc.1 IL_001d: brtrue.s IL_000b IL_001f: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Body - MultipleStatements 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Body - MultipleStatements 01.bsl index 0e16ad2c8e2..6f166fc0371 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Body - MultipleStatements 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Body - MultipleStatements 01.bsl @@ -1,5 +1,13 @@ +module Module + +let f (l: int seq) = + for i in l do + System.Console.WriteLine i + System.Console.WriteLine(i + 1) +-------------------------------------------------------------------------------- + Module::f - (5,14-5,15) l + (4,14-4,15) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 @@ -7,37 +15,35 @@ Module::f IL_0008: stloc.1 IL_0009: br.s IL_0020 - (5,5-5,10) for i + (4,5-4,10) for i IL_000b: ldloc.1 IL_000c: callvirt get_Current IL_0011: stloc.2 - (6,9-6,35) System.Console.WriteLine i + (5,9-5,35) System.Console.WriteLine i IL_0012: ldloc.2 - IL_0013: call WriteLine + IL_0013: call Console::WriteLine - (7,9-7,40) System.Console.WriteLine(i + 1) + (6,9-6,40) System.Console.WriteLine(i + 1) IL_0018: ldloc.2 IL_0019: ldc.i4.1 IL_001a: add - IL_001b: call WriteLine + IL_001b: call Console::WriteLine - (5,11-5,13) in + (4,11-4,13) in IL_0020: ldloc.1 - IL_0021: callvirt MoveNext + IL_0021: callvirt IEnumerator::MoveNext IL_0026: brtrue.s IL_000b IL_0028: leave.s IL_003c IL_002a: ldloc.1 IL_002b: isinst IDisposable IL_0030: stloc.3 - - IL_0031: ldloc.3 IL_0032: brfalse.s IL_003b IL_0034: ldloc.3 - IL_0035: callvirt Dispose + IL_0035: callvirt IDisposable::Dispose IL_003a: endfinally diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Body - SingleStatement 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Body - SingleStatement 01.bsl index b6d13c7e7ab..758c3f1533e 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Body - SingleStatement 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Body - SingleStatement 01.bsl @@ -1,5 +1,12 @@ +module Module + +let f (l: int seq) = + for i in l do + System.Console.WriteLine i +-------------------------------------------------------------------------------- + Module::f - (5,14-5,15) l + (4,14-4,15) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 @@ -7,31 +14,29 @@ Module::f IL_0008: stloc.1 IL_0009: br.s IL_0018 - (5,5-5,10) for i + (4,5-4,10) for i IL_000b: ldloc.1 IL_000c: callvirt get_Current IL_0011: stloc.2 - (6,9-6,35) System.Console.WriteLine i + (5,9-5,35) System.Console.WriteLine i IL_0012: ldloc.2 - IL_0013: call WriteLine + IL_0013: call Console::WriteLine - (5,11-5,13) in + (4,11-4,13) in IL_0018: ldloc.1 - IL_0019: callvirt MoveNext + IL_0019: callvirt IEnumerator::MoveNext IL_001e: brtrue.s IL_000b IL_0020: leave.s IL_0034 IL_0022: ldloc.1 IL_0023: isinst IDisposable IL_0028: stloc.3 - - IL_0029: ldloc.3 IL_002a: brfalse.s IL_0033 IL_002c: ldloc.3 - IL_002d: callvirt Dispose + IL_002d: callvirt IDisposable::Dispose IL_0032: endfinally diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - ActivePattern 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - ActivePattern 01.bsl index a1d4ee342ca..bd0897c4258 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - ActivePattern 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - ActivePattern 01.bsl @@ -1,21 +1,32 @@ +module Module + +let (|Id|) (x: int) = x + +let f (l: int list) = + seq { + for Id i in l do + yield i + } +-------------------------------------------------------------------------------- + Module::|Id| - (4,23-4,24) x + (3,23-3,24) x IL_0000: ldarg.0 IL_0001: ret Module::f - (7,5-10,6) seq { for Id i in l do yield i } + (6,5-9,6) seq { for Id i in l do yield i } IL_0000: ldarg.0 IL_0001: ldnull IL_0002: ldc.i4.0 IL_0003: ldc.i4.0 - IL_0004: newobj .ctor + IL_0004: newobj f@7::.ctor IL_0009: ret -f@8::GenerateNext +f@7::GenerateNext IL_0000: ldarg.0 - IL_0001: ldfld pc + IL_0001: ldfld f@7::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch (3 targets) @@ -23,78 +34,77 @@ f@8::GenerateNext IL_001b: nop - IL_001c: br.s IL_0073 + IL_001c: br.s IL_0071 IL_001e: nop - IL_001f: br.s IL_0066 + IL_001f: br.s IL_0064 IL_0021: nop - IL_0022: br.s IL_0094 + IL_0022: br.s IL_0092 IL_0024: nop - IL_0025: br.s IL_0027 - - (8,9-8,12) for - IL_0027: ldarg.0 - IL_0028: ldarg.0 - IL_0029: ldfld l - IL_002e: callvirt GetEnumerator - IL_0033: stfld enum - IL_0038: ldarg.0 - IL_0039: ldc.i4.1 - IL_003a: stfld pc - IL_003f: br.s IL_0066 - IL_0041: ldarg.0 - IL_0042: ldfld enum - IL_0047: callvirt get_Current - IL_004c: stloc.0 - IL_004d: ldloc.0 - IL_004e: call |Id| - IL_0053: stloc.1 - IL_0054: ldloc.1 - IL_0055: stloc.2 - - (9,13-9,20) yield i - IL_0056: ldarg.0 - IL_0057: ldc.i4.2 - IL_0058: stfld pc - IL_005d: ldarg.0 - IL_005e: ldloc.2 - IL_005f: stfld current - IL_0064: ldc.i4.1 - IL_0065: ret - - (8,18-8,20) in - IL_0066: ldarg.0 - IL_0067: ldfld enum - IL_006c: callvirt MoveNext - IL_0071: brtrue.s IL_0041 - IL_0073: ldarg.0 - IL_0074: ldc.i4.3 - IL_0075: stfld pc - IL_007a: ldarg.0 - IL_007b: ldfld enum - IL_0080: call Dispose - IL_0085: nop - IL_0086: ldarg.0 - IL_0087: ldnull - IL_0088: stfld enum - IL_008d: ldarg.0 - IL_008e: ldc.i4.3 - IL_008f: stfld pc - IL_0094: ldarg.0 - IL_0095: ldc.i4.0 - IL_0096: stfld current - IL_009b: ldc.i4.0 - IL_009c: ret - -f@8::Close + + (7,9-7,12) for + IL_0025: ldarg.0 + IL_0026: ldarg.0 + IL_0027: ldfld f@7::l + IL_002c: callvirt GetEnumerator + IL_0031: stfld f@7::enum + IL_0036: ldarg.0 + IL_0037: ldc.i4.1 + IL_0038: stfld f@7::pc + IL_003d: br.s IL_0064 + IL_003f: ldarg.0 + IL_0040: ldfld f@7::enum + IL_0045: callvirt get_Current + IL_004a: stloc.0 + IL_004b: ldloc.0 + IL_004c: call Module::|Id| + IL_0051: stloc.1 + IL_0052: ldloc.1 + IL_0053: stloc.2 + + (8,13-8,20) yield i + IL_0054: ldarg.0 + IL_0055: ldc.i4.2 + IL_0056: stfld f@7::pc + IL_005b: ldarg.0 + IL_005c: ldloc.2 + IL_005d: stfld f@7::current + IL_0062: ldc.i4.1 + IL_0063: ret + + (7,18-7,20) in + IL_0064: ldarg.0 + IL_0065: ldfld f@7::enum + IL_006a: callvirt IEnumerator::MoveNext + IL_006f: brtrue.s IL_003f + IL_0071: ldarg.0 + IL_0072: ldc.i4.3 + IL_0073: stfld f@7::pc + IL_0078: ldarg.0 + IL_0079: ldfld f@7::enum + IL_007e: call IntrinsicFunctions::Dispose + IL_0083: nop + IL_0084: ldarg.0 + IL_0085: ldnull + IL_0086: stfld f@7::enum + IL_008b: ldarg.0 + IL_008c: ldc.i4.3 + IL_008d: stfld f@7::pc + IL_0092: ldarg.0 + IL_0093: ldc.i4.0 + IL_0094: stfld f@7::current + IL_0099: ldc.i4.0 + IL_009a: ret + +f@7::Close IL_0000: ldarg.0 - IL_0001: ldfld pc + IL_0001: ldfld f@7::pc IL_0006: ldc.i4.3 IL_0007: sub IL_0008: switch (1 targets) @@ -102,110 +112,100 @@ f@8::Close IL_0013: nop - IL_0014: br.s IL_0078 + IL_0014: br.s IL_0076 IL_0016: nop - - IL_0017: ldarg.0 - IL_0018: ldfld pc + IL_0018: ldfld f@7::pc IL_001d: switch (4 targets) IL_0032: br.s IL_0040 IL_0034: nop - IL_0035: br.s IL_0058 + IL_0035: br.s IL_0056 IL_0037: nop - IL_0038: br.s IL_0044 + IL_0038: br.s IL_0042 IL_003a: nop - IL_003b: br.s IL_0043 + IL_003b: br.s IL_0041 IL_003d: nop - IL_003e: br.s IL_0058 + IL_003e: br.s IL_0056 IL_0040: nop - IL_0041: br.s IL_0043 - IL_0043: nop - IL_0044: ldarg.0 - IL_0045: ldc.i4.3 - IL_0046: stfld pc - IL_004b: ldarg.0 - IL_004c: ldfld enum - IL_0051: call Dispose - IL_0056: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld f@7::pc + IL_0049: ldarg.0 + IL_004a: ldfld f@7::enum + IL_004f: call IntrinsicFunctions::Dispose + IL_0054: nop - IL_0057: nop - IL_0058: ldarg.0 - IL_0059: ldc.i4.3 - IL_005a: stfld pc - IL_005f: ldarg.0 - IL_0060: ldc.i4.0 - IL_0061: stfld current - IL_0066: leave.s IL_0072 - IL_0068: castclass Exception - IL_006d: stloc.1 - IL_006e: ldloc.1 - IL_006f: stloc.0 - IL_0070: leave.s IL_0072 - - - IL_0072: nop - IL_0073: br IL_0000 - - - IL_0078: ldloc.0 - IL_0079: brfalse.s IL_007d + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld f@7::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld f@7::current + IL_0064: leave.s IL_0070 + IL_0066: castclass Exception + IL_006b: stloc.1 + IL_006c: ldloc.1 + IL_006d: stloc.0 + IL_006e: leave.s IL_0070 - IL_007b: ldloc.0 - IL_007c: throw + IL_0070: nop + IL_0071: br IL_0000 + IL_0076: ldloc.0 + IL_0077: brfalse.s IL_007b - IL_007d: ret + IL_0079: ldloc.0 + IL_007a: throw + IL_007b: ret -f@8::get_CheckClose +f@7::get_CheckClose IL_0000: ldarg.0 - IL_0001: ldfld pc + IL_0001: ldfld f@7::pc IL_0006: switch (4 targets) IL_001b: br.s IL_0029 IL_001d: nop - IL_001e: br.s IL_0030 + IL_001e: br.s IL_002e IL_0020: nop - IL_0021: br.s IL_002e + IL_0021: br.s IL_002c IL_0023: nop - IL_0024: br.s IL_002c + IL_0024: br.s IL_002a IL_0026: nop - IL_0027: br.s IL_0030 + IL_0027: br.s IL_002e IL_0029: nop - IL_002a: br.s IL_002c - - + IL_002a: ldc.i4.1 + IL_002b: ret IL_002c: ldc.i4.1 IL_002d: ret - IL_002e: ldc.i4.1 + IL_002e: ldc.i4.0 IL_002f: ret - IL_0030: ldc.i4.0 - IL_0031: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Arrow 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Arrow 01.bsl index c22c1947a13..095775bd513 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Arrow 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Arrow 01.bsl @@ -1,16 +1,24 @@ +module Module + +let f (l: int list) = + seq { + for n in l -> n + } +-------------------------------------------------------------------------------- + Module::f - (5,5-7,6) seq { for n in l -> n } + (4,5-6,6) seq { for n in l -> n } IL_0000: ldarg.0 IL_0001: ldnull IL_0002: ldc.i4.0 IL_0003: ldc.i4.0 - IL_0004: newobj .ctor + IL_0004: newobj f@5::.ctor IL_0009: ret -f@6::GenerateNext +f@5::GenerateNext IL_0000: ldarg.0 - IL_0001: ldfld pc + IL_0001: ldfld f@5::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch (3 targets) @@ -18,75 +26,74 @@ f@6::GenerateNext IL_001b: nop - IL_001c: br.s IL_006c + IL_001c: br.s IL_006a IL_001e: nop - IL_001f: br.s IL_005f + IL_001f: br.s IL_005d IL_0021: nop - IL_0022: br.s IL_008d + IL_0022: br.s IL_008b IL_0024: nop - IL_0025: br.s IL_0027 - - (6,9-6,12) for - IL_0027: ldarg.0 - IL_0028: ldarg.0 - IL_0029: ldfld l - IL_002e: callvirt GetEnumerator - IL_0033: stfld enum - IL_0038: ldarg.0 - IL_0039: ldc.i4.1 - IL_003a: stfld pc - IL_003f: br.s IL_005f - IL_0041: ldarg.0 - IL_0042: ldfld enum - IL_0047: callvirt get_Current - IL_004c: stloc.0 - IL_004d: ldarg.0 - IL_004e: ldc.i4.2 - IL_004f: stfld pc - IL_0054: ldarg.0 - IL_0055: stloc.1 - - (6,23-6,24) n - IL_0056: ldloc.1 - IL_0057: ldloc.0 - IL_0058: stfld current - IL_005d: ldc.i4.1 - IL_005e: ret - - (6,15-6,17) in - IL_005f: ldarg.0 - IL_0060: ldfld enum - IL_0065: callvirt MoveNext - IL_006a: brtrue.s IL_0041 - IL_006c: ldarg.0 - IL_006d: ldc.i4.3 - IL_006e: stfld pc - IL_0073: ldarg.0 - IL_0074: ldfld enum - IL_0079: call Dispose - IL_007e: nop - IL_007f: ldarg.0 - IL_0080: ldnull - IL_0081: stfld enum - IL_0086: ldarg.0 - IL_0087: ldc.i4.3 - IL_0088: stfld pc - IL_008d: ldarg.0 - IL_008e: ldc.i4.0 - IL_008f: stfld current - IL_0094: ldc.i4.0 - IL_0095: ret - -f@6::Close + + (5,9-5,12) for + IL_0025: ldarg.0 + IL_0026: ldarg.0 + IL_0027: ldfld f@5::l + IL_002c: callvirt GetEnumerator + IL_0031: stfld f@5::enum + IL_0036: ldarg.0 + IL_0037: ldc.i4.1 + IL_0038: stfld f@5::pc + IL_003d: br.s IL_005d + IL_003f: ldarg.0 + IL_0040: ldfld f@5::enum + IL_0045: callvirt get_Current + IL_004a: stloc.0 + IL_004b: ldarg.0 + IL_004c: ldc.i4.2 + IL_004d: stfld f@5::pc + IL_0052: ldarg.0 + IL_0053: stloc.1 + + (5,23-5,24) n + IL_0054: ldloc.1 + IL_0055: ldloc.0 + IL_0056: stfld f@5::current + IL_005b: ldc.i4.1 + IL_005c: ret + + (5,15-5,17) in + IL_005d: ldarg.0 + IL_005e: ldfld f@5::enum + IL_0063: callvirt IEnumerator::MoveNext + IL_0068: brtrue.s IL_003f + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld f@5::pc + IL_0071: ldarg.0 + IL_0072: ldfld f@5::enum + IL_0077: call IntrinsicFunctions::Dispose + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld f@5::enum + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld f@5::pc + IL_008b: ldarg.0 + IL_008c: ldc.i4.0 + IL_008d: stfld f@5::current + IL_0092: ldc.i4.0 + IL_0093: ret + +f@5::Close IL_0000: ldarg.0 - IL_0001: ldfld pc + IL_0001: ldfld f@5::pc IL_0006: ldc.i4.3 IL_0007: sub IL_0008: switch (1 targets) @@ -94,110 +101,100 @@ f@6::Close IL_0013: nop - IL_0014: br.s IL_0078 + IL_0014: br.s IL_0076 IL_0016: nop - - IL_0017: ldarg.0 - IL_0018: ldfld pc + IL_0018: ldfld f@5::pc IL_001d: switch (4 targets) IL_0032: br.s IL_0040 IL_0034: nop - IL_0035: br.s IL_0058 + IL_0035: br.s IL_0056 IL_0037: nop - IL_0038: br.s IL_0044 + IL_0038: br.s IL_0042 IL_003a: nop - IL_003b: br.s IL_0043 + IL_003b: br.s IL_0041 IL_003d: nop - IL_003e: br.s IL_0058 + IL_003e: br.s IL_0056 IL_0040: nop - IL_0041: br.s IL_0043 - IL_0043: nop - IL_0044: ldarg.0 - IL_0045: ldc.i4.3 - IL_0046: stfld pc - IL_004b: ldarg.0 - IL_004c: ldfld enum - IL_0051: call Dispose - IL_0056: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld f@5::pc + IL_0049: ldarg.0 + IL_004a: ldfld f@5::enum + IL_004f: call IntrinsicFunctions::Dispose + IL_0054: nop - IL_0057: nop - IL_0058: ldarg.0 - IL_0059: ldc.i4.3 - IL_005a: stfld pc - IL_005f: ldarg.0 - IL_0060: ldc.i4.0 - IL_0061: stfld current - IL_0066: leave.s IL_0072 - IL_0068: castclass Exception - IL_006d: stloc.1 - IL_006e: ldloc.1 - IL_006f: stloc.0 - IL_0070: leave.s IL_0072 + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld f@5::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld f@5::current + IL_0064: leave.s IL_0070 + IL_0066: castclass Exception + IL_006b: stloc.1 + IL_006c: ldloc.1 + IL_006d: stloc.0 + IL_006e: leave.s IL_0070 - IL_0072: nop - IL_0073: br IL_0000 + IL_0070: nop + IL_0071: br IL_0000 + IL_0076: ldloc.0 + IL_0077: brfalse.s IL_007b - IL_0078: ldloc.0 - IL_0079: brfalse.s IL_007d + IL_0079: ldloc.0 + IL_007a: throw - IL_007b: ldloc.0 - IL_007c: throw + IL_007b: ret - - IL_007d: ret - - - -f@6::get_CheckClose +f@5::get_CheckClose IL_0000: ldarg.0 - IL_0001: ldfld pc + IL_0001: ldfld f@5::pc IL_0006: switch (4 targets) IL_001b: br.s IL_0029 IL_001d: nop - IL_001e: br.s IL_0030 + IL_001e: br.s IL_002e IL_0020: nop - IL_0021: br.s IL_002e + IL_0021: br.s IL_002c IL_0023: nop - IL_0024: br.s IL_002c + IL_0024: br.s IL_002a IL_0026: nop - IL_0027: br.s IL_0030 + IL_0027: br.s IL_002e IL_0029: nop - IL_002a: br.s IL_002c - - + IL_002a: ldc.i4.1 + IL_002b: ret IL_002c: ldc.i4.1 IL_002d: ret - IL_002e: ldc.i4.1 + IL_002e: ldc.i4.0 IL_002f: ret - IL_0030: ldc.i4.0 - IL_0031: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Tuple 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Tuple 01.bsl index c87c15661e4..9ff027a7378 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Tuple 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Tuple 01.bsl @@ -1,16 +1,25 @@ +module Module + +let f (l: (int * int) list) = + seq { + for n in l do + yield n + } +-------------------------------------------------------------------------------- + Module::f - (5,5-8,6) seq { for n in l do yield n } + (4,5-7,6) seq { for n in l do yield n } IL_0000: ldarg.0 IL_0001: ldnull IL_0002: ldc.i4.0 IL_0003: ldnull - IL_0004: newobj .ctor + IL_0004: newobj f@5::.ctor IL_0009: ret -f@6::GenerateNext +f@5::GenerateNext IL_0000: ldarg.0 - IL_0001: ldfld pc + IL_0001: ldfld f@5::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch (3 targets) @@ -18,75 +27,74 @@ f@6::GenerateNext IL_001b: nop - IL_001c: br.s IL_006c + IL_001c: br.s IL_006a IL_001e: nop - IL_001f: br.s IL_005f + IL_001f: br.s IL_005d IL_0021: nop - IL_0022: br.s IL_008d + IL_0022: br.s IL_008b IL_0024: nop - IL_0025: br.s IL_0027 - - (6,9-6,12) for - IL_0027: ldarg.0 - IL_0028: ldarg.0 - IL_0029: ldfld l - IL_002e: callvirt GetEnumerator - IL_0033: stfld enum - IL_0038: ldarg.0 - IL_0039: ldc.i4.1 - IL_003a: stfld pc - IL_003f: br.s IL_005f - IL_0041: ldarg.0 - IL_0042: ldfld enum - IL_0047: callvirt get_Current - IL_004c: stloc.0 - IL_004d: ldarg.0 - IL_004e: ldc.i4.2 - IL_004f: stfld pc - IL_0054: ldarg.0 - IL_0055: stloc.1 - - (7,13-7,20) yield n - IL_0056: ldloc.1 - IL_0057: ldloc.0 - IL_0058: stfld current - IL_005d: ldc.i4.1 - IL_005e: ret - - (6,15-6,17) in - IL_005f: ldarg.0 - IL_0060: ldfld enum - IL_0065: callvirt MoveNext - IL_006a: brtrue.s IL_0041 - IL_006c: ldarg.0 - IL_006d: ldc.i4.3 - IL_006e: stfld pc - IL_0073: ldarg.0 - IL_0074: ldfld enum - IL_0079: call Dispose - IL_007e: nop - IL_007f: ldarg.0 - IL_0080: ldnull - IL_0081: stfld enum - IL_0086: ldarg.0 - IL_0087: ldc.i4.3 - IL_0088: stfld pc - IL_008d: ldarg.0 - IL_008e: ldnull - IL_008f: stfld current - IL_0094: ldc.i4.0 - IL_0095: ret - -f@6::Close + + (5,9-5,12) for + IL_0025: ldarg.0 + IL_0026: ldarg.0 + IL_0027: ldfld f@5::l + IL_002c: callvirt GetEnumerator + IL_0031: stfld f@5::enum + IL_0036: ldarg.0 + IL_0037: ldc.i4.1 + IL_0038: stfld f@5::pc + IL_003d: br.s IL_005d + IL_003f: ldarg.0 + IL_0040: ldfld f@5::enum + IL_0045: callvirt get_Current + IL_004a: stloc.0 + IL_004b: ldarg.0 + IL_004c: ldc.i4.2 + IL_004d: stfld f@5::pc + IL_0052: ldarg.0 + IL_0053: stloc.1 + + (6,13-6,20) yield n + IL_0054: ldloc.1 + IL_0055: ldloc.0 + IL_0056: stfld f@5::current + IL_005b: ldc.i4.1 + IL_005c: ret + + (5,15-5,17) in + IL_005d: ldarg.0 + IL_005e: ldfld f@5::enum + IL_0063: callvirt IEnumerator::MoveNext + IL_0068: brtrue.s IL_003f + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld f@5::pc + IL_0071: ldarg.0 + IL_0072: ldfld f@5::enum + IL_0077: call IntrinsicFunctions::Dispose + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld f@5::enum + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld f@5::pc + IL_008b: ldarg.0 + IL_008c: ldnull + IL_008d: stfld f@5::current + IL_0092: ldc.i4.0 + IL_0093: ret + +f@5::Close IL_0000: ldarg.0 - IL_0001: ldfld pc + IL_0001: ldfld f@5::pc IL_0006: ldc.i4.3 IL_0007: sub IL_0008: switch (1 targets) @@ -94,110 +102,100 @@ f@6::Close IL_0013: nop - IL_0014: br.s IL_0078 + IL_0014: br.s IL_0076 IL_0016: nop - - IL_0017: ldarg.0 - IL_0018: ldfld pc + IL_0018: ldfld f@5::pc IL_001d: switch (4 targets) IL_0032: br.s IL_0040 IL_0034: nop - IL_0035: br.s IL_0058 + IL_0035: br.s IL_0056 IL_0037: nop - IL_0038: br.s IL_0044 + IL_0038: br.s IL_0042 IL_003a: nop - IL_003b: br.s IL_0043 + IL_003b: br.s IL_0041 IL_003d: nop - IL_003e: br.s IL_0058 + IL_003e: br.s IL_0056 IL_0040: nop - IL_0041: br.s IL_0043 - IL_0043: nop - IL_0044: ldarg.0 - IL_0045: ldc.i4.3 - IL_0046: stfld pc - IL_004b: ldarg.0 - IL_004c: ldfld enum - IL_0051: call Dispose - IL_0056: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld f@5::pc + IL_0049: ldarg.0 + IL_004a: ldfld f@5::enum + IL_004f: call IntrinsicFunctions::Dispose + IL_0054: nop - IL_0057: nop - IL_0058: ldarg.0 - IL_0059: ldc.i4.3 - IL_005a: stfld pc - IL_005f: ldarg.0 - IL_0060: ldnull - IL_0061: stfld current - IL_0066: leave.s IL_0072 - IL_0068: castclass Exception - IL_006d: stloc.1 - IL_006e: ldloc.1 - IL_006f: stloc.0 - IL_0070: leave.s IL_0072 + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld f@5::pc + IL_005d: ldarg.0 + IL_005e: ldnull + IL_005f: stfld f@5::current + IL_0064: leave.s IL_0070 + IL_0066: castclass Exception + IL_006b: stloc.1 + IL_006c: ldloc.1 + IL_006d: stloc.0 + IL_006e: leave.s IL_0070 - IL_0072: nop - IL_0073: br IL_0000 + IL_0070: nop + IL_0071: br IL_0000 + IL_0076: ldloc.0 + IL_0077: brfalse.s IL_007b - IL_0078: ldloc.0 - IL_0079: brfalse.s IL_007d + IL_0079: ldloc.0 + IL_007a: throw - IL_007b: ldloc.0 - IL_007c: throw + IL_007b: ret - - IL_007d: ret - - - -f@6::get_CheckClose +f@5::get_CheckClose IL_0000: ldarg.0 - IL_0001: ldfld pc + IL_0001: ldfld f@5::pc IL_0006: switch (4 targets) IL_001b: br.s IL_0029 IL_001d: nop - IL_001e: br.s IL_0030 + IL_001e: br.s IL_002e IL_0020: nop - IL_0021: br.s IL_002e + IL_0021: br.s IL_002c IL_0023: nop - IL_0024: br.s IL_002c + IL_0024: br.s IL_002a IL_0026: nop - IL_0027: br.s IL_0030 + IL_0027: br.s IL_002e IL_0029: nop - IL_002a: br.s IL_002c - - + IL_002a: ldc.i4.1 + IL_002b: ret IL_002c: ldc.i4.1 IL_002d: ret - IL_002e: ldc.i4.1 + IL_002e: ldc.i4.0 IL_002f: ret - IL_0030: ldc.i4.0 - IL_0031: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Tuple 02.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Tuple 02.bsl index 563e2b0a3f0..1ccd9ab00d2 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Tuple 02.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Tuple 02.bsl @@ -1,16 +1,25 @@ +module Module + +let f (l: (int * int) list) = + seq { + for i, i1 in l do + yield i + } +-------------------------------------------------------------------------------- + Module::f - (5,5-8,6) seq { for i, i1 in l do yield i } + (4,5-7,6) seq { for i, i1 in l do yield i } IL_0000: ldarg.0 IL_0001: ldnull IL_0002: ldc.i4.0 IL_0003: ldc.i4.0 - IL_0004: newobj .ctor + IL_0004: newobj f@5::.ctor IL_0009: ret -f@6::GenerateNext +f@5::GenerateNext IL_0000: ldarg.0 - IL_0001: ldfld pc + IL_0001: ldfld f@5::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch (3 targets) @@ -18,79 +27,78 @@ f@6::GenerateNext IL_001b: nop - IL_001c: br.s IL_0078 + IL_001c: br.s IL_0076 IL_001e: nop - IL_001f: br.s IL_006b + IL_001f: br.s IL_0069 IL_0021: nop - IL_0022: br.s IL_0099 + IL_0022: br.s IL_0097 IL_0024: nop - IL_0025: br.s IL_0027 - - (6,9-6,12) for - IL_0027: ldarg.0 - IL_0028: ldarg.0 - IL_0029: ldfld l - IL_002e: callvirt GetEnumerator - IL_0033: stfld enum - IL_0038: ldarg.0 - IL_0039: ldc.i4.1 - IL_003a: stfld pc - IL_003f: br.s IL_006b - IL_0041: ldarg.0 - IL_0042: ldfld enum - IL_0047: callvirt get_Current - IL_004c: stloc.0 - IL_004d: ldloc.0 - IL_004e: call get_Item2 - IL_0053: stloc.1 - IL_0054: ldloc.0 - IL_0055: call get_Item1 - IL_005a: stloc.2 - - (7,13-7,20) yield i - IL_005b: ldarg.0 - IL_005c: ldc.i4.2 - IL_005d: stfld pc - IL_0062: ldarg.0 - IL_0063: ldloc.2 - IL_0064: stfld current - IL_0069: ldc.i4.1 - IL_006a: ret - - (6,19-6,21) in - IL_006b: ldarg.0 - IL_006c: ldfld enum - IL_0071: callvirt MoveNext - IL_0076: brtrue.s IL_0041 - IL_0078: ldarg.0 - IL_0079: ldc.i4.3 - IL_007a: stfld pc - IL_007f: ldarg.0 - IL_0080: ldfld enum - IL_0085: call Dispose - IL_008a: nop - IL_008b: ldarg.0 - IL_008c: ldnull - IL_008d: stfld enum - IL_0092: ldarg.0 - IL_0093: ldc.i4.3 - IL_0094: stfld pc - IL_0099: ldarg.0 - IL_009a: ldc.i4.0 - IL_009b: stfld current - IL_00a0: ldc.i4.0 - IL_00a1: ret - -f@6::Close + + (5,9-5,12) for + IL_0025: ldarg.0 + IL_0026: ldarg.0 + IL_0027: ldfld f@5::l + IL_002c: callvirt GetEnumerator + IL_0031: stfld f@5::enum + IL_0036: ldarg.0 + IL_0037: ldc.i4.1 + IL_0038: stfld f@5::pc + IL_003d: br.s IL_0069 + IL_003f: ldarg.0 + IL_0040: ldfld f@5::enum + IL_0045: callvirt get_Current + IL_004a: stloc.0 + IL_004b: ldloc.0 + IL_004c: call get_Item2 + IL_0051: stloc.1 + IL_0052: ldloc.0 + IL_0053: call get_Item1 + IL_0058: stloc.2 + + (6,13-6,20) yield i + IL_0059: ldarg.0 + IL_005a: ldc.i4.2 + IL_005b: stfld f@5::pc + IL_0060: ldarg.0 + IL_0061: ldloc.2 + IL_0062: stfld f@5::current + IL_0067: ldc.i4.1 + IL_0068: ret + + (5,19-5,21) in + IL_0069: ldarg.0 + IL_006a: ldfld f@5::enum + IL_006f: callvirt IEnumerator::MoveNext + IL_0074: brtrue.s IL_003f + IL_0076: ldarg.0 + IL_0077: ldc.i4.3 + IL_0078: stfld f@5::pc + IL_007d: ldarg.0 + IL_007e: ldfld f@5::enum + IL_0083: call IntrinsicFunctions::Dispose + IL_0088: nop + IL_0089: ldarg.0 + IL_008a: ldnull + IL_008b: stfld f@5::enum + IL_0090: ldarg.0 + IL_0091: ldc.i4.3 + IL_0092: stfld f@5::pc + IL_0097: ldarg.0 + IL_0098: ldc.i4.0 + IL_0099: stfld f@5::current + IL_009e: ldc.i4.0 + IL_009f: ret + +f@5::Close IL_0000: ldarg.0 - IL_0001: ldfld pc + IL_0001: ldfld f@5::pc IL_0006: ldc.i4.3 IL_0007: sub IL_0008: switch (1 targets) @@ -98,110 +106,100 @@ f@6::Close IL_0013: nop - IL_0014: br.s IL_0078 + IL_0014: br.s IL_0076 IL_0016: nop - - IL_0017: ldarg.0 - IL_0018: ldfld pc + IL_0018: ldfld f@5::pc IL_001d: switch (4 targets) IL_0032: br.s IL_0040 IL_0034: nop - IL_0035: br.s IL_0058 + IL_0035: br.s IL_0056 IL_0037: nop - IL_0038: br.s IL_0044 + IL_0038: br.s IL_0042 IL_003a: nop - IL_003b: br.s IL_0043 + IL_003b: br.s IL_0041 IL_003d: nop - IL_003e: br.s IL_0058 + IL_003e: br.s IL_0056 IL_0040: nop - IL_0041: br.s IL_0043 - IL_0043: nop - IL_0044: ldarg.0 - IL_0045: ldc.i4.3 - IL_0046: stfld pc - IL_004b: ldarg.0 - IL_004c: ldfld enum - IL_0051: call Dispose - IL_0056: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld f@5::pc + IL_0049: ldarg.0 + IL_004a: ldfld f@5::enum + IL_004f: call IntrinsicFunctions::Dispose + IL_0054: nop - IL_0057: nop - IL_0058: ldarg.0 - IL_0059: ldc.i4.3 - IL_005a: stfld pc - IL_005f: ldarg.0 - IL_0060: ldc.i4.0 - IL_0061: stfld current - IL_0066: leave.s IL_0072 - IL_0068: castclass Exception - IL_006d: stloc.1 - IL_006e: ldloc.1 - IL_006f: stloc.0 - IL_0070: leave.s IL_0072 + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld f@5::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld f@5::current + IL_0064: leave.s IL_0070 + IL_0066: castclass Exception + IL_006b: stloc.1 + IL_006c: ldloc.1 + IL_006d: stloc.0 + IL_006e: leave.s IL_0070 - IL_0072: nop - IL_0073: br IL_0000 + IL_0070: nop + IL_0071: br IL_0000 + IL_0076: ldloc.0 + IL_0077: brfalse.s IL_007b - IL_0078: ldloc.0 - IL_0079: brfalse.s IL_007d + IL_0079: ldloc.0 + IL_007a: throw - IL_007b: ldloc.0 - IL_007c: throw + IL_007b: ret - - IL_007d: ret - - - -f@6::get_CheckClose +f@5::get_CheckClose IL_0000: ldarg.0 - IL_0001: ldfld pc + IL_0001: ldfld f@5::pc IL_0006: switch (4 targets) IL_001b: br.s IL_0029 IL_001d: nop - IL_001e: br.s IL_0030 + IL_001e: br.s IL_002e IL_0020: nop - IL_0021: br.s IL_002e + IL_0021: br.s IL_002c IL_0023: nop - IL_0024: br.s IL_002c + IL_0024: br.s IL_002a IL_0026: nop - IL_0027: br.s IL_0030 + IL_0027: br.s IL_002e IL_0029: nop - IL_002a: br.s IL_002c - - + IL_002a: ldc.i4.1 + IL_002b: ret IL_002c: ldc.i4.1 IL_002d: ret - IL_002e: ldc.i4.1 + IL_002e: ldc.i4.0 IL_002f: ret - IL_0030: ldc.i4.0 - IL_0031: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Value 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Value 01.bsl index 6e703a4a985..d05797f5edb 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Value 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Value 01.bsl @@ -1,24 +1,33 @@ +module Module + +let a = + seq { + for n in 1..10 do + yield n + } +-------------------------------------------------------------------------------- + Module::.cctor IL_0000: ldc.i4.0 - IL_0001: stsfld init@ - IL_0006: ldsfld init@ + IL_0001: stsfld $Module::init@ + IL_0006: ldsfld $Module::init@ IL_000b: pop IL_000c: ret Module::staticInitialization@ - (5,5-8,6) seq { for n in 1..10 do yield n } + (4,5-7,6) seq { for n in 1..10 do yield n } IL_0000: ldnull IL_0001: ldc.i4.0 IL_0002: ldc.i4.0 - IL_0003: newobj .ctor - IL_0008: stsfld a@4 + IL_0003: newobj a@5::.ctor + IL_0008: stsfld Module::a@3 IL_000d: ret -a@6::GenerateNext +a@5::GenerateNext IL_0000: ldarg.0 - IL_0001: ldfld pc + IL_0001: ldfld a@5::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch (3 targets) @@ -26,77 +35,76 @@ a@6::GenerateNext IL_001b: nop - IL_001c: br.s IL_006f + IL_001c: br.s IL_006d IL_001e: nop - IL_001f: br.s IL_0062 + IL_001f: br.s IL_0060 IL_0021: nop - IL_0022: br.s IL_0090 + IL_0022: br.s IL_008e IL_0024: nop - IL_0025: br.s IL_0027 - - (6,9-6,12) for - IL_0027: ldarg.0 - IL_0028: ldc.i4.1 - IL_0029: ldc.i4.1 - IL_002a: ldc.i4.s 10 - IL_002c: call RangeInt32 - IL_0031: callvirt GetEnumerator - IL_0036: stfld enum - IL_003b: ldarg.0 - IL_003c: ldc.i4.1 - IL_003d: stfld pc - IL_0042: br.s IL_0062 - IL_0044: ldarg.0 - IL_0045: ldfld enum - IL_004a: callvirt get_Current - IL_004f: stloc.0 - IL_0050: ldarg.0 - IL_0051: ldc.i4.2 - IL_0052: stfld pc - IL_0057: ldarg.0 - IL_0058: stloc.1 - - (7,13-7,20) yield n - IL_0059: ldloc.1 - IL_005a: ldloc.0 - IL_005b: stfld current - IL_0060: ldc.i4.1 - IL_0061: ret - - (6,15-6,17) in - IL_0062: ldarg.0 - IL_0063: ldfld enum - IL_0068: callvirt MoveNext - IL_006d: brtrue.s IL_0044 - IL_006f: ldarg.0 - IL_0070: ldc.i4.3 - IL_0071: stfld pc - IL_0076: ldarg.0 - IL_0077: ldfld enum - IL_007c: call Dispose - IL_0081: nop - IL_0082: ldarg.0 - IL_0083: ldnull - IL_0084: stfld enum - IL_0089: ldarg.0 - IL_008a: ldc.i4.3 - IL_008b: stfld pc - IL_0090: ldarg.0 - IL_0091: ldc.i4.0 - IL_0092: stfld current - IL_0097: ldc.i4.0 - IL_0098: ret - -a@6::Close + + (5,9-5,12) for + IL_0025: ldarg.0 + IL_0026: ldc.i4.1 + IL_0027: ldc.i4.1 + IL_0028: ldc.i4.s 10 + IL_002a: call OperatorIntrinsics::RangeInt32 + IL_002f: callvirt GetEnumerator + IL_0034: stfld a@5::enum + IL_0039: ldarg.0 + IL_003a: ldc.i4.1 + IL_003b: stfld a@5::pc + IL_0040: br.s IL_0060 + IL_0042: ldarg.0 + IL_0043: ldfld a@5::enum + IL_0048: callvirt get_Current + IL_004d: stloc.0 + IL_004e: ldarg.0 + IL_004f: ldc.i4.2 + IL_0050: stfld a@5::pc + IL_0055: ldarg.0 + IL_0056: stloc.1 + + (6,13-6,20) yield n + IL_0057: ldloc.1 + IL_0058: ldloc.0 + IL_0059: stfld a@5::current + IL_005e: ldc.i4.1 + IL_005f: ret + + (5,15-5,17) in + IL_0060: ldarg.0 + IL_0061: ldfld a@5::enum + IL_0066: callvirt IEnumerator::MoveNext + IL_006b: brtrue.s IL_0042 + IL_006d: ldarg.0 + IL_006e: ldc.i4.3 + IL_006f: stfld a@5::pc + IL_0074: ldarg.0 + IL_0075: ldfld a@5::enum + IL_007a: call IntrinsicFunctions::Dispose + IL_007f: nop + IL_0080: ldarg.0 + IL_0081: ldnull + IL_0082: stfld a@5::enum + IL_0087: ldarg.0 + IL_0088: ldc.i4.3 + IL_0089: stfld a@5::pc + IL_008e: ldarg.0 + IL_008f: ldc.i4.0 + IL_0090: stfld a@5::current + IL_0095: ldc.i4.0 + IL_0096: ret + +a@5::Close IL_0000: ldarg.0 - IL_0001: ldfld pc + IL_0001: ldfld a@5::pc IL_0006: ldc.i4.3 IL_0007: sub IL_0008: switch (1 targets) @@ -104,110 +112,100 @@ a@6::Close IL_0013: nop - IL_0014: br.s IL_0078 + IL_0014: br.s IL_0076 IL_0016: nop - - IL_0017: ldarg.0 - IL_0018: ldfld pc + IL_0018: ldfld a@5::pc IL_001d: switch (4 targets) IL_0032: br.s IL_0040 IL_0034: nop - IL_0035: br.s IL_0058 + IL_0035: br.s IL_0056 IL_0037: nop - IL_0038: br.s IL_0044 + IL_0038: br.s IL_0042 IL_003a: nop - IL_003b: br.s IL_0043 + IL_003b: br.s IL_0041 IL_003d: nop - IL_003e: br.s IL_0058 + IL_003e: br.s IL_0056 IL_0040: nop - IL_0041: br.s IL_0043 - IL_0043: nop - IL_0044: ldarg.0 - IL_0045: ldc.i4.3 - IL_0046: stfld pc - IL_004b: ldarg.0 - IL_004c: ldfld enum - IL_0051: call Dispose - IL_0056: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld a@5::pc + IL_0049: ldarg.0 + IL_004a: ldfld a@5::enum + IL_004f: call IntrinsicFunctions::Dispose + IL_0054: nop - IL_0057: nop - IL_0058: ldarg.0 - IL_0059: ldc.i4.3 - IL_005a: stfld pc - IL_005f: ldarg.0 - IL_0060: ldc.i4.0 - IL_0061: stfld current - IL_0066: leave.s IL_0072 - IL_0068: castclass Exception - IL_006d: stloc.1 - IL_006e: ldloc.1 - IL_006f: stloc.0 - IL_0070: leave.s IL_0072 + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld a@5::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld a@5::current + IL_0064: leave.s IL_0070 + IL_0066: castclass Exception + IL_006b: stloc.1 + IL_006c: ldloc.1 + IL_006d: stloc.0 + IL_006e: leave.s IL_0070 - IL_0072: nop - IL_0073: br IL_0000 + IL_0070: nop + IL_0071: br IL_0000 + IL_0076: ldloc.0 + IL_0077: brfalse.s IL_007b - IL_0078: ldloc.0 - IL_0079: brfalse.s IL_007d + IL_0079: ldloc.0 + IL_007a: throw - IL_007b: ldloc.0 - IL_007c: throw + IL_007b: ret - - IL_007d: ret - - - -a@6::get_CheckClose +a@5::get_CheckClose IL_0000: ldarg.0 - IL_0001: ldfld pc + IL_0001: ldfld a@5::pc IL_0006: switch (4 targets) IL_001b: br.s IL_0029 IL_001d: nop - IL_001e: br.s IL_0030 + IL_001e: br.s IL_002e IL_0020: nop - IL_0021: br.s IL_002e + IL_0021: br.s IL_002c IL_0023: nop - IL_0024: br.s IL_002c + IL_0024: br.s IL_002a IL_0026: nop - IL_0027: br.s IL_0030 + IL_0027: br.s IL_002e IL_0029: nop - IL_002a: br.s IL_002c - - + IL_002a: ldc.i4.1 + IL_002b: ret IL_002c: ldc.i4.1 IL_002d: ret - IL_002e: ldc.i4.1 + IL_002e: ldc.i4.0 IL_002f: ret - IL_0030: ldc.i4.0 - IL_0031: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Value 02.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Value 02.bsl index 93ea36c1411..47d036281ae 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Value 02.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Comprehensions - Value 02.bsl @@ -1,16 +1,25 @@ +module Module + +let f (l: int list) = + seq { + for n in l do + yield n + } +-------------------------------------------------------------------------------- + Module::f - (5,5-8,6) seq { for n in l do yield n } + (4,5-7,6) seq { for n in l do yield n } IL_0000: ldarg.0 IL_0001: ldnull IL_0002: ldc.i4.0 IL_0003: ldc.i4.0 - IL_0004: newobj .ctor + IL_0004: newobj f@5::.ctor IL_0009: ret -f@6::GenerateNext +f@5::GenerateNext IL_0000: ldarg.0 - IL_0001: ldfld pc + IL_0001: ldfld f@5::pc IL_0006: ldc.i4.1 IL_0007: sub IL_0008: switch (3 targets) @@ -18,75 +27,74 @@ f@6::GenerateNext IL_001b: nop - IL_001c: br.s IL_006c + IL_001c: br.s IL_006a IL_001e: nop - IL_001f: br.s IL_005f + IL_001f: br.s IL_005d IL_0021: nop - IL_0022: br.s IL_008d + IL_0022: br.s IL_008b IL_0024: nop - IL_0025: br.s IL_0027 - - (6,9-6,12) for - IL_0027: ldarg.0 - IL_0028: ldarg.0 - IL_0029: ldfld l - IL_002e: callvirt GetEnumerator - IL_0033: stfld enum - IL_0038: ldarg.0 - IL_0039: ldc.i4.1 - IL_003a: stfld pc - IL_003f: br.s IL_005f - IL_0041: ldarg.0 - IL_0042: ldfld enum - IL_0047: callvirt get_Current - IL_004c: stloc.0 - IL_004d: ldarg.0 - IL_004e: ldc.i4.2 - IL_004f: stfld pc - IL_0054: ldarg.0 - IL_0055: stloc.1 - - (7,13-7,20) yield n - IL_0056: ldloc.1 - IL_0057: ldloc.0 - IL_0058: stfld current - IL_005d: ldc.i4.1 - IL_005e: ret - - (6,15-6,17) in - IL_005f: ldarg.0 - IL_0060: ldfld enum - IL_0065: callvirt MoveNext - IL_006a: brtrue.s IL_0041 - IL_006c: ldarg.0 - IL_006d: ldc.i4.3 - IL_006e: stfld pc - IL_0073: ldarg.0 - IL_0074: ldfld enum - IL_0079: call Dispose - IL_007e: nop - IL_007f: ldarg.0 - IL_0080: ldnull - IL_0081: stfld enum - IL_0086: ldarg.0 - IL_0087: ldc.i4.3 - IL_0088: stfld pc - IL_008d: ldarg.0 - IL_008e: ldc.i4.0 - IL_008f: stfld current - IL_0094: ldc.i4.0 - IL_0095: ret - -f@6::Close + + (5,9-5,12) for + IL_0025: ldarg.0 + IL_0026: ldarg.0 + IL_0027: ldfld f@5::l + IL_002c: callvirt GetEnumerator + IL_0031: stfld f@5::enum + IL_0036: ldarg.0 + IL_0037: ldc.i4.1 + IL_0038: stfld f@5::pc + IL_003d: br.s IL_005d + IL_003f: ldarg.0 + IL_0040: ldfld f@5::enum + IL_0045: callvirt get_Current + IL_004a: stloc.0 + IL_004b: ldarg.0 + IL_004c: ldc.i4.2 + IL_004d: stfld f@5::pc + IL_0052: ldarg.0 + IL_0053: stloc.1 + + (6,13-6,20) yield n + IL_0054: ldloc.1 + IL_0055: ldloc.0 + IL_0056: stfld f@5::current + IL_005b: ldc.i4.1 + IL_005c: ret + + (5,15-5,17) in + IL_005d: ldarg.0 + IL_005e: ldfld f@5::enum + IL_0063: callvirt IEnumerator::MoveNext + IL_0068: brtrue.s IL_003f + IL_006a: ldarg.0 + IL_006b: ldc.i4.3 + IL_006c: stfld f@5::pc + IL_0071: ldarg.0 + IL_0072: ldfld f@5::enum + IL_0077: call IntrinsicFunctions::Dispose + IL_007c: nop + IL_007d: ldarg.0 + IL_007e: ldnull + IL_007f: stfld f@5::enum + IL_0084: ldarg.0 + IL_0085: ldc.i4.3 + IL_0086: stfld f@5::pc + IL_008b: ldarg.0 + IL_008c: ldc.i4.0 + IL_008d: stfld f@5::current + IL_0092: ldc.i4.0 + IL_0093: ret + +f@5::Close IL_0000: ldarg.0 - IL_0001: ldfld pc + IL_0001: ldfld f@5::pc IL_0006: ldc.i4.3 IL_0007: sub IL_0008: switch (1 targets) @@ -94,110 +102,100 @@ f@6::Close IL_0013: nop - IL_0014: br.s IL_0078 + IL_0014: br.s IL_0076 IL_0016: nop - - IL_0017: ldarg.0 - IL_0018: ldfld pc + IL_0018: ldfld f@5::pc IL_001d: switch (4 targets) IL_0032: br.s IL_0040 IL_0034: nop - IL_0035: br.s IL_0058 + IL_0035: br.s IL_0056 IL_0037: nop - IL_0038: br.s IL_0044 + IL_0038: br.s IL_0042 IL_003a: nop - IL_003b: br.s IL_0043 + IL_003b: br.s IL_0041 IL_003d: nop - IL_003e: br.s IL_0058 + IL_003e: br.s IL_0056 IL_0040: nop - IL_0041: br.s IL_0043 - IL_0043: nop - IL_0044: ldarg.0 - IL_0045: ldc.i4.3 - IL_0046: stfld pc - IL_004b: ldarg.0 - IL_004c: ldfld enum - IL_0051: call Dispose - IL_0056: nop + IL_0041: nop + IL_0042: ldarg.0 + IL_0043: ldc.i4.3 + IL_0044: stfld f@5::pc + IL_0049: ldarg.0 + IL_004a: ldfld f@5::enum + IL_004f: call IntrinsicFunctions::Dispose + IL_0054: nop - IL_0057: nop - IL_0058: ldarg.0 - IL_0059: ldc.i4.3 - IL_005a: stfld pc - IL_005f: ldarg.0 - IL_0060: ldc.i4.0 - IL_0061: stfld current - IL_0066: leave.s IL_0072 - IL_0068: castclass Exception - IL_006d: stloc.1 - IL_006e: ldloc.1 - IL_006f: stloc.0 - IL_0070: leave.s IL_0072 + IL_0055: nop + IL_0056: ldarg.0 + IL_0057: ldc.i4.3 + IL_0058: stfld f@5::pc + IL_005d: ldarg.0 + IL_005e: ldc.i4.0 + IL_005f: stfld f@5::current + IL_0064: leave.s IL_0070 + IL_0066: castclass Exception + IL_006b: stloc.1 + IL_006c: ldloc.1 + IL_006d: stloc.0 + IL_006e: leave.s IL_0070 - IL_0072: nop - IL_0073: br IL_0000 + IL_0070: nop + IL_0071: br IL_0000 + IL_0076: ldloc.0 + IL_0077: brfalse.s IL_007b - IL_0078: ldloc.0 - IL_0079: brfalse.s IL_007d + IL_0079: ldloc.0 + IL_007a: throw - IL_007b: ldloc.0 - IL_007c: throw + IL_007b: ret - - IL_007d: ret - - - -f@6::get_CheckClose +f@5::get_CheckClose IL_0000: ldarg.0 - IL_0001: ldfld pc + IL_0001: ldfld f@5::pc IL_0006: switch (4 targets) IL_001b: br.s IL_0029 IL_001d: nop - IL_001e: br.s IL_0030 + IL_001e: br.s IL_002e IL_0020: nop - IL_0021: br.s IL_002e + IL_0021: br.s IL_002c IL_0023: nop - IL_0024: br.s IL_002c + IL_0024: br.s IL_002a IL_0026: nop - IL_0027: br.s IL_0030 + IL_0027: br.s IL_002e IL_0029: nop - IL_002a: br.s IL_002c - - + IL_002a: ldc.i4.1 + IL_002b: ret IL_002c: ldc.i4.1 IL_002d: ret - IL_002e: ldc.i4.1 + IL_002e: ldc.i4.0 IL_002f: ret - IL_0030: ldc.i4.0 - IL_0031: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Pattern - ActivePattern 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Pattern - ActivePattern 01.bsl index b367716fac3..15fe24cd037 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Pattern - ActivePattern 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Pattern - ActivePattern 01.bsl @@ -1,10 +1,19 @@ +module Module + +let (|Id|) (x: int) = x + +let f (l: int seq) = + for Id i in l do + () +-------------------------------------------------------------------------------- + Module::|Id| - (4,23-4,24) x + (3,23-3,24) x IL_0000: ldarg.0 IL_0001: ret Module::f - (7,17-7,18) l + (6,17-6,18) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 @@ -12,35 +21,33 @@ Module::f IL_0008: stloc.1 IL_0009: br.s IL_001d - (7,5-7,13) for Id i + (6,5-6,13) for Id i IL_000b: ldloc.1 IL_000c: callvirt get_Current IL_0011: stloc.2 IL_0012: ldloc.2 - IL_0013: call |Id| + IL_0013: call Module::|Id| IL_0018: stloc.3 IL_0019: ldloc.3 IL_001a: stloc.s 4 - (8,9-8,11) () + (7,9-7,11) () IL_001c: nop - (7,14-7,16) in + (6,14-6,16) in IL_001d: ldloc.1 - IL_001e: callvirt MoveNext + IL_001e: callvirt IEnumerator::MoveNext IL_0023: brtrue.s IL_000b IL_0025: leave.s IL_003c IL_0027: ldloc.1 IL_0028: isinst IDisposable IL_002d: stloc.s 5 - - IL_002f: ldloc.s 5 IL_0031: brfalse.s IL_003b IL_0033: ldloc.s 5 - IL_0035: callvirt Dispose + IL_0035: callvirt IDisposable::Dispose IL_003a: endfinally diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Pattern - Tuple 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Pattern - Tuple 01.bsl index 1d789aafae2..b78317cd877 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Pattern - Tuple 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Pattern - Tuple 01.bsl @@ -1,5 +1,12 @@ +module Module + +let f (l: (int * int) seq) = + for i1, i2 in l do + () +-------------------------------------------------------------------------------- + Module::f - (5,19-5,20) l + (4,19-4,20) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 @@ -7,7 +14,7 @@ Module::f IL_0008: stloc.1 IL_0009: br.s IL_0022 - (5,5-5,15) for i1, i2 + (4,5-4,15) for i1, i2 IL_000b: ldloc.1 IL_000c: callvirt get_Current IL_0011: stloc.2 @@ -18,25 +25,23 @@ Module::f IL_001a: call get_Item1 IL_001f: stloc.s 4 - (6,9-6,11) () + (5,9-5,11) () IL_0021: nop - (5,16-5,18) in + (4,16-4,18) in IL_0022: ldloc.1 - IL_0023: callvirt MoveNext + IL_0023: callvirt IEnumerator::MoveNext IL_0028: brtrue.s IL_000b IL_002a: leave.s IL_0041 IL_002c: ldloc.1 IL_002d: isinst IDisposable IL_0032: stloc.s 5 - - IL_0034: ldloc.s 5 IL_0036: brfalse.s IL_0040 IL_0038: ldloc.s 5 - IL_003a: callvirt Dispose + IL_003a: callvirt IDisposable::Dispose IL_003f: endfinally diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Simple 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Simple 01.bsl index cf20ed793cc..24a8b83484b 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Simple 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/Seq - Simple 01.bsl @@ -1,5 +1,12 @@ +module Module + +let f (l: int seq) = + for i in l do + () +-------------------------------------------------------------------------------- + Module::f - (5,14-5,15) l + (4,14-4,15) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldloc.0 @@ -7,30 +14,28 @@ Module::f IL_0008: stloc.1 IL_0009: br.s IL_0013 - (5,5-5,10) for i + (4,5-4,10) for i IL_000b: ldloc.1 IL_000c: callvirt get_Current IL_0011: stloc.2 - (6,9-6,11) () + (5,9-5,11) () IL_0012: nop - (5,11-5,13) in + (4,11-4,13) in IL_0013: ldloc.1 - IL_0014: callvirt MoveNext + IL_0014: callvirt IEnumerator::MoveNext IL_0019: brtrue.s IL_000b IL_001b: leave.s IL_002f IL_001d: ldloc.1 IL_001e: isinst IDisposable IL_0023: stloc.3 - - IL_0024: ldloc.3 IL_0025: brfalse.s IL_002e IL_0027: ldloc.3 - IL_0028: callvirt Dispose + IL_0028: callvirt IDisposable::Dispose IL_002d: endfinally diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/String - Body - SingleStatement 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/String - Body - SingleStatement 01.bsl index 571e8a5476a..b72e7d2e352 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/String - Body - SingleStatement 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/ForEach/String - Body - SingleStatement 01.bsl @@ -1,11 +1,18 @@ +module Module + +let f (l: string) = + for c in l do + System.Console.WriteLine c +-------------------------------------------------------------------------------- + Module::f - (5,14-5,15) l + (4,14-4,15) l IL_0000: ldarg.0 IL_0001: stloc.0 IL_0002: ldc.i4.0 IL_0003: stloc.2 IL_0004: ldloc.0 - IL_0005: callvirt get_Length + IL_0005: callvirt String::get_Length IL_000a: ldc.i4.1 IL_000b: sub IL_000c: stloc.1 @@ -13,15 +20,15 @@ Module::f IL_000e: ldloc.2 IL_000f: blt.s IL_0029 - (5,5-5,10) for c + (4,5-4,10) for c IL_0011: ldloc.0 IL_0012: ldloc.2 - IL_0013: callvirt get_Chars + IL_0013: callvirt String::get_Chars IL_0018: stloc.3 - (6,9-6,35) System.Console.WriteLine c + (5,9-5,35) System.Console.WriteLine c IL_0019: ldloc.3 - IL_001a: call WriteLine + IL_001a: call Console::WriteLine IL_001f: ldloc.2 @@ -29,7 +36,7 @@ Module::f IL_0021: add IL_0022: stloc.2 - (5,11-5,13) in + (4,11-4,13) in IL_0023: ldloc.2 IL_0024: ldloc.1 IL_0025: ldc.i4.1 diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Erased call 02.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Erased call 02.bsl new file mode 100644 index 00000000000..6b8bd6c7183 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Erased call 02.bsl @@ -0,0 +1,8 @@ +module Module + +let f () = + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" +-------------------------------------------------------------------------------- + + diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Erased call 03.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Erased call 03.bsl new file mode 100644 index 00000000000..29f72e56448 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Erased call 03.bsl @@ -0,0 +1,9 @@ +module Module + +let f () = + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" +-------------------------------------------------------------------------------- + + diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Erased call 04.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Erased call 04.bsl new file mode 100644 index 00000000000..bdfbdb06041 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Erased call 04.bsl @@ -0,0 +1,11 @@ +module Module + +let f () = + () + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" +-------------------------------------------------------------------------------- + +Module::f + (4,5-4,7) () + IL_0000: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Erased call 05.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Erased call 05.bsl new file mode 100644 index 00000000000..3b406721679 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Erased call 05.bsl @@ -0,0 +1,11 @@ +module Module + +let f () = + System.Diagnostics.Debug.Write "" + () + System.Diagnostics.Debug.Write "" +-------------------------------------------------------------------------------- + +Module::f + (5,5-5,7) () + IL_0000: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Erased call 06.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Erased call 06.bsl new file mode 100644 index 00000000000..43b4c570085 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Erased call 06.bsl @@ -0,0 +1,11 @@ +module Module + +let f () = + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" + () +-------------------------------------------------------------------------------- + +Module::f + (6,5-6,7) () + IL_0000: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - ErasedCall 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - ErasedCall 01.bsl new file mode 100644 index 00000000000..47b52e134d2 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - ErasedCall 01.bsl @@ -0,0 +1,7 @@ +module Module + +let f () = + System.Diagnostics.Debug.Write "" +-------------------------------------------------------------------------------- + + diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - ErasedThenKeptCall 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - ErasedThenKeptCall 01.bsl new file mode 100644 index 00000000000..ff31e008474 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - ErasedThenKeptCall 01.bsl @@ -0,0 +1,12 @@ +module Module + +let f () = + System.Diagnostics.Debug.Write "" + System.Console.WriteLine "" +-------------------------------------------------------------------------------- + +Module::f + (5,5-5,32) System.Console.WriteLine "" + IL_0000: ldstr "" + IL_0005: call Console::WriteLine + IL_000a: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - KeptThenErasedCall 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - KeptThenErasedCall 01.bsl new file mode 100644 index 00000000000..befe1c7a50b --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - KeptThenErasedCall 01.bsl @@ -0,0 +1,12 @@ +module Module + +let f () = + System.Console.WriteLine "" + System.Diagnostics.Debug.Write "" +-------------------------------------------------------------------------------- + +Module::f + (4,5-4,32) System.Console.WriteLine "" + IL_0000: ldstr "" + IL_0005: call Console::WriteLine + IL_000a: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - LetThenValue 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - LetThenValue 01.bsl index 7d3acc1e66a..e433d98d6dc 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - LetThenValue 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - LetThenValue 01.bsl @@ -1,8 +1,15 @@ +module Module + +let f () = + let i = 1 + 1 +-------------------------------------------------------------------------------- + Module::f - (5,5-5,14) let i = 1 + (4,5-4,14) let i = 1 IL_0000: ldc.i4.1 IL_0001: stloc.0 - (6,5-6,6) 1 + (5,5-5,6) 1 IL_0002: ldc.i4.1 IL_0003: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - SequentialUnits 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - SequentialUnits 01.bsl index 61f9775be11..2e679cf0419 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - SequentialUnits 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - SequentialUnits 01.bsl @@ -1,6 +1,13 @@ +module Module + +let f () = + () + () +-------------------------------------------------------------------------------- + Module::f - (5,5-5,7) () + (4,5-4,7) () IL_0000: nop - (6,5-6,7) () + (5,5-5,7) () IL_0001: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Unit 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Unit 01.bsl index f3a13298d7a..aeebdef981e 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Unit 01.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Function/Body - Unit 01.bsl @@ -1,3 +1,9 @@ +module Module + +let f () = + () +-------------------------------------------------------------------------------- + Module::f - (5,5-5,7) () + (4,5-4,7) () IL_0000: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/If/If 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/If/If 01.bsl new file mode 100644 index 00000000000..3299f49b2b1 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/If/If 01.bsl @@ -0,0 +1,30 @@ +module Module + +let f (x: int) = + x + x + +let g () = + if f 5 = 10 then 0 else 1 +-------------------------------------------------------------------------------- + +Module::f + (4,5-4,10) x + x + IL_0000: ldarg.0 + IL_0001: ldarg.0 + IL_0002: add + IL_0003: ret + +Module::g + (7,5-7,21) if f 5 = 10 then + IL_0000: ldc.i4.5 + IL_0001: call Module::f + IL_0006: ldc.i4.s 10 + IL_0008: bne.un.s IL_000c + + (7,22-7,23) 0 + IL_000a: ldc.i4.0 + IL_000b: ret + + (7,29-7,30) 1 + IL_000c: ldc.i4.1 + IL_000d: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/If/If 02 - Bind.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/If/If 02 - Bind.bsl new file mode 100644 index 00000000000..7b89f7554b2 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/If/If 02 - Bind.bsl @@ -0,0 +1,43 @@ +module Module + +let f (x: int) = + x + x + +let g () = + let y = if f 5 = 10 then 0 else 1 + y + y +-------------------------------------------------------------------------------- + +Module::f + (4,5-4,10) x + x + IL_0000: ldarg.0 + IL_0001: ldarg.0 + IL_0002: add + IL_0003: ret + +Module::g + (7,13-7,29) if f 5 = 10 then + IL_0000: ldc.i4.5 + IL_0001: call Module::f + IL_0006: ldc.i4.s 10 + IL_0008: bne.un.s IL_000e + + (7,30-7,31) 0 + IL_000a: ldc.i4.0 + + + IL_000b: nop + IL_000c: br.s IL_0010 + + (7,37-7,38) 1 + IL_000e: ldc.i4.1 + + + IL_000f: nop + IL_0010: stloc.0 + + (8,5-8,10) y + y + IL_0011: ldloc.0 + IL_0012: ldloc.0 + IL_0013: add + IL_0014: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/If/If 03 - Set.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/If/If 03 - Set.bsl new file mode 100644 index 00000000000..43931c53990 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/If/If 03 - Set.bsl @@ -0,0 +1,57 @@ +module Module + +let f (x: int) = + x + x + +let g (arr: int[]) = + arr[0] <- if f 5 = 10 then 0 else 1 +-------------------------------------------------------------------------------- + +Module::f + (4,5-4,10) x + x + IL_0000: ldarg.0 + IL_0001: ldarg.0 + IL_0002: add + IL_0003: ret + +Module::g + (7,5-7,11) arr[0] + IL_0000: ldarg.0 + IL_0001: ldc.i4.0 + IL_0002: stloc.0 + IL_0003: stloc.1 + + (7,15-7,31) if f 5 = 10 then + IL_0004: ldloc.1 + IL_0005: ldloc.0 + IL_0006: ldc.i4.5 + IL_0007: call Module::f + IL_000c: ldc.i4.s 10 + IL_000e: bne.un.s IL_0018 + + + IL_0010: stloc.2 + IL_0011: stloc.3 + + (7,32-7,33) 0 + IL_0012: ldloc.3 + IL_0013: ldloc.2 + IL_0014: ldc.i4.0 + + + IL_0015: nop + IL_0016: br.s IL_0022 + + + IL_0018: stloc.s 4 + IL_001a: stloc.s 5 + + (7,39-7,40) 1 + IL_001c: ldloc.s 5 + IL_001e: ldloc.s 4 + IL_0020: ldc.i4.1 + + + IL_0021: nop + IL_0022: stelem.i4 + IL_0023: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/If/If 04.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/If/If 04.bsl new file mode 100644 index 00000000000..8862de0a3ec --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/If/If 04.bsl @@ -0,0 +1,42 @@ +module Module + +let f (x: int) = + x + x + +let g () = + (if f 5 = 10 then 0 else 1) + f 1 +-------------------------------------------------------------------------------- + +Module::f + (4,5-4,10) x + x + IL_0000: ldarg.0 + IL_0001: ldarg.0 + IL_0002: add + IL_0003: ret + +Module::g + (7,5-7,38) (if f 5 = 10 then 0 else 1) + f 1 + IL_0000: nop + + (7,6-7,22) if f 5 = 10 then + IL_0001: ldc.i4.5 + IL_0002: call Module::f + IL_0007: ldc.i4.s 10 + IL_0009: bne.un.s IL_000f + + (7,23-7,24) 0 + IL_000b: ldc.i4.0 + + + IL_000c: nop + IL_000d: br.s IL_0011 + + (7,30-7,31) 1 + IL_000f: ldc.i4.1 + + + IL_0010: nop + IL_0011: ldc.i4.1 + IL_0012: call Module::f + IL_0017: add + IL_0018: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/If/If 05.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/If/If 05.bsl new file mode 100644 index 00000000000..0277661152e --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/If/If 05.bsl @@ -0,0 +1,49 @@ +module Module + +let f (x: int) = + x + x + +let g () = + let mutable x = 0 + if f 5 = 10 then x <- 1 else x <- 2 + x + x +-------------------------------------------------------------------------------- + +Module::f + (4,5-4,10) x + x + IL_0000: ldarg.0 + IL_0001: ldarg.0 + IL_0002: add + IL_0003: ret + +Module::g + (7,5-7,22) let mutable x = 0 + IL_0000: ldc.i4.0 + IL_0001: stloc.0 + + (8,5-8,21) if f 5 = 10 then + IL_0002: ldc.i4.5 + IL_0003: call Module::f + IL_0008: ldc.i4.s 10 + IL_000a: bne.un.s IL_0011 + + (8,22-8,28) x <- 1 + IL_000c: ldc.i4.1 + IL_000d: stloc.0 + + + IL_000e: nop + IL_000f: br.s IL_0014 + + (8,34-8,40) x <- 2 + IL_0011: ldc.i4.2 + IL_0012: stloc.0 + + + IL_0013: nop + + (9,5-9,10) x + x + IL_0014: ldloc.0 + IL_0015: ldloc.0 + IL_0016: add + IL_0017: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Match/Match 01.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Match/Match 01.bsl new file mode 100644 index 00000000000..b3790fbe8d2 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Match/Match 01.bsl @@ -0,0 +1,34 @@ +module Module + +let f (x: int) = + x + x + +let g () = + match f 5 with + | 10 -> 0 + | _ -> 1 +-------------------------------------------------------------------------------- + +Module::f + (4,5-4,10) x + x + IL_0000: ldarg.0 + IL_0001: ldarg.0 + IL_0002: add + IL_0003: ret + +Module::g + (7,5-7,19) match f 5 with + IL_0000: ldc.i4.5 + IL_0001: call Module::f + IL_0006: ldc.i4.s 10 + IL_0008: sub + IL_0009: switch (1 targets) + IL_0012: br.s IL_0016 + + (8,13-8,14) 0 + IL_0014: ldc.i4.0 + IL_0015: ret + + (9,12-9,13) 1 + IL_0016: ldc.i4.1 + IL_0017: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Match/Match 02 - Bind.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Match/Match 02 - Bind.bsl new file mode 100644 index 00000000000..893bfe7961c --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/Match/Match 02 - Bind.bsl @@ -0,0 +1,48 @@ +module Module + +let f (x: int) = + x + x + +let g () = + let i = + match f 5 with + | 10 -> 0 + | _ -> 1 + i + 1 +-------------------------------------------------------------------------------- + +Module::f + (4,5-4,10) x + x + IL_0000: ldarg.0 + IL_0001: ldarg.0 + IL_0002: add + IL_0003: ret + +Module::g + (8,9-8,23) match f 5 with + IL_0000: ldc.i4.5 + IL_0001: call Module::f + IL_0006: ldc.i4.s 10 + IL_0008: sub + IL_0009: switch (1 targets) + IL_0012: br.s IL_0018 + + (9,17-9,18) 0 + IL_0014: ldc.i4.0 + + + IL_0015: nop + IL_0016: br.s IL_001a + + (10,16-10,17) 1 + IL_0018: ldc.i4.1 + + + IL_0019: nop + IL_001a: stloc.0 + + (11,5-11,10) i + 1 + IL_001b: ldloc.0 + IL_001c: ldc.i4.1 + IL_001d: add + IL_001e: ret diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/SequencePointsTests.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/SequencePointsTests.fs index 3d373e0921f..f1319f5e5ff 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/SequencePointsTests.fs +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SequencePoints/SequencePointsTests.fs @@ -9,7 +9,8 @@ open FSharp.Test.Compiler [] type private Baseline = - static member verify(source, [] name: string) = + static member verify(source: string, [] name: string) = + let source = source.Trim() let moduleName = StackTrace().GetFrame(1).GetMethod().DeclaringType.Name FSharp source |> asLibrary @@ -50,6 +51,89 @@ let f () = () """ + [] + let ``Body - ErasedCall 01`` () = + Baseline.verify """ +module Module + +let f () = + System.Diagnostics.Debug.Write "" +""" + + [] + let ``Body - Erased call 02`` () = + Baseline.verify """ +module Module + +let f () = + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" +""" + + [] + let ``Body - Erased call 03`` () = + Baseline.verify """ +module Module + +let f () = + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" +""" + + [] + let ``Body - Erased call 04`` () = + Baseline.verify """ +module Module + +let f () = + () + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" +""" + + [] + let ``Body - Erased call 05`` () = + Baseline.verify """ +module Module + +let f () = + System.Diagnostics.Debug.Write "" + () + System.Diagnostics.Debug.Write "" +""" + + [] + let ``Body - Erased call 06`` () = + Baseline.verify """ +module Module + +let f () = + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" + () +""" + + [] + let ``Body - ErasedThenKeptCall 01`` () = + Baseline.verify """ +module Module + +let f () = + System.Diagnostics.Debug.Write "" + System.Console.WriteLine "" +""" + + [] + let ``Body - KeptThenErasedCall 01`` () = + Baseline.verify """ +module Module + +let f () = + System.Console.WriteLine "" + System.Diagnostics.Debug.Write "" +""" + module ForEach = [] let ``List - Simple 01`` () = @@ -82,6 +166,38 @@ let f (l: int list) = System.Console.WriteLine(i + 1) """ + [] + let ``List - Body - ErasedCall 01`` () = + Baseline.verify """ +module Module + +let f (l: int list) = + for i in l do + System.Diagnostics.Debug.Write "" +""" + + [] + let ``List - Body - ErasedThenKeptCall 01`` () = + Baseline.verify """ +module Module + +let f (l: int list) = + for i in l do + System.Diagnostics.Debug.Write "" + System.Console.WriteLine "" +""" + + [] + let ``List - Body - KeptThenErasedCall 01`` () = + Baseline.verify """ +module Module + +let f (l: int list) = + for i in l do + System.Console.WriteLine "" + System.Diagnostics.Debug.Write "" +""" + [] let ``List - Body - ParenUnit 01`` () = Baseline.verify """ @@ -470,3 +586,263 @@ let f (l: string) = for c in l do System.Console.WriteLine c """ + +module If = + [] + let ``If 01`` () = + Baseline.verify """ +module Module + +let f (x: int) = + x + x + +let g () = + if f 5 = 10 then 0 else 1 +""" + + [] + let ``If 02 - Bind`` () = + Baseline.verify """ +module Module + +let f (x: int) = + x + x + +let g () = + let y = if f 5 = 10 then 0 else 1 + y + y +""" + + [] + let ``If 03 - Set`` () = + Baseline.verify """ +module Module + +let f (x: int) = + x + x + +let g (arr: int[]) = + arr[0] <- if f 5 = 10 then 0 else 1 +""" + + [] + let ``If 04`` () = + Baseline.verify """ +module Module + +let f (x: int) = + x + x + +let g () = + (if f 5 = 10 then 0 else 1) + f 1 +""" + + [] + let ``If 05`` () = + Baseline.verify """ +module Module + +let f (x: int) = + x + x + +let g () = + let mutable x = 0 + if f 5 = 10 then x <- 1 else x <- 2 + x + x +""" + +module Match = + [] + let ``Match 01`` () = + Baseline.verify """ +module Module + +let f (x: int) = + x + x + +let g () = + match f 5 with + | 10 -> 0 + | _ -> 1 +""" + + [] + let ``Match 02 - Bind`` () = + Baseline.verify """ +module Module + +let f (x: int) = + x + x + +let g () = + let i = + match f 5 with + | 10 -> 0 + | _ -> 1 + i + 1 +""" + +module Binding = + [] + let ``Module - Unit 01`` () = + Baseline.verify """ +module Module + +let i = () +""" + + [] + let ``Module - SequentialUnits 01`` () = + Baseline.verify """ +module Module + +let i = () +let j = () +""" + + [] + let ``Module - ErasedCall 01`` () = + Baseline.verify """ +module Module + +let i = System.Diagnostics.Debug.Write "" +""" + + [] + let ``Module - Erased call 02`` () = + Baseline.verify """ +module Module + +let i = + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" +""" + + [] + let ``Module - Erased call 03`` () = + Baseline.verify """ +module Module + +let i = + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" +""" + + [] + let ``Module - Erased call 04`` () = + Baseline.verify """ +module Module + +let i = + () + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" +""" + + [] + let ``Module - Erased call 05`` () = + Baseline.verify """ +module Module + +let i = + System.Diagnostics.Debug.Write "" + () + System.Diagnostics.Debug.Write "" +""" + + [] + let ``Module - Erased call 06`` () = + Baseline.verify """ +module Module + +let i = + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" + () +""" + + [] + let ``Local - Unit 01`` () = + Baseline.verify """ +module Module + +do + let i = () + () +""" + + [] + let ``Local - SequentialUnits 01`` () = + Baseline.verify """ +module Module + +do + let i = () + let j = () + () +""" + + [] + let ``Local - ErasedCall 01`` () = + Baseline.verify """ +module Module + +do + let i = System.Diagnostics.Debug.Write "" + () +""" + + [] + let ``Local - Erased call 02`` () = + Baseline.verify """ +module Module + +let i = + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" +""" + + [] + let ``Local - Erased call 03`` () = + Baseline.verify """ +module Module + +let i = + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" +""" + + [] + let ``Local - Erased call 04`` () = + Baseline.verify """ +module Module + +let i = + () + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" +""" + + [] + let ``Local - Erased call 05`` () = + Baseline.verify """ +module Module + +let i = + System.Diagnostics.Debug.Write "" + () + System.Diagnostics.Debug.Write "" +""" + + [] + let ``Local - Erased call 06`` () = + Baseline.verify """ +module Module + +let i = + System.Diagnostics.Debug.Write "" + System.Diagnostics.Debug.Write "" + () +""" \ No newline at end of file diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule.fs.RealInternalSignatureOn.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule.fs.RealInternalSignatureOn.il.net472.bsl index 0d7172dfc0a..31aa835e6dd 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule.fs.RealInternalSignatureOn.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule.fs.RealInternalSignatureOn.il.net472.bsl @@ -1455,6 +1455,24 @@ IL_0005: ret } + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 ''.$ABC::init@ + IL_0006: ldsfld int32 ''.$ABC::init@ + IL_000b: pop + IL_000c: ret + } + + .method assembly static void staticInitialization@() cil managed + { + + .maxstack 8 + IL_0000: ret + } + .property string greeting() { .get string ABC/ABC::get_greeting() @@ -1483,6 +1501,25 @@ IL_0005: ret } + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 ''.$ABC::init@ + IL_0006: ldsfld int32 ''.$ABC::init@ + IL_000b: pop + IL_000c: ret + } + + .method assembly static void staticInitialization@() cil managed + { + + .maxstack 8 + IL_0000: call void ABC/ABC::staticInitialization@() + IL_0005: ret + } + .property string greeting() { .get string ABC::get_greeting() @@ -1492,12 +1529,17 @@ .class private abstract auto ansi sealed ''.$ABC extends [runtime]System.Object { + .field static assembly int32 init@ + .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .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 ) .method public static void main@() cil managed { .entrypoint .maxstack 8 - IL_0000: ret + IL_0000: call void ABC::staticInitialization@() + IL_0005: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule.fs.RealInternalSignatureOn.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule.fs.RealInternalSignatureOn.il.netcore.bsl index 4f12c1595c8..d464c830e32 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule.fs.RealInternalSignatureOn.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelModule.fs.RealInternalSignatureOn.il.netcore.bsl @@ -1455,6 +1455,24 @@ IL_0005: ret } + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 ''.$ABC::init@ + IL_0006: ldsfld int32 ''.$ABC::init@ + IL_000b: pop + IL_000c: ret + } + + .method assembly static void staticInitialization@() cil managed + { + + .maxstack 8 + IL_0000: ret + } + .property string greeting() { .get string ABC/ABC::get_greeting() @@ -1483,6 +1501,25 @@ IL_0005: ret } + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 ''.$ABC::init@ + IL_0006: ldsfld int32 ''.$ABC::init@ + IL_000b: pop + IL_000c: ret + } + + .method assembly static void staticInitialization@() cil managed + { + + .maxstack 8 + IL_0000: call void ABC/ABC::staticInitialization@() + IL_0005: ret + } + .property string greeting() { .get string ABC::get_greeting() @@ -1492,12 +1529,17 @@ .class private abstract auto ansi sealed ''.$ABC extends [runtime]System.Object { + .field static assembly int32 init@ + .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .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 ) .method public static void main@() cil managed { .entrypoint .maxstack 8 - IL_0000: ret + IL_0000: call void ABC::staticInitialization@() + IL_0005: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace.fs.RealInternalSignatureOn.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace.fs.RealInternalSignatureOn.il.net472.bsl index 407197b1184..b9733cee415 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace.fs.RealInternalSignatureOn.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace.fs.RealInternalSignatureOn.il.net472.bsl @@ -2153,6 +2153,24 @@ IL_0005: ret } + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 ''.$assembly::init@ + IL_0006: ldsfld int32 ''.$assembly::init@ + IL_000b: pop + IL_000c: ret + } + + .method assembly static void staticInitialization@() cil managed + { + + .maxstack 8 + IL_0000: ret + } + .property string greeting() { .get string XYZ.ABC/ABC::get_greeting() @@ -2181,6 +2199,25 @@ IL_0005: ret } + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 ''.$assembly::init@ + IL_0006: ldsfld int32 ''.$assembly::init@ + IL_000b: pop + IL_000c: ret + } + + .method assembly static void staticInitialization@() cil managed + { + + .maxstack 8 + IL_0000: call void XYZ.ABC/ABC::staticInitialization@() + IL_0005: ret + } + .property string greeting() { .get string XYZ.ABC::get_greeting() @@ -2190,12 +2227,17 @@ .class private abstract auto ansi sealed ''.$assembly extends [runtime]System.Object { + .field static assembly int32 init@ + .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .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 ) .method public static void main@() cil managed { .entrypoint .maxstack 8 - IL_0000: ret + IL_0000: call void XYZ.ABC::staticInitialization@() + IL_0005: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace.fs.RealInternalSignatureOn.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace.fs.RealInternalSignatureOn.il.netcore.bsl index ef41cabbfcb..68b3d9701f4 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace.fs.RealInternalSignatureOn.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SerializableAttribute/ToplevelNamespace.fs.RealInternalSignatureOn.il.netcore.bsl @@ -2153,6 +2153,24 @@ IL_0005: ret } + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 ''.$assembly::init@ + IL_0006: ldsfld int32 ''.$assembly::init@ + IL_000b: pop + IL_000c: ret + } + + .method assembly static void staticInitialization@() cil managed + { + + .maxstack 8 + IL_0000: ret + } + .property string greeting() { .get string XYZ.ABC/ABC::get_greeting() @@ -2181,6 +2199,25 @@ IL_0005: ret } + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 ''.$assembly::init@ + IL_0006: ldsfld int32 ''.$assembly::init@ + IL_000b: pop + IL_000c: ret + } + + .method assembly static void staticInitialization@() cil managed + { + + .maxstack 8 + IL_0000: call void XYZ.ABC/ABC::staticInitialization@() + IL_0005: ret + } + .property string greeting() { .get string XYZ.ABC::get_greeting() @@ -2190,12 +2227,17 @@ .class private abstract auto ansi sealed ''.$assembly extends [runtime]System.Object { + .field static assembly int32 init@ + .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .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 ) .method public static void main@() cil managed { .entrypoint .maxstack 8 - IL_0000: ret + IL_0000: call void XYZ.ABC::staticInitialization@() + IL_0005: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Class01.fs.RealInternalSignatureOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Class01.fs.RealInternalSignatureOff.il.bsl index 7777c6d2804..3cf3f5217d3 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Class01.fs.RealInternalSignatureOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Class01.fs.RealInternalSignatureOff.il.bsl @@ -55,23 +55,22 @@ .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .maxstack 8 - IL_0000: nop - IL_0001: volatile. - IL_0003: ldsfld int32 StaticInit_ClassS01/C::init@4 - IL_0008: ldc.i4.1 - IL_0009: bge.s IL_0014 + IL_0000: volatile. + IL_0002: ldsfld int32 StaticInit_ClassS01/C::init@4 + IL_0007: ldc.i4.1 + IL_0008: bge.s IL_0013 - IL_000b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000f: nop IL_0010: nop - IL_0011: nop - IL_0012: br.s IL_0015 - - IL_0014: nop - IL_0015: ldsfld int32 StaticInit_ClassS01/C::x - IL_001a: ldstr "2" - IL_001f: callvirt instance int32 [runtime]System.String::get_Length() - IL_0024: add - IL_0025: ret + IL_0011: br.s IL_0014 + + IL_0013: nop + IL_0014: ldsfld int32 StaticInit_ClassS01/C::x + IL_0019: ldstr "2" + IL_001e: callvirt instance int32 [runtime]System.String::get_Length() + IL_0023: add + IL_0024: ret } .method private specialname rtspecialname static void .cctor() cil managed @@ -116,4 +115,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Class01.fs.RealInternalSignatureOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Class01.fs.RealInternalSignatureOn.il.bsl index 8ebfe4e13b5..8c04fa13c47 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Class01.fs.RealInternalSignatureOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Class01.fs.RealInternalSignatureOn.il.bsl @@ -55,23 +55,22 @@ .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .maxstack 8 - IL_0000: nop - IL_0001: volatile. - IL_0003: ldsfld int32 StaticInit_ClassS01/C::init@4 - IL_0008: ldc.i4.1 - IL_0009: bge.s IL_0014 + IL_0000: volatile. + IL_0002: ldsfld int32 StaticInit_ClassS01/C::init@4 + IL_0007: ldc.i4.1 + IL_0008: bge.s IL_0013 - IL_000b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000f: nop IL_0010: nop - IL_0011: nop - IL_0012: br.s IL_0015 - - IL_0014: nop - IL_0015: ldsfld int32 StaticInit_ClassS01/C::x - IL_001a: ldstr "2" - IL_001f: callvirt instance int32 [runtime]System.String::get_Length() - IL_0024: add - IL_0025: ret + IL_0011: br.s IL_0014 + + IL_0013: nop + IL_0014: ldsfld int32 StaticInit_ClassS01/C::x + IL_0019: ldstr "2" + IL_001e: callvirt instance int32 [runtime]System.String::get_Length() + IL_0023: add + IL_0024: ret } .method private specialname rtspecialname static void .cctor() cil managed @@ -143,4 +142,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.RealInternalSignatureOff.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.RealInternalSignatureOff.il.net472.bsl index 72f0b5a628c..bc75df20e8b 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.RealInternalSignatureOff.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.RealInternalSignatureOff.il.net472.bsl @@ -8,7 +8,7 @@ .assembly extern netstandard { .publickeytoken = (CC 7B 13 FF CD 2D DD 51 ) - .ver 2:0:0:0 + .ver 2:1:0:0 } .assembly assembly { @@ -21,16 +21,6 @@ .hash algorithm 0x00008004 .ver 0:0:0:0 -} -.mresource public FSharpSignatureCompressedData.assembly -{ - - -} -.mresource public FSharpOptimizationCompressedData.assembly -{ - - } .module assembly.exe @@ -92,9 +82,7 @@ IL_000c: ret } - .method public hidebysig virtual final - instance int32 CompareTo(object obj, - class [runtime]System.Collections.IComparer comp) cil managed + .method public hidebysig virtual final instance int32 CompareTo(object obj, class [runtime]System.Collections.IComparer comp) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -157,9 +145,7 @@ IL_000b: ret } - .method public hidebysig instance bool - Equals(valuetype assembly/C obj, - class [runtime]System.Collections.IEqualityComparer comp) cil managed + .method public hidebysig instance bool Equals(valuetype assembly/C obj, class [runtime]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -179,9 +165,7 @@ IL_0016: ret } - .method public hidebysig virtual final - instance bool Equals(object obj, - class [runtime]System.Collections.IEqualityComparer comp) cil managed + .method public hidebysig virtual final instance bool Equals(object obj, class [runtime]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -225,23 +209,22 @@ .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .maxstack 8 - IL_0000: nop - IL_0001: volatile. - IL_0003: ldsfld int32 assembly/C::init@4 - IL_0008: ldc.i4.1 - IL_0009: bge.s IL_0014 + IL_0000: volatile. + IL_0002: ldsfld int32 assembly/C::init@4 + IL_0007: ldc.i4.1 + IL_0008: bge.s IL_0013 - IL_000b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000f: nop IL_0010: nop - IL_0011: nop - IL_0012: br.s IL_0015 - - IL_0014: nop - IL_0015: ldsfld int32 assembly/C::x - IL_001a: ldstr "2" - IL_001f: callvirt instance int32 [runtime]System.String::get_Length() - IL_0024: add - IL_0025: ret + IL_0011: br.s IL_0014 + + IL_0013: nop + IL_0014: ldsfld int32 assembly/C::x + IL_0019: ldstr "2" + IL_001e: callvirt instance int32 [runtime]System.String::get_Length() + IL_0023: add + IL_0024: ret } .method public hidebysig virtual final instance bool Equals(valuetype assembly/C obj) cil managed diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.RealInternalSignatureOff.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.RealInternalSignatureOff.il.netcore.bsl index f1598e3f5b3..c50d157ad50 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.RealInternalSignatureOff.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.RealInternalSignatureOff.il.netcore.bsl @@ -209,23 +209,22 @@ .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .maxstack 8 - IL_0000: nop - IL_0001: volatile. - IL_0003: ldsfld int32 assembly/C::init@4 - IL_0008: ldc.i4.1 - IL_0009: bge.s IL_0014 + IL_0000: volatile. + IL_0002: ldsfld int32 assembly/C::init@4 + IL_0007: ldc.i4.1 + IL_0008: bge.s IL_0013 - IL_000b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000f: nop IL_0010: nop - IL_0011: nop - IL_0012: br.s IL_0015 - - IL_0014: nop - IL_0015: ldsfld int32 assembly/C::x - IL_001a: ldstr "2" - IL_001f: callvirt instance int32 [runtime]System.String::get_Length() - IL_0024: add - IL_0025: ret + IL_0011: br.s IL_0014 + + IL_0013: nop + IL_0014: ldsfld int32 assembly/C::x + IL_0019: ldstr "2" + IL_001e: callvirt instance int32 [runtime]System.String::get_Length() + IL_0023: add + IL_0024: ret } .method public hidebysig virtual final instance bool Equals(valuetype assembly/C obj) cil managed @@ -314,4 +313,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.RealInternalSignatureOn.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.RealInternalSignatureOn.il.net472.bsl index 5e7f3ba9550..98a6a65f468 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.RealInternalSignatureOn.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.RealInternalSignatureOn.il.net472.bsl @@ -8,7 +8,7 @@ .assembly extern netstandard { .publickeytoken = (CC 7B 13 FF CD 2D DD 51 ) - .ver 2:0:0:0 + .ver 2:1:0:0 } .assembly assembly { @@ -21,16 +21,6 @@ .hash algorithm 0x00008004 .ver 0:0:0:0 -} -.mresource public FSharpSignatureCompressedData.assembly -{ - - -} -.mresource public FSharpOptimizationCompressedData.assembly -{ - - } .module assembly.exe @@ -92,9 +82,7 @@ IL_000c: ret } - .method public hidebysig virtual final - instance int32 CompareTo(object obj, - class [runtime]System.Collections.IComparer comp) cil managed + .method public hidebysig virtual final instance int32 CompareTo(object obj, class [runtime]System.Collections.IComparer comp) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -157,9 +145,7 @@ IL_000b: ret } - .method public hidebysig instance bool - Equals(valuetype assembly/C obj, - class [runtime]System.Collections.IEqualityComparer comp) cil managed + .method public hidebysig instance bool Equals(valuetype assembly/C obj, class [runtime]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -179,9 +165,7 @@ IL_0016: ret } - .method public hidebysig virtual final - instance bool Equals(object obj, - class [runtime]System.Collections.IEqualityComparer comp) cil managed + .method public hidebysig virtual final instance bool Equals(object obj, class [runtime]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) @@ -225,23 +209,22 @@ .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .maxstack 8 - IL_0000: nop - IL_0001: volatile. - IL_0003: ldsfld int32 assembly/C::init@4 - IL_0008: ldc.i4.1 - IL_0009: bge.s IL_0014 + IL_0000: volatile. + IL_0002: ldsfld int32 assembly/C::init@4 + IL_0007: ldc.i4.1 + IL_0008: bge.s IL_0013 - IL_000b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000f: nop IL_0010: nop - IL_0011: nop - IL_0012: br.s IL_0015 - - IL_0014: nop - IL_0015: ldsfld int32 assembly/C::x - IL_001a: ldstr "2" - IL_001f: callvirt instance int32 [runtime]System.String::get_Length() - IL_0024: add - IL_0025: ret + IL_0011: br.s IL_0014 + + IL_0013: nop + IL_0014: ldsfld int32 assembly/C::x + IL_0019: ldstr "2" + IL_001e: callvirt instance int32 [runtime]System.String::get_Length() + IL_0023: add + IL_0024: ret } .method public hidebysig virtual final instance bool Equals(valuetype assembly/C obj) cil managed diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.RealInternalSignatureOn.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.RealInternalSignatureOn.il.netcore.bsl index 87a90d3af20..727da5904f7 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.RealInternalSignatureOn.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/StaticInit/StaticInit_Struct01.fs.RealInternalSignatureOn.il.netcore.bsl @@ -209,23 +209,22 @@ .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) .maxstack 8 - IL_0000: nop - IL_0001: volatile. - IL_0003: ldsfld int32 assembly/C::init@4 - IL_0008: ldc.i4.1 - IL_0009: bge.s IL_0014 + IL_0000: volatile. + IL_0002: ldsfld int32 assembly/C::init@4 + IL_0007: ldc.i4.1 + IL_0008: bge.s IL_0013 - IL_000b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000f: nop IL_0010: nop - IL_0011: nop - IL_0012: br.s IL_0015 - - IL_0014: nop - IL_0015: ldsfld int32 assembly/C::x - IL_001a: ldstr "2" - IL_001f: callvirt instance int32 [runtime]System.String::get_Length() - IL_0024: add - IL_0025: ret + IL_0011: br.s IL_0014 + + IL_0013: nop + IL_0014: ldsfld int32 assembly/C::x + IL_0019: ldstr "2" + IL_001e: callvirt instance int32 [runtime]System.String::get_Length() + IL_0023: add + IL_0024: ret } .method public hidebysig virtual final instance bool Equals(valuetype assembly/C obj) cil managed @@ -341,4 +340,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.net472.bsl index 9995902f04b..5e91be95eff 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.net472.bsl @@ -477,21 +477,20 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: call instance int32 assembly/Discr::get_Tag() - IL_0007: ldc.i4.0 - IL_0008: bne.un.s IL_000c + IL_0000: ldarg.0 + IL_0001: call instance int32 assembly/Discr::get_Tag() + IL_0006: ldc.i4.0 + IL_0007: bne.un.s IL_000b - IL_000a: br.s IL_0017 + IL_0009: br.s IL_0016 - IL_000c: ldstr "B" - IL_0011: call void [runtime]System.Console::WriteLine(string) - IL_0016: ret + IL_000b: ldstr "B" + IL_0010: call void [runtime]System.Console::WriteLine(string) + IL_0015: ret - IL_0017: ldstr "A" - IL_001c: call void [runtime]System.Console::WriteLine(string) - IL_0021: ret + IL_0016: ldstr "A" + IL_001b: call void [runtime]System.Console::WriteLine(string) + IL_0020: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.netcore.bsl index 9e9ed20aae2..773e547fd8d 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch06.fs.il.netcore.bsl @@ -1,8 +1,8 @@ - - + + .assembly extern runtime { } .assembly extern FSharp.Core { } .assembly extern runtime { } @@ -12,23 +12,23 @@ int32, int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) - - + + .hash algorithm 0x00008004 .ver 0:0:0:0 } .module assembly.exe - + .imagebase {value} .file alignment 0x00000200 .stackreserve 0x00100000 -.subsystem 0x0003 -.corflags 0x00000001 - +.subsystem 0x0003 +.corflags 0x00000001 + + - .class public abstract auto ansi sealed assembly extends [runtime]System.Object @@ -42,15 +42,15 @@ [runtime]System.IComparable, [runtime]System.Collections.IStructuralComparable { - .custom instance void [runtime]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C - 61 79 28 29 2C 6E 71 7D 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C + 61 79 28 29 2C 6E 71 7D 00 00 ) .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 01 00 00 00 00 00 ) .class abstract auto ansi sealed nested public Tags extends [runtime]System.Object { .field public static literal int32 CaseA = int32(0x00000000) .field public static literal int32 CaseB = int32(0x00000001) - } + } .field assembly initonly int32 _tag .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) @@ -66,7 +66,7 @@ .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) .method private specialname rtspecialname static void .cctor() cil managed { - + .maxstack 8 IL_0000: ldc.i4.0 IL_0001: newobj instance void assembly/Discr::.ctor(int32) @@ -75,16 +75,16 @@ IL_000c: newobj instance void assembly/Discr::.ctor(int32) IL_0011: stsfld class assembly/Discr assembly/Discr::_unique_CaseB IL_0016: ret - } + } .method assembly specialname rtspecialname instance void .ctor(int32 _tag) cil managed { .custom instance void [runtime]System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute::.ctor(valuetype [runtime]System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes, - class [runtime]System.Type) = ( 01 00 E0 07 00 00 15 53 74 65 70 70 69 6E 67 4D - 61 74 63 68 30 36 2B 44 69 73 63 72 00 00 ) + class [runtime]System.Type) = ( 01 00 E0 07 00 00 15 53 74 65 70 70 69 6E 67 4D + 61 74 63 68 30 36 2B 44 69 73 63 72 00 00 ) .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 [runtime]System.Object::.ctor() @@ -92,7 +92,7 @@ IL_0007: ldarg.1 IL_0008: stfld int32 assembly/Discr::_tag IL_000d: ret - } + } .method public static class assembly/Discr get_CaseA() cil managed { @@ -100,24 +100,24 @@ int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) .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: ldsfld class assembly/Discr assembly/Discr::_unique_CaseA IL_0005: ret - } + } .method public hidebysig instance bool get_IsCaseA() 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 int32 assembly/Discr::get_Tag() IL_0006: ldc.i4.0 IL_0007: ceq IL_0009: ret - } + } .method public static class assembly/Discr get_CaseB() cil managed { @@ -125,41 +125,41 @@ int32) = ( 01 00 08 00 00 00 01 00 00 00 00 00 ) .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: ldsfld class assembly/Discr assembly/Discr::_unique_CaseB IL_0005: ret - } + } .method public hidebysig instance bool get_IsCaseB() 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 int32 assembly/Discr::get_Tag() IL_0006: ldc.i4.1 IL_0007: ceq IL_0009: ret - } + } .method public hidebysig instance int32 get_Tag() 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: ldfld int32 assembly/Discr::_tag IL_0006: ret - } + } .method assembly hidebysig specialname instance object __DebugDisplay() 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: ldstr "%+0.8A" IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) @@ -167,12 +167,12 @@ IL_000f: ldarg.0 IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) IL_0015: ret - } + } .method public strict virtual instance string ToString() cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 8 IL_0000: ldstr "%+A" IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class assembly/Discr>::.ctor(string) @@ -180,12 +180,12 @@ IL_000f: ldarg.0 IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) IL_0015: ret - } + } .method public hidebysig virtual final instance int32 CompareTo(class assembly/Discr obj) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 4 .locals init (int32 V_0, int32 V_1) @@ -224,24 +224,24 @@ IL_0025: ldc.i4.0 IL_0026: ret - } + } .method public hidebysig virtual final instance int32 CompareTo(object obj) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 8 IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: unbox.any assembly/Discr IL_0007: callvirt instance int32 assembly/Discr::CompareTo(class assembly/Discr) IL_000c: ret - } + } .method public hidebysig virtual final instance int32 CompareTo(object obj, class [runtime]System.Collections.IComparer comp) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 4 .locals init (class assembly/Discr V_0, int32 V_1, @@ -286,12 +286,12 @@ IL_0036: ldc.i4.0 IL_0037: ret - } + } .method public hidebysig virtual final instance int32 GetHashCode(class [runtime]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 3 .locals init (int32 V_0) IL_0000: ldarg.0 @@ -305,23 +305,23 @@ IL_000c: ldc.i4.0 IL_000d: ret - } + } .method public hidebysig virtual final instance int32 GetHashCode() cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 8 IL_0000: ldarg.0 IL_0001: call class [runtime]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() IL_0006: callvirt instance int32 assembly/Discr::GetHashCode(class [runtime]System.Collections.IEqualityComparer) IL_000b: ret - } + } .method public hidebysig instance bool Equals(class assembly/Discr obj, class [runtime]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 4 .locals init (class assembly/Discr V_0, int32 V_1, @@ -354,12 +354,12 @@ IL_0021: ldc.i4.0 IL_0022: ceq IL_0024: ret - } + } .method public hidebysig virtual final instance bool Equals(object obj, class [runtime]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 5 .locals init (class assembly/Discr V_0) IL_0000: ldarg.1 @@ -377,12 +377,12 @@ IL_0013: ldc.i4.0 IL_0014: ret - } + } .method public hidebysig virtual final instance bool Equals(class assembly/Discr obj) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 4 .locals init (int32 V_0, int32 V_1) @@ -412,12 +412,12 @@ IL_001f: ldc.i4.0 IL_0020: ceq IL_0022: ret - } + } .method public hidebysig virtual final instance bool Equals(object obj) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 4 .locals init (class assembly/Discr V_0) IL_0000: ldarg.1 @@ -433,7 +433,7 @@ IL_0012: ldc.i4.0 IL_0013: ret - } + } .property instance int32 Tag() { @@ -441,7 +441,7 @@ .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .get instance int32 assembly/Discr::get_Tag() - } + } .property class assembly/Discr CaseA() { @@ -449,14 +449,14 @@ .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .get class assembly/Discr assembly/Discr::get_CaseA() - } + } .property instance bool IsCaseA() { .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 ) .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .get instance bool assembly/Discr::get_IsCaseA() - } + } .property class assembly/Discr CaseB() { @@ -464,38 +464,37 @@ .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .get class assembly/Discr assembly/Discr::get_CaseB() - } + } .property instance bool IsCaseB() { .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 ) .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .get instance bool assembly/Discr::get_IsCaseB() - } - } + } + } .method public static void funcD(class assembly/Discr n) cil managed { - + .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: call instance int32 assembly/Discr::get_Tag() - IL_0007: ldc.i4.0 - IL_0008: bne.un.s IL_000c + IL_0000: ldarg.0 + IL_0001: call instance int32 assembly/Discr::get_Tag() + IL_0006: ldc.i4.0 + IL_0007: bne.un.s IL_000b - IL_000a: br.s IL_0017 + IL_0009: br.s IL_0016 - IL_000c: ldstr "B" - IL_0011: call void [runtime]System.Console::WriteLine(string) - IL_0016: ret + IL_000b: ldstr "B" + IL_0010: call void [runtime]System.Console::WriteLine(string) + IL_0015: ret - IL_0017: ldstr "A" - IL_001c: call void [runtime]System.Console::WriteLine(string) - IL_0021: ret - } + IL_0016: ldstr "A" + IL_001b: call void [runtime]System.Console::WriteLine(string) + IL_0020: ret + } -} +} .class private abstract auto ansi sealed ''.$assembly extends [runtime]System.Object @@ -503,15 +502,14 @@ .method public static void main@() cil managed { .entrypoint - + .maxstack 8 IL_0000: ret - } + } + +} + -} - - - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.net472.bsl index b5e1a0e3c10..a402a352ce2 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.net472.bsl @@ -477,21 +477,20 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: call instance int32 assembly/Discr::get_Tag() - IL_0007: ldc.i4.1 - IL_0008: bne.un.s IL_000c + IL_0000: ldarg.0 + IL_0001: call instance int32 assembly/Discr::get_Tag() + IL_0006: ldc.i4.1 + IL_0007: bne.un.s IL_000b - IL_000a: br.s IL_0017 + IL_0009: br.s IL_0016 - IL_000c: ldstr "A" - IL_0011: call void [runtime]System.Console::WriteLine(string) - IL_0016: ret + IL_000b: ldstr "A" + IL_0010: call void [runtime]System.Console::WriteLine(string) + IL_0015: ret - IL_0017: ldstr "B" - IL_001c: call void [runtime]System.Console::WriteLine(string) - IL_0021: ret + IL_0016: ldstr "B" + IL_001b: call void [runtime]System.Console::WriteLine(string) + IL_0020: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.netcore.bsl index f1b22f33a57..a9a98cf64e8 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch07.fs.il.netcore.bsl @@ -1,8 +1,8 @@ - - + + .assembly extern runtime { } .assembly extern FSharp.Core { } .assembly extern runtime { } @@ -12,23 +12,23 @@ int32, int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) - - + + .hash algorithm 0x00008004 .ver 0:0:0:0 } .module assembly.exe - + .imagebase {value} .file alignment 0x00000200 .stackreserve 0x00100000 -.subsystem 0x0003 -.corflags 0x00000001 - +.subsystem 0x0003 +.corflags 0x00000001 + + - .class public abstract auto ansi sealed assembly extends [runtime]System.Object @@ -42,15 +42,15 @@ [runtime]System.IComparable, [runtime]System.Collections.IStructuralComparable { - .custom instance void [runtime]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C - 61 79 28 29 2C 6E 71 7D 00 00 ) + .custom instance void [runtime]System.Diagnostics.DebuggerDisplayAttribute::.ctor(string) = ( 01 00 15 7B 5F 5F 44 65 62 75 67 44 69 73 70 6C + 61 79 28 29 2C 6E 71 7D 00 00 ) .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 01 00 00 00 00 00 ) .class abstract auto ansi sealed nested public Tags extends [runtime]System.Object { .field public static literal int32 CaseA = int32(0x00000000) .field public static literal int32 CaseB = int32(0x00000001) - } + } .field assembly initonly int32 _tag .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) @@ -66,7 +66,7 @@ .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) .method private specialname rtspecialname static void .cctor() cil managed { - + .maxstack 8 IL_0000: ldc.i4.0 IL_0001: newobj instance void assembly/Discr::.ctor(int32) @@ -75,16 +75,16 @@ IL_000c: newobj instance void assembly/Discr::.ctor(int32) IL_0011: stsfld class assembly/Discr assembly/Discr::_unique_CaseB IL_0016: ret - } + } .method assembly specialname rtspecialname instance void .ctor(int32 _tag) cil managed { .custom instance void [runtime]System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute::.ctor(valuetype [runtime]System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes, - class [runtime]System.Type) = ( 01 00 E0 07 00 00 15 53 74 65 70 70 69 6E 67 4D - 61 74 63 68 30 37 2B 44 69 73 63 72 00 00 ) + class [runtime]System.Type) = ( 01 00 E0 07 00 00 15 53 74 65 70 70 69 6E 67 4D + 61 74 63 68 30 37 2B 44 69 73 63 72 00 00 ) .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 [runtime]System.Object::.ctor() @@ -92,7 +92,7 @@ IL_0007: ldarg.1 IL_0008: stfld int32 assembly/Discr::_tag IL_000d: ret - } + } .method public static class assembly/Discr get_CaseA() cil managed { @@ -100,24 +100,24 @@ int32) = ( 01 00 08 00 00 00 00 00 00 00 00 00 ) .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: ldsfld class assembly/Discr assembly/Discr::_unique_CaseA IL_0005: ret - } + } .method public hidebysig instance bool get_IsCaseA() 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 int32 assembly/Discr::get_Tag() IL_0006: ldc.i4.0 IL_0007: ceq IL_0009: ret - } + } .method public static class assembly/Discr get_CaseB() cil managed { @@ -125,41 +125,41 @@ int32) = ( 01 00 08 00 00 00 01 00 00 00 00 00 ) .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: ldsfld class assembly/Discr assembly/Discr::_unique_CaseB IL_0005: ret - } + } .method public hidebysig instance bool get_IsCaseB() 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 int32 assembly/Discr::get_Tag() IL_0006: ldc.i4.1 IL_0007: ceq IL_0009: ret - } + } .method public hidebysig instance int32 get_Tag() 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: ldfld int32 assembly/Discr::_tag IL_0006: ret - } + } .method assembly hidebysig specialname instance object __DebugDisplay() 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: ldstr "%+0.8A" IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,string>::.ctor(string) @@ -167,12 +167,12 @@ IL_000f: ldarg.0 IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) IL_0015: ret - } + } .method public strict virtual instance string ToString() cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 8 IL_0000: ldstr "%+A" IL_0005: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5,class [FSharp.Core]Microsoft.FSharp.Core.Unit,string,string,class assembly/Discr>::.ctor(string) @@ -180,12 +180,12 @@ IL_000f: ldarg.0 IL_0010: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) IL_0015: ret - } + } .method public hidebysig virtual final instance int32 CompareTo(class assembly/Discr obj) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 4 .locals init (int32 V_0, int32 V_1) @@ -224,24 +224,24 @@ IL_0025: ldc.i4.0 IL_0026: ret - } + } .method public hidebysig virtual final instance int32 CompareTo(object obj) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 8 IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: unbox.any assembly/Discr IL_0007: callvirt instance int32 assembly/Discr::CompareTo(class assembly/Discr) IL_000c: ret - } + } .method public hidebysig virtual final instance int32 CompareTo(object obj, class [runtime]System.Collections.IComparer comp) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 4 .locals init (class assembly/Discr V_0, int32 V_1, @@ -286,12 +286,12 @@ IL_0036: ldc.i4.0 IL_0037: ret - } + } .method public hidebysig virtual final instance int32 GetHashCode(class [runtime]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 3 .locals init (int32 V_0) IL_0000: ldarg.0 @@ -305,23 +305,23 @@ IL_000c: ldc.i4.0 IL_000d: ret - } + } .method public hidebysig virtual final instance int32 GetHashCode() cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 8 IL_0000: ldarg.0 IL_0001: call class [runtime]System.Collections.IEqualityComparer [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives::get_GenericEqualityComparer() IL_0006: callvirt instance int32 assembly/Discr::GetHashCode(class [runtime]System.Collections.IEqualityComparer) IL_000b: ret - } + } .method public hidebysig instance bool Equals(class assembly/Discr obj, class [runtime]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 4 .locals init (class assembly/Discr V_0, int32 V_1, @@ -354,12 +354,12 @@ IL_0021: ldc.i4.0 IL_0022: ceq IL_0024: ret - } + } .method public hidebysig virtual final instance bool Equals(object obj, class [runtime]System.Collections.IEqualityComparer comp) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 5 .locals init (class assembly/Discr V_0) IL_0000: ldarg.1 @@ -377,12 +377,12 @@ IL_0013: ldc.i4.0 IL_0014: ret - } + } .method public hidebysig virtual final instance bool Equals(class assembly/Discr obj) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 4 .locals init (int32 V_0, int32 V_1) @@ -412,12 +412,12 @@ IL_001f: ldc.i4.0 IL_0020: ceq IL_0022: ret - } + } .method public hidebysig virtual final instance bool Equals(object obj) cil managed { .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - + .maxstack 4 .locals init (class assembly/Discr V_0) IL_0000: ldarg.1 @@ -433,7 +433,7 @@ IL_0012: ldc.i4.0 IL_0013: ret - } + } .property instance int32 Tag() { @@ -441,7 +441,7 @@ .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .get instance int32 assembly/Discr::get_Tag() - } + } .property class assembly/Discr CaseA() { @@ -449,14 +449,14 @@ .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .get class assembly/Discr assembly/Discr::get_CaseA() - } + } .property instance bool IsCaseA() { .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 ) .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .get instance bool assembly/Discr::get_IsCaseA() - } + } .property class assembly/Discr CaseB() { @@ -464,38 +464,37 @@ .custom instance void [runtime]System.Diagnostics.DebuggerNonUserCodeAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .get class assembly/Discr assembly/Discr::get_CaseB() - } + } .property instance bool IsCaseB() { .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 ) .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) .get instance bool assembly/Discr::get_IsCaseB() - } - } + } + } .method public static void funcE(class assembly/Discr n) cil managed { - + .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: call instance int32 assembly/Discr::get_Tag() - IL_0007: ldc.i4.1 - IL_0008: bne.un.s IL_000c + IL_0000: ldarg.0 + IL_0001: call instance int32 assembly/Discr::get_Tag() + IL_0006: ldc.i4.1 + IL_0007: bne.un.s IL_000b - IL_000a: br.s IL_0017 + IL_0009: br.s IL_0016 - IL_000c: ldstr "A" - IL_0011: call void [runtime]System.Console::WriteLine(string) - IL_0016: ret + IL_000b: ldstr "A" + IL_0010: call void [runtime]System.Console::WriteLine(string) + IL_0015: ret - IL_0017: ldstr "B" - IL_001c: call void [runtime]System.Console::WriteLine(string) - IL_0021: ret - } + IL_0016: ldstr "B" + IL_001b: call void [runtime]System.Console::WriteLine(string) + IL_0020: ret + } -} +} .class private abstract auto ansi sealed ''.$assembly extends [runtime]System.Object @@ -503,15 +502,14 @@ .method public static void main@() cil managed { .entrypoint - + .maxstack 8 IL_0000: ret - } + } + +} + -} - - - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch08.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch08.fs.il.bsl index e038bd5a127..9fe6de43fa3 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch08.fs.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch08.fs.il.bsl @@ -38,21 +38,19 @@ .maxstack 3 .locals init (int32 V_0) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: switch ( - IL_000d) - IL_000b: br.s IL_0011 - - IL_000d: ldc.i4.2 - IL_000e: nop - IL_000f: br.s IL_0013 - - IL_0011: ldc.i4.0 - IL_0012: nop - IL_0013: stloc.0 - IL_0014: nop - IL_0015: ret + IL_0000: ldarg.0 + IL_0001: switch ( + IL_000c) + IL_000a: br.s IL_0010 + + IL_000c: ldc.i4.2 + IL_000d: nop + IL_000e: br.s IL_0012 + + IL_0010: ldc.i4.0 + IL_0011: nop + IL_0012: stloc.0 + IL_0013: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch09.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch09.fs.il.bsl index def052b75ee..e91caca1321 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch09.fs.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/SteppingMatch/SteppingMatch09.fs.il.bsl @@ -104,16 +104,15 @@ IL_0000: ldarg.0 IL_0001: ldfld class assembly/GenericInner@15 class assembly/GenericInner@15T::self0@ IL_0006: stloc.0 - IL_0007: nop - IL_0008: ldarg.1 - IL_0009: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_000e: brtrue.s IL_0012 + IL_0007: ldarg.1 + IL_0008: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_000d: brtrue.s IL_0011 - IL_0010: ldc.i4.1 - IL_0011: ret + IL_000f: ldc.i4.1 + IL_0010: ret - IL_0012: ldc.i4.2 - IL_0013: ret + IL_0011: ldc.i4.2 + IL_0012: ret } } @@ -137,16 +136,15 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0007: brtrue.s IL_000b + IL_0000: ldarg.1 + IL_0001: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0006: brtrue.s IL_000a - IL_0009: ldc.i4.1 - IL_000a: ret + IL_0008: ldc.i4.1 + IL_0009: ret - IL_000b: ldc.i4.2 - IL_000c: ret + IL_000a: ldc.i4.2 + IL_000b: ret } .method private specialname rtspecialname static void .cctor() cil managed @@ -182,17 +180,16 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0007: brtrue.s IL_000b + IL_0000: ldarg.1 + IL_0001: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0006: brtrue.s IL_000a - IL_0009: ldc.i4.1 - IL_000a: ret + IL_0008: ldc.i4.1 + IL_0009: ret - IL_000b: ldarg.0 - IL_000c: ldfld int32 assembly/NonGenericInnerWithCapture@34::x - IL_0011: ret + IL_000a: ldarg.0 + IL_000b: ldfld int32 assembly/NonGenericInnerWithCapture@34::x + IL_0010: ret } } @@ -201,25 +198,24 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: ldc.i4.1 - IL_0003: sub - IL_0004: switch ( - IL_0013, - IL_001b) - IL_0011: br.s IL_001d - - IL_0013: ldc.i4.s 10 - IL_0015: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) - IL_001a: ret - - IL_001b: ldnull - IL_001c: ret - - IL_001d: ldc.i4.s 22 - IL_001f: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) - IL_0024: ret + IL_0000: ldarg.0 + IL_0001: ldc.i4.1 + IL_0002: sub + IL_0003: switch ( + IL_0012, + IL_001a) + IL_0010: br.s IL_001c + + IL_0012: ldc.i4.s 10 + IL_0014: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) + IL_0019: ret + + IL_001a: ldnull + IL_001b: ret + + IL_001c: ldc.i4.s 22 + IL_001e: call class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::Some(!0) + IL_0023: ret } .method public static int32 OuterWithGenericInner(class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 list) cil managed @@ -291,4 +287,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction08.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction08.fs.il.bsl index a589eade1b3..6fa1b247a93 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction08.fs.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction08.fs.il.bsl @@ -37,20 +37,19 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: ldc.i4.3 - IL_0003: ble.s IL_0009 - - IL_0005: ldarg.0 - IL_0006: ldc.i4.4 - IL_0007: add - IL_0008: ret - - IL_0009: ldarg.0 - IL_000a: ldc.i4.4 - IL_000b: sub - IL_000c: ret + IL_0000: ldarg.0 + IL_0001: ldc.i4.3 + IL_0002: ble.s IL_0008 + + IL_0004: ldarg.0 + IL_0005: ldc.i4.4 + IL_0006: add + IL_0007: ret + + IL_0008: ldarg.0 + IL_0009: ldc.i4.4 + IL_000a: sub + IL_000b: ret } } @@ -72,4 +71,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09.fs.il.bsl index a72da0ccb48..34bb59c90c7 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09.fs.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09.fs.il.bsl @@ -37,23 +37,22 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: ldc.i4.3 - IL_0003: sub - IL_0004: switch ( - IL_0013, - IL_0019) - IL_0011: br.s IL_001f - - IL_0013: ldstr "three" - IL_0018: ret - - IL_0019: ldstr "four" - IL_001e: ret - - IL_001f: ldstr "five" - IL_0024: ret + IL_0000: ldarg.0 + IL_0001: ldc.i4.3 + IL_0002: sub + IL_0003: switch ( + IL_0012, + IL_0018) + IL_0010: br.s IL_001e + + IL_0012: ldstr "three" + IL_0017: ret + + IL_0018: ldstr "four" + IL_001d: ret + + IL_001e: ldstr "five" + IL_0023: ret } } @@ -75,4 +74,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b.fs.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b.fs.OptimizeOn.il.bsl index d1b6847e2fa..5c1c3d336a1 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b.fs.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b.fs.OptimizeOn.il.bsl @@ -41,147 +41,146 @@ class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 V_1, int32 V_2, int32 V_3) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0007: brfalse IL_015e - - IL_000c: ldarg.0 - IL_000d: stloc.0 - IL_000e: ldloc.0 - IL_000f: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0014: ldc.i4.1 - IL_0015: sub - IL_0016: switch ( - IL_00df) - IL_001f: ldloc.0 - IL_0020: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0025: ldc.i4.3 - IL_0026: sub - IL_0027: switch ( - IL_006f) - IL_0030: ldloc.0 - IL_0031: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0036: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_003b: brfalse IL_015e - - IL_0040: ldloc.0 - IL_0041: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0046: stloc.1 - IL_0047: ldloc.1 - IL_0048: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_004d: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0052: brtrue IL_015e - - IL_0057: ldloc.0 - IL_0058: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_005d: ldloc.1 - IL_005e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0063: add - IL_0064: ldc.i4.4 - IL_0065: bne.un IL_015e - - IL_006a: br IL_014a - - IL_006f: ldloc.0 - IL_0070: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0075: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_007a: brfalse IL_015e - - IL_007f: ldloc.0 - IL_0080: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0085: stloc.1 - IL_0086: ldloc.1 - IL_0087: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_008c: ldc.i4.4 - IL_008d: sub - IL_008e: switch ( - IL_00cd) - IL_0097: ldloc.1 - IL_0098: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_009d: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00a2: brtrue IL_015e - - IL_00a7: ldloc.0 - IL_00a8: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00ad: ldloc.1 - IL_00ae: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00b3: add - IL_00b4: ldc.i4.4 - IL_00b5: bne.un IL_015e - - IL_00ba: ldloc.1 - IL_00bb: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00c0: ldloc.0 - IL_00c1: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00c6: stloc.3 - IL_00c7: stloc.2 - IL_00c8: br IL_0158 - - IL_00cd: ldloc.1 - IL_00ce: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00d3: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00d8: brtrue IL_015e - - IL_00dd: br.s IL_0144 - - IL_00df: ldloc.0 - IL_00e0: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00e5: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00ea: brfalse.s IL_015e - - IL_00ec: ldloc.0 - IL_00ed: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00f2: stloc.1 - IL_00f3: ldloc.1 - IL_00f4: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00f9: ldc.i4.2 - IL_00fa: sub - IL_00fb: switch ( - IL_0131) - IL_0104: ldloc.1 - IL_0105: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_010a: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_010f: brtrue.s IL_015e - - IL_0111: ldloc.0 - IL_0112: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0117: ldloc.1 - IL_0118: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_011d: add - IL_011e: ldc.i4.4 - IL_011f: bne.un.s IL_015e - - IL_0121: ldloc.1 - IL_0122: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0127: ldloc.0 - IL_0128: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_012d: stloc.3 - IL_012e: stloc.2 - IL_012f: br.s IL_0158 - - IL_0131: ldloc.1 - IL_0132: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0137: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_013c: brtrue.s IL_015e - - IL_013e: ldstr "three" - IL_0143: ret - - IL_0144: ldstr "seven" - IL_0149: ret - - IL_014a: ldloc.1 - IL_014b: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0150: stloc.2 - IL_0151: ldloc.0 - IL_0152: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0157: stloc.3 - IL_0158: ldstr "four" - IL_015d: ret - - IL_015e: ldstr "big" - IL_0163: ret + IL_0000: ldarg.0 + IL_0001: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0006: brfalse IL_015d + + IL_000b: ldarg.0 + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0013: ldc.i4.1 + IL_0014: sub + IL_0015: switch ( + IL_00de) + IL_001e: ldloc.0 + IL_001f: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0024: ldc.i4.3 + IL_0025: sub + IL_0026: switch ( + IL_006e) + IL_002f: ldloc.0 + IL_0030: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0035: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_003a: brfalse IL_015d + + IL_003f: ldloc.0 + IL_0040: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0045: stloc.1 + IL_0046: ldloc.1 + IL_0047: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_004c: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0051: brtrue IL_015d + + IL_0056: ldloc.0 + IL_0057: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_005c: ldloc.1 + IL_005d: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0062: add + IL_0063: ldc.i4.4 + IL_0064: bne.un IL_015d + + IL_0069: br IL_0149 + + IL_006e: ldloc.0 + IL_006f: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0074: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0079: brfalse IL_015d + + IL_007e: ldloc.0 + IL_007f: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0084: stloc.1 + IL_0085: ldloc.1 + IL_0086: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_008b: ldc.i4.4 + IL_008c: sub + IL_008d: switch ( + IL_00cc) + IL_0096: ldloc.1 + IL_0097: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_009c: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00a1: brtrue IL_015d + + IL_00a6: ldloc.0 + IL_00a7: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00ac: ldloc.1 + IL_00ad: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00b2: add + IL_00b3: ldc.i4.4 + IL_00b4: bne.un IL_015d + + IL_00b9: ldloc.1 + IL_00ba: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00bf: ldloc.0 + IL_00c0: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00c5: stloc.3 + IL_00c6: stloc.2 + IL_00c7: br IL_0157 + + IL_00cc: ldloc.1 + IL_00cd: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00d2: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00d7: brtrue IL_015d + + IL_00dc: br.s IL_0143 + + IL_00de: ldloc.0 + IL_00df: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00e4: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00e9: brfalse.s IL_015d + + IL_00eb: ldloc.0 + IL_00ec: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00f1: stloc.1 + IL_00f2: ldloc.1 + IL_00f3: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00f8: ldc.i4.2 + IL_00f9: sub + IL_00fa: switch ( + IL_0130) + IL_0103: ldloc.1 + IL_0104: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0109: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_010e: brtrue.s IL_015d + + IL_0110: ldloc.0 + IL_0111: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0116: ldloc.1 + IL_0117: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_011c: add + IL_011d: ldc.i4.4 + IL_011e: bne.un.s IL_015d + + IL_0120: ldloc.1 + IL_0121: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0126: ldloc.0 + IL_0127: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_012c: stloc.3 + IL_012d: stloc.2 + IL_012e: br.s IL_0157 + + IL_0130: ldloc.1 + IL_0131: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0136: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_013b: brtrue.s IL_015d + + IL_013d: ldstr "three" + IL_0142: ret + + IL_0143: ldstr "seven" + IL_0148: ret + + IL_0149: ldloc.1 + IL_014a: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_014f: stloc.2 + IL_0150: ldloc.0 + IL_0151: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0156: stloc.3 + IL_0157: ldstr "four" + IL_015c: ret + + IL_015d: ldstr "big" + IL_0162: ret } } @@ -203,4 +202,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b1.fs.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b1.fs.OptimizeOn.il.bsl index d1b6847e2fa..5c1c3d336a1 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b1.fs.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b1.fs.OptimizeOn.il.bsl @@ -41,147 +41,146 @@ class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 V_1, int32 V_2, int32 V_3) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0007: brfalse IL_015e - - IL_000c: ldarg.0 - IL_000d: stloc.0 - IL_000e: ldloc.0 - IL_000f: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0014: ldc.i4.1 - IL_0015: sub - IL_0016: switch ( - IL_00df) - IL_001f: ldloc.0 - IL_0020: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0025: ldc.i4.3 - IL_0026: sub - IL_0027: switch ( - IL_006f) - IL_0030: ldloc.0 - IL_0031: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0036: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_003b: brfalse IL_015e - - IL_0040: ldloc.0 - IL_0041: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0046: stloc.1 - IL_0047: ldloc.1 - IL_0048: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_004d: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0052: brtrue IL_015e - - IL_0057: ldloc.0 - IL_0058: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_005d: ldloc.1 - IL_005e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0063: add - IL_0064: ldc.i4.4 - IL_0065: bne.un IL_015e - - IL_006a: br IL_014a - - IL_006f: ldloc.0 - IL_0070: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0075: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_007a: brfalse IL_015e - - IL_007f: ldloc.0 - IL_0080: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0085: stloc.1 - IL_0086: ldloc.1 - IL_0087: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_008c: ldc.i4.4 - IL_008d: sub - IL_008e: switch ( - IL_00cd) - IL_0097: ldloc.1 - IL_0098: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_009d: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00a2: brtrue IL_015e - - IL_00a7: ldloc.0 - IL_00a8: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00ad: ldloc.1 - IL_00ae: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00b3: add - IL_00b4: ldc.i4.4 - IL_00b5: bne.un IL_015e - - IL_00ba: ldloc.1 - IL_00bb: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00c0: ldloc.0 - IL_00c1: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00c6: stloc.3 - IL_00c7: stloc.2 - IL_00c8: br IL_0158 - - IL_00cd: ldloc.1 - IL_00ce: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00d3: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00d8: brtrue IL_015e - - IL_00dd: br.s IL_0144 - - IL_00df: ldloc.0 - IL_00e0: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00e5: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00ea: brfalse.s IL_015e - - IL_00ec: ldloc.0 - IL_00ed: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00f2: stloc.1 - IL_00f3: ldloc.1 - IL_00f4: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00f9: ldc.i4.2 - IL_00fa: sub - IL_00fb: switch ( - IL_0131) - IL_0104: ldloc.1 - IL_0105: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_010a: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_010f: brtrue.s IL_015e - - IL_0111: ldloc.0 - IL_0112: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0117: ldloc.1 - IL_0118: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_011d: add - IL_011e: ldc.i4.4 - IL_011f: bne.un.s IL_015e - - IL_0121: ldloc.1 - IL_0122: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0127: ldloc.0 - IL_0128: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_012d: stloc.3 - IL_012e: stloc.2 - IL_012f: br.s IL_0158 - - IL_0131: ldloc.1 - IL_0132: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0137: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_013c: brtrue.s IL_015e - - IL_013e: ldstr "three" - IL_0143: ret - - IL_0144: ldstr "seven" - IL_0149: ret - - IL_014a: ldloc.1 - IL_014b: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0150: stloc.2 - IL_0151: ldloc.0 - IL_0152: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0157: stloc.3 - IL_0158: ldstr "four" - IL_015d: ret - - IL_015e: ldstr "big" - IL_0163: ret + IL_0000: ldarg.0 + IL_0001: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0006: brfalse IL_015d + + IL_000b: ldarg.0 + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0013: ldc.i4.1 + IL_0014: sub + IL_0015: switch ( + IL_00de) + IL_001e: ldloc.0 + IL_001f: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0024: ldc.i4.3 + IL_0025: sub + IL_0026: switch ( + IL_006e) + IL_002f: ldloc.0 + IL_0030: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0035: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_003a: brfalse IL_015d + + IL_003f: ldloc.0 + IL_0040: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0045: stloc.1 + IL_0046: ldloc.1 + IL_0047: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_004c: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0051: brtrue IL_015d + + IL_0056: ldloc.0 + IL_0057: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_005c: ldloc.1 + IL_005d: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0062: add + IL_0063: ldc.i4.4 + IL_0064: bne.un IL_015d + + IL_0069: br IL_0149 + + IL_006e: ldloc.0 + IL_006f: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0074: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0079: brfalse IL_015d + + IL_007e: ldloc.0 + IL_007f: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0084: stloc.1 + IL_0085: ldloc.1 + IL_0086: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_008b: ldc.i4.4 + IL_008c: sub + IL_008d: switch ( + IL_00cc) + IL_0096: ldloc.1 + IL_0097: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_009c: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00a1: brtrue IL_015d + + IL_00a6: ldloc.0 + IL_00a7: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00ac: ldloc.1 + IL_00ad: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00b2: add + IL_00b3: ldc.i4.4 + IL_00b4: bne.un IL_015d + + IL_00b9: ldloc.1 + IL_00ba: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00bf: ldloc.0 + IL_00c0: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00c5: stloc.3 + IL_00c6: stloc.2 + IL_00c7: br IL_0157 + + IL_00cc: ldloc.1 + IL_00cd: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00d2: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00d7: brtrue IL_015d + + IL_00dc: br.s IL_0143 + + IL_00de: ldloc.0 + IL_00df: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00e4: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00e9: brfalse.s IL_015d + + IL_00eb: ldloc.0 + IL_00ec: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00f1: stloc.1 + IL_00f2: ldloc.1 + IL_00f3: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00f8: ldc.i4.2 + IL_00f9: sub + IL_00fa: switch ( + IL_0130) + IL_0103: ldloc.1 + IL_0104: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0109: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_010e: brtrue.s IL_015d + + IL_0110: ldloc.0 + IL_0111: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0116: ldloc.1 + IL_0117: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_011c: add + IL_011d: ldc.i4.4 + IL_011e: bne.un.s IL_015d + + IL_0120: ldloc.1 + IL_0121: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0126: ldloc.0 + IL_0127: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_012c: stloc.3 + IL_012d: stloc.2 + IL_012e: br.s IL_0157 + + IL_0130: ldloc.1 + IL_0131: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0136: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_013b: brtrue.s IL_015d + + IL_013d: ldstr "three" + IL_0142: ret + + IL_0143: ldstr "seven" + IL_0148: ret + + IL_0149: ldloc.1 + IL_014a: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_014f: stloc.2 + IL_0150: ldloc.0 + IL_0151: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0156: stloc.3 + IL_0157: ldstr "four" + IL_015c: ret + + IL_015d: ldstr "big" + IL_0162: ret } } @@ -203,4 +202,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b2.fs.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b2.fs.OptimizeOn.il.bsl index d1b6847e2fa..5c1c3d336a1 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b2.fs.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b2.fs.OptimizeOn.il.bsl @@ -41,147 +41,146 @@ class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 V_1, int32 V_2, int32 V_3) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0007: brfalse IL_015e - - IL_000c: ldarg.0 - IL_000d: stloc.0 - IL_000e: ldloc.0 - IL_000f: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0014: ldc.i4.1 - IL_0015: sub - IL_0016: switch ( - IL_00df) - IL_001f: ldloc.0 - IL_0020: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0025: ldc.i4.3 - IL_0026: sub - IL_0027: switch ( - IL_006f) - IL_0030: ldloc.0 - IL_0031: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0036: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_003b: brfalse IL_015e - - IL_0040: ldloc.0 - IL_0041: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0046: stloc.1 - IL_0047: ldloc.1 - IL_0048: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_004d: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0052: brtrue IL_015e - - IL_0057: ldloc.0 - IL_0058: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_005d: ldloc.1 - IL_005e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0063: add - IL_0064: ldc.i4.4 - IL_0065: bne.un IL_015e - - IL_006a: br IL_014a - - IL_006f: ldloc.0 - IL_0070: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0075: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_007a: brfalse IL_015e - - IL_007f: ldloc.0 - IL_0080: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0085: stloc.1 - IL_0086: ldloc.1 - IL_0087: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_008c: ldc.i4.4 - IL_008d: sub - IL_008e: switch ( - IL_00cd) - IL_0097: ldloc.1 - IL_0098: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_009d: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00a2: brtrue IL_015e - - IL_00a7: ldloc.0 - IL_00a8: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00ad: ldloc.1 - IL_00ae: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00b3: add - IL_00b4: ldc.i4.4 - IL_00b5: bne.un IL_015e - - IL_00ba: ldloc.1 - IL_00bb: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00c0: ldloc.0 - IL_00c1: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00c6: stloc.3 - IL_00c7: stloc.2 - IL_00c8: br IL_0158 - - IL_00cd: ldloc.1 - IL_00ce: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00d3: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00d8: brtrue IL_015e - - IL_00dd: br.s IL_0144 - - IL_00df: ldloc.0 - IL_00e0: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00e5: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00ea: brfalse.s IL_015e - - IL_00ec: ldloc.0 - IL_00ed: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00f2: stloc.1 - IL_00f3: ldloc.1 - IL_00f4: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00f9: ldc.i4.2 - IL_00fa: sub - IL_00fb: switch ( - IL_0131) - IL_0104: ldloc.1 - IL_0105: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_010a: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_010f: brtrue.s IL_015e - - IL_0111: ldloc.0 - IL_0112: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0117: ldloc.1 - IL_0118: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_011d: add - IL_011e: ldc.i4.4 - IL_011f: bne.un.s IL_015e - - IL_0121: ldloc.1 - IL_0122: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0127: ldloc.0 - IL_0128: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_012d: stloc.3 - IL_012e: stloc.2 - IL_012f: br.s IL_0158 - - IL_0131: ldloc.1 - IL_0132: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0137: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_013c: brtrue.s IL_015e - - IL_013e: ldstr "three" - IL_0143: ret - - IL_0144: ldstr "seven" - IL_0149: ret - - IL_014a: ldloc.1 - IL_014b: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0150: stloc.2 - IL_0151: ldloc.0 - IL_0152: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0157: stloc.3 - IL_0158: ldstr "four" - IL_015d: ret - - IL_015e: ldstr "big" - IL_0163: ret + IL_0000: ldarg.0 + IL_0001: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0006: brfalse IL_015d + + IL_000b: ldarg.0 + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0013: ldc.i4.1 + IL_0014: sub + IL_0015: switch ( + IL_00de) + IL_001e: ldloc.0 + IL_001f: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0024: ldc.i4.3 + IL_0025: sub + IL_0026: switch ( + IL_006e) + IL_002f: ldloc.0 + IL_0030: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0035: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_003a: brfalse IL_015d + + IL_003f: ldloc.0 + IL_0040: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0045: stloc.1 + IL_0046: ldloc.1 + IL_0047: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_004c: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0051: brtrue IL_015d + + IL_0056: ldloc.0 + IL_0057: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_005c: ldloc.1 + IL_005d: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0062: add + IL_0063: ldc.i4.4 + IL_0064: bne.un IL_015d + + IL_0069: br IL_0149 + + IL_006e: ldloc.0 + IL_006f: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0074: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0079: brfalse IL_015d + + IL_007e: ldloc.0 + IL_007f: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0084: stloc.1 + IL_0085: ldloc.1 + IL_0086: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_008b: ldc.i4.4 + IL_008c: sub + IL_008d: switch ( + IL_00cc) + IL_0096: ldloc.1 + IL_0097: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_009c: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00a1: brtrue IL_015d + + IL_00a6: ldloc.0 + IL_00a7: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00ac: ldloc.1 + IL_00ad: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00b2: add + IL_00b3: ldc.i4.4 + IL_00b4: bne.un IL_015d + + IL_00b9: ldloc.1 + IL_00ba: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00bf: ldloc.0 + IL_00c0: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00c5: stloc.3 + IL_00c6: stloc.2 + IL_00c7: br IL_0157 + + IL_00cc: ldloc.1 + IL_00cd: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00d2: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00d7: brtrue IL_015d + + IL_00dc: br.s IL_0143 + + IL_00de: ldloc.0 + IL_00df: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00e4: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00e9: brfalse.s IL_015d + + IL_00eb: ldloc.0 + IL_00ec: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00f1: stloc.1 + IL_00f2: ldloc.1 + IL_00f3: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00f8: ldc.i4.2 + IL_00f9: sub + IL_00fa: switch ( + IL_0130) + IL_0103: ldloc.1 + IL_0104: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0109: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_010e: brtrue.s IL_015d + + IL_0110: ldloc.0 + IL_0111: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0116: ldloc.1 + IL_0117: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_011c: add + IL_011d: ldc.i4.4 + IL_011e: bne.un.s IL_015d + + IL_0120: ldloc.1 + IL_0121: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0126: ldloc.0 + IL_0127: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_012c: stloc.3 + IL_012d: stloc.2 + IL_012e: br.s IL_0157 + + IL_0130: ldloc.1 + IL_0131: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0136: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_013b: brtrue.s IL_015d + + IL_013d: ldstr "three" + IL_0142: ret + + IL_0143: ldstr "seven" + IL_0148: ret + + IL_0149: ldloc.1 + IL_014a: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_014f: stloc.2 + IL_0150: ldloc.0 + IL_0151: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0156: stloc.3 + IL_0157: ldstr "four" + IL_015c: ret + + IL_015d: ldstr "big" + IL_0162: ret } } @@ -203,4 +202,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b3.fs.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b3.fs.OptimizeOn.il.bsl index d1b6847e2fa..5c1c3d336a1 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b3.fs.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b3.fs.OptimizeOn.il.bsl @@ -41,147 +41,146 @@ class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 V_1, int32 V_2, int32 V_3) - IL_0000: nop - IL_0001: ldarg.0 - IL_0002: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0007: brfalse IL_015e - - IL_000c: ldarg.0 - IL_000d: stloc.0 - IL_000e: ldloc.0 - IL_000f: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0014: ldc.i4.1 - IL_0015: sub - IL_0016: switch ( - IL_00df) - IL_001f: ldloc.0 - IL_0020: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0025: ldc.i4.3 - IL_0026: sub - IL_0027: switch ( - IL_006f) - IL_0030: ldloc.0 - IL_0031: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0036: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_003b: brfalse IL_015e - - IL_0040: ldloc.0 - IL_0041: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0046: stloc.1 - IL_0047: ldloc.1 - IL_0048: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_004d: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0052: brtrue IL_015e - - IL_0057: ldloc.0 - IL_0058: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_005d: ldloc.1 - IL_005e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0063: add - IL_0064: ldc.i4.4 - IL_0065: bne.un IL_015e - - IL_006a: br IL_014a - - IL_006f: ldloc.0 - IL_0070: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0075: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_007a: brfalse IL_015e - - IL_007f: ldloc.0 - IL_0080: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0085: stloc.1 - IL_0086: ldloc.1 - IL_0087: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_008c: ldc.i4.4 - IL_008d: sub - IL_008e: switch ( - IL_00cd) - IL_0097: ldloc.1 - IL_0098: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_009d: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00a2: brtrue IL_015e - - IL_00a7: ldloc.0 - IL_00a8: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00ad: ldloc.1 - IL_00ae: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00b3: add - IL_00b4: ldc.i4.4 - IL_00b5: bne.un IL_015e - - IL_00ba: ldloc.1 - IL_00bb: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00c0: ldloc.0 - IL_00c1: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00c6: stloc.3 - IL_00c7: stloc.2 - IL_00c8: br IL_0158 - - IL_00cd: ldloc.1 - IL_00ce: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00d3: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00d8: brtrue IL_015e - - IL_00dd: br.s IL_0144 - - IL_00df: ldloc.0 - IL_00e0: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00e5: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00ea: brfalse.s IL_015e - - IL_00ec: ldloc.0 - IL_00ed: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_00f2: stloc.1 - IL_00f3: ldloc.1 - IL_00f4: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_00f9: ldc.i4.2 - IL_00fa: sub - IL_00fb: switch ( - IL_0131) - IL_0104: ldloc.1 - IL_0105: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_010a: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_010f: brtrue.s IL_015e - - IL_0111: ldloc.0 - IL_0112: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0117: ldloc.1 - IL_0118: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_011d: add - IL_011e: ldc.i4.4 - IL_011f: bne.un.s IL_015e - - IL_0121: ldloc.1 - IL_0122: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0127: ldloc.0 - IL_0128: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_012d: stloc.3 - IL_012e: stloc.2 - IL_012f: br.s IL_0158 - - IL_0131: ldloc.1 - IL_0132: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0137: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_013c: brtrue.s IL_015e - - IL_013e: ldstr "three" - IL_0143: ret - - IL_0144: ldstr "seven" - IL_0149: ret - - IL_014a: ldloc.1 - IL_014b: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0150: stloc.2 - IL_0151: ldloc.0 - IL_0152: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0157: stloc.3 - IL_0158: ldstr "four" - IL_015d: ret - - IL_015e: ldstr "big" - IL_0163: ret + IL_0000: ldarg.0 + IL_0001: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0006: brfalse IL_015d + + IL_000b: ldarg.0 + IL_000c: stloc.0 + IL_000d: ldloc.0 + IL_000e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0013: ldc.i4.1 + IL_0014: sub + IL_0015: switch ( + IL_00de) + IL_001e: ldloc.0 + IL_001f: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0024: ldc.i4.3 + IL_0025: sub + IL_0026: switch ( + IL_006e) + IL_002f: ldloc.0 + IL_0030: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0035: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_003a: brfalse IL_015d + + IL_003f: ldloc.0 + IL_0040: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0045: stloc.1 + IL_0046: ldloc.1 + IL_0047: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_004c: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0051: brtrue IL_015d + + IL_0056: ldloc.0 + IL_0057: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_005c: ldloc.1 + IL_005d: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0062: add + IL_0063: ldc.i4.4 + IL_0064: bne.un IL_015d + + IL_0069: br IL_0149 + + IL_006e: ldloc.0 + IL_006f: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0074: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0079: brfalse IL_015d + + IL_007e: ldloc.0 + IL_007f: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0084: stloc.1 + IL_0085: ldloc.1 + IL_0086: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_008b: ldc.i4.4 + IL_008c: sub + IL_008d: switch ( + IL_00cc) + IL_0096: ldloc.1 + IL_0097: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_009c: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00a1: brtrue IL_015d + + IL_00a6: ldloc.0 + IL_00a7: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00ac: ldloc.1 + IL_00ad: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00b2: add + IL_00b3: ldc.i4.4 + IL_00b4: bne.un IL_015d + + IL_00b9: ldloc.1 + IL_00ba: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00bf: ldloc.0 + IL_00c0: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00c5: stloc.3 + IL_00c6: stloc.2 + IL_00c7: br IL_0157 + + IL_00cc: ldloc.1 + IL_00cd: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00d2: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00d7: brtrue IL_015d + + IL_00dc: br.s IL_0143 + + IL_00de: ldloc.0 + IL_00df: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00e4: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00e9: brfalse.s IL_015d + + IL_00eb: ldloc.0 + IL_00ec: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_00f1: stloc.1 + IL_00f2: ldloc.1 + IL_00f3: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_00f8: ldc.i4.2 + IL_00f9: sub + IL_00fa: switch ( + IL_0130) + IL_0103: ldloc.1 + IL_0104: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0109: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_010e: brtrue.s IL_015d + + IL_0110: ldloc.0 + IL_0111: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0116: ldloc.1 + IL_0117: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_011c: add + IL_011d: ldc.i4.4 + IL_011e: bne.un.s IL_015d + + IL_0120: ldloc.1 + IL_0121: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0126: ldloc.0 + IL_0127: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_012c: stloc.3 + IL_012d: stloc.2 + IL_012e: br.s IL_0157 + + IL_0130: ldloc.1 + IL_0131: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0136: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_013b: brtrue.s IL_015d + + IL_013d: ldstr "three" + IL_0142: ret + + IL_0143: ldstr "seven" + IL_0148: ret + + IL_0149: ldloc.1 + IL_014a: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_014f: stloc.2 + IL_0150: ldloc.0 + IL_0151: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_0156: stloc.3 + IL_0157: ldstr "four" + IL_015c: ret + + IL_015d: ldstr "big" + IL_0162: ret } } @@ -203,4 +202,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b4.fs.RealInternalSignatureOff.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b4.fs.RealInternalSignatureOff.OptimizeOff.il.bsl index b59abd72956..46a3a35cdcc 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b4.fs.RealInternalSignatureOff.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b4.fs.RealInternalSignatureOff.OptimizeOff.il.bsl @@ -75,23 +75,22 @@ .locals init (int32 V_0) IL_0000: call int32 assembly::get_x() IL_0005: stloc.0 - IL_0006: nop - IL_0007: call int32 assembly::get_x() - IL_000c: box [runtime]System.Int32 - IL_0011: brfalse.s IL_0015 + IL_0006: call int32 assembly::get_x() + IL_000b: box [runtime]System.Int32 + IL_0010: brfalse.s IL_0014 - IL_0013: br.s IL_0028 + IL_0012: br.s IL_0027 - IL_0015: ldstr "Is null" - IL_001a: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_001f: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0024: pop - IL_0025: nop - IL_0026: br.s IL_002a + IL_0014: ldstr "Is null" + IL_0019: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_001e: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_0023: pop + IL_0024: nop + IL_0025: br.s IL_0029 + IL_0027: nop IL_0028: nop - IL_0029: nop - IL_002a: ret + IL_0029: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b4.fs.RealInternalSignatureOff.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b4.fs.RealInternalSignatureOff.OptimizeOn.il.bsl index d87afc126cb..51f4c12a9d5 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b4.fs.RealInternalSignatureOff.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b4.fs.RealInternalSignatureOff.OptimizeOn.il.bsl @@ -79,27 +79,26 @@ .maxstack 4 .locals init (class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4 V_0) IL_0000: nop - IL_0001: nop - IL_0002: ldc.i4.5 - IL_0003: box [runtime]System.Int32 - IL_0008: brfalse.s IL_000c - - IL_000a: br.s IL_0026 - - IL_000c: ldstr "Is null" - IL_0011: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0016: stloc.0 - IL_0017: call class [netstandard]System.IO.TextWriter [netstandard]System.Console::get_Out() - IL_001c: ldloc.0 - IL_001d: call !!0 [FSharp.Core]Microsoft.FSharp.Core.PrintfModule::PrintFormatLineToTextWriter(class [runtime]System.IO.TextWriter, + IL_0001: ldc.i4.5 + IL_0002: box [runtime]System.Int32 + IL_0007: brfalse.s IL_000b + + IL_0009: br.s IL_0025 + + IL_000b: ldstr "Is null" + IL_0010: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_0015: stloc.0 + IL_0016: call class [netstandard]System.IO.TextWriter [netstandard]System.Console::get_Out() + IL_001b: ldloc.0 + IL_001c: call !!0 [FSharp.Core]Microsoft.FSharp.Core.PrintfModule::PrintFormatLineToTextWriter(class [runtime]System.IO.TextWriter, class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0022: pop - IL_0023: nop - IL_0024: br.s IL_0028 + IL_0021: pop + IL_0022: nop + IL_0023: br.s IL_0027 + IL_0025: nop IL_0026: nop - IL_0027: nop - IL_0028: ret + IL_0027: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b4.fs.RealInternalSignatureOn.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b4.fs.RealInternalSignatureOn.OptimizeOff.il.bsl index ba96754e3e6..61365cee532 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b4.fs.RealInternalSignatureOn.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b4.fs.RealInternalSignatureOn.OptimizeOff.il.bsl @@ -70,23 +70,22 @@ .maxstack 8 IL_0000: nop - IL_0001: nop - IL_0002: call int32 assembly::get_x() - IL_0007: box [runtime]System.Int32 - IL_000c: brfalse.s IL_0010 + IL_0001: call int32 assembly::get_x() + IL_0006: box [runtime]System.Int32 + IL_000b: brfalse.s IL_000f - IL_000e: br.s IL_0023 + IL_000d: br.s IL_0022 - IL_0010: ldstr "Is null" - IL_0015: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_001a: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_001f: pop - IL_0020: nop - IL_0021: br.s IL_0025 + IL_000f: ldstr "Is null" + IL_0014: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_0019: call !!0 [FSharp.Core]Microsoft.FSharp.Core.ExtraTopLevelOperators::PrintFormatLine(class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) + IL_001e: pop + IL_001f: nop + IL_0020: br.s IL_0024 + IL_0022: nop IL_0023: nop - IL_0024: nop - IL_0025: ret + IL_0024: ret } .property int32 x() diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b4.fs.RealInternalSignatureOn.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b4.fs.RealInternalSignatureOn.OptimizeOn.il.bsl index 22cba60ff1f..25ef92a9ce4 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b4.fs.RealInternalSignatureOn.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction09b4.fs.RealInternalSignatureOn.OptimizeOn.il.bsl @@ -76,27 +76,26 @@ .maxstack 4 .locals init (class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4 V_0) IL_0000: nop - IL_0001: nop - IL_0002: ldc.i4.5 - IL_0003: box [runtime]System.Int32 - IL_0008: brfalse.s IL_000c - - IL_000a: br.s IL_0026 - - IL_000c: ldstr "Is null" - IL_0011: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) - IL_0016: stloc.0 - IL_0017: call class [netstandard]System.IO.TextWriter [netstandard]System.Console::get_Out() - IL_001c: ldloc.0 - IL_001d: call !!0 [FSharp.Core]Microsoft.FSharp.Core.PrintfModule::PrintFormatLineToTextWriter(class [runtime]System.IO.TextWriter, + IL_0001: ldc.i4.5 + IL_0002: box [runtime]System.Int32 + IL_0007: brfalse.s IL_000b + + IL_0009: br.s IL_0025 + + IL_000b: ldstr "Is null" + IL_0010: newobj instance void class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`5::.ctor(string) + IL_0015: stloc.0 + IL_0016: call class [netstandard]System.IO.TextWriter [netstandard]System.Console::get_Out() + IL_001b: ldloc.0 + IL_001c: call !!0 [FSharp.Core]Microsoft.FSharp.Core.PrintfModule::PrintFormatLineToTextWriter(class [runtime]System.IO.TextWriter, class [FSharp.Core]Microsoft.FSharp.Core.PrintfFormat`4) - IL_0022: pop - IL_0023: nop - IL_0024: br.s IL_0028 + IL_0021: pop + IL_0022: nop + IL_0023: br.s IL_0027 + IL_0025: nop IL_0026: nop - IL_0027: nop - IL_0028: ret + IL_0027: ret } .property int32 x() diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22f.fs.RealInternalSignatureOff.OptimizeOn.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22f.fs.RealInternalSignatureOff.OptimizeOn.il.net472.bsl index 74cb3fb32ef..d0340741a9e 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22f.fs.RealInternalSignatureOff.OptimizeOn.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22f.fs.RealInternalSignatureOff.OptimizeOn.il.net472.bsl @@ -52,20 +52,19 @@ .entrypoint .maxstack 8 - IL_0000: nop - IL_0001: ldstr "A" - IL_0006: ldstr "A" - IL_000b: call bool [netstandard]System.String::Equals(string, + IL_0000: ldstr "A" + IL_0005: ldstr "A" + IL_000a: call bool [netstandard]System.String::Equals(string, string) - IL_0010: brfalse.s IL_001a + IL_000f: brfalse.s IL_0019 - IL_0012: call void [runtime]System.Console::WriteLine() - IL_0017: nop - IL_0018: br.s IL_0020 + IL_0011: call void [runtime]System.Console::WriteLine() + IL_0016: nop + IL_0017: br.s IL_001f - IL_001a: call void [runtime]System.Console::WriteLine() - IL_001f: nop - IL_0020: ret + IL_0019: call void [runtime]System.Console::WriteLine() + IL_001e: nop + IL_001f: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22f.fs.RealInternalSignatureOff.OptimizeOn.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22f.fs.RealInternalSignatureOff.OptimizeOn.il.netcore.bsl index b78a9ea4355..1601d4f481d 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22f.fs.RealInternalSignatureOff.OptimizeOn.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22f.fs.RealInternalSignatureOff.OptimizeOn.il.netcore.bsl @@ -53,20 +53,19 @@ .entrypoint .maxstack 8 - IL_0000: nop - IL_0001: ldstr "A" - IL_0006: ldstr "A" - IL_000b: call bool [netstandard]System.String::Equals(string, + IL_0000: ldstr "A" + IL_0005: ldstr "A" + IL_000a: call bool [netstandard]System.String::Equals(string, string) - IL_0010: brfalse.s IL_001a + IL_000f: brfalse.s IL_0019 - IL_0012: call void [runtime]System.Console::WriteLine() - IL_0017: nop - IL_0018: br.s IL_0020 + IL_0011: call void [runtime]System.Console::WriteLine() + IL_0016: nop + IL_0017: br.s IL_001f - IL_001a: call void [runtime]System.Console::WriteLine() - IL_001f: nop - IL_0020: ret + IL_0019: call void [runtime]System.Console::WriteLine() + IL_001e: nop + IL_001f: ret } } @@ -75,4 +74,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22f.fs.RealInternalSignatureOn.OptimizeOn.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22f.fs.RealInternalSignatureOn.OptimizeOn.il.net472.bsl index 21c8a27988d..275dff6e19d 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22f.fs.RealInternalSignatureOn.OptimizeOn.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22f.fs.RealInternalSignatureOn.OptimizeOn.il.net472.bsl @@ -53,20 +53,19 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldstr "A" - IL_0006: ldstr "A" - IL_000b: call bool [netstandard]System.String::Equals(string, + IL_0000: ldstr "A" + IL_0005: ldstr "A" + IL_000a: call bool [netstandard]System.String::Equals(string, string) - IL_0010: brfalse.s IL_001a + IL_000f: brfalse.s IL_0019 - IL_0012: call void [runtime]System.Console::WriteLine() - IL_0017: nop - IL_0018: br.s IL_0020 + IL_0011: call void [runtime]System.Console::WriteLine() + IL_0016: nop + IL_0017: br.s IL_001f - IL_001a: call void [runtime]System.Console::WriteLine() - IL_001f: nop - IL_0020: ret + IL_0019: call void [runtime]System.Console::WriteLine() + IL_001e: nop + IL_001f: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22f.fs.RealInternalSignatureOn.OptimizeOn.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22f.fs.RealInternalSignatureOn.OptimizeOn.il.netcore.bsl index f43186b3024..9c8e4f6db45 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22f.fs.RealInternalSignatureOn.OptimizeOn.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22f.fs.RealInternalSignatureOn.OptimizeOn.il.netcore.bsl @@ -54,20 +54,19 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldstr "A" - IL_0006: ldstr "A" - IL_000b: call bool [netstandard]System.String::Equals(string, + IL_0000: ldstr "A" + IL_0005: ldstr "A" + IL_000a: call bool [netstandard]System.String::Equals(string, string) - IL_0010: brfalse.s IL_001a + IL_000f: brfalse.s IL_0019 - IL_0012: call void [runtime]System.Console::WriteLine() - IL_0017: nop - IL_0018: br.s IL_0020 + IL_0011: call void [runtime]System.Console::WriteLine() + IL_0016: nop + IL_0017: br.s IL_001f - IL_001a: call void [runtime]System.Console::WriteLine() - IL_001f: nop - IL_0020: ret + IL_0019: call void [runtime]System.Console::WriteLine() + IL_001e: nop + IL_001f: ret } } @@ -94,4 +93,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22g.fs.RealInternalSignatureOff.OptimizeOff.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22g.fs.RealInternalSignatureOff.OptimizeOff.il.net472.bsl index b5d6157072c..46e198ad028 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22g.fs.RealInternalSignatureOff.OptimizeOff.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22g.fs.RealInternalSignatureOff.OptimizeOff.il.net472.bsl @@ -16,16 +16,6 @@ .hash algorithm 0x00008004 .ver 0:0:0:0 -} -.mresource public FSharpSignatureCompressedData.assembly -{ - - -} -.mresource public FSharpOptimizationCompressedData.assembly -{ - - } .module assembly.exe @@ -57,17 +47,16 @@ .entrypoint .maxstack 8 - IL_0000: nop - IL_0001: ldc.i4.1 - IL_0002: brfalse.s IL_000c + IL_0000: ldc.i4.1 + IL_0001: brfalse.s IL_000b - IL_0004: call void [runtime]System.Console::WriteLine() - IL_0009: nop - IL_000a: br.s IL_0012 + IL_0003: call void [runtime]System.Console::WriteLine() + IL_0008: nop + IL_0009: br.s IL_0011 - IL_000c: call void [runtime]System.Console::WriteLine() - IL_0011: nop - IL_0012: ret + IL_000b: call void [runtime]System.Console::WriteLine() + IL_0010: nop + IL_0011: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22g.fs.RealInternalSignatureOff.OptimizeOff.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22g.fs.RealInternalSignatureOff.OptimizeOff.il.netcore.bsl index 8e50cf1e6de..c006ef79340 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22g.fs.RealInternalSignatureOff.OptimizeOff.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22g.fs.RealInternalSignatureOff.OptimizeOff.il.netcore.bsl @@ -48,17 +48,16 @@ .entrypoint .maxstack 8 - IL_0000: nop - IL_0001: ldc.i4.1 - IL_0002: brfalse.s IL_000c + IL_0000: ldc.i4.1 + IL_0001: brfalse.s IL_000b - IL_0004: call void [runtime]System.Console::WriteLine() - IL_0009: nop - IL_000a: br.s IL_0012 + IL_0003: call void [runtime]System.Console::WriteLine() + IL_0008: nop + IL_0009: br.s IL_0011 - IL_000c: call void [runtime]System.Console::WriteLine() - IL_0011: nop - IL_0012: ret + IL_000b: call void [runtime]System.Console::WriteLine() + IL_0010: nop + IL_0011: ret } } @@ -67,4 +66,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22g.fs.RealInternalSignatureOn.OptimizeOff.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22g.fs.RealInternalSignatureOn.OptimizeOff.il.net472.bsl index fc88b108b6c..1f01d01d986 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22g.fs.RealInternalSignatureOn.OptimizeOff.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22g.fs.RealInternalSignatureOn.OptimizeOff.il.net472.bsl @@ -16,16 +16,6 @@ .hash algorithm 0x00008004 .ver 0:0:0:0 -} -.mresource public FSharpSignatureCompressedData.assembly -{ - - -} -.mresource public FSharpOptimizationCompressedData.assembly -{ - - } .module assembly.exe @@ -58,17 +48,16 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldc.i4.1 - IL_0002: brfalse.s IL_000c + IL_0000: ldc.i4.1 + IL_0001: brfalse.s IL_000b - IL_0004: call void [runtime]System.Console::WriteLine() - IL_0009: nop - IL_000a: br.s IL_0012 + IL_0003: call void [runtime]System.Console::WriteLine() + IL_0008: nop + IL_0009: br.s IL_0011 - IL_000c: call void [runtime]System.Console::WriteLine() - IL_0011: nop - IL_0012: ret + IL_000b: call void [runtime]System.Console::WriteLine() + IL_0010: nop + IL_0011: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22g.fs.RealInternalSignatureOn.OptimizeOff.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22g.fs.RealInternalSignatureOn.OptimizeOff.il.netcore.bsl index 923e706a988..c601aa07456 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22g.fs.RealInternalSignatureOn.OptimizeOff.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22g.fs.RealInternalSignatureOn.OptimizeOff.il.netcore.bsl @@ -49,17 +49,16 @@ { .maxstack 8 - IL_0000: nop - IL_0001: ldc.i4.1 - IL_0002: brfalse.s IL_000c + IL_0000: ldc.i4.1 + IL_0001: brfalse.s IL_000b - IL_0004: call void [runtime]System.Console::WriteLine() - IL_0009: nop - IL_000a: br.s IL_0012 + IL_0003: call void [runtime]System.Console::WriteLine() + IL_0008: nop + IL_0009: br.s IL_0011 - IL_000c: call void [runtime]System.Console::WriteLine() - IL_0011: nop - IL_0012: ret + IL_000b: call void [runtime]System.Console::WriteLine() + IL_0010: nop + IL_0011: ret } } @@ -86,4 +85,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOff.OptimizeOff.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOff.OptimizeOff.il.net472.bsl index 7e20463bda6..433c9858f45 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOff.OptimizeOff.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOff.OptimizeOff.il.net472.bsl @@ -16,16 +16,6 @@ .hash algorithm 0x00008004 .ver 0:0:0:0 -} -.mresource public FSharpSignatureCompressedData.assembly -{ - - -} -.mresource public FSharpOptimizationCompressedData.assembly -{ - - } .module assembly.exe @@ -78,7 +68,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_0044 + IL_0006: leave.s IL_0042 } filter @@ -93,34 +83,32 @@ IL_0018: ldc.i4.1 IL_0019: nop - IL_001a: br.s IL_0020 + IL_001a: br.s IL_001e IL_001c: ldc.i4.0 IL_001d: nop - IL_001e: br.s IL_0020 - - IL_0020: endfilter + IL_001e: endfilter } { - IL_0022: castclass [runtime]System.Exception - IL_0027: stloc.2 - IL_0028: ldloc.2 - IL_0029: isinst [runtime]System.ArgumentException - IL_002e: stloc.3 - IL_002f: ldloc.3 - IL_0030: brfalse.s IL_0039 - - IL_0032: call void [runtime]System.Console::WriteLine() - IL_0037: leave.s IL_0044 - - IL_0039: rethrow - IL_003b: ldnull - IL_003c: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_0041: pop - IL_0042: leave.s IL_0044 + IL_0020: castclass [runtime]System.Exception + IL_0025: stloc.2 + IL_0026: ldloc.2 + IL_0027: isinst [runtime]System.ArgumentException + IL_002c: stloc.3 + IL_002d: ldloc.3 + IL_002e: brfalse.s IL_0037 + + IL_0030: call void [runtime]System.Console::WriteLine() + IL_0035: leave.s IL_0042 + + IL_0037: rethrow + IL_0039: ldnull + IL_003a: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_003f: pop + IL_0040: leave.s IL_0042 } - IL_0044: ret + IL_0042: ret } .method public static void test3() cil managed @@ -137,7 +125,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_0053 + IL_0006: leave.s IL_0051 } filter @@ -154,38 +142,36 @@ IL_0019: stloc.2 IL_001a: ldc.i4.1 IL_001b: nop - IL_001c: br.s IL_0022 + IL_001c: br.s IL_0020 IL_001e: ldc.i4.0 IL_001f: nop - IL_0020: br.s IL_0022 - - IL_0022: endfilter + IL_0020: endfilter } { - IL_0024: castclass [runtime]System.Exception - IL_0029: stloc.3 - IL_002a: ldloc.3 - IL_002b: isinst [runtime]System.ArgumentException - IL_0030: stloc.s V_4 - IL_0032: ldloc.s V_4 - IL_0034: brfalse.s IL_0048 - - IL_0036: ldloc.s V_4 - IL_0038: stloc.s V_5 - IL_003a: ldloc.s V_5 - IL_003c: callvirt instance string [runtime]System.Exception::get_Message() - IL_0041: call void [runtime]System.Console::WriteLine(string) - IL_0046: leave.s IL_0053 - - IL_0048: rethrow - IL_004a: ldnull - IL_004b: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_0050: pop - IL_0051: leave.s IL_0053 + IL_0022: castclass [runtime]System.Exception + IL_0027: stloc.3 + IL_0028: ldloc.3 + IL_0029: isinst [runtime]System.ArgumentException + IL_002e: stloc.s V_4 + IL_0030: ldloc.s V_4 + IL_0032: brfalse.s IL_0046 + + IL_0034: ldloc.s V_4 + IL_0036: stloc.s V_5 + IL_0038: ldloc.s V_5 + IL_003a: callvirt instance string [runtime]System.Exception::get_Message() + IL_003f: call void [runtime]System.Console::WriteLine(string) + IL_0044: leave.s IL_0051 + + IL_0046: rethrow + IL_0048: ldnull + IL_0049: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_004e: pop + IL_004f: leave.s IL_0051 } - IL_0053: ret + IL_0051: ret } .method public static void test4() cil managed @@ -202,7 +188,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_0061 + IL_0006: leave.s IL_005f } filter @@ -221,39 +207,37 @@ IL_0023: stloc.2 IL_0024: ldc.i4.1 IL_0025: nop - IL_0026: br.s IL_002c + IL_0026: br.s IL_002a IL_0028: ldc.i4.0 IL_0029: nop - IL_002a: br.s IL_002c - - IL_002c: endfilter + IL_002a: endfilter } { - IL_002e: castclass [runtime]System.Exception - IL_0033: stloc.3 - IL_0034: ldloc.3 - IL_0035: isinst [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException - IL_003a: stloc.s V_4 - IL_003c: ldloc.s V_4 - IL_003e: brfalse.s IL_0056 - - IL_0040: ldloc.3 - IL_0041: castclass [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException - IL_0046: call instance string [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException::get_Data0() - IL_004b: stloc.s V_5 - IL_004d: ldloc.s V_5 - IL_004f: call void [runtime]System.Console::WriteLine(string) - IL_0054: leave.s IL_0061 - - IL_0056: rethrow - IL_0058: ldnull - IL_0059: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_005e: pop - IL_005f: leave.s IL_0061 + IL_002c: castclass [runtime]System.Exception + IL_0031: stloc.3 + IL_0032: ldloc.3 + IL_0033: isinst [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException + IL_0038: stloc.s V_4 + IL_003a: ldloc.s V_4 + IL_003c: brfalse.s IL_0054 + + IL_003e: ldloc.3 + IL_003f: castclass [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException + IL_0044: call instance string [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException::get_Data0() + IL_0049: stloc.s V_5 + IL_004b: ldloc.s V_5 + IL_004d: call void [runtime]System.Console::WriteLine(string) + IL_0052: leave.s IL_005f + + IL_0054: rethrow + IL_0056: ldnull + IL_0057: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_005c: pop + IL_005d: leave.s IL_005f } - IL_0061: ret + IL_005f: ret } .method public static void test5() cil managed @@ -339,3 +323,4 @@ + diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOff.OptimizeOff.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOff.OptimizeOff.il.netcore.bsl index 4574156cbb7..1ce1ae80199 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOff.OptimizeOff.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOff.OptimizeOff.il.netcore.bsl @@ -69,7 +69,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_0044 + IL_0006: leave.s IL_0042 } filter @@ -84,34 +84,32 @@ IL_0018: ldc.i4.1 IL_0019: nop - IL_001a: br.s IL_0020 + IL_001a: br.s IL_001e IL_001c: ldc.i4.0 IL_001d: nop - IL_001e: br.s IL_0020 - - IL_0020: endfilter + IL_001e: endfilter } { - IL_0022: castclass [runtime]System.Exception - IL_0027: stloc.2 - IL_0028: ldloc.2 - IL_0029: isinst [runtime]System.ArgumentException - IL_002e: stloc.3 - IL_002f: ldloc.3 - IL_0030: brfalse.s IL_0039 - - IL_0032: call void [runtime]System.Console::WriteLine() - IL_0037: leave.s IL_0044 - - IL_0039: rethrow - IL_003b: ldnull - IL_003c: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_0041: pop - IL_0042: leave.s IL_0044 + IL_0020: castclass [runtime]System.Exception + IL_0025: stloc.2 + IL_0026: ldloc.2 + IL_0027: isinst [runtime]System.ArgumentException + IL_002c: stloc.3 + IL_002d: ldloc.3 + IL_002e: brfalse.s IL_0037 + + IL_0030: call void [runtime]System.Console::WriteLine() + IL_0035: leave.s IL_0042 + + IL_0037: rethrow + IL_0039: ldnull + IL_003a: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_003f: pop + IL_0040: leave.s IL_0042 } - IL_0044: ret + IL_0042: ret } .method public static void test3() cil managed @@ -128,7 +126,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_0053 + IL_0006: leave.s IL_0051 } filter @@ -145,38 +143,36 @@ IL_0019: stloc.2 IL_001a: ldc.i4.1 IL_001b: nop - IL_001c: br.s IL_0022 + IL_001c: br.s IL_0020 IL_001e: ldc.i4.0 IL_001f: nop - IL_0020: br.s IL_0022 - - IL_0022: endfilter + IL_0020: endfilter } { - IL_0024: castclass [runtime]System.Exception - IL_0029: stloc.3 - IL_002a: ldloc.3 - IL_002b: isinst [runtime]System.ArgumentException - IL_0030: stloc.s V_4 - IL_0032: ldloc.s V_4 - IL_0034: brfalse.s IL_0048 - - IL_0036: ldloc.s V_4 - IL_0038: stloc.s V_5 - IL_003a: ldloc.s V_5 - IL_003c: callvirt instance string [runtime]System.Exception::get_Message() - IL_0041: call void [runtime]System.Console::WriteLine(string) - IL_0046: leave.s IL_0053 - - IL_0048: rethrow - IL_004a: ldnull - IL_004b: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_0050: pop - IL_0051: leave.s IL_0053 + IL_0022: castclass [runtime]System.Exception + IL_0027: stloc.3 + IL_0028: ldloc.3 + IL_0029: isinst [runtime]System.ArgumentException + IL_002e: stloc.s V_4 + IL_0030: ldloc.s V_4 + IL_0032: brfalse.s IL_0046 + + IL_0034: ldloc.s V_4 + IL_0036: stloc.s V_5 + IL_0038: ldloc.s V_5 + IL_003a: callvirt instance string [runtime]System.Exception::get_Message() + IL_003f: call void [runtime]System.Console::WriteLine(string) + IL_0044: leave.s IL_0051 + + IL_0046: rethrow + IL_0048: ldnull + IL_0049: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_004e: pop + IL_004f: leave.s IL_0051 } - IL_0053: ret + IL_0051: ret } .method public static void test4() cil managed @@ -193,7 +189,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_0061 + IL_0006: leave.s IL_005f } filter @@ -212,39 +208,37 @@ IL_0023: stloc.2 IL_0024: ldc.i4.1 IL_0025: nop - IL_0026: br.s IL_002c + IL_0026: br.s IL_002a IL_0028: ldc.i4.0 IL_0029: nop - IL_002a: br.s IL_002c - - IL_002c: endfilter + IL_002a: endfilter } { - IL_002e: castclass [runtime]System.Exception - IL_0033: stloc.3 - IL_0034: ldloc.3 - IL_0035: isinst [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException - IL_003a: stloc.s V_4 - IL_003c: ldloc.s V_4 - IL_003e: brfalse.s IL_0056 - - IL_0040: ldloc.3 - IL_0041: castclass [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException - IL_0046: call instance string [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException::get_Data0() - IL_004b: stloc.s V_5 - IL_004d: ldloc.s V_5 - IL_004f: call void [runtime]System.Console::WriteLine(string) - IL_0054: leave.s IL_0061 - - IL_0056: rethrow - IL_0058: ldnull - IL_0059: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_005e: pop - IL_005f: leave.s IL_0061 + IL_002c: castclass [runtime]System.Exception + IL_0031: stloc.3 + IL_0032: ldloc.3 + IL_0033: isinst [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException + IL_0038: stloc.s V_4 + IL_003a: ldloc.s V_4 + IL_003c: brfalse.s IL_0054 + + IL_003e: ldloc.3 + IL_003f: castclass [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException + IL_0044: call instance string [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException::get_Data0() + IL_0049: stloc.s V_5 + IL_004b: ldloc.s V_5 + IL_004d: call void [runtime]System.Console::WriteLine(string) + IL_0052: leave.s IL_005f + + IL_0054: rethrow + IL_0056: ldnull + IL_0057: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_005c: pop + IL_005d: leave.s IL_005f } - IL_0061: ret + IL_005f: ret } .method public static void test5() cil managed @@ -330,4 +324,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOff.OptimizeOn.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOff.OptimizeOn.il.net472.bsl index 156dd7d35f3..c85c72152d8 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOff.OptimizeOn.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOff.OptimizeOn.il.net472.bsl @@ -67,7 +67,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_0044 + IL_0006: leave.s IL_0042 } filter @@ -82,34 +82,32 @@ IL_0018: ldc.i4.1 IL_0019: nop - IL_001a: br.s IL_0020 + IL_001a: br.s IL_001e IL_001c: ldc.i4.0 IL_001d: nop - IL_001e: br.s IL_0020 - - IL_0020: endfilter + IL_001e: endfilter } { - IL_0022: castclass [runtime]System.Exception - IL_0027: stloc.2 - IL_0028: ldloc.2 - IL_0029: isinst [runtime]System.ArgumentException - IL_002e: stloc.1 - IL_002f: ldloc.1 - IL_0030: brfalse.s IL_0039 - - IL_0032: call void [runtime]System.Console::WriteLine() - IL_0037: leave.s IL_0044 - - IL_0039: rethrow - IL_003b: ldnull - IL_003c: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_0041: pop - IL_0042: leave.s IL_0044 + IL_0020: castclass [runtime]System.Exception + IL_0025: stloc.2 + IL_0026: ldloc.2 + IL_0027: isinst [runtime]System.ArgumentException + IL_002c: stloc.1 + IL_002d: ldloc.1 + IL_002e: brfalse.s IL_0037 + + IL_0030: call void [runtime]System.Console::WriteLine() + IL_0035: leave.s IL_0042 + + IL_0037: rethrow + IL_0039: ldnull + IL_003a: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_003f: pop + IL_0040: leave.s IL_0042 } - IL_0044: ret + IL_0042: ret } .method public static void test3() cil managed @@ -124,7 +122,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_004e + IL_0006: leave.s IL_004c } filter @@ -141,38 +139,36 @@ IL_0019: stloc.2 IL_001a: ldc.i4.1 IL_001b: nop - IL_001c: br.s IL_0022 + IL_001c: br.s IL_0020 IL_001e: ldc.i4.0 IL_001f: nop - IL_0020: br.s IL_0022 - - IL_0022: endfilter + IL_0020: endfilter } { - IL_0024: castclass [runtime]System.Exception - IL_0029: stloc.3 - IL_002a: ldloc.3 - IL_002b: isinst [runtime]System.ArgumentException - IL_0030: stloc.1 - IL_0031: ldloc.1 - IL_0032: brfalse.s IL_0043 - - IL_0034: ldloc.1 - IL_0035: stloc.2 - IL_0036: ldloc.2 - IL_0037: callvirt instance string [runtime]System.Exception::get_Message() - IL_003c: call void [runtime]System.Console::WriteLine(string) - IL_0041: leave.s IL_004e - - IL_0043: rethrow - IL_0045: ldnull - IL_0046: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_004b: pop - IL_004c: leave.s IL_004e + IL_0022: castclass [runtime]System.Exception + IL_0027: stloc.3 + IL_0028: ldloc.3 + IL_0029: isinst [runtime]System.ArgumentException + IL_002e: stloc.1 + IL_002f: ldloc.1 + IL_0030: brfalse.s IL_0041 + + IL_0032: ldloc.1 + IL_0033: stloc.2 + IL_0034: ldloc.2 + IL_0035: callvirt instance string [runtime]System.Exception::get_Message() + IL_003a: call void [runtime]System.Console::WriteLine(string) + IL_003f: leave.s IL_004c + + IL_0041: rethrow + IL_0043: ldnull + IL_0044: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_0049: pop + IL_004a: leave.s IL_004c } - IL_004e: ret + IL_004c: ret } .method public static void test4() cil managed @@ -187,7 +183,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_005d + IL_0006: leave.s IL_005b } filter @@ -206,39 +202,37 @@ IL_0023: stloc.2 IL_0024: ldc.i4.1 IL_0025: nop - IL_0026: br.s IL_002c + IL_0026: br.s IL_002a IL_0028: ldc.i4.0 IL_0029: nop - IL_002a: br.s IL_002c - - IL_002c: endfilter + IL_002a: endfilter } { - IL_002e: castclass [runtime]System.Exception - IL_0033: stloc.3 - IL_0034: ldloc.3 - IL_0035: isinst [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException - IL_003a: stloc.1 - IL_003b: ldloc.1 - IL_003c: brfalse.s IL_0052 - - IL_003e: ldloc.3 - IL_003f: castclass [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException - IL_0044: call instance string [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException::get_Data0() - IL_0049: stloc.2 - IL_004a: ldloc.2 - IL_004b: call void [runtime]System.Console::WriteLine(string) - IL_0050: leave.s IL_005d - - IL_0052: rethrow - IL_0054: ldnull - IL_0055: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_005a: pop - IL_005b: leave.s IL_005d + IL_002c: castclass [runtime]System.Exception + IL_0031: stloc.3 + IL_0032: ldloc.3 + IL_0033: isinst [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException + IL_0038: stloc.1 + IL_0039: ldloc.1 + IL_003a: brfalse.s IL_0050 + + IL_003c: ldloc.3 + IL_003d: castclass [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException + IL_0042: call instance string [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException::get_Data0() + IL_0047: stloc.2 + IL_0048: ldloc.2 + IL_0049: call void [runtime]System.Console::WriteLine(string) + IL_004e: leave.s IL_005b + + IL_0050: rethrow + IL_0052: ldnull + IL_0053: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_0058: pop + IL_0059: leave.s IL_005b } - IL_005d: ret + IL_005b: ret } .method public static void test5() cil managed @@ -311,3 +305,4 @@ + diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOff.OptimizeOn.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOff.OptimizeOn.il.netcore.bsl index cca5e95095f..ddec5b43dee 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOff.OptimizeOn.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOff.OptimizeOn.il.netcore.bsl @@ -68,7 +68,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_0044 + IL_0006: leave.s IL_0042 } filter @@ -83,34 +83,32 @@ IL_0018: ldc.i4.1 IL_0019: nop - IL_001a: br.s IL_0020 + IL_001a: br.s IL_001e IL_001c: ldc.i4.0 IL_001d: nop - IL_001e: br.s IL_0020 - - IL_0020: endfilter + IL_001e: endfilter } { - IL_0022: castclass [runtime]System.Exception - IL_0027: stloc.2 - IL_0028: ldloc.2 - IL_0029: isinst [runtime]System.ArgumentException - IL_002e: stloc.1 - IL_002f: ldloc.1 - IL_0030: brfalse.s IL_0039 - - IL_0032: call void [runtime]System.Console::WriteLine() - IL_0037: leave.s IL_0044 - - IL_0039: rethrow - IL_003b: ldnull - IL_003c: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_0041: pop - IL_0042: leave.s IL_0044 + IL_0020: castclass [runtime]System.Exception + IL_0025: stloc.2 + IL_0026: ldloc.2 + IL_0027: isinst [runtime]System.ArgumentException + IL_002c: stloc.1 + IL_002d: ldloc.1 + IL_002e: brfalse.s IL_0037 + + IL_0030: call void [runtime]System.Console::WriteLine() + IL_0035: leave.s IL_0042 + + IL_0037: rethrow + IL_0039: ldnull + IL_003a: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_003f: pop + IL_0040: leave.s IL_0042 } - IL_0044: ret + IL_0042: ret } .method public static void test3() cil managed @@ -125,7 +123,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_004e + IL_0006: leave.s IL_004c } filter @@ -142,38 +140,36 @@ IL_0019: stloc.2 IL_001a: ldc.i4.1 IL_001b: nop - IL_001c: br.s IL_0022 + IL_001c: br.s IL_0020 IL_001e: ldc.i4.0 IL_001f: nop - IL_0020: br.s IL_0022 - - IL_0022: endfilter + IL_0020: endfilter } { - IL_0024: castclass [runtime]System.Exception - IL_0029: stloc.3 - IL_002a: ldloc.3 - IL_002b: isinst [runtime]System.ArgumentException - IL_0030: stloc.1 - IL_0031: ldloc.1 - IL_0032: brfalse.s IL_0043 - - IL_0034: ldloc.1 - IL_0035: stloc.2 - IL_0036: ldloc.2 - IL_0037: callvirt instance string [runtime]System.Exception::get_Message() - IL_003c: call void [runtime]System.Console::WriteLine(string) - IL_0041: leave.s IL_004e - - IL_0043: rethrow - IL_0045: ldnull - IL_0046: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_004b: pop - IL_004c: leave.s IL_004e + IL_0022: castclass [runtime]System.Exception + IL_0027: stloc.3 + IL_0028: ldloc.3 + IL_0029: isinst [runtime]System.ArgumentException + IL_002e: stloc.1 + IL_002f: ldloc.1 + IL_0030: brfalse.s IL_0041 + + IL_0032: ldloc.1 + IL_0033: stloc.2 + IL_0034: ldloc.2 + IL_0035: callvirt instance string [runtime]System.Exception::get_Message() + IL_003a: call void [runtime]System.Console::WriteLine(string) + IL_003f: leave.s IL_004c + + IL_0041: rethrow + IL_0043: ldnull + IL_0044: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_0049: pop + IL_004a: leave.s IL_004c } - IL_004e: ret + IL_004c: ret } .method public static void test4() cil managed @@ -188,7 +184,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_005d + IL_0006: leave.s IL_005b } filter @@ -207,39 +203,37 @@ IL_0023: stloc.2 IL_0024: ldc.i4.1 IL_0025: nop - IL_0026: br.s IL_002c + IL_0026: br.s IL_002a IL_0028: ldc.i4.0 IL_0029: nop - IL_002a: br.s IL_002c - - IL_002c: endfilter + IL_002a: endfilter } { - IL_002e: castclass [runtime]System.Exception - IL_0033: stloc.3 - IL_0034: ldloc.3 - IL_0035: isinst [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException - IL_003a: stloc.1 - IL_003b: ldloc.1 - IL_003c: brfalse.s IL_0052 - - IL_003e: ldloc.3 - IL_003f: castclass [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException - IL_0044: call instance string [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException::get_Data0() - IL_0049: stloc.2 - IL_004a: ldloc.2 - IL_004b: call void [runtime]System.Console::WriteLine(string) - IL_0050: leave.s IL_005d - - IL_0052: rethrow - IL_0054: ldnull - IL_0055: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_005a: pop - IL_005b: leave.s IL_005d + IL_002c: castclass [runtime]System.Exception + IL_0031: stloc.3 + IL_0032: ldloc.3 + IL_0033: isinst [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException + IL_0038: stloc.1 + IL_0039: ldloc.1 + IL_003a: brfalse.s IL_0050 + + IL_003c: ldloc.3 + IL_003d: castclass [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException + IL_0042: call instance string [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException::get_Data0() + IL_0047: stloc.2 + IL_0048: ldloc.2 + IL_0049: call void [runtime]System.Console::WriteLine(string) + IL_004e: leave.s IL_005b + + IL_0050: rethrow + IL_0052: ldnull + IL_0053: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_0058: pop + IL_0059: leave.s IL_005b } - IL_005d: ret + IL_005b: ret } .method public static void test5() cil managed @@ -312,4 +306,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOn.OptimizeOff.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOn.OptimizeOff.il.net472.bsl index 39189748dac..433c9858f45 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOn.OptimizeOff.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOn.OptimizeOff.il.net472.bsl @@ -68,7 +68,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_0044 + IL_0006: leave.s IL_0042 } filter @@ -83,34 +83,32 @@ IL_0018: ldc.i4.1 IL_0019: nop - IL_001a: br.s IL_0020 + IL_001a: br.s IL_001e IL_001c: ldc.i4.0 IL_001d: nop - IL_001e: br.s IL_0020 - - IL_0020: endfilter + IL_001e: endfilter } { - IL_0022: castclass [runtime]System.Exception - IL_0027: stloc.2 - IL_0028: ldloc.2 - IL_0029: isinst [runtime]System.ArgumentException - IL_002e: stloc.3 - IL_002f: ldloc.3 - IL_0030: brfalse.s IL_0039 - - IL_0032: call void [runtime]System.Console::WriteLine() - IL_0037: leave.s IL_0044 - - IL_0039: rethrow - IL_003b: ldnull - IL_003c: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_0041: pop - IL_0042: leave.s IL_0044 + IL_0020: castclass [runtime]System.Exception + IL_0025: stloc.2 + IL_0026: ldloc.2 + IL_0027: isinst [runtime]System.ArgumentException + IL_002c: stloc.3 + IL_002d: ldloc.3 + IL_002e: brfalse.s IL_0037 + + IL_0030: call void [runtime]System.Console::WriteLine() + IL_0035: leave.s IL_0042 + + IL_0037: rethrow + IL_0039: ldnull + IL_003a: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_003f: pop + IL_0040: leave.s IL_0042 } - IL_0044: ret + IL_0042: ret } .method public static void test3() cil managed @@ -127,7 +125,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_0053 + IL_0006: leave.s IL_0051 } filter @@ -144,38 +142,36 @@ IL_0019: stloc.2 IL_001a: ldc.i4.1 IL_001b: nop - IL_001c: br.s IL_0022 + IL_001c: br.s IL_0020 IL_001e: ldc.i4.0 IL_001f: nop - IL_0020: br.s IL_0022 - - IL_0022: endfilter + IL_0020: endfilter } { - IL_0024: castclass [runtime]System.Exception - IL_0029: stloc.3 - IL_002a: ldloc.3 - IL_002b: isinst [runtime]System.ArgumentException - IL_0030: stloc.s V_4 - IL_0032: ldloc.s V_4 - IL_0034: brfalse.s IL_0048 - - IL_0036: ldloc.s V_4 - IL_0038: stloc.s V_5 - IL_003a: ldloc.s V_5 - IL_003c: callvirt instance string [runtime]System.Exception::get_Message() - IL_0041: call void [runtime]System.Console::WriteLine(string) - IL_0046: leave.s IL_0053 - - IL_0048: rethrow - IL_004a: ldnull - IL_004b: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_0050: pop - IL_0051: leave.s IL_0053 + IL_0022: castclass [runtime]System.Exception + IL_0027: stloc.3 + IL_0028: ldloc.3 + IL_0029: isinst [runtime]System.ArgumentException + IL_002e: stloc.s V_4 + IL_0030: ldloc.s V_4 + IL_0032: brfalse.s IL_0046 + + IL_0034: ldloc.s V_4 + IL_0036: stloc.s V_5 + IL_0038: ldloc.s V_5 + IL_003a: callvirt instance string [runtime]System.Exception::get_Message() + IL_003f: call void [runtime]System.Console::WriteLine(string) + IL_0044: leave.s IL_0051 + + IL_0046: rethrow + IL_0048: ldnull + IL_0049: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_004e: pop + IL_004f: leave.s IL_0051 } - IL_0053: ret + IL_0051: ret } .method public static void test4() cil managed @@ -192,7 +188,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_0061 + IL_0006: leave.s IL_005f } filter @@ -211,39 +207,37 @@ IL_0023: stloc.2 IL_0024: ldc.i4.1 IL_0025: nop - IL_0026: br.s IL_002c + IL_0026: br.s IL_002a IL_0028: ldc.i4.0 IL_0029: nop - IL_002a: br.s IL_002c - - IL_002c: endfilter + IL_002a: endfilter } { - IL_002e: castclass [runtime]System.Exception - IL_0033: stloc.3 - IL_0034: ldloc.3 - IL_0035: isinst [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException - IL_003a: stloc.s V_4 - IL_003c: ldloc.s V_4 - IL_003e: brfalse.s IL_0056 - - IL_0040: ldloc.3 - IL_0041: castclass [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException - IL_0046: call instance string [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException::get_Data0() - IL_004b: stloc.s V_5 - IL_004d: ldloc.s V_5 - IL_004f: call void [runtime]System.Console::WriteLine(string) - IL_0054: leave.s IL_0061 - - IL_0056: rethrow - IL_0058: ldnull - IL_0059: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_005e: pop - IL_005f: leave.s IL_0061 + IL_002c: castclass [runtime]System.Exception + IL_0031: stloc.3 + IL_0032: ldloc.3 + IL_0033: isinst [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException + IL_0038: stloc.s V_4 + IL_003a: ldloc.s V_4 + IL_003c: brfalse.s IL_0054 + + IL_003e: ldloc.3 + IL_003f: castclass [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException + IL_0044: call instance string [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException::get_Data0() + IL_0049: stloc.s V_5 + IL_004b: ldloc.s V_5 + IL_004d: call void [runtime]System.Console::WriteLine(string) + IL_0052: leave.s IL_005f + + IL_0054: rethrow + IL_0056: ldnull + IL_0057: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_005c: pop + IL_005d: leave.s IL_005f } - IL_0061: ret + IL_005f: ret } .method public static void test5() cil managed @@ -329,3 +323,4 @@ + diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOn.OptimizeOff.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOn.OptimizeOff.il.netcore.bsl index 4574156cbb7..1ce1ae80199 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOn.OptimizeOff.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOn.OptimizeOff.il.netcore.bsl @@ -69,7 +69,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_0044 + IL_0006: leave.s IL_0042 } filter @@ -84,34 +84,32 @@ IL_0018: ldc.i4.1 IL_0019: nop - IL_001a: br.s IL_0020 + IL_001a: br.s IL_001e IL_001c: ldc.i4.0 IL_001d: nop - IL_001e: br.s IL_0020 - - IL_0020: endfilter + IL_001e: endfilter } { - IL_0022: castclass [runtime]System.Exception - IL_0027: stloc.2 - IL_0028: ldloc.2 - IL_0029: isinst [runtime]System.ArgumentException - IL_002e: stloc.3 - IL_002f: ldloc.3 - IL_0030: brfalse.s IL_0039 - - IL_0032: call void [runtime]System.Console::WriteLine() - IL_0037: leave.s IL_0044 - - IL_0039: rethrow - IL_003b: ldnull - IL_003c: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_0041: pop - IL_0042: leave.s IL_0044 + IL_0020: castclass [runtime]System.Exception + IL_0025: stloc.2 + IL_0026: ldloc.2 + IL_0027: isinst [runtime]System.ArgumentException + IL_002c: stloc.3 + IL_002d: ldloc.3 + IL_002e: brfalse.s IL_0037 + + IL_0030: call void [runtime]System.Console::WriteLine() + IL_0035: leave.s IL_0042 + + IL_0037: rethrow + IL_0039: ldnull + IL_003a: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_003f: pop + IL_0040: leave.s IL_0042 } - IL_0044: ret + IL_0042: ret } .method public static void test3() cil managed @@ -128,7 +126,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_0053 + IL_0006: leave.s IL_0051 } filter @@ -145,38 +143,36 @@ IL_0019: stloc.2 IL_001a: ldc.i4.1 IL_001b: nop - IL_001c: br.s IL_0022 + IL_001c: br.s IL_0020 IL_001e: ldc.i4.0 IL_001f: nop - IL_0020: br.s IL_0022 - - IL_0022: endfilter + IL_0020: endfilter } { - IL_0024: castclass [runtime]System.Exception - IL_0029: stloc.3 - IL_002a: ldloc.3 - IL_002b: isinst [runtime]System.ArgumentException - IL_0030: stloc.s V_4 - IL_0032: ldloc.s V_4 - IL_0034: brfalse.s IL_0048 - - IL_0036: ldloc.s V_4 - IL_0038: stloc.s V_5 - IL_003a: ldloc.s V_5 - IL_003c: callvirt instance string [runtime]System.Exception::get_Message() - IL_0041: call void [runtime]System.Console::WriteLine(string) - IL_0046: leave.s IL_0053 - - IL_0048: rethrow - IL_004a: ldnull - IL_004b: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_0050: pop - IL_0051: leave.s IL_0053 + IL_0022: castclass [runtime]System.Exception + IL_0027: stloc.3 + IL_0028: ldloc.3 + IL_0029: isinst [runtime]System.ArgumentException + IL_002e: stloc.s V_4 + IL_0030: ldloc.s V_4 + IL_0032: brfalse.s IL_0046 + + IL_0034: ldloc.s V_4 + IL_0036: stloc.s V_5 + IL_0038: ldloc.s V_5 + IL_003a: callvirt instance string [runtime]System.Exception::get_Message() + IL_003f: call void [runtime]System.Console::WriteLine(string) + IL_0044: leave.s IL_0051 + + IL_0046: rethrow + IL_0048: ldnull + IL_0049: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_004e: pop + IL_004f: leave.s IL_0051 } - IL_0053: ret + IL_0051: ret } .method public static void test4() cil managed @@ -193,7 +189,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_0061 + IL_0006: leave.s IL_005f } filter @@ -212,39 +208,37 @@ IL_0023: stloc.2 IL_0024: ldc.i4.1 IL_0025: nop - IL_0026: br.s IL_002c + IL_0026: br.s IL_002a IL_0028: ldc.i4.0 IL_0029: nop - IL_002a: br.s IL_002c - - IL_002c: endfilter + IL_002a: endfilter } { - IL_002e: castclass [runtime]System.Exception - IL_0033: stloc.3 - IL_0034: ldloc.3 - IL_0035: isinst [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException - IL_003a: stloc.s V_4 - IL_003c: ldloc.s V_4 - IL_003e: brfalse.s IL_0056 - - IL_0040: ldloc.3 - IL_0041: castclass [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException - IL_0046: call instance string [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException::get_Data0() - IL_004b: stloc.s V_5 - IL_004d: ldloc.s V_5 - IL_004f: call void [runtime]System.Console::WriteLine(string) - IL_0054: leave.s IL_0061 - - IL_0056: rethrow - IL_0058: ldnull - IL_0059: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_005e: pop - IL_005f: leave.s IL_0061 + IL_002c: castclass [runtime]System.Exception + IL_0031: stloc.3 + IL_0032: ldloc.3 + IL_0033: isinst [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException + IL_0038: stloc.s V_4 + IL_003a: ldloc.s V_4 + IL_003c: brfalse.s IL_0054 + + IL_003e: ldloc.3 + IL_003f: castclass [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException + IL_0044: call instance string [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException::get_Data0() + IL_0049: stloc.s V_5 + IL_004b: ldloc.s V_5 + IL_004d: call void [runtime]System.Console::WriteLine(string) + IL_0052: leave.s IL_005f + + IL_0054: rethrow + IL_0056: ldnull + IL_0057: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_005c: pop + IL_005d: leave.s IL_005f } - IL_0061: ret + IL_005f: ret } .method public static void test5() cil managed @@ -330,4 +324,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOn.OptimizeOn.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOn.OptimizeOn.il.net472.bsl index 156dd7d35f3..c85c72152d8 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOn.OptimizeOn.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOn.OptimizeOn.il.net472.bsl @@ -67,7 +67,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_0044 + IL_0006: leave.s IL_0042 } filter @@ -82,34 +82,32 @@ IL_0018: ldc.i4.1 IL_0019: nop - IL_001a: br.s IL_0020 + IL_001a: br.s IL_001e IL_001c: ldc.i4.0 IL_001d: nop - IL_001e: br.s IL_0020 - - IL_0020: endfilter + IL_001e: endfilter } { - IL_0022: castclass [runtime]System.Exception - IL_0027: stloc.2 - IL_0028: ldloc.2 - IL_0029: isinst [runtime]System.ArgumentException - IL_002e: stloc.1 - IL_002f: ldloc.1 - IL_0030: brfalse.s IL_0039 - - IL_0032: call void [runtime]System.Console::WriteLine() - IL_0037: leave.s IL_0044 - - IL_0039: rethrow - IL_003b: ldnull - IL_003c: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_0041: pop - IL_0042: leave.s IL_0044 + IL_0020: castclass [runtime]System.Exception + IL_0025: stloc.2 + IL_0026: ldloc.2 + IL_0027: isinst [runtime]System.ArgumentException + IL_002c: stloc.1 + IL_002d: ldloc.1 + IL_002e: brfalse.s IL_0037 + + IL_0030: call void [runtime]System.Console::WriteLine() + IL_0035: leave.s IL_0042 + + IL_0037: rethrow + IL_0039: ldnull + IL_003a: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_003f: pop + IL_0040: leave.s IL_0042 } - IL_0044: ret + IL_0042: ret } .method public static void test3() cil managed @@ -124,7 +122,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_004e + IL_0006: leave.s IL_004c } filter @@ -141,38 +139,36 @@ IL_0019: stloc.2 IL_001a: ldc.i4.1 IL_001b: nop - IL_001c: br.s IL_0022 + IL_001c: br.s IL_0020 IL_001e: ldc.i4.0 IL_001f: nop - IL_0020: br.s IL_0022 - - IL_0022: endfilter + IL_0020: endfilter } { - IL_0024: castclass [runtime]System.Exception - IL_0029: stloc.3 - IL_002a: ldloc.3 - IL_002b: isinst [runtime]System.ArgumentException - IL_0030: stloc.1 - IL_0031: ldloc.1 - IL_0032: brfalse.s IL_0043 - - IL_0034: ldloc.1 - IL_0035: stloc.2 - IL_0036: ldloc.2 - IL_0037: callvirt instance string [runtime]System.Exception::get_Message() - IL_003c: call void [runtime]System.Console::WriteLine(string) - IL_0041: leave.s IL_004e - - IL_0043: rethrow - IL_0045: ldnull - IL_0046: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_004b: pop - IL_004c: leave.s IL_004e + IL_0022: castclass [runtime]System.Exception + IL_0027: stloc.3 + IL_0028: ldloc.3 + IL_0029: isinst [runtime]System.ArgumentException + IL_002e: stloc.1 + IL_002f: ldloc.1 + IL_0030: brfalse.s IL_0041 + + IL_0032: ldloc.1 + IL_0033: stloc.2 + IL_0034: ldloc.2 + IL_0035: callvirt instance string [runtime]System.Exception::get_Message() + IL_003a: call void [runtime]System.Console::WriteLine(string) + IL_003f: leave.s IL_004c + + IL_0041: rethrow + IL_0043: ldnull + IL_0044: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_0049: pop + IL_004a: leave.s IL_004c } - IL_004e: ret + IL_004c: ret } .method public static void test4() cil managed @@ -187,7 +183,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_005d + IL_0006: leave.s IL_005b } filter @@ -206,39 +202,37 @@ IL_0023: stloc.2 IL_0024: ldc.i4.1 IL_0025: nop - IL_0026: br.s IL_002c + IL_0026: br.s IL_002a IL_0028: ldc.i4.0 IL_0029: nop - IL_002a: br.s IL_002c - - IL_002c: endfilter + IL_002a: endfilter } { - IL_002e: castclass [runtime]System.Exception - IL_0033: stloc.3 - IL_0034: ldloc.3 - IL_0035: isinst [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException - IL_003a: stloc.1 - IL_003b: ldloc.1 - IL_003c: brfalse.s IL_0052 - - IL_003e: ldloc.3 - IL_003f: castclass [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException - IL_0044: call instance string [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException::get_Data0() - IL_0049: stloc.2 - IL_004a: ldloc.2 - IL_004b: call void [runtime]System.Console::WriteLine(string) - IL_0050: leave.s IL_005d - - IL_0052: rethrow - IL_0054: ldnull - IL_0055: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_005a: pop - IL_005b: leave.s IL_005d + IL_002c: castclass [runtime]System.Exception + IL_0031: stloc.3 + IL_0032: ldloc.3 + IL_0033: isinst [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException + IL_0038: stloc.1 + IL_0039: ldloc.1 + IL_003a: brfalse.s IL_0050 + + IL_003c: ldloc.3 + IL_003d: castclass [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException + IL_0042: call instance string [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException::get_Data0() + IL_0047: stloc.2 + IL_0048: ldloc.2 + IL_0049: call void [runtime]System.Console::WriteLine(string) + IL_004e: leave.s IL_005b + + IL_0050: rethrow + IL_0052: ldnull + IL_0053: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_0058: pop + IL_0059: leave.s IL_005b } - IL_005d: ret + IL_005b: ret } .method public static void test5() cil managed @@ -311,3 +305,4 @@ + diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOn.OptimizeOn.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOn.OptimizeOn.il.netcore.bsl index cca5e95095f..ddec5b43dee 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOn.OptimizeOn.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction22h.fs.RealInternalSignatureOn.OptimizeOn.il.netcore.bsl @@ -68,7 +68,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_0044 + IL_0006: leave.s IL_0042 } filter @@ -83,34 +83,32 @@ IL_0018: ldc.i4.1 IL_0019: nop - IL_001a: br.s IL_0020 + IL_001a: br.s IL_001e IL_001c: ldc.i4.0 IL_001d: nop - IL_001e: br.s IL_0020 - - IL_0020: endfilter + IL_001e: endfilter } { - IL_0022: castclass [runtime]System.Exception - IL_0027: stloc.2 - IL_0028: ldloc.2 - IL_0029: isinst [runtime]System.ArgumentException - IL_002e: stloc.1 - IL_002f: ldloc.1 - IL_0030: brfalse.s IL_0039 - - IL_0032: call void [runtime]System.Console::WriteLine() - IL_0037: leave.s IL_0044 - - IL_0039: rethrow - IL_003b: ldnull - IL_003c: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_0041: pop - IL_0042: leave.s IL_0044 + IL_0020: castclass [runtime]System.Exception + IL_0025: stloc.2 + IL_0026: ldloc.2 + IL_0027: isinst [runtime]System.ArgumentException + IL_002c: stloc.1 + IL_002d: ldloc.1 + IL_002e: brfalse.s IL_0037 + + IL_0030: call void [runtime]System.Console::WriteLine() + IL_0035: leave.s IL_0042 + + IL_0037: rethrow + IL_0039: ldnull + IL_003a: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_003f: pop + IL_0040: leave.s IL_0042 } - IL_0044: ret + IL_0042: ret } .method public static void test3() cil managed @@ -125,7 +123,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_004e + IL_0006: leave.s IL_004c } filter @@ -142,38 +140,36 @@ IL_0019: stloc.2 IL_001a: ldc.i4.1 IL_001b: nop - IL_001c: br.s IL_0022 + IL_001c: br.s IL_0020 IL_001e: ldc.i4.0 IL_001f: nop - IL_0020: br.s IL_0022 - - IL_0022: endfilter + IL_0020: endfilter } { - IL_0024: castclass [runtime]System.Exception - IL_0029: stloc.3 - IL_002a: ldloc.3 - IL_002b: isinst [runtime]System.ArgumentException - IL_0030: stloc.1 - IL_0031: ldloc.1 - IL_0032: brfalse.s IL_0043 - - IL_0034: ldloc.1 - IL_0035: stloc.2 - IL_0036: ldloc.2 - IL_0037: callvirt instance string [runtime]System.Exception::get_Message() - IL_003c: call void [runtime]System.Console::WriteLine(string) - IL_0041: leave.s IL_004e - - IL_0043: rethrow - IL_0045: ldnull - IL_0046: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_004b: pop - IL_004c: leave.s IL_004e + IL_0022: castclass [runtime]System.Exception + IL_0027: stloc.3 + IL_0028: ldloc.3 + IL_0029: isinst [runtime]System.ArgumentException + IL_002e: stloc.1 + IL_002f: ldloc.1 + IL_0030: brfalse.s IL_0041 + + IL_0032: ldloc.1 + IL_0033: stloc.2 + IL_0034: ldloc.2 + IL_0035: callvirt instance string [runtime]System.Exception::get_Message() + IL_003a: call void [runtime]System.Console::WriteLine(string) + IL_003f: leave.s IL_004c + + IL_0041: rethrow + IL_0043: ldnull + IL_0044: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_0049: pop + IL_004a: leave.s IL_004c } - IL_004e: ret + IL_004c: ret } .method public static void test4() cil managed @@ -188,7 +184,7 @@ { IL_0000: nop IL_0001: call void [runtime]System.Console::WriteLine() - IL_0006: leave.s IL_005d + IL_0006: leave.s IL_005b } filter @@ -207,39 +203,37 @@ IL_0023: stloc.2 IL_0024: ldc.i4.1 IL_0025: nop - IL_0026: br.s IL_002c + IL_0026: br.s IL_002a IL_0028: ldc.i4.0 IL_0029: nop - IL_002a: br.s IL_002c - - IL_002c: endfilter + IL_002a: endfilter } { - IL_002e: castclass [runtime]System.Exception - IL_0033: stloc.3 - IL_0034: ldloc.3 - IL_0035: isinst [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException - IL_003a: stloc.1 - IL_003b: ldloc.1 - IL_003c: brfalse.s IL_0052 - - IL_003e: ldloc.3 - IL_003f: castclass [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException - IL_0044: call instance string [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException::get_Data0() - IL_0049: stloc.2 - IL_004a: ldloc.2 - IL_004b: call void [runtime]System.Console::WriteLine(string) - IL_0050: leave.s IL_005d - - IL_0052: rethrow - IL_0054: ldnull - IL_0055: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit - IL_005a: pop - IL_005b: leave.s IL_005d + IL_002c: castclass [runtime]System.Exception + IL_0031: stloc.3 + IL_0032: ldloc.3 + IL_0033: isinst [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException + IL_0038: stloc.1 + IL_0039: ldloc.1 + IL_003a: brfalse.s IL_0050 + + IL_003c: ldloc.3 + IL_003d: castclass [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException + IL_0042: call instance string [FSharp.Core]Microsoft.FSharp.Core.MatchFailureException::get_Data0() + IL_0047: stloc.2 + IL_0048: ldloc.2 + IL_0049: call void [runtime]System.Console::WriteLine(string) + IL_004e: leave.s IL_005b + + IL_0050: rethrow + IL_0052: ldnull + IL_0053: unbox.any [FSharp.Core]Microsoft.FSharp.Core.Unit + IL_0058: pop + IL_0059: leave.s IL_005b } - IL_005d: ret + IL_005b: ret } .method public static void test5() cil managed @@ -312,4 +306,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOff.OptimizeOff.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOff.OptimizeOff.il.netcore.bsl index 0f276c05f04..b3bc371b7c9 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOff.OptimizeOff.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOff.OptimizeOff.il.netcore.bsl @@ -757,46 +757,45 @@ int32 V_6) IL_0000: ldstr "Hello World" IL_0005: stloc.0 - IL_0006: nop - IL_0007: ldloc.0 - IL_0008: brfalse.s IL_0016 - - IL_000a: ldloc.0 - IL_000b: callvirt instance char& modreq([runtime]System.Runtime.InteropServices.InAttribute) [runtime]System.String::GetPinnableReference() - IL_0010: stloc.2 - IL_0011: ldloc.2 - IL_0012: conv.i - IL_0013: nop - IL_0014: br.s IL_0018 - - IL_0016: ldloc.0 - IL_0017: nop - IL_0018: stloc.1 - IL_0019: ldloc.1 - IL_001a: stloc.3 - IL_001b: ldc.i4.0 - IL_001c: stloc.s V_4 - IL_001e: ldloc.3 - 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, + IL_0006: ldloc.0 + IL_0007: brfalse.s IL_0015 + + IL_0009: ldloc.0 + IL_000a: callvirt instance char& modreq([runtime]System.Runtime.InteropServices.InAttribute) [runtime]System.String::GetPinnableReference() + IL_000f: stloc.2 + IL_0010: ldloc.2 + IL_0011: conv.i + IL_0012: nop + IL_0013: br.s IL_0017 + + IL_0015: ldloc.0 + IL_0016: nop + IL_0017: stloc.1 + IL_0018: ldloc.1 + IL_0019: stloc.3 + IL_001a: ldc.i4.0 + IL_001b: stloc.s V_4 + IL_001d: ldloc.3 + IL_001e: ldloc.s V_4 + IL_0020: conv.i + IL_0021: sizeof [runtime]System.Char + IL_0027: mul + IL_0028: add + IL_0029: ldobj [runtime]System.Char + IL_002e: ldloc.1 + IL_002f: stloc.s V_5 + IL_0031: ldc.i4.1 + IL_0032: stloc.s V_6 + IL_0034: ldloc.s V_5 + IL_0036: ldloc.s V_6 + IL_0038: conv.i + IL_0039: sizeof [runtime]System.Char + IL_003f: mul + IL_0040: add + IL_0041: ldobj [runtime]System.Char + IL_0046: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, !1) - IL_004c: ret + IL_004b: ret } } @@ -818,4 +817,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOff.OptimizeOn.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOff.OptimizeOn.il.net472.bsl index a87cc818438..38ef4628832 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOff.OptimizeOn.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOff.OptimizeOn.il.net472.bsl @@ -573,48 +573,47 @@ IL_0044: ldc.r8 5.9000000000000004 IL_004d: stelem.r8 IL_004e: stloc.0 - IL_004f: nop - IL_0050: ldloc.0 - IL_0051: brfalse.s IL_006d - - IL_0053: ldloc.0 - IL_0054: call int32 [FSharp.Core]Microsoft.FSharp.Collections.ArrayModule::Length(!!0[]) - IL_0059: brfalse.s IL_0068 - - IL_005b: ldloc.0 - IL_005c: ldc.i4.0 - IL_005d: ldelema [runtime]System.Double - IL_0062: stloc.2 - IL_0063: ldloc.2 - IL_0064: conv.i - IL_0065: nop - IL_0066: br.s IL_0070 - - IL_0068: ldc.i4.0 - IL_0069: conv.i - IL_006a: nop - IL_006b: br.s IL_0070 - - IL_006d: ldc.i4.0 - IL_006e: conv.i - IL_006f: nop - IL_0070: stloc.1 - IL_0071: ldloc.1 - IL_0072: ldc.i4.0 - IL_0073: conv.i - IL_0074: sizeof [runtime]System.Double - IL_007a: mul - IL_007b: add - IL_007c: ldobj [runtime]System.Double - IL_0081: ldloc.1 - IL_0082: ldc.i4.1 - IL_0083: conv.i - IL_0084: sizeof [runtime]System.Double - IL_008a: mul - IL_008b: add - IL_008c: ldobj [runtime]System.Double - IL_0091: add - IL_0092: ret + IL_004f: ldloc.0 + IL_0050: brfalse.s IL_006c + + IL_0052: ldloc.0 + IL_0053: call int32 [FSharp.Core]Microsoft.FSharp.Collections.ArrayModule::Length(!!0[]) + IL_0058: brfalse.s IL_0067 + + IL_005a: ldloc.0 + IL_005b: ldc.i4.0 + IL_005c: ldelema [runtime]System.Double + IL_0061: stloc.2 + IL_0062: ldloc.2 + IL_0063: conv.i + IL_0064: nop + IL_0065: br.s IL_006f + + IL_0067: ldc.i4.0 + IL_0068: conv.i + IL_0069: nop + IL_006a: br.s IL_006f + + IL_006c: ldc.i4.0 + IL_006d: conv.i + IL_006e: nop + IL_006f: stloc.1 + IL_0070: ldloc.1 + IL_0071: ldc.i4.0 + IL_0072: conv.i + IL_0073: sizeof [runtime]System.Double + IL_0079: mul + IL_007a: add + IL_007b: ldobj [runtime]System.Double + IL_0080: ldloc.1 + IL_0081: ldc.i4.1 + IL_0082: conv.i + IL_0083: sizeof [runtime]System.Double + IL_0089: mul + IL_008a: add + IL_008b: ldobj [runtime]System.Double + IL_0090: add + IL_0091: ret } .method public static float64 pinArray2() cil managed diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOff.OptimizeOn.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOff.OptimizeOn.il.netcore.bsl index b23ceae43d0..fcd1a6c1789 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOff.OptimizeOn.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOff.OptimizeOn.il.netcore.bsl @@ -573,48 +573,47 @@ IL_0044: ldc.r8 5.9000000000000004 IL_004d: stelem.r8 IL_004e: stloc.0 - IL_004f: nop - IL_0050: ldloc.0 - IL_0051: brfalse.s IL_006d - - IL_0053: ldloc.0 - IL_0054: call int32 [FSharp.Core]Microsoft.FSharp.Collections.ArrayModule::Length(!!0[]) - IL_0059: brfalse.s IL_0068 - - IL_005b: ldloc.0 - IL_005c: ldc.i4.0 - IL_005d: ldelema [runtime]System.Double - IL_0062: stloc.2 - IL_0063: ldloc.2 - IL_0064: conv.i - IL_0065: nop - IL_0066: br.s IL_0070 - - IL_0068: ldc.i4.0 - IL_0069: conv.i - IL_006a: nop - IL_006b: br.s IL_0070 - - IL_006d: ldc.i4.0 - IL_006e: conv.i - IL_006f: nop - IL_0070: stloc.1 - IL_0071: ldloc.1 - IL_0072: ldc.i4.0 - IL_0073: conv.i - IL_0074: sizeof [runtime]System.Double - IL_007a: mul - IL_007b: add - IL_007c: ldobj [runtime]System.Double - IL_0081: ldloc.1 - IL_0082: ldc.i4.1 - IL_0083: conv.i - IL_0084: sizeof [runtime]System.Double - IL_008a: mul - IL_008b: add - IL_008c: ldobj [runtime]System.Double - IL_0091: add - IL_0092: ret + IL_004f: ldloc.0 + IL_0050: brfalse.s IL_006c + + IL_0052: ldloc.0 + IL_0053: call int32 [FSharp.Core]Microsoft.FSharp.Collections.ArrayModule::Length(!!0[]) + IL_0058: brfalse.s IL_0067 + + IL_005a: ldloc.0 + IL_005b: ldc.i4.0 + IL_005c: ldelema [runtime]System.Double + IL_0061: stloc.2 + IL_0062: ldloc.2 + IL_0063: conv.i + IL_0064: nop + IL_0065: br.s IL_006f + + IL_0067: ldc.i4.0 + IL_0068: conv.i + IL_0069: nop + IL_006a: br.s IL_006f + + IL_006c: ldc.i4.0 + IL_006d: conv.i + IL_006e: nop + IL_006f: stloc.1 + IL_0070: ldloc.1 + IL_0071: ldc.i4.0 + IL_0072: conv.i + IL_0073: sizeof [runtime]System.Double + IL_0079: mul + IL_007a: add + IL_007b: ldobj [runtime]System.Double + IL_0080: ldloc.1 + IL_0081: ldc.i4.1 + IL_0082: conv.i + IL_0083: sizeof [runtime]System.Double + IL_0089: mul + IL_008a: add + IL_008b: ldobj [runtime]System.Double + IL_0090: add + IL_0091: ret } .method public static float64 pinArray2() cil managed @@ -727,4 +726,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOn.OptimizeOff.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOn.OptimizeOff.il.netcore.bsl index 0f276c05f04..b3bc371b7c9 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOn.OptimizeOff.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOn.OptimizeOff.il.netcore.bsl @@ -757,46 +757,45 @@ int32 V_6) IL_0000: ldstr "Hello World" IL_0005: stloc.0 - IL_0006: nop - IL_0007: ldloc.0 - IL_0008: brfalse.s IL_0016 - - IL_000a: ldloc.0 - IL_000b: callvirt instance char& modreq([runtime]System.Runtime.InteropServices.InAttribute) [runtime]System.String::GetPinnableReference() - IL_0010: stloc.2 - IL_0011: ldloc.2 - IL_0012: conv.i - IL_0013: nop - IL_0014: br.s IL_0018 - - IL_0016: ldloc.0 - IL_0017: nop - IL_0018: stloc.1 - IL_0019: ldloc.1 - IL_001a: stloc.3 - IL_001b: ldc.i4.0 - IL_001c: stloc.s V_4 - IL_001e: ldloc.3 - 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, + IL_0006: ldloc.0 + IL_0007: brfalse.s IL_0015 + + IL_0009: ldloc.0 + IL_000a: callvirt instance char& modreq([runtime]System.Runtime.InteropServices.InAttribute) [runtime]System.String::GetPinnableReference() + IL_000f: stloc.2 + IL_0010: ldloc.2 + IL_0011: conv.i + IL_0012: nop + IL_0013: br.s IL_0017 + + IL_0015: ldloc.0 + IL_0016: nop + IL_0017: stloc.1 + IL_0018: ldloc.1 + IL_0019: stloc.3 + IL_001a: ldc.i4.0 + IL_001b: stloc.s V_4 + IL_001d: ldloc.3 + IL_001e: ldloc.s V_4 + IL_0020: conv.i + IL_0021: sizeof [runtime]System.Char + IL_0027: mul + IL_0028: add + IL_0029: ldobj [runtime]System.Char + IL_002e: ldloc.1 + IL_002f: stloc.s V_5 + IL_0031: ldc.i4.1 + IL_0032: stloc.s V_6 + IL_0034: ldloc.s V_5 + IL_0036: ldloc.s V_6 + IL_0038: conv.i + IL_0039: sizeof [runtime]System.Char + IL_003f: mul + IL_0040: add + IL_0041: ldobj [runtime]System.Char + IL_0046: newobj instance void class [runtime]System.Tuple`2::.ctor(!0, !1) - IL_004c: ret + IL_004b: ret } } @@ -818,4 +817,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOn.OptimizeOn.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOn.OptimizeOn.il.net472.bsl index a87cc818438..38ef4628832 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOn.OptimizeOn.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOn.OptimizeOn.il.net472.bsl @@ -573,48 +573,47 @@ IL_0044: ldc.r8 5.9000000000000004 IL_004d: stelem.r8 IL_004e: stloc.0 - IL_004f: nop - IL_0050: ldloc.0 - IL_0051: brfalse.s IL_006d - - IL_0053: ldloc.0 - IL_0054: call int32 [FSharp.Core]Microsoft.FSharp.Collections.ArrayModule::Length(!!0[]) - IL_0059: brfalse.s IL_0068 - - IL_005b: ldloc.0 - IL_005c: ldc.i4.0 - IL_005d: ldelema [runtime]System.Double - IL_0062: stloc.2 - IL_0063: ldloc.2 - IL_0064: conv.i - IL_0065: nop - IL_0066: br.s IL_0070 - - IL_0068: ldc.i4.0 - IL_0069: conv.i - IL_006a: nop - IL_006b: br.s IL_0070 - - IL_006d: ldc.i4.0 - IL_006e: conv.i - IL_006f: nop - IL_0070: stloc.1 - IL_0071: ldloc.1 - IL_0072: ldc.i4.0 - IL_0073: conv.i - IL_0074: sizeof [runtime]System.Double - IL_007a: mul - IL_007b: add - IL_007c: ldobj [runtime]System.Double - IL_0081: ldloc.1 - IL_0082: ldc.i4.1 - IL_0083: conv.i - IL_0084: sizeof [runtime]System.Double - IL_008a: mul - IL_008b: add - IL_008c: ldobj [runtime]System.Double - IL_0091: add - IL_0092: ret + IL_004f: ldloc.0 + IL_0050: brfalse.s IL_006c + + IL_0052: ldloc.0 + IL_0053: call int32 [FSharp.Core]Microsoft.FSharp.Collections.ArrayModule::Length(!!0[]) + IL_0058: brfalse.s IL_0067 + + IL_005a: ldloc.0 + IL_005b: ldc.i4.0 + IL_005c: ldelema [runtime]System.Double + IL_0061: stloc.2 + IL_0062: ldloc.2 + IL_0063: conv.i + IL_0064: nop + IL_0065: br.s IL_006f + + IL_0067: ldc.i4.0 + IL_0068: conv.i + IL_0069: nop + IL_006a: br.s IL_006f + + IL_006c: ldc.i4.0 + IL_006d: conv.i + IL_006e: nop + IL_006f: stloc.1 + IL_0070: ldloc.1 + IL_0071: ldc.i4.0 + IL_0072: conv.i + IL_0073: sizeof [runtime]System.Double + IL_0079: mul + IL_007a: add + IL_007b: ldobj [runtime]System.Double + IL_0080: ldloc.1 + IL_0081: ldc.i4.1 + IL_0082: conv.i + IL_0083: sizeof [runtime]System.Double + IL_0089: mul + IL_008a: add + IL_008b: ldobj [runtime]System.Double + IL_0090: add + IL_0091: ret } .method public static float64 pinArray2() cil managed diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOn.OptimizeOn.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOn.OptimizeOn.il.netcore.bsl index b23ceae43d0..fcd1a6c1789 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOn.OptimizeOn.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/TestFunction24.fs.RealInternalSignatureOn.OptimizeOn.il.netcore.bsl @@ -573,48 +573,47 @@ IL_0044: ldc.r8 5.9000000000000004 IL_004d: stelem.r8 IL_004e: stloc.0 - IL_004f: nop - IL_0050: ldloc.0 - IL_0051: brfalse.s IL_006d - - IL_0053: ldloc.0 - IL_0054: call int32 [FSharp.Core]Microsoft.FSharp.Collections.ArrayModule::Length(!!0[]) - IL_0059: brfalse.s IL_0068 - - IL_005b: ldloc.0 - IL_005c: ldc.i4.0 - IL_005d: ldelema [runtime]System.Double - IL_0062: stloc.2 - IL_0063: ldloc.2 - IL_0064: conv.i - IL_0065: nop - IL_0066: br.s IL_0070 - - IL_0068: ldc.i4.0 - IL_0069: conv.i - IL_006a: nop - IL_006b: br.s IL_0070 - - IL_006d: ldc.i4.0 - IL_006e: conv.i - IL_006f: nop - IL_0070: stloc.1 - IL_0071: ldloc.1 - IL_0072: ldc.i4.0 - IL_0073: conv.i - IL_0074: sizeof [runtime]System.Double - IL_007a: mul - IL_007b: add - IL_007c: ldobj [runtime]System.Double - IL_0081: ldloc.1 - IL_0082: ldc.i4.1 - IL_0083: conv.i - IL_0084: sizeof [runtime]System.Double - IL_008a: mul - IL_008b: add - IL_008c: ldobj [runtime]System.Double - IL_0091: add - IL_0092: ret + IL_004f: ldloc.0 + IL_0050: brfalse.s IL_006c + + IL_0052: ldloc.0 + IL_0053: call int32 [FSharp.Core]Microsoft.FSharp.Collections.ArrayModule::Length(!!0[]) + IL_0058: brfalse.s IL_0067 + + IL_005a: ldloc.0 + IL_005b: ldc.i4.0 + IL_005c: ldelema [runtime]System.Double + IL_0061: stloc.2 + IL_0062: ldloc.2 + IL_0063: conv.i + IL_0064: nop + IL_0065: br.s IL_006f + + IL_0067: ldc.i4.0 + IL_0068: conv.i + IL_0069: nop + IL_006a: br.s IL_006f + + IL_006c: ldc.i4.0 + IL_006d: conv.i + IL_006e: nop + IL_006f: stloc.1 + IL_0070: ldloc.1 + IL_0071: ldc.i4.0 + IL_0072: conv.i + IL_0073: sizeof [runtime]System.Double + IL_0079: mul + IL_007a: add + IL_007b: ldobj [runtime]System.Double + IL_0080: ldloc.1 + IL_0081: ldc.i4.1 + IL_0082: conv.i + IL_0083: sizeof [runtime]System.Double + IL_0089: mul + IL_008a: add + IL_008b: ldobj [runtime]System.Double + IL_0090: add + IL_0091: ret } .method public static float64 pinArray2() cil managed @@ -727,4 +726,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043.fs.RealInternalSignatureOff.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043.fs.RealInternalSignatureOff.OptimizeOff.il.bsl index 77e3b4e8a43..a06abdf87bc 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043.fs.RealInternalSignatureOff.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043.fs.RealInternalSignatureOff.OptimizeOff.il.bsl @@ -148,22 +148,21 @@ IL_001b: ldloc.1 IL_001c: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() IL_0021: stloc.3 - IL_0022: nop - IL_0023: ldarg.0 - IL_0024: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 assembly/f@8::condition - IL_0029: ldloc.3 - IL_002a: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_002f: brfalse.s IL_0036 - - IL_0031: ldloc.2 - IL_0032: starg.s l - IL_0034: br.s IL_0000 - - IL_0036: ldloc.3 - IL_0037: ldloc.2 - IL_0038: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_0022: ldarg.0 + IL_0023: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 assembly/f@8::condition + IL_0028: ldloc.3 + IL_0029: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_002e: brfalse.s IL_0035 + + IL_0030: ldloc.2 + IL_0031: starg.s l + IL_0033: br.s IL_0000 + + IL_0035: ldloc.3 + IL_0036: ldloc.2 + IL_0037: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_003d: ret + IL_003c: ret } } @@ -213,22 +212,21 @@ IL_001b: ldloc.1 IL_001c: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() IL_0021: stloc.3 - IL_0022: nop - IL_0023: ldarg.0 - IL_0024: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 assembly/'f@27-1'::condition - IL_0029: ldloc.3 - IL_002a: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_002f: brfalse.s IL_0036 - - IL_0031: ldloc.2 - IL_0032: starg.s _arg1 - IL_0034: br.s IL_0000 - - IL_0036: ldloc.3 - IL_0037: ldloc.2 - IL_0038: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_0022: ldarg.0 + IL_0023: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 assembly/'f@27-1'::condition + IL_0028: ldloc.3 + IL_0029: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_002e: brfalse.s IL_0035 + + IL_0030: ldloc.2 + IL_0031: starg.s _arg1 + IL_0033: br.s IL_0000 + + IL_0035: ldloc.3 + IL_0036: ldloc.2 + IL_0037: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_003d: ret + IL_003c: ret } } @@ -388,4 +386,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043.fs.RealInternalSignatureOff.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043.fs.RealInternalSignatureOff.OptimizeOn.il.bsl index f6109dfd937..697704d4913 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043.fs.RealInternalSignatureOff.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043.fs.RealInternalSignatureOff.OptimizeOn.il.bsl @@ -197,41 +197,39 @@ .locals init (class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 V_0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 V_1, int32 V_2) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0007: brfalse.s IL_000b - - IL_0009: br.s IL_0011 - - IL_000b: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_Empty() - IL_0010: ret - - IL_0011: ldarg.1 - IL_0012: stloc.0 - IL_0013: ldloc.0 - IL_0014: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0019: stloc.1 - IL_001a: ldloc.0 - IL_001b: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0020: stloc.2 - IL_0021: nop - IL_0022: ldarg.0 - IL_0023: ldloc.2 - IL_0024: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_0029: brfalse.s IL_0033 - - IL_002b: ldarg.0 - IL_002c: ldloc.1 - IL_002d: starg.s l - IL_002f: starg.s condition - IL_0031: br.s IL_0000 - - IL_0033: ldloc.2 - IL_0034: ldloc.1 - IL_0035: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_0000: ldarg.1 + IL_0001: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0006: brfalse.s IL_000a + + IL_0008: br.s IL_0010 + + IL_000a: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_Empty() + IL_000f: ret + + IL_0010: ldarg.1 + IL_0011: stloc.0 + IL_0012: ldloc.0 + IL_0013: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0018: stloc.1 + IL_0019: ldloc.0 + IL_001a: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_001f: stloc.2 + IL_0020: ldarg.0 + IL_0021: ldloc.2 + IL_0022: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0027: brfalse.s IL_0031 + + IL_0029: ldarg.0 + IL_002a: ldloc.1 + IL_002b: starg.s l + IL_002d: starg.s condition + IL_002f: br.s IL_0000 + + IL_0031: ldloc.2 + IL_0032: ldloc.1 + IL_0033: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_003a: ret + IL_0038: ret } .method assembly static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 'f@26-1'(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 condition, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 _arg1) cil managed @@ -258,23 +256,22 @@ IL_0019: ldloc.0 IL_001a: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() IL_001f: stloc.2 - IL_0020: nop - IL_0021: ldarg.0 - IL_0022: ldloc.2 - IL_0023: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_0028: brfalse.s IL_0032 - - IL_002a: ldarg.0 - IL_002b: ldloc.1 - IL_002c: starg.s _arg1 - IL_002e: starg.s condition - IL_0030: br.s IL_0000 - - IL_0032: ldloc.2 - IL_0033: ldloc.1 - IL_0034: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_0020: ldarg.0 + IL_0021: ldloc.2 + IL_0022: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0027: brfalse.s IL_0031 + + IL_0029: ldarg.0 + IL_002a: ldloc.1 + IL_002b: starg.s _arg1 + IL_002d: starg.s condition + IL_002f: br.s IL_0000 + + IL_0031: ldloc.2 + IL_0032: ldloc.1 + IL_0033: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_0039: ret + IL_0038: ret } .property class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 @@ -381,4 +378,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043.fs.RealInternalSignatureOn.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043.fs.RealInternalSignatureOn.OptimizeOff.il.bsl index 77e3b4e8a43..a06abdf87bc 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043.fs.RealInternalSignatureOn.OptimizeOff.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043.fs.RealInternalSignatureOn.OptimizeOff.il.bsl @@ -148,22 +148,21 @@ IL_001b: ldloc.1 IL_001c: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() IL_0021: stloc.3 - IL_0022: nop - IL_0023: ldarg.0 - IL_0024: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 assembly/f@8::condition - IL_0029: ldloc.3 - IL_002a: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_002f: brfalse.s IL_0036 - - IL_0031: ldloc.2 - IL_0032: starg.s l - IL_0034: br.s IL_0000 - - IL_0036: ldloc.3 - IL_0037: ldloc.2 - IL_0038: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_0022: ldarg.0 + IL_0023: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 assembly/f@8::condition + IL_0028: ldloc.3 + IL_0029: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_002e: brfalse.s IL_0035 + + IL_0030: ldloc.2 + IL_0031: starg.s l + IL_0033: br.s IL_0000 + + IL_0035: ldloc.3 + IL_0036: ldloc.2 + IL_0037: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_003d: ret + IL_003c: ret } } @@ -213,22 +212,21 @@ IL_001b: ldloc.1 IL_001c: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() IL_0021: stloc.3 - IL_0022: nop - IL_0023: ldarg.0 - IL_0024: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 assembly/'f@27-1'::condition - IL_0029: ldloc.3 - IL_002a: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_002f: brfalse.s IL_0036 - - IL_0031: ldloc.2 - IL_0032: starg.s _arg1 - IL_0034: br.s IL_0000 - - IL_0036: ldloc.3 - IL_0037: ldloc.2 - IL_0038: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_0022: ldarg.0 + IL_0023: ldfld class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 assembly/'f@27-1'::condition + IL_0028: ldloc.3 + IL_0029: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_002e: brfalse.s IL_0035 + + IL_0030: ldloc.2 + IL_0031: starg.s _arg1 + IL_0033: br.s IL_0000 + + IL_0035: ldloc.3 + IL_0036: ldloc.2 + IL_0037: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_003d: ret + IL_003c: ret } } @@ -388,4 +386,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043.fs.RealInternalSignatureOn.OptimizeOn.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043.fs.RealInternalSignatureOn.OptimizeOn.il.bsl index f6109dfd937..697704d4913 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043.fs.RealInternalSignatureOn.OptimizeOn.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/TestFunctions/Verify13043.fs.RealInternalSignatureOn.OptimizeOn.il.bsl @@ -197,41 +197,39 @@ .locals init (class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 V_0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 V_1, int32 V_2) - IL_0000: nop - IL_0001: ldarg.1 - IL_0002: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0007: brfalse.s IL_000b - - IL_0009: br.s IL_0011 - - IL_000b: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_Empty() - IL_0010: ret - - IL_0011: ldarg.1 - IL_0012: stloc.0 - IL_0013: ldloc.0 - IL_0014: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() - IL_0019: stloc.1 - IL_001a: ldloc.0 - IL_001b: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() - IL_0020: stloc.2 - IL_0021: nop - IL_0022: ldarg.0 - IL_0023: ldloc.2 - IL_0024: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_0029: brfalse.s IL_0033 - - IL_002b: ldarg.0 - IL_002c: ldloc.1 - IL_002d: starg.s l - IL_002f: starg.s condition - IL_0031: br.s IL_0000 - - IL_0033: ldloc.2 - IL_0034: ldloc.1 - IL_0035: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_0000: ldarg.1 + IL_0001: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0006: brfalse.s IL_000a + + IL_0008: br.s IL_0010 + + IL_000a: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_Empty() + IL_000f: ret + + IL_0010: ldarg.1 + IL_0011: stloc.0 + IL_0012: ldloc.0 + IL_0013: call instance class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_TailOrNull() + IL_0018: stloc.1 + IL_0019: ldloc.0 + IL_001a: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() + IL_001f: stloc.2 + IL_0020: ldarg.0 + IL_0021: ldloc.2 + IL_0022: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0027: brfalse.s IL_0031 + + IL_0029: ldarg.0 + IL_002a: ldloc.1 + IL_002b: starg.s l + IL_002d: starg.s condition + IL_002f: br.s IL_0000 + + IL_0031: ldloc.2 + IL_0032: ldloc.1 + IL_0033: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_003a: ret + IL_0038: ret } .method assembly static class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 'f@26-1'(class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2 condition, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 _arg1) cil managed @@ -258,23 +256,22 @@ IL_0019: ldloc.0 IL_001a: call instance !0 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::get_HeadOrDefault() IL_001f: stloc.2 - IL_0020: nop - IL_0021: ldarg.0 - IL_0022: ldloc.2 - IL_0023: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) - IL_0028: brfalse.s IL_0032 - - IL_002a: ldarg.0 - IL_002b: ldloc.1 - IL_002c: starg.s _arg1 - IL_002e: starg.s condition - IL_0030: br.s IL_0000 - - IL_0032: ldloc.2 - IL_0033: ldloc.1 - IL_0034: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, + IL_0020: ldarg.0 + IL_0021: ldloc.2 + IL_0022: callvirt instance !1 class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2::Invoke(!0) + IL_0027: brfalse.s IL_0031 + + IL_0029: ldarg.0 + IL_002a: ldloc.1 + IL_002b: starg.s _arg1 + IL_002d: starg.s condition + IL_002f: br.s IL_0000 + + IL_0031: ldloc.2 + IL_0032: ldloc.1 + IL_0033: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1::Cons(!0, class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1) - IL_0039: ret + IL_0038: ret } .property class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1 @@ -381,4 +378,3 @@ - diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.OptimizeOn.il.net472.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.OptimizeOn.il.net472.bsl index 7db7a2d374a..e951f591da4 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.OptimizeOn.il.net472.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.OptimizeOn.il.net472.bsl @@ -16,16 +16,6 @@ .hash algorithm 0x00008004 .ver 0:0:0:0 -} -.mresource public FSharpSignatureCompressedData.assembly -{ - - -} -.mresource public FSharpOptimizationCompressedData.assembly -{ - - } .module assembly.exe @@ -47,8 +37,7 @@ extends [runtime]System.Object { .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) - .method public specialname rtspecialname - instance void .ctor() cil managed + .method public specialname rtspecialname instance void .ctor() cil managed { .maxstack 8 @@ -65,8 +54,7 @@ extends [runtime]System.Object { .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) - .method public specialname rtspecialname - instance void .ctor() cil managed + .method public specialname rtspecialname instance void .ctor() cil managed { .maxstack 8 @@ -77,9 +65,7 @@ IL_0008: ret } - .method public static class [runtime]System.Collections.Generic.List`1 - F(class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 x1, - class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 x2) cil managed + .method public static class [runtime]System.Collections.Generic.List`1 F(class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 x1, class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 x2) cil managed { .param [1] .custom instance void [FSharp.Core]Microsoft.FSharp.Core.OptionalArgumentAttribute::.ctor() = ( 01 00 00 00 ) @@ -93,83 +79,78 @@ class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_3, class assembly/A V_4) IL_0000: nop - IL_0001: nop - IL_0002: ldarg.0 - IL_0003: brfalse.s IL_0007 - - IL_0005: br.s IL_000b - - IL_0007: ldc.i4.0 - IL_0008: nop - IL_0009: br.s IL_000d - - IL_000b: ldc.i4.1 - IL_000c: nop - IL_000d: stloc.0 - IL_000e: nop - IL_000f: ldarg.1 - IL_0010: brfalse.s IL_0014 - - IL_0012: br.s IL_0018 - - IL_0014: ldloc.0 - IL_0015: nop - IL_0016: br.s IL_001c - - IL_0018: ldloc.0 - IL_0019: ldc.i4.1 - IL_001a: add - IL_001b: nop - IL_001c: stloc.1 - IL_001d: ldloc.1 - IL_001e: newobj instance void class [runtime]System.Collections.Generic.List`1::.ctor(int32) - IL_0023: stloc.2 - IL_0024: nop - IL_0025: ldarg.0 - IL_0026: brfalse.s IL_002a - - IL_0028: br.s IL_002e - - IL_002a: nop - IL_002b: nop - IL_002c: br.s IL_0041 - - IL_002e: ldarg.0 - IL_002f: stloc.3 - IL_0030: ldloc.3 - IL_0031: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() - IL_0036: stloc.s V_4 - IL_0038: ldloc.2 - IL_0039: ldloc.s V_4 - IL_003b: callvirt instance void class [runtime]System.Collections.Generic.List`1::Add(!0) - IL_0040: nop - IL_0041: nop - IL_0042: ldarg.1 - IL_0043: brfalse.s IL_0047 - - IL_0045: br.s IL_004b - - IL_0047: nop - IL_0048: nop - IL_0049: br.s IL_005e - - IL_004b: ldarg.1 - IL_004c: stloc.3 - IL_004d: ldloc.3 - IL_004e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() - IL_0053: stloc.s V_4 - IL_0055: ldloc.2 - IL_0056: ldloc.s V_4 - IL_0058: callvirt instance void class [runtime]System.Collections.Generic.List`1::Add(!0) - IL_005d: nop - IL_005e: ldloc.2 - IL_005f: ret + IL_0001: ldarg.0 + IL_0002: brfalse.s IL_0006 + + IL_0004: br.s IL_000a + + IL_0006: ldc.i4.0 + IL_0007: nop + IL_0008: br.s IL_000c + + IL_000a: ldc.i4.1 + IL_000b: nop + IL_000c: stloc.0 + IL_000d: ldarg.1 + IL_000e: brfalse.s IL_0012 + + IL_0010: br.s IL_0016 + + IL_0012: ldloc.0 + IL_0013: nop + IL_0014: br.s IL_001a + + IL_0016: ldloc.0 + IL_0017: ldc.i4.1 + IL_0018: add + IL_0019: nop + IL_001a: stloc.1 + IL_001b: ldloc.1 + IL_001c: newobj instance void class [runtime]System.Collections.Generic.List`1::.ctor(int32) + IL_0021: stloc.2 + IL_0022: ldarg.0 + IL_0023: brfalse.s IL_0027 + + IL_0025: br.s IL_002b + + IL_0027: nop + IL_0028: nop + IL_0029: br.s IL_003e + + IL_002b: ldarg.0 + IL_002c: stloc.3 + IL_002d: ldloc.3 + IL_002e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0033: stloc.s V_4 + IL_0035: ldloc.2 + IL_0036: ldloc.s V_4 + IL_0038: callvirt instance void class [runtime]System.Collections.Generic.List`1::Add(!0) + IL_003d: nop + IL_003e: ldarg.1 + IL_003f: brfalse.s IL_0043 + + IL_0041: br.s IL_0047 + + IL_0043: nop + IL_0044: nop + IL_0045: br.s IL_005a + + IL_0047: ldarg.1 + IL_0048: stloc.3 + IL_0049: ldloc.3 + IL_004a: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_004f: stloc.s V_4 + IL_0051: ldloc.2 + IL_0052: ldloc.s V_4 + IL_0054: callvirt instance void class [runtime]System.Collections.Generic.List`1::Add(!0) + IL_0059: nop + IL_005a: ldloc.2 + IL_005b: ret } } - .method public static class [runtime]System.Collections.Generic.List`1 - test() cil managed + .method public static class [runtime]System.Collections.Generic.List`1 test() cil managed { .maxstack 8 @@ -178,8 +159,7 @@ IL_0006: ret } - .method public static class [runtime]System.Collections.Generic.List`1 - test2() cil managed + .method public static class [runtime]System.Collections.Generic.List`1 test2() cil managed { .maxstack 4 @@ -197,8 +177,7 @@ IL_0015: ret } - .method public static class [runtime]System.Collections.Generic.List`1 - test3() cil managed + .method public static class [runtime]System.Collections.Generic.List`1 test3() cil managed { .maxstack 4 @@ -216,8 +195,7 @@ IL_0015: ret } - .method public static class [runtime]System.Collections.Generic.List`1 - test4() cil managed + .method public static class [runtime]System.Collections.Generic.List`1 test4() cil managed { .maxstack 4 diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.OptimizeOn.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.OptimizeOn.il.netcore.bsl index caa78fe92ed..7d88fab3960 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.OptimizeOn.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.OptimizeOn.il.netcore.bsl @@ -79,77 +79,73 @@ class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1 V_3, class assembly/A V_4) IL_0000: nop - IL_0001: nop - IL_0002: ldarg.0 - IL_0003: brfalse.s IL_0007 - - IL_0005: br.s IL_000b - - IL_0007: ldc.i4.0 - IL_0008: nop - IL_0009: br.s IL_000d - - IL_000b: ldc.i4.1 - IL_000c: nop - IL_000d: stloc.0 - IL_000e: nop - IL_000f: ldarg.1 - IL_0010: brfalse.s IL_0014 - - IL_0012: br.s IL_0018 - - IL_0014: ldloc.0 - IL_0015: nop - IL_0016: br.s IL_001c - - IL_0018: ldloc.0 - IL_0019: ldc.i4.1 - IL_001a: add - IL_001b: nop - IL_001c: stloc.1 - IL_001d: ldloc.1 - IL_001e: newobj instance void class [runtime]System.Collections.Generic.List`1::.ctor(int32) - IL_0023: stloc.2 - IL_0024: nop - IL_0025: ldarg.0 - IL_0026: brfalse.s IL_002a - - IL_0028: br.s IL_002e - - IL_002a: nop - IL_002b: nop - IL_002c: br.s IL_0041 - - IL_002e: ldarg.0 - IL_002f: stloc.3 - IL_0030: ldloc.3 - IL_0031: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() - IL_0036: stloc.s V_4 - IL_0038: ldloc.2 - IL_0039: ldloc.s V_4 - IL_003b: callvirt instance void class [runtime]System.Collections.Generic.List`1::Add(!0) - IL_0040: nop - IL_0041: nop - IL_0042: ldarg.1 - IL_0043: brfalse.s IL_0047 - - IL_0045: br.s IL_004b - - IL_0047: nop - IL_0048: nop - IL_0049: br.s IL_005e - - IL_004b: ldarg.1 - IL_004c: stloc.3 - IL_004d: ldloc.3 - IL_004e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() - IL_0053: stloc.s V_4 - IL_0055: ldloc.2 - IL_0056: ldloc.s V_4 - IL_0058: callvirt instance void class [runtime]System.Collections.Generic.List`1::Add(!0) - IL_005d: nop - IL_005e: ldloc.2 - IL_005f: ret + IL_0001: ldarg.0 + IL_0002: brfalse.s IL_0006 + + IL_0004: br.s IL_000a + + IL_0006: ldc.i4.0 + IL_0007: nop + IL_0008: br.s IL_000c + + IL_000a: ldc.i4.1 + IL_000b: nop + IL_000c: stloc.0 + IL_000d: ldarg.1 + IL_000e: brfalse.s IL_0012 + + IL_0010: br.s IL_0016 + + IL_0012: ldloc.0 + IL_0013: nop + IL_0014: br.s IL_001a + + IL_0016: ldloc.0 + IL_0017: ldc.i4.1 + IL_0018: add + IL_0019: nop + IL_001a: stloc.1 + IL_001b: ldloc.1 + IL_001c: newobj instance void class [runtime]System.Collections.Generic.List`1::.ctor(int32) + IL_0021: stloc.2 + IL_0022: ldarg.0 + IL_0023: brfalse.s IL_0027 + + IL_0025: br.s IL_002b + + IL_0027: nop + IL_0028: nop + IL_0029: br.s IL_003e + + IL_002b: ldarg.0 + IL_002c: stloc.3 + IL_002d: ldloc.3 + IL_002e: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_0033: stloc.s V_4 + IL_0035: ldloc.2 + IL_0036: ldloc.s V_4 + IL_0038: callvirt instance void class [runtime]System.Collections.Generic.List`1::Add(!0) + IL_003d: nop + IL_003e: ldarg.1 + IL_003f: brfalse.s IL_0043 + + IL_0041: br.s IL_0047 + + IL_0043: nop + IL_0044: nop + IL_0045: br.s IL_005a + + IL_0047: ldarg.1 + IL_0048: stloc.3 + IL_0049: ldloc.3 + IL_004a: call instance !0 class [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1::get_Value() + IL_004f: stloc.s V_4 + IL_0051: ldloc.2 + IL_0052: ldloc.s V_4 + IL_0054: callvirt instance void class [runtime]System.Collections.Generic.List`1::Add(!0) + IL_0059: nop + IL_005a: ldloc.2 + IL_005b: ret } } diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple01.fs.OptimizeOff.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple01.fs.OptimizeOff.il.bsl new file mode 100644 index 00000000000..59b47aeff0b --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple01.fs.OptimizeOff.il.bsl @@ -0,0 +1,77 @@ + + + + + +.assembly extern runtime { } +.assembly extern FSharp.Core { } +.assembly assembly +{ + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.FSharpInterfaceDataVersionAttribute::.ctor(int32, + int32, + int32) = ( 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ) + + + + + .hash algorithm 0x00008004 + .ver 0:0:0:0 +} +.module assembly.exe + +.imagebase {value} +.file alignment 0x00000200 +.stackreserve 0x00100000 +.subsystem 0x0003 +.corflags 0x00000001 + + + + + +.class public abstract auto ansi sealed assembly + 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 ) + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 ''.$assembly::init@ + IL_0006: ldsfld int32 ''.$assembly::init@ + IL_000b: pop + IL_000c: ret + } + + .method assembly static void staticInitialization@() cil managed + { + + .maxstack 8 + IL_0000: ret + } + +} + +.class private abstract auto ansi sealed ''.$assembly + extends [runtime]System.Object +{ + .field static assembly int32 init@ + .custom instance void [runtime]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [runtime]System.Diagnostics.DebuggerBrowsableState) = ( 01 00 00 00 00 00 00 00 ) + .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 ) + .method public static void main@() cil managed + { + .entrypoint + + .maxstack 8 + IL_0000: call void assembly::staticInitialization@() + IL_0005: ret + } + +} + + + + + diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple01.fs.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple01.fs.OptimizeOn.il.bsl similarity index 99% rename from tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple01.fs.il.bsl rename to tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple01.fs.OptimizeOn.il.bsl index d13107b7a6f..a55b6493f84 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple01.fs.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/Tuple01.fs.OptimizeOn.il.bsl @@ -52,4 +52,3 @@ - diff --git a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.bsl b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.bsl index 93f733ef373..eae525a3866 100644 --- a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.bsl +++ b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.bsl @@ -6132,9 +6132,11 @@ FSharp.Compiler.Syntax.DebugPointAtLeafExpr: Boolean Equals(FSharp.Compiler.Synt FSharp.Compiler.Syntax.DebugPointAtLeafExpr: Boolean Equals(FSharp.Compiler.Syntax.DebugPointAtLeafExpr, System.Collections.IEqualityComparer) FSharp.Compiler.Syntax.DebugPointAtLeafExpr: Boolean Equals(System.Object) FSharp.Compiler.Syntax.DebugPointAtLeafExpr: Boolean Equals(System.Object, System.Collections.IEqualityComparer) -FSharp.Compiler.Syntax.DebugPointAtLeafExpr: FSharp.Compiler.Syntax.DebugPointAtLeafExpr NewYes(FSharp.Compiler.Text.Range) -FSharp.Compiler.Syntax.DebugPointAtLeafExpr: FSharp.Compiler.Text.Range Item -FSharp.Compiler.Syntax.DebugPointAtLeafExpr: FSharp.Compiler.Text.Range get_Item() +FSharp.Compiler.Syntax.DebugPointAtLeafExpr: Boolean get_isHidden() +FSharp.Compiler.Syntax.DebugPointAtLeafExpr: Boolean isHidden +FSharp.Compiler.Syntax.DebugPointAtLeafExpr: FSharp.Compiler.Syntax.DebugPointAtLeafExpr NewYes(Boolean, FSharp.Compiler.Text.Range) +FSharp.Compiler.Syntax.DebugPointAtLeafExpr: FSharp.Compiler.Text.Range get_range() +FSharp.Compiler.Syntax.DebugPointAtLeafExpr: FSharp.Compiler.Text.Range range FSharp.Compiler.Syntax.DebugPointAtLeafExpr: Int32 GetHashCode() FSharp.Compiler.Syntax.DebugPointAtLeafExpr: Int32 GetHashCode(System.Collections.IEqualityComparer) FSharp.Compiler.Syntax.DebugPointAtLeafExpr: Int32 Tag diff --git a/tests/FSharp.Test.Utilities/Compiler.fs b/tests/FSharp.Test.Utilities/Compiler.fs index 86f760a3bee..8a0b08717cb 100644 --- a/tests/FSharp.Test.Utilities/Compiler.fs +++ b/tests/FSharp.Test.Utilities/Compiler.fs @@ -58,6 +58,7 @@ $ code --diff {outFile} {expectedFile} if FileSystem.FileExistsShim outFile then FileSystem.FileDeleteShim outFile | Some diff -> + Directory.CreateDirectory(Path.GetDirectoryName expectedFile) |> ignore if shouldUpdateBaselines then if FileSystem.FileExistsShim outFile then FileSystem.FileDeleteShim outFile @@ -1762,13 +1763,29 @@ $ code --diff {outFile} {expectedFile} | :? OpCode as op -> yield (int op.Value &&& 0xffff), op | _ -> () ] + let private declaringTypeName (mdReader: MetadataReader) (handle: EntityHandle) = + if handle.IsNil then "" + else + let row = MetadataTokens.GetRowNumber handle + match handle.Kind with + | HandleKind.TypeDefinition -> mdReader.GetString (mdReader.GetTypeDefinition(MetadataTokens.TypeDefinitionHandle row)).Name + | HandleKind.TypeReference -> mdReader.GetString (mdReader.GetTypeReference(MetadataTokens.TypeReferenceHandle row)).Name + | _ -> "" + let rec private tokenName (mdReader: MetadataReader) (token: int) = let handle = MetadataTokens.EntityHandle token let row = MetadataTokens.GetRowNumber handle + let qualify ty nm = if ty = "" then nm else ty + "::" + nm match handle.Kind with - | HandleKind.MethodDefinition -> mdReader.GetString (mdReader.GetMethodDefinition(MetadataTokens.MethodDefinitionHandle row)).Name - | HandleKind.MemberReference -> mdReader.GetString (mdReader.GetMemberReference(MetadataTokens.MemberReferenceHandle row)).Name - | HandleKind.FieldDefinition -> mdReader.GetString (mdReader.GetFieldDefinition(MetadataTokens.FieldDefinitionHandle row)).Name + | HandleKind.MethodDefinition -> + let md = mdReader.GetMethodDefinition(MetadataTokens.MethodDefinitionHandle row) + qualify (declaringTypeName mdReader (TypeDefinitionHandle.op_Implicit (md.GetDeclaringType()))) (mdReader.GetString md.Name) + | HandleKind.MemberReference -> + let mr = mdReader.GetMemberReference(MetadataTokens.MemberReferenceHandle row) + qualify (declaringTypeName mdReader mr.Parent) (mdReader.GetString mr.Name) + | HandleKind.FieldDefinition -> + let fd = mdReader.GetFieldDefinition(MetadataTokens.FieldDefinitionHandle row) + qualify (declaringTypeName mdReader (TypeDefinitionHandle.op_Implicit (fd.GetDeclaringType()))) (mdReader.GetString fd.Name) | HandleKind.TypeReference -> mdReader.GetString (mdReader.GetTypeReference(MetadataTokens.TypeReferenceHandle row)).Name | HandleKind.TypeDefinition -> mdReader.GetString (mdReader.GetTypeDefinition(MetadataTokens.TypeDefinitionHandle row)).Name | HandleKind.MethodSpecification -> tokenName mdReader (MetadataTokens.GetToken (mdReader.GetMethodSpecification(MetadataTokens.MethodSpecificationHandle row)).Method) @@ -1802,7 +1819,8 @@ $ code --diff {outFile} {expectedFile} yield offset, op.Name + text ] let private formatSequencePoints (source: string) (assemblyPath: string) (pdbReader: MetadataReader) = - let lines = source.Replace("\r\n", "\n").Replace("\r", "\n").Split('\n') + let normalizedSource = source.Replace("\r\n", "\n").Replace("\r", "\n") + let lines = normalizedSource.Split('\n') let textOf (sp: SequencePoint) = let sb = StringBuilder() @@ -1840,7 +1858,8 @@ $ code --diff {outFile} {expectedFile} if offset >= sp.Offset && offset < nextOffset then sb.AppendLine(sprintf " IL_%04x: %s" offset text) |> ignore sb.AppendLine() |> ignore) - sb.ToString().Trim() + "\n" + + normalizedSource.Trim() + "\n" + String.replicate 80 "-" + "\n\n" + sb.ToString().Trim() + "\n" let verifySequencePointsBaseline (source: string) (baselineFilePath: string) (result: CompilationResult) : CompilationResult = match result with diff --git a/tests/ILVerify/ilverify_FSharp.Compiler.Service_Debug_net10.0.bsl b/tests/ILVerify/ilverify_FSharp.Compiler.Service_Debug_net10.0.bsl index 51b95b60067..542c789e65c 100644 --- a/tests/ILVerify/ilverify_FSharp.Compiler.Service_Debug_net10.0.bsl +++ b/tests/ILVerify/ilverify_FSharp.Compiler.Service_Debug_net10.0.bsl @@ -7,5 +7,5 @@ [IL]: Error [ReturnPtrToStack]: : FSharp.Compiler.CodeAnalysis.ItemKeyStore::ReadKeyString([System.Reflection.Metadata]System.Reflection.Metadata.BlobReader&)][offset 0x00000026] Return type is ByRef, TypedReference, ArgHandle, or ArgIterator. [IL]: Error [ReturnPtrToStack]: : FSharp.Compiler.CodeAnalysis.ItemKeyStore::ReadFirstKeyString()][offset 0x00000070] Return type is ByRef, TypedReference, ArgHandle, or ArgIterator. [IL]: Error [StackUnexpected]: : FSharp.Compiler.CodeAnalysis.ItemKeyStoreBuilder::writeRange([FSharp.Compiler.Service]FSharp.Compiler.Text.Range)][offset 0x00000011][found address of '[FSharp.Compiler.Service]FSharp.Compiler.Text.Range'][expected Native Int] Unexpected type on the stack. -[IL]: Error [ExpectedNumericType]: : FSharp.Compiler.EditorServices.SemanticClassificationKeyStoreBuilder::WriteAll([FSharp.Compiler.Service]FSharp.Compiler.EditorServices.SemanticClassificationItem[])][offset 0x0000001D][found address of '[FSharp.Compiler.Service]FSharp.Compiler.EditorServices.SemanticClassificationItem'] Expected numeric type on the stack. +[IL]: Error [ExpectedNumericType]: : FSharp.Compiler.EditorServices.SemanticClassificationKeyStoreBuilder::WriteAll([FSharp.Compiler.Service]FSharp.Compiler.EditorServices.SemanticClassificationItem[])][offset 0x0000001C][found address of '[FSharp.Compiler.Service]FSharp.Compiler.EditorServices.SemanticClassificationItem'] Expected numeric type on the stack. [IL]: Error [UnmanagedPointer]: : FSharp.Compiler.Interactive.Shell+Utilities+pointerToNativeInt::Invoke(object)][offset 0x00000007] Unmanaged pointers are not a verifiable type. diff --git a/tests/ILVerify/ilverify_FSharp.Compiler.Service_Debug_netstandard2.0.bsl b/tests/ILVerify/ilverify_FSharp.Compiler.Service_Debug_netstandard2.0.bsl index 51b95b60067..542c789e65c 100644 --- a/tests/ILVerify/ilverify_FSharp.Compiler.Service_Debug_netstandard2.0.bsl +++ b/tests/ILVerify/ilverify_FSharp.Compiler.Service_Debug_netstandard2.0.bsl @@ -7,5 +7,5 @@ [IL]: Error [ReturnPtrToStack]: : FSharp.Compiler.CodeAnalysis.ItemKeyStore::ReadKeyString([System.Reflection.Metadata]System.Reflection.Metadata.BlobReader&)][offset 0x00000026] Return type is ByRef, TypedReference, ArgHandle, or ArgIterator. [IL]: Error [ReturnPtrToStack]: : FSharp.Compiler.CodeAnalysis.ItemKeyStore::ReadFirstKeyString()][offset 0x00000070] Return type is ByRef, TypedReference, ArgHandle, or ArgIterator. [IL]: Error [StackUnexpected]: : FSharp.Compiler.CodeAnalysis.ItemKeyStoreBuilder::writeRange([FSharp.Compiler.Service]FSharp.Compiler.Text.Range)][offset 0x00000011][found address of '[FSharp.Compiler.Service]FSharp.Compiler.Text.Range'][expected Native Int] Unexpected type on the stack. -[IL]: Error [ExpectedNumericType]: : FSharp.Compiler.EditorServices.SemanticClassificationKeyStoreBuilder::WriteAll([FSharp.Compiler.Service]FSharp.Compiler.EditorServices.SemanticClassificationItem[])][offset 0x0000001D][found address of '[FSharp.Compiler.Service]FSharp.Compiler.EditorServices.SemanticClassificationItem'] Expected numeric type on the stack. +[IL]: Error [ExpectedNumericType]: : FSharp.Compiler.EditorServices.SemanticClassificationKeyStoreBuilder::WriteAll([FSharp.Compiler.Service]FSharp.Compiler.EditorServices.SemanticClassificationItem[])][offset 0x0000001C][found address of '[FSharp.Compiler.Service]FSharp.Compiler.EditorServices.SemanticClassificationItem'] Expected numeric type on the stack. [IL]: Error [UnmanagedPointer]: : FSharp.Compiler.Interactive.Shell+Utilities+pointerToNativeInt::Invoke(object)][offset 0x00000007] Unmanaged pointers are not a verifiable type. diff --git a/tests/ILVerify/ilverify_FSharp.Compiler.Service_Release_net10.0.bsl b/tests/ILVerify/ilverify_FSharp.Compiler.Service_Release_net10.0.bsl index 17229b60667..75176d28029 100644 --- a/tests/ILVerify/ilverify_FSharp.Compiler.Service_Release_net10.0.bsl +++ b/tests/ILVerify/ilverify_FSharp.Compiler.Service_Release_net10.0.bsl @@ -7,6 +7,6 @@ [IL]: Error [ReturnPtrToStack]: : FSharp.Compiler.CodeAnalysis.ItemKeyStore::ReadKeyString([System.Reflection.Metadata]System.Reflection.Metadata.BlobReader&)][offset 0x00000023] Return type is ByRef, TypedReference, ArgHandle, or ArgIterator. [IL]: Error [ReturnPtrToStack]: : FSharp.Compiler.CodeAnalysis.ItemKeyStore::ReadFirstKeyString()][offset 0x00000064] Return type is ByRef, TypedReference, ArgHandle, or ArgIterator. [IL]: Error [StackUnexpected]: : FSharp.Compiler.CodeAnalysis.ItemKeyStoreBuilder::writeRange([FSharp.Compiler.Service]FSharp.Compiler.Text.Range)][offset 0x00000019][found address of '[FSharp.Compiler.Service]FSharp.Compiler.Text.Range'][expected Native Int] Unexpected type on the stack. -[IL]: Error [ExpectedNumericType]: : FSharp.Compiler.EditorServices.SemanticClassificationKeyStoreBuilder::WriteAll([FSharp.Compiler.Service]FSharp.Compiler.EditorServices.SemanticClassificationItem[])][offset 0x0000001C][found address of '[FSharp.Compiler.Service]FSharp.Compiler.EditorServices.SemanticClassificationItem'] Expected numeric type on the stack. +[IL]: Error [ExpectedNumericType]: : FSharp.Compiler.EditorServices.SemanticClassificationKeyStoreBuilder::WriteAll([FSharp.Compiler.Service]FSharp.Compiler.EditorServices.SemanticClassificationItem[])][offset 0x0000001A][found address of '[FSharp.Compiler.Service]FSharp.Compiler.EditorServices.SemanticClassificationItem'] Expected numeric type on the stack. [IL]: Error [StackUnexpected]: : FSharp.Compiler.IlxGen::HashRangeSorted([S.P.CoreLib]System.Collections.Generic.IDictionary`2>)][offset 0x0000000A][found ref '[FSharp.Compiler.Service]FSharp.Compiler.IlxGen+HashRangeSorted'][expected ref '[FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,int32>'] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : FSharp.Compiler.IlxGen::HashRangeSorted([S.P.CoreLib]System.Collections.Generic.IDictionary`2>)][offset 0x0000000B][found ref '[FSharp.Compiler.Service]FSharp.Compiler.IlxGen+HashRangeSorted'][expected ref '[FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,T0>'] Unexpected type on the stack. diff --git a/tests/ILVerify/ilverify_FSharp.Compiler.Service_Release_netstandard2.0.bsl b/tests/ILVerify/ilverify_FSharp.Compiler.Service_Release_netstandard2.0.bsl index 17229b60667..75176d28029 100644 --- a/tests/ILVerify/ilverify_FSharp.Compiler.Service_Release_netstandard2.0.bsl +++ b/tests/ILVerify/ilverify_FSharp.Compiler.Service_Release_netstandard2.0.bsl @@ -7,6 +7,6 @@ [IL]: Error [ReturnPtrToStack]: : FSharp.Compiler.CodeAnalysis.ItemKeyStore::ReadKeyString([System.Reflection.Metadata]System.Reflection.Metadata.BlobReader&)][offset 0x00000023] Return type is ByRef, TypedReference, ArgHandle, or ArgIterator. [IL]: Error [ReturnPtrToStack]: : FSharp.Compiler.CodeAnalysis.ItemKeyStore::ReadFirstKeyString()][offset 0x00000064] Return type is ByRef, TypedReference, ArgHandle, or ArgIterator. [IL]: Error [StackUnexpected]: : FSharp.Compiler.CodeAnalysis.ItemKeyStoreBuilder::writeRange([FSharp.Compiler.Service]FSharp.Compiler.Text.Range)][offset 0x00000019][found address of '[FSharp.Compiler.Service]FSharp.Compiler.Text.Range'][expected Native Int] Unexpected type on the stack. -[IL]: Error [ExpectedNumericType]: : FSharp.Compiler.EditorServices.SemanticClassificationKeyStoreBuilder::WriteAll([FSharp.Compiler.Service]FSharp.Compiler.EditorServices.SemanticClassificationItem[])][offset 0x0000001C][found address of '[FSharp.Compiler.Service]FSharp.Compiler.EditorServices.SemanticClassificationItem'] Expected numeric type on the stack. +[IL]: Error [ExpectedNumericType]: : FSharp.Compiler.EditorServices.SemanticClassificationKeyStoreBuilder::WriteAll([FSharp.Compiler.Service]FSharp.Compiler.EditorServices.SemanticClassificationItem[])][offset 0x0000001A][found address of '[FSharp.Compiler.Service]FSharp.Compiler.EditorServices.SemanticClassificationItem'] Expected numeric type on the stack. [IL]: Error [StackUnexpected]: : FSharp.Compiler.IlxGen::HashRangeSorted([S.P.CoreLib]System.Collections.Generic.IDictionary`2>)][offset 0x0000000A][found ref '[FSharp.Compiler.Service]FSharp.Compiler.IlxGen+HashRangeSorted'][expected ref '[FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,int32>'] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : FSharp.Compiler.IlxGen::HashRangeSorted([S.P.CoreLib]System.Collections.Generic.IDictionary`2>)][offset 0x0000000B][found ref '[FSharp.Compiler.Service]FSharp.Compiler.IlxGen+HashRangeSorted'][expected ref '[FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,T0>'] Unexpected type on the stack. diff --git a/tests/fsharp/Compiler/CodeGen/EmittedIL/ComplexShadowingFunction.debuginfo.expected b/tests/fsharp/Compiler/CodeGen/EmittedIL/ComplexShadowingFunction.debuginfo.expected index ab338199141..22d050540e6 100644 --- a/tests/fsharp/Compiler/CodeGen/EmittedIL/ComplexShadowingFunction.debuginfo.expected +++ b/tests/fsharp/Compiler/CodeGen/EmittedIL/ComplexShadowingFunction.debuginfo.expected @@ -14,54 +14,50 @@ METHODS Points: - Doc: 0 Offset:0 [5:5]-[5-15] - Doc: 0 Offset:2 [6:5]-[6-14] - - Doc: 0 Offset:3 [16707566:0]-[16707566-0] - - Doc: 0 Offset:6 [7:9]-[7-21] - - Doc: 0 Offset:16 [8:9]-[8-18] - - Doc: 0 Offset:17 [16707566:0]-[16707566-0] - - Doc: 0 Offset:20 [9:12]-[9-24] - - Doc: 0 Offset:26 [10:12]-[10-22] - - Doc: 0 Offset:28 [11:12]-[11-14] - - Doc: 0 Offset:30 [13:12]-[13-24] - - Doc: 0 Offset:37 [14:12]-[14-22] - - Doc: 0 Offset:40 [15:12]-[15-14] - - Doc: 0 Offset:43 [17:9]-[17-21] - - Doc: 0 Offset:54 [18:9]-[18-18] - - Doc: 0 Offset:55 [16707566:0]-[16707566-0] - - Doc: 0 Offset:58 [19:12]-[19-24] - - Doc: 0 Offset:65 [20:12]-[20-22] - - Doc: 0 Offset:68 [21:12]-[21-14] - - Doc: 0 Offset:71 [23:12]-[23-24] - - Doc: 0 Offset:78 [24:12]-[24-22] - - Doc: 0 Offset:81 [25:12]-[25-14] - - Doc: 0 Offset:84 [16707566:0]-[16707566-0] + - Doc: 0 Offset:5 [7:9]-[7-21] + - Doc: 0 Offset:15 [8:9]-[8-18] + - Doc: 0 Offset:18 [9:12]-[9-24] + - Doc: 0 Offset:24 [10:12]-[10-22] + - Doc: 0 Offset:26 [11:12]-[11-14] + - Doc: 0 Offset:28 [13:12]-[13-24] + - Doc: 0 Offset:35 [14:12]-[14-22] + - Doc: 0 Offset:38 [15:12]-[15-14] + - Doc: 0 Offset:41 [17:9]-[17-21] + - Doc: 0 Offset:52 [18:9]-[18-18] + - Doc: 0 Offset:55 [19:12]-[19-24] + - Doc: 0 Offset:62 [20:12]-[20-22] + - Doc: 0 Offset:65 [21:12]-[21-14] + - Doc: 0 Offset:68 [23:12]-[23-24] + - Doc: 0 Offset:75 [24:12]-[24-22] + - Doc: 0 Offset:78 [25:12]-[25-14] Scopes: - - [0-84] - - [1-15] + - [0-81] + - [1-14] Locals: ["0: v1"] - - [15-25] + - [14-23] Locals: ["0: v1"; "1: v2"] - - [25-27] + - [23-25] Locals: ["0: v1 (shadowed)"; "1: v2"; "2: v1"] - - [27-30] + - [25-28] Locals: ["1: v2 (shadowed)"; "0: v1 (shadowed)"; "2: v1"; "3: v2"] - - [30-35] + - [28-33] Locals: ["0: v1"; "1: v2"] - - [35-38] + - [33-36] Locals: ["0: v1 (shadowed)"; "1: v2"; "4: v1"] - - [38-43] + - [36-41] Locals: ["1: v2 (shadowed)"; "0: v1 (shadowed)"; "4: v1"; "5: v2"] - - [43-52] + - [41-50] Locals: ["0: v1"] - - [52-63] + - [50-60] Locals: ["0: v1"; "6: v2"] - - [63-66] + - [60-63] Locals: ["0: v1 (shadowed)"; "6: v2"; "7: v1"] - - [66-71] + - [63-68] Locals: ["6: v2 (shadowed)"; "0: v1 (shadowed)"; "7: v1"; "8: v2"] - - [71-76] + - [68-73] Locals: ["0: v1"; "6: v2"] - - [76-79] + - [73-76] Locals: ["0: v1 (shadowed)"; "6: v2"; "9: v1"] - - [79-84] + - [76-81] Locals: ["6: v2 (shadowed)"; "0: v1 (shadowed)"; "9: v1"; "10: v2"] diff --git a/tests/fsharp/Compiler/CodeGen/EmittedIL/Mutation.fs b/tests/fsharp/Compiler/CodeGen/EmittedIL/Mutation.fs index ed757eb5c7a..f32ce5eea17 100644 --- a/tests/fsharp/Compiler/CodeGen/EmittedIL/Mutation.fs +++ b/tests/fsharp/Compiler/CodeGen/EmittedIL/Mutation.fs @@ -253,67 +253,96 @@ type StaticC() = } """ """ - .class auto ansi serializable nested public StaticC - extends [runtime]System.Object - { - .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) - .field static assembly int32 x - .custom instance void [FSharp.Core]Microsoft.FSharp.Core.VolatileFieldAttribute::.ctor() = ( 01 00 00 00 ) - .field static assembly int32 init@10 - .method public specialname rtspecialname instance void .ctor() cil managed - { - - .maxstack 8 - IL_0000: ldarg.0 - IL_0001: callvirt instance void [runtime]System.Object::.ctor() - IL_0006: ldarg.0 - IL_0007: pop - IL_0008: ret - } - - .method public specialname static int32 get_X() cil managed + .class auto ansi serializable nested public StaticC + extends [runtime]System.Object { - - .maxstack 8 - IL_0000: nop - IL_0001: volatile. - IL_0003: ldsfld int32 Mutation05/StaticC::init@10 - IL_0008: ldc.i4.1 - IL_0009: bge.s IL_0014 - - IL_000b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() - IL_0010: nop - IL_0011: nop - IL_0012: br.s IL_0015 - - IL_0014: nop - IL_0015: volatile. - IL_0017: ldsfld int32 Mutation05/StaticC::x - IL_001c: ret + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .field static assembly int32 x + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.VolatileFieldAttribute::.ctor() = ( 01 00 00 00 ) + .field static assembly int32 init@10 + .method public specialname rtspecialname instance void .ctor() cil managed + { + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: callvirt instance void [runtime]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ret + } + + .method public specialname static int32 get_X() cil managed + { + + .maxstack 8 + IL_0000: volatile. + IL_0002: ldsfld int32 Mutation05/StaticC::init@10 + IL_0007: ldc.i4.1 + IL_0008: bge.s IL_0013 + + IL_000a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000f: nop + IL_0010: nop + IL_0011: br.s IL_0014 + + IL_0013: nop + IL_0014: volatile. + IL_0016: ldsfld int32 Mutation05/StaticC::x + IL_001b: ret + } + + .method public specialname static void set_X(int32 v) cil managed + { + + .maxstack 8 + IL_0000: volatile. + IL_0002: ldsfld int32 Mutation05/StaticC::init@10 + IL_0007: ldc.i4.1 + IL_0008: bge.s IL_0013 + + IL_000a: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() + IL_000f: nop + IL_0010: nop + IL_0011: br.s IL_0014 + + IL_0013: nop + IL_0014: ldarg.0 + IL_0015: volatile. + IL_0017: stsfld int32 Mutation05/StaticC::x + IL_001c: ret + } + + .method private specialname rtspecialname static void .cctor() cil managed + { + + .maxstack 8 + IL_0000: ldc.i4.0 + IL_0001: stsfld int32 ''.$Mutation05::init@ + IL_0006: ldsfld int32 ''.$Mutation05::init@ + IL_000b: pop + IL_000c: ret + } + + .method assembly static void staticInitialization@() cil managed + { + + .maxstack 8 + IL_0000: ldc.i4.1 + IL_0001: volatile. + IL_0003: stsfld int32 Mutation05/StaticC::x + IL_0008: ldc.i4.1 + IL_0009: volatile. + IL_000b: stsfld int32 Mutation05/StaticC::init@10 + IL_0010: ret + } + + .property int32 X() + { + .set void Mutation05/StaticC::set_X(int32) + .get int32 Mutation05/StaticC::get_X() + } } - - .method public specialname static void set_X(int32 v) cil managed - { - - .maxstack 8 - IL_0000: nop - IL_0001: volatile. - IL_0003: ldsfld int32 Mutation05/StaticC::init@10 - IL_0008: ldc.i4.1 - IL_0009: bge.s IL_0014 - - IL_000b: call void [FSharp.Core]Microsoft.FSharp.Core.LanguagePrimitives/IntrinsicFunctions::FailStaticInit() - IL_0010: nop - IL_0011: nop - IL_0012: br.s IL_0015 - - IL_0014: nop - IL_0015: ldarg.0 - IL_0016: volatile. - IL_0018: stsfld int32 Mutation05/StaticC::x - IL_001d: ret - } - + .method private specialname rtspecialname static void .cctor() cil managed { @@ -324,46 +353,15 @@ type StaticC() = IL_000b: pop IL_000c: ret } - + .method assembly static void staticInitialization@() cil managed { .maxstack 8 - IL_0000: ldc.i4.1 - IL_0001: volatile. - IL_0003: stsfld int32 Mutation05/StaticC::x - IL_0008: ldc.i4.1 - IL_0009: volatile. - IL_000b: stsfld int32 Mutation05/StaticC::init@10 - IL_0010: ret - } - - .property int32 X() - { - .set void Mutation05/StaticC::set_X(int32) - .get int32 Mutation05/StaticC::get_X() + IL_0000: call void Mutation05/StaticC::staticInitialization@() + IL_0005: ret } + } - - .method private specialname rtspecialname static void .cctor() cil managed - { - - .maxstack 8 - IL_0000: ldc.i4.0 - IL_0001: stsfld int32 ''.$Mutation05::init@ - IL_0006: ldsfld int32 ''.$Mutation05::init@ - IL_000b: pop - IL_000c: ret - } - - .method assembly static void staticInitialization@() cil managed - { - - .maxstack 8 - IL_0000: call void Mutation05/StaticC::staticInitialization@() - IL_0005: ret - } - -} """ ])) diff --git a/tests/fsharp/Compiler/CodeGen/EmittedIL/TaskGeneratedCode.fs b/tests/fsharp/Compiler/CodeGen/EmittedIL/TaskGeneratedCode.fs index 04c97034dbf..e9547822655 100644 --- a/tests/fsharp/Compiler/CodeGen/EmittedIL/TaskGeneratedCode.fs +++ b/tests/fsharp/Compiler/CodeGen/EmittedIL/TaskGeneratedCode.fs @@ -198,174 +198,169 @@ let testTask(t: Task) = task { let! res = t in return res+1 } """, (fun verifier -> verifier.VerifyIL [ """ - .method public strict virtual instance void - MoveNext() cil managed + .method public strict virtual instance void MoveNext() cil managed + { + .override [runtime]System.Runtime.CompilerServices.IAsyncStateMachine::MoveNext + + .maxstack 5 + .locals init (int32 V_0, + class [runtime]System.Exception V_1, + bool V_2, + class [runtime]System.Threading.Tasks.Task`1 V_3, + bool V_4, + bool V_5, + int32 V_6, + int32 V_7, + int32 V_8, + int32 V_9, + valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 V_10, + class [runtime]System.Exception V_11, + class [runtime]System.Exception V_12) + IL_0000: ldarg.0 + IL_0001: ldfld int32 Test/testTask@4::ResumptionPoint + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.1 + IL_0009: sub + IL_000a: switch ( + IL_0015) + IL_0013: br.s IL_0018 + + IL_0015: nop + IL_0016: br.s IL_0019 + + IL_0018: nop + .try { - .override [runtime]System.Runtime.CompilerServices.IAsyncStateMachine::MoveNext - - .maxstack 5 - .locals init (int32 V_0, - class [runtime]System.Exception V_1, - bool V_2, - class [runtime]System.Threading.Tasks.Task`1 V_3, - bool V_4, - bool V_5, - int32 V_6, - int32 V_7, - int32 V_8, - int32 V_9, - valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 V_10, - class [runtime]System.Exception V_11, - class [runtime]System.Exception V_12) - IL_0000: ldarg.0 - IL_0001: ldfld int32 Test/testTask@4::ResumptionPoint - IL_0006: stloc.0 - IL_0007: ldloc.0 - IL_0008: ldc.i4.1 - IL_0009: sub - IL_000a: switch ( - IL_0015) - IL_0013: br.s IL_0018 - - IL_0015: nop - IL_0016: br.s IL_001b - - IL_0018: nop - IL_0019: br.s IL_001b - - .try - { - IL_001b: ldloc.0 - IL_001c: ldc.i4.1 - IL_001d: sub - IL_001e: switch ( - IL_0029) - IL_0027: br.s IL_002c - - IL_0029: nop - IL_002a: br.s IL_0057 - - IL_002c: nop - IL_002d: br.s IL_002f - - IL_002f: ldarg.0 - IL_0030: ldfld class [runtime]System.Threading.Tasks.Task`1 Test/testTask@4::t - IL_0035: stloc.3 - IL_0036: ldarg.0 - IL_0037: ldloc.3 - IL_0038: callvirt instance valuetype [netstandard]System.Runtime.CompilerServices.TaskAwaiter`1 class [netstandard]System.Threading.Tasks.Task`1::GetAwaiter() - IL_003d: stfld valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 Test/testTask@4::awaiter - IL_0042: ldc.i4.1 - IL_0043: stloc.s V_4 - IL_0045: ldarg.0 - IL_0046: ldflda valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 Test/testTask@4::awaiter - IL_004b: call instance bool valuetype [netstandard]System.Runtime.CompilerServices.TaskAwaiter`1::get_IsCompleted() - IL_0050: brfalse.s IL_0054 - - IL_0052: br.s IL_006d - - IL_0054: ldc.i4.0 - IL_0055: brfalse.s IL_005b - - IL_0057: ldc.i4.1 - IL_0058: nop - IL_0059: br.s IL_0064 - - IL_005b: ldarg.0 - IL_005c: ldc.i4.1 - IL_005d: stfld int32 Test/testTask@4::ResumptionPoint - IL_0062: ldc.i4.0 - IL_0063: nop - IL_0064: stloc.s V_5 - IL_0066: ldloc.s V_5 - IL_0068: stloc.s V_4 - IL_006a: nop - IL_006b: br.s IL_006e - - IL_006d: nop - IL_006e: ldloc.s V_4 - IL_0070: brfalse.s IL_009e - - IL_0072: ldarg.0 - IL_0073: ldflda valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 Test/testTask@4::awaiter - IL_0078: call instance !0 valuetype [netstandard]System.Runtime.CompilerServices.TaskAwaiter`1::GetResult() - IL_007d: stloc.s V_6 - IL_007f: ldloc.s V_6 - IL_0081: stloc.s V_7 - IL_0083: ldloc.s V_7 - IL_0085: stloc.s V_8 - IL_0087: ldloc.s V_8 - IL_0089: ldc.i4.1 - IL_008a: add - IL_008b: stloc.s V_9 - IL_008d: ldarg.0 - IL_008e: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 Test/testTask@4::Data - IL_0093: ldloc.s V_9 - IL_0095: stfld !0 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::Result - IL_009a: ldc.i4.1 - IL_009b: nop - IL_009c: br.s IL_00b7 - - IL_009e: ldarg.0 - IL_009f: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 Test/testTask@4::Data - IL_00a4: ldflda valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder - IL_00a9: ldarg.0 - IL_00aa: ldflda valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 Test/testTask@4::awaiter - IL_00af: ldarg.0 - IL_00b0: call instance void valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::AwaitUnsafeOnCompleted,valuetype Test/testTask@4>(!!0&, - !!1&) - IL_00b5: ldc.i4.0 - IL_00b6: nop - IL_00b7: brfalse.s IL_00c5 - - IL_00b9: ldarg.0 - IL_00ba: ldloc.s V_10 - IL_00bc: stfld valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 Test/testTask@4::awaiter - IL_00c1: ldc.i4.1 - IL_00c2: nop - IL_00c3: br.s IL_00c7 - - IL_00c5: ldc.i4.0 - IL_00c6: nop - IL_00c7: stloc.2 - IL_00c8: ldloc.2 - IL_00c9: brfalse.s IL_00e8 - - IL_00cb: ldarg.0 - IL_00cc: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 Test/testTask@4::Data - IL_00d1: ldflda valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder - IL_00d6: ldarg.0 - IL_00d7: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 Test/testTask@4::Data - IL_00dc: ldfld !0 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::Result - IL_00e1: call instance void valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::SetResult(!0) - IL_00e6: leave.s IL_00f6 - - IL_00e8: leave.s IL_00f6 - - } - catch [runtime]System.Object - { - IL_00ea: castclass [runtime]System.Exception - IL_00ef: stloc.s V_11 - IL_00f1: ldloc.s V_11 - IL_00f3: stloc.1 - IL_00f4: leave.s IL_00f6 - - } - IL_00f6: ldloc.1 - IL_00f7: stloc.s V_12 - IL_00f9: ldloc.s V_12 - IL_00fb: brtrue.s IL_00fe - - IL_00fd: ret - - IL_00fe: ldarg.0 - IL_00ff: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 Test/testTask@4::Data - IL_0104: ldflda valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder - IL_0109: ldloc.s V_12 - IL_010b: call instance void valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::SetException(class [netstandard]System.Exception) - IL_0110: ret - } + IL_0019: ldloc.0 + IL_001a: ldc.i4.1 + IL_001b: sub + IL_001c: switch ( + IL_0027) + IL_0025: br.s IL_002a + + IL_0027: nop + IL_0028: br.s IL_0053 + + IL_002a: nop + IL_002b: ldarg.0 + IL_002c: ldfld class [runtime]System.Threading.Tasks.Task`1 Test/testTask@4::t + IL_0031: stloc.3 + IL_0032: ldarg.0 + IL_0033: ldloc.3 + IL_0034: callvirt instance valuetype [netstandard]System.Runtime.CompilerServices.TaskAwaiter`1 class [netstandard]System.Threading.Tasks.Task`1::GetAwaiter() + IL_0039: stfld valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 Test/testTask@4::awaiter + IL_003e: ldc.i4.1 + IL_003f: stloc.s V_4 + IL_0041: ldarg.0 + IL_0042: ldflda valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 Test/testTask@4::awaiter + IL_0047: call instance bool valuetype [netstandard]System.Runtime.CompilerServices.TaskAwaiter`1::get_IsCompleted() + IL_004c: brfalse.s IL_0050 + + IL_004e: br.s IL_0069 + + IL_0050: ldc.i4.0 + IL_0051: brfalse.s IL_0057 + + IL_0053: ldc.i4.1 + IL_0054: nop + IL_0055: br.s IL_0060 + + IL_0057: ldarg.0 + IL_0058: ldc.i4.1 + IL_0059: stfld int32 Test/testTask@4::ResumptionPoint + IL_005e: ldc.i4.0 + IL_005f: nop + IL_0060: stloc.s V_5 + IL_0062: ldloc.s V_5 + IL_0064: stloc.s V_4 + IL_0066: nop + IL_0067: br.s IL_006a + + IL_0069: nop + IL_006a: ldloc.s V_4 + IL_006c: brfalse.s IL_009a + + IL_006e: ldarg.0 + IL_006f: ldflda valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 Test/testTask@4::awaiter + IL_0074: call instance !0 valuetype [netstandard]System.Runtime.CompilerServices.TaskAwaiter`1::GetResult() + IL_0079: stloc.s V_6 + IL_007b: ldloc.s V_6 + IL_007d: stloc.s V_7 + IL_007f: ldloc.s V_7 + IL_0081: stloc.s V_8 + IL_0083: ldloc.s V_8 + IL_0085: ldc.i4.1 + IL_0086: add + IL_0087: stloc.s V_9 + IL_0089: ldarg.0 + IL_008a: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 Test/testTask@4::Data + IL_008f: ldloc.s V_9 + IL_0091: stfld !0 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::Result + IL_0096: ldc.i4.1 + IL_0097: nop + IL_0098: br.s IL_00b3 + + IL_009a: ldarg.0 + IL_009b: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 Test/testTask@4::Data + IL_00a0: ldflda valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder + IL_00a5: ldarg.0 + IL_00a6: ldflda valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 Test/testTask@4::awaiter + IL_00ab: ldarg.0 + IL_00ac: call instance void valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::AwaitUnsafeOnCompleted,valuetype Test/testTask@4>(!!0&, + !!1&) + IL_00b1: ldc.i4.0 + IL_00b2: nop + IL_00b3: brfalse.s IL_00c1 + + IL_00b5: ldarg.0 + IL_00b6: ldloc.s V_10 + IL_00b8: stfld valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 Test/testTask@4::awaiter + IL_00bd: ldc.i4.1 + IL_00be: nop + IL_00bf: br.s IL_00c3 + + IL_00c1: ldc.i4.0 + IL_00c2: nop + IL_00c3: stloc.2 + IL_00c4: ldloc.2 + IL_00c5: brfalse.s IL_00e4 + + IL_00c7: ldarg.0 + IL_00c8: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 Test/testTask@4::Data + IL_00cd: ldflda valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder + IL_00d2: ldarg.0 + IL_00d3: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 Test/testTask@4::Data + IL_00d8: ldfld !0 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::Result + IL_00dd: call instance void valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::SetResult(!0) + IL_00e2: leave.s IL_00f2 + + IL_00e4: leave.s IL_00f2 + + } + catch [runtime]System.Object + { + IL_00e6: castclass [runtime]System.Exception + IL_00eb: stloc.s V_11 + IL_00ed: ldloc.s V_11 + IL_00ef: stloc.1 + IL_00f0: leave.s IL_00f2 + + } + IL_00f2: ldloc.1 + IL_00f3: stloc.s V_12 + IL_00f5: ldloc.s V_12 + IL_00f7: brtrue.s IL_00fa + + IL_00f9: ret + + IL_00fa: ldarg.0 + IL_00fb: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 Test/testTask@4::Data + IL_0100: ldflda valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder + IL_0105: ldloc.s V_12 + IL_0107: call instance void valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::SetException(class [netstandard]System.Exception) + IL_010c: ret + } """ ])) @@ -1100,290 +1095,286 @@ type Generic1InGeneric1<'T>() = """, (fun verifier -> verifier.VerifyIL [ """ -.class public abstract auto ansi sealed Test - 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 nested public beforefieldinit Generic1InGeneric1`1 + .class public abstract auto ansi sealed Test extends [runtime]System.Object { - .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) - .class auto autochar sealed nested assembly beforefieldinit specialname clo@7 - extends [runtime]System.ValueType - implements [runtime]System.Runtime.CompilerServices.IAsyncStateMachine, - class [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.IResumableStateMachine`1> + .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 nested public beforefieldinit Generic1InGeneric1`1 + extends [runtime]System.Object { - .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 06 00 00 00 00 00 ) - .field public valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 Data - .field public int32 ResumptionPoint - .field public class [runtime]System.Threading.Tasks.Task`1 computation - .field public valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 awaiter - .method public strict virtual instance void MoveNext() cil managed + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) + .class auto autochar sealed nested assembly beforefieldinit specialname clo@7 + extends [runtime]System.ValueType + implements [runtime]System.Runtime.CompilerServices.IAsyncStateMachine, + class [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.IResumableStateMachine`1> { - .override [runtime]System.Runtime.CompilerServices.IAsyncStateMachine::MoveNext - - .maxstack 5 - .locals init (int32 V_0, - class [runtime]System.Exception V_1, - bool V_2, - class [runtime]System.Threading.Tasks.Task`1 V_3, - bool V_4, - bool V_5, - !A V_6, - !A V_7, - valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 V_8, - class [runtime]System.Exception V_9, - class [runtime]System.Exception V_10) - IL_0000: ldarg.0 - IL_0001: ldfld int32 valuetype Test/Generic1InGeneric1`1/clo@7::ResumptionPoint - IL_0006: stloc.0 - IL_0007: ldloc.0 - IL_0008: ldc.i4.1 - IL_0009: sub - IL_000a: switch ( - IL_0015) - IL_0013: br.s IL_0018 - - IL_0015: nop - IL_0016: br.s IL_001d - - IL_0018: nop - IL_0019: br.s IL_001b - - IL_001b: ldnull - IL_001c: stloc.1 - .try + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 06 00 00 00 00 00 ) + .field public valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 Data + .field public int32 ResumptionPoint + .field public class [runtime]System.Threading.Tasks.Task`1 computation + .field public valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 awaiter + .method public strict virtual instance void MoveNext() cil managed { - IL_001d: ldloc.0 - IL_001e: ldc.i4.1 - IL_001f: sub - IL_0020: switch ( - IL_002b) - IL_0029: br.s IL_002e - - IL_002b: nop - IL_002c: br.s IL_0059 - - IL_002e: nop - IL_002f: br.s IL_0031 - - IL_0031: ldarg.0 - IL_0032: ldfld class [runtime]System.Threading.Tasks.Task`1 valuetype Test/Generic1InGeneric1`1/clo@7::computation - IL_0037: stloc.3 - IL_0038: ldarg.0 - IL_0039: ldloc.3 - IL_003a: callvirt instance valuetype [netstandard]System.Runtime.CompilerServices.TaskAwaiter`1 class [netstandard]System.Threading.Tasks.Task`1::GetAwaiter() - IL_003f: stfld valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 valuetype Test/Generic1InGeneric1`1/clo@7::awaiter - IL_0044: ldc.i4.1 - IL_0045: stloc.s V_4 - IL_0047: ldarg.0 - IL_0048: ldflda valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 valuetype Test/Generic1InGeneric1`1/clo@7::awaiter - IL_004d: call instance bool valuetype [netstandard]System.Runtime.CompilerServices.TaskAwaiter`1::get_IsCompleted() - IL_0052: brfalse.s IL_0056 - - IL_0054: br.s IL_006f - - IL_0056: ldc.i4.0 - IL_0057: brfalse.s IL_005d - - IL_0059: ldc.i4.1 - IL_005a: nop - IL_005b: br.s IL_0066 - - IL_005d: ldarg.0 - IL_005e: ldc.i4.1 - IL_005f: stfld int32 valuetype Test/Generic1InGeneric1`1/clo@7::ResumptionPoint - IL_0064: ldc.i4.0 - IL_0065: nop - IL_0066: stloc.s V_5 - IL_0068: ldloc.s V_5 - IL_006a: stloc.s V_4 - IL_006c: nop - IL_006d: br.s IL_0070 - - IL_006f: nop - IL_0070: ldloc.s V_4 - IL_0072: brfalse.s IL_0096 - - IL_0074: ldarg.0 - IL_0075: ldflda valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 valuetype Test/Generic1InGeneric1`1/clo@7::awaiter - IL_007a: call instance !0 valuetype [netstandard]System.Runtime.CompilerServices.TaskAwaiter`1::GetResult() - IL_007f: stloc.s V_6 - IL_0081: ldloc.s V_6 - IL_0083: stloc.s V_7 - IL_0085: ldarg.0 - IL_0086: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data - IL_008b: ldloc.s V_7 - IL_008d: stfld !0 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::Result - IL_0092: ldc.i4.1 - IL_0093: nop - IL_0094: br.s IL_00af - - IL_0096: ldarg.0 - IL_0097: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data - IL_009c: ldflda valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder - IL_00a1: ldarg.0 - IL_00a2: ldflda valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 valuetype Test/Generic1InGeneric1`1/clo@7::awaiter - IL_00a7: ldarg.0 - IL_00a8: call instance void valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::AwaitUnsafeOnCompleted,valuetype Test/Generic1InGeneric1`1/clo@7>(!!0&, - !!1&) - IL_00ad: ldc.i4.0 - IL_00ae: nop - IL_00af: brfalse.s IL_00c5 - - IL_00b1: ldarg.0 - IL_00b2: ldloca.s V_8 - IL_00b4: initobj valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 - IL_00ba: ldloc.s V_8 - IL_00bc: stfld valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 valuetype Test/Generic1InGeneric1`1/clo@7::awaiter - IL_00c1: ldc.i4.1 - IL_00c2: nop - IL_00c3: br.s IL_00c7 - - IL_00c5: ldc.i4.0 - IL_00c6: nop - IL_00c7: stloc.2 - IL_00c8: ldloc.2 - IL_00c9: brfalse.s IL_00e8 - - IL_00cb: ldarg.0 - IL_00cc: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data - IL_00d1: ldflda valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder - IL_00d6: ldarg.0 - IL_00d7: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data - IL_00dc: ldfld !0 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::Result - IL_00e1: call instance void valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::SetResult(!0) - IL_00e6: leave.s IL_00f6 - - IL_00e8: leave.s IL_00f6 - - } - catch [runtime]System.Object + .override [runtime]System.Runtime.CompilerServices.IAsyncStateMachine::MoveNext + + .maxstack 5 + .locals init (int32 V_0, + class [runtime]System.Exception V_1, + bool V_2, + class [runtime]System.Threading.Tasks.Task`1 V_3, + bool V_4, + bool V_5, + !A V_6, + !A V_7, + valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 V_8, + class [runtime]System.Exception V_9, + class [runtime]System.Exception V_10) + IL_0000: ldarg.0 + IL_0001: ldfld int32 valuetype Test/Generic1InGeneric1`1/clo@7::ResumptionPoint + IL_0006: stloc.0 + IL_0007: ldloc.0 + IL_0008: ldc.i4.1 + IL_0009: sub + IL_000a: switch ( + IL_0015) + IL_0013: br.s IL_0018 + + IL_0015: nop + IL_0016: br.s IL_001b + + IL_0018: nop + IL_0019: ldnull + IL_001a: stloc.1 + .try + { + IL_001b: ldloc.0 + IL_001c: ldc.i4.1 + IL_001d: sub + IL_001e: switch ( + IL_0029) + IL_0027: br.s IL_002c + + IL_0029: nop + IL_002a: br.s IL_0055 + + IL_002c: nop + IL_002d: ldarg.0 + IL_002e: ldfld class [runtime]System.Threading.Tasks.Task`1 valuetype Test/Generic1InGeneric1`1/clo@7::computation + IL_0033: stloc.3 + IL_0034: ldarg.0 + IL_0035: ldloc.3 + IL_0036: callvirt instance valuetype [netstandard]System.Runtime.CompilerServices.TaskAwaiter`1 class [netstandard]System.Threading.Tasks.Task`1::GetAwaiter() + IL_003b: stfld valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 valuetype Test/Generic1InGeneric1`1/clo@7::awaiter + IL_0040: ldc.i4.1 + IL_0041: stloc.s V_4 + IL_0043: ldarg.0 + IL_0044: ldflda valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 valuetype Test/Generic1InGeneric1`1/clo@7::awaiter + IL_0049: call instance bool valuetype [netstandard]System.Runtime.CompilerServices.TaskAwaiter`1::get_IsCompleted() + IL_004e: brfalse.s IL_0052 + + IL_0050: br.s IL_006b + + IL_0052: ldc.i4.0 + IL_0053: brfalse.s IL_0059 + + IL_0055: ldc.i4.1 + IL_0056: nop + IL_0057: br.s IL_0062 + + IL_0059: ldarg.0 + IL_005a: ldc.i4.1 + IL_005b: stfld int32 valuetype Test/Generic1InGeneric1`1/clo@7::ResumptionPoint + IL_0060: ldc.i4.0 + IL_0061: nop + IL_0062: stloc.s V_5 + IL_0064: ldloc.s V_5 + IL_0066: stloc.s V_4 + IL_0068: nop + IL_0069: br.s IL_006c + + IL_006b: nop + IL_006c: ldloc.s V_4 + IL_006e: brfalse.s IL_0092 + + IL_0070: ldarg.0 + IL_0071: ldflda valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 valuetype Test/Generic1InGeneric1`1/clo@7::awaiter + IL_0076: call instance !0 valuetype [netstandard]System.Runtime.CompilerServices.TaskAwaiter`1::GetResult() + IL_007b: stloc.s V_6 + IL_007d: ldloc.s V_6 + IL_007f: stloc.s V_7 + IL_0081: ldarg.0 + IL_0082: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data + IL_0087: ldloc.s V_7 + IL_0089: stfld !0 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::Result + IL_008e: ldc.i4.1 + IL_008f: nop + IL_0090: br.s IL_00ab + + IL_0092: ldarg.0 + IL_0093: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data + IL_0098: ldflda valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder + IL_009d: ldarg.0 + IL_009e: ldflda valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 valuetype Test/Generic1InGeneric1`1/clo@7::awaiter + IL_00a3: ldarg.0 + IL_00a4: call instance void valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::AwaitUnsafeOnCompleted,valuetype Test/Generic1InGeneric1`1/clo@7>(!!0&, + !!1&) + IL_00a9: ldc.i4.0 + IL_00aa: nop + IL_00ab: brfalse.s IL_00c1 + + IL_00ad: ldarg.0 + IL_00ae: ldloca.s V_8 + IL_00b0: initobj valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 + IL_00b6: ldloc.s V_8 + IL_00b8: stfld valuetype [runtime]System.Runtime.CompilerServices.TaskAwaiter`1 valuetype Test/Generic1InGeneric1`1/clo@7::awaiter + IL_00bd: ldc.i4.1 + IL_00be: nop + IL_00bf: br.s IL_00c3 + + IL_00c1: ldc.i4.0 + IL_00c2: nop + IL_00c3: stloc.2 + IL_00c4: ldloc.2 + IL_00c5: brfalse.s IL_00e4 + + IL_00c7: ldarg.0 + IL_00c8: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data + IL_00cd: ldflda valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder + IL_00d2: ldarg.0 + IL_00d3: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data + IL_00d8: ldfld !0 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::Result + IL_00dd: call instance void valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::SetResult(!0) + IL_00e2: leave.s IL_00f2 + + IL_00e4: leave.s IL_00f2 + + } + catch [runtime]System.Object + { + IL_00e6: castclass [runtime]System.Exception + IL_00eb: stloc.s V_9 + IL_00ed: ldloc.s V_9 + IL_00ef: stloc.1 + IL_00f0: leave.s IL_00f2 + + } + IL_00f2: ldloc.1 + IL_00f3: stloc.s V_10 + IL_00f5: ldloc.s V_10 + IL_00f7: brtrue.s IL_00fa + + IL_00f9: ret + + IL_00fa: ldarg.0 + IL_00fb: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data + IL_0100: ldflda valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder + IL_0105: ldloc.s V_10 + IL_0107: call instance void valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::SetException(class [netstandard]System.Exception) + IL_010c: ret + } + + .method public strict virtual instance void SetStateMachine(class [runtime]System.Runtime.CompilerServices.IAsyncStateMachine state) cil managed { - IL_00ea: castclass [runtime]System.Exception - IL_00ef: stloc.s V_9 - IL_00f1: ldloc.s V_9 - IL_00f3: stloc.1 - IL_00f4: leave.s IL_00f6 - - } - IL_00f6: ldloc.1 - IL_00f7: stloc.s V_10 - IL_00f9: ldloc.s V_10 - IL_00fb: brtrue.s IL_00fe - - IL_00fd: ret - - IL_00fe: ldarg.0 - IL_00ff: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data - IL_0104: ldflda valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder - IL_0109: ldloc.s V_10 - IL_010b: call instance void valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::SetException(class [netstandard]System.Exception) - IL_0110: ret - } - - .method public strict virtual instance void SetStateMachine(class [runtime]System.Runtime.CompilerServices.IAsyncStateMachine state) cil managed - { - .override [runtime]System.Runtime.CompilerServices.IAsyncStateMachine::SetStateMachine - - .maxstack 8 - IL_0000: ldarg.0 - IL_0001: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data - IL_0006: ldflda valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder - IL_000b: ldarg.1 - IL_000c: call instance void valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::SetStateMachine(class [netstandard]System.Runtime.CompilerServices.IAsyncStateMachine) - IL_0011: ret + .override [runtime]System.Runtime.CompilerServices.IAsyncStateMachine::SetStateMachine + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data + IL_0006: ldflda valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder + IL_000b: ldarg.1 + IL_000c: call instance void valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::SetStateMachine(class [netstandard]System.Runtime.CompilerServices.IAsyncStateMachine) + IL_0011: ret + } + + .method public strict virtual instance int32 get_ResumptionPoint() cil managed + { + .override method instance int32 class [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.IResumableStateMachine`1>::get_ResumptionPoint() + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld int32 valuetype Test/Generic1InGeneric1`1/clo@7::ResumptionPoint + IL_0006: ret + } + + .method public strict virtual instance valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 get_Data() cil managed + { + .override method instance !0 class [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.IResumableStateMachine`1>::get_Data() + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldfld valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data + IL_0006: ret + } + + .method public strict virtual instance void set_Data(valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 'value') cil managed + { + .override method instance void class [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.IResumableStateMachine`1>::set_Data(!0) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: stfld valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data + IL_0007: ret + } + } - - .method public strict virtual instance int32 get_ResumptionPoint() cil managed + + .method public specialname rtspecialname instance void .ctor() cil managed { - .override method instance int32 class [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.IResumableStateMachine`1>::get_ResumptionPoint() .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld int32 valuetype Test/Generic1InGeneric1`1/clo@7::ResumptionPoint - IL_0006: ret + IL_0001: callvirt instance void [runtime]System.Object::.ctor() + IL_0006: ldarg.0 + IL_0007: pop + IL_0008: ret } - - .method public strict virtual instance valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 get_Data() cil managed + + .method public hidebysig instance class [runtime]System.Threading.Tasks.Task`1 Run() cil managed { - .override method instance !0 class [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.IResumableStateMachine`1>::get_Data() .maxstack 8 IL_0000: ldarg.0 - IL_0001: ldfld valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data - IL_0006: ret + IL_0001: ldc.i4.3 + IL_0002: call class [runtime]System.Threading.Tasks.Task`1 [runtime]System.Threading.Tasks.Task::FromResult(!!0) + IL_0007: callvirt instance class [runtime]System.Threading.Tasks.Task`1 class Test/Generic1InGeneric1`1::run(class [runtime]System.Threading.Tasks.Task`1) + IL_000c: ret } - - .method public strict virtual instance void set_Data(valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 'value') cil managed + + .method assembly hidebysig instance class [runtime]System.Threading.Tasks.Task`1 run(class [runtime]System.Threading.Tasks.Task`1 computation) cil managed { - .override method instance void class [FSharp.Core]Microsoft.FSharp.Core.CompilerServices.IResumableStateMachine`1>::set_Data(!0) + .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - .maxstack 8 - IL_0000: ldarg.0 - IL_0001: ldarg.1 - IL_0002: stfld valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data - IL_0007: ret + .maxstack 4 + .locals init (valuetype Test/Generic1InGeneric1`1/clo@7 V_0, + valuetype Test/Generic1InGeneric1`1/clo@7& V_1) + IL_0000: ldloca.s V_0 + IL_0002: initobj valuetype Test/Generic1InGeneric1`1/clo@7 + IL_0008: ldloca.s V_0 + IL_000a: stloc.1 + IL_000b: ldloc.1 + IL_000c: ldarg.1 + IL_000d: stfld class [runtime]System.Threading.Tasks.Task`1 valuetype Test/Generic1InGeneric1`1/clo@7::computation + IL_0012: ldloc.1 + IL_0013: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data + IL_0018: call valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::Create() + IL_001d: stfld valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder + IL_0022: ldloc.1 + IL_0023: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data + IL_0028: ldflda valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder + IL_002d: ldloc.1 + IL_002e: call instance void valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::Start>(!!0&) + IL_0033: ldloc.1 + IL_0034: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data + IL_0039: ldflda valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder + IL_003e: call instance class [netstandard]System.Threading.Tasks.Task`1 valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::get_Task() + IL_0043: ret } - - } - - .method public specialname rtspecialname instance void .ctor() cil managed - { - - .maxstack 8 - IL_0000: ldarg.0 - IL_0001: callvirt instance void [runtime]System.Object::.ctor() - IL_0006: ldarg.0 - IL_0007: pop - IL_0008: ret - } - - .method public hidebysig instance class [runtime]System.Threading.Tasks.Task`1 Run() cil managed - { - - .maxstack 8 - IL_0000: ldarg.0 - IL_0001: ldc.i4.3 - IL_0002: call class [runtime]System.Threading.Tasks.Task`1 [runtime]System.Threading.Tasks.Task::FromResult(!!0) - IL_0007: callvirt instance class [runtime]System.Threading.Tasks.Task`1 class Test/Generic1InGeneric1`1::run(class [runtime]System.Threading.Tasks.Task`1) - IL_000c: ret - } - - .method assembly hidebysig instance class [runtime]System.Threading.Tasks.Task`1 run(class [runtime]System.Threading.Tasks.Task`1 computation) cil managed - { - .custom instance void [runtime]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) - - .maxstack 4 - .locals init (valuetype Test/Generic1InGeneric1`1/clo@7 V_0, - valuetype Test/Generic1InGeneric1`1/clo@7& V_1) - IL_0000: ldloca.s V_0 - IL_0002: initobj valuetype Test/Generic1InGeneric1`1/clo@7 - IL_0008: ldloca.s V_0 - IL_000a: stloc.1 - IL_000b: ldloc.1 - IL_000c: ldarg.1 - IL_000d: stfld class [runtime]System.Threading.Tasks.Task`1 valuetype Test/Generic1InGeneric1`1/clo@7::computation - IL_0012: ldloc.1 - IL_0013: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data - IL_0018: call valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::Create() - IL_001d: stfld valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder - IL_0022: ldloc.1 - IL_0023: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data - IL_0028: ldflda valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder - IL_002d: ldloc.1 - IL_002e: call instance void valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::Start>(!!0&) - IL_0033: ldloc.1 - IL_0034: ldflda valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1 valuetype Test/Generic1InGeneric1`1/clo@7::Data - IL_0039: ldflda valuetype [runtime]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1 valuetype [FSharp.Core]Microsoft.FSharp.Control.TaskStateMachineData`1::MethodBuilder - IL_003e: call instance class [netstandard]System.Threading.Tasks.Task`1 valuetype [netstandard]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1::get_Task() - IL_0043: ret + } - + } - -} """ ])) #endif