You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Use branchless `max` in call to `Array.init`/`List.init`.
Getting the sequel to be appended to each branch correctly in all
cases looked like a nontrivial undertaking.
* Lower the size thresholds for const ranges (temporarily?).
Some (ComputedCollectionExprLowering.Expr (mkArray (g.int32_ty,[for n in start..finish -> Expr.Const (Const.Int32 n, Text.Range.range0, g.int32_ty)], m)))
325
+
Some (mkArray (g.int32_ty,[for n in start..finish -> Expr.Const (Const.Int32 n, Text.Range.range0, g.int32_ty)], m))
332
326
333
327
// [|start..finish|] → if start <= finish then Array.init (finish - start + 1) ((+) start) else [||]
334
328
| SeqToArray g (OptionalCoerce (OptionalSeq g amap (Int32Range g (start, finish))), m)->
IL_000b: ldsfld class Test/test@1 Test/test@1::@_instance
652
-
IL_0010: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!!0> [FSharp.Core]Microsoft.FSharp.Collections.ListModule::Initialize<int32>(int32,
660
+
IL_0000: ldc.i4.s 101
661
+
IL_0002: ldc.i4.1
662
+
IL_0003: sub
663
+
IL_0004: ldc.i4.1
664
+
IL_0005: add
665
+
IL_0006: ldc.i4.s 101
666
+
IL_0008: ldc.i4.1
667
+
IL_0009: sub
668
+
IL_000a: ldc.i4.1
669
+
IL_000b: add
670
+
IL_000c: ldc.i4.s 101
671
+
IL_000e: ldc.i4.1
672
+
IL_000f: sub
673
+
IL_0010: ldc.i4.1
674
+
IL_0011: add
675
+
IL_0012: ldc.i4.0
676
+
IL_0013: clt
677
+
IL_0015: neg
678
+
IL_0016: and
679
+
IL_0017: xor
680
+
IL_0018: ldsfld class Test/test@1 Test/test@1::@_instance
681
+
IL_001d: tail.
682
+
IL_001f: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!!0> [FSharp.Core]Microsoft.FSharp.Collections.ListModule::Initialize<int32>(int32,
653
683
class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2<int32,!!0>)
654
-
IL_0015: ret
655
-
656
-
IL_0016: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0> class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::get_Empty()
IL_000f: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!!0> [FSharp.Core]Microsoft.FSharp.Collections.ListModule::Initialize<int32>(int32,
IL_001d: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!!0> [FSharp.Core]Microsoft.FSharp.Collections.ListModule::Initialize<int32>(int32,
767
806
class [FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2<int32,!!0>)
768
-
IL_0014: ret
769
-
770
-
IL_0015: call class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<!0> class [FSharp.Core]Microsoft.FSharp.Collections.FSharpList`1<int32>::get_Empty()
0 commit comments