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
Previously 'for i in expr do body' only had optimization
when the type of expr was an 1D-array.
'for i in expr do body' now has optimizations for when expr
is of type 'string' and 'List`1'.
These optimizations increases the performance of the for
expression but also reduces the number of objects created.
closesdotnet/fsharp#219
commit e3935d95ce12a28f87e2d77c537b6f18e6d54d98
Author: latkin <latkin@microsoft.com>
Date: Thu Aug 6 12:53:35 2015 -0700
Add cross-version test cases
commit 1427f418ab1a2fb2b06684fafff809932714cf0a
Merge: 01dc508 73509e9
Author: latkin <latkin@microsoft.com>
Date: Thu Aug 6 10:42:54 2015 -0700
Merge branch 'pr/for_optimization' of https://github.com/mrange/visualfsharp into mrange-pr/for_optimization
Conflicts:
src/fsharp/TcGlobals.fs
tests/fsharpqa/Source/Optimizations/ForLoop/env.lst
commit 73509e956679a52f7b77d692cc85b3a835bca5b4
Author: mrange <marten_range@hotmail.com>
Date: Mon Mar 9 00:04:11 2015 +0100
'for i in expr do body' optimization..
Previously 'for i in expr do body' only had optimization
when the type of expr was an 1D-array.
'for i in expr do body' now has optimizations for when expr
is of type 'string' and 'List`1'.
These optimizations increases the performance of the for
expression but also reduces the number of objects created.
latkin provided the following fixes:
1. Adapting tests to work with core\portable and core\netcore
2. Loop item over strings sometimes uses object, not char
3. Adjustments to debug ranges so that debug stepping behavior is consistent/unchanged
4. Updating codegen tests to represent corrected debug ranges
when valRefEq g vf g.range_int32_op_vref -> Some(startExpr, n, finishExpr)
7728
7745
7729
7746
|_-> None
7730
7747
7731
-
7732
-
// Detect the compiled or optimized form of a 'for <elemVar> in <startExpr> .. <finishExpr> do <bodyExpr>' expression over integers
7733
-
// Detect the compiled or optimized form of a 'for <elemVar> in <startExpr> .. <step> .. <finishExpr> do <bodyExpr>' expression over integers when step is positive
0 commit comments