Frédéric Bour
d1eecfc604
Distinguish root and heap values in Lambda.initialization ( #673 )
2016-12-27 11:43:36 +00:00
Leo White
0c38bbd11c
Add stub marker to lambda code
2016-12-14 17:32:24 +00:00
Leo White
9915e7e299
Move the ref_to_variables pass to a later position ( #968 )
2016-12-14 15:49:34 +00:00
Leo White
18060fb09e
Fix [@@inline] with default parameters in flambda ( #880 )
2016-12-14 13:14:21 +00:00
Pierre Chambart
2086589557
Update Changes and comment on potential improvements
2016-12-14 13:14:21 +00:00
Pierre Chambart
9ec45c338d
Fix preallocated float arrays with symbol arguments generation
2016-12-14 13:14:21 +00:00
Pierre Chambart
c5925cb3a5
Turn directly lambda constants into let_symbols
...
This reduces the compilation time and memory one some files containing
huge constants.
2016-12-14 13:14:21 +00:00
Pierre Chambart
6ddc97a665
Fix PR#7291
...
Make Inlining_transform.inline_by_copying_function_declaration robust to
Invariant_params being an overaproximation.
2016-12-14 13:14:21 +00:00
Damien Doligez
2c521d23bd
fix whitespace and overlong lines
2016-12-14 13:14:21 +00:00
Mark Shinwell
be0627143c
Add Debuginfo.print_compact ( #854 )
2016-12-12 11:00:21 +00:00
Mark Shinwell
2ff35694f4
Speed improvement in Lift_constants ( #860 )
2016-12-09 15:09:49 +00:00
Pierre Chambart
575f20368d
Avoid checking twice if divisor is zero ( #702 )
...
* Avoid checking twice if divisor is zero
The flambda branch before merging assumed that Pdivint and Pmodint where
already checked when entering Cmmgen. This was not the case anymore
after merging and this change was lost. This fix this overlook by adding
an annotation to the Pdivint and Pmodint primitive telling whether the
division by zero was already checked.
The reason to move the test generation to Closure_conversion in the
flambda branch was to allow the division primitive to be considered as
pure without needing to check for the effective value of the
divisor. This simplified Semantics_of_primitives a lot.
* Bigarray div and mod also carry safety information
* Handle bigint div and mod like int div and mod in closure_conversion
* Update Changes
* Test for divisions by zero
* Turn Pdivbint and Pmodbint argument into an inline record
2016-10-05 16:42:40 +02:00
Damien Doligez
6afcbc96b8
clean up code duplication and whitespace
2016-08-08 17:02:19 +02:00
Hongbo Zhang
a36cd4c4ec
add needed lambda IR for safe string
2016-08-07 11:07:10 -04:00
Leo White
51f58a68f5
Merge pull request #714 from chambart/lazy_warning_59
...
Prevent warning 59 from triggering on Lazy of constants
2016-08-01 15:19:46 +01:00
Damien Doligez
0b4fbc2b30
fix whitespace, long lines, headers
2016-08-01 16:06:59 +02:00
Pierre Chambart
6ee86d523d
Reorganize switch handling
2016-07-31 17:35:21 +02:00
Pierre Chambart
f5573b0f6b
Prevent warning 59 from triggering on Lazy of constants
...
Lazy.force (lazy (fun x -> x)) was triggering this warning because the
code generated by Lazy.force modifies its argument in a dead branch.
This allows to recognize this branch as dead, and eliminate it.
2016-07-31 17:34:22 +02:00
Mark Shinwell
dabd380c72
Bug in comparison function
2016-07-29 16:19:44 +01:00
Mark Shinwell
cd0bd8aa73
Spacetime: a new memory profiler ( #585 )
2016-07-29 15:07:10 +01:00
Pierre Chambart
86c9e4f759
Optimize constant char comparison
2016-07-28 19:35:54 +02:00
Pierre Chambart
d9eaf8a34b
Make constant string access effect free
...
This allows removing them when the value of constant strings can be propagated.
2016-07-28 19:35:54 +02:00
Pierre Chambart
9b23b97cd2
Remove obsolete comment
2016-07-28 19:35:54 +02:00
Pierre Chambart
8d348d48ee
Optimize away string switch on constant strings
2016-07-28 19:35:54 +02:00
Pierre Chambart
4e22061ff9
Optimize away some trivial physical differences
2016-07-28 19:35:54 +02:00
Leo White
b489c296a0
Fix infinite unrolling bug again
2016-07-27 10:36:40 +01:00
Pierre Chambart
a345e33f11
Apply review comments
2016-07-25 14:48:29 +02:00
Pierre Chambart
2b70ee6df4
Make meet call a bit lighter
2016-07-22 13:52:13 +02:00
Pierre Chambart
04a6fbc687
String switch and static catch returns better approximations
2016-07-21 04:25:39 +02:00
Pierre Chambart
af5da770e5
Apply really_import_approx in Simple_value_approx.meet
2016-07-21 04:20:46 +02:00
alainfrisch
9538a54508
Allowing sharing string literals when configured in -safe-string mode.
2016-07-19 14:28:53 +02:00
alainfrisch
8c00e8082a
Remove unused module declarations.
2016-07-18 10:35:23 +02:00
Mark Shinwell
5f00ce793e
Improve location handling in the middle end (version for merging) ( #666 )
2016-07-06 15:42:29 +01:00
Fourchaux
cad3b523a6
typos ('middle_end' directory)
2016-06-11 18:05:05 +02:00
Frédéric Bour
28dc832030
Make backtraces aware of inlining ( #247 )
2016-05-25 14:00:37 +01:00
Pierre Chambart
d7610c640e
Optimize away some intermediate immutable float records
2016-05-17 14:53:54 +01:00
alainfrisch
2d927bd8d5
Merge branch 'bb_sys_backend_type' of https://github.com/bloomberg/ocaml into bloomberg-bb_sys_backend_type
2016-05-02 18:12:38 +02:00
Hongbo Zhang
c803c3a32a
using `const_ptr_expr` in the middle end
2016-04-29 10:25:45 -04:00
Damien Doligez
520fb2df50
Merge tag 4.03.0 into trunk.
2016-04-28 16:13:21 +02:00
Hongbo Zhang
31c88ac4d9
always use tag 0 to make it consistent
2016-04-27 21:03:55 -04:00
Hongbo Zhang
6c3a01bb7c
prepare backend_type primitive
2016-04-24 17:42:23 -04:00
Pierre Chambart
4092639507
Array assignement primitive specialisation using the approximation
2016-04-12 14:50:01 +02:00
Pierre Chambart
aa7118f331
Improve approximations using block kind
2016-04-12 14:50:00 +02:00
Pierre Chambart
f7dcbf21e7
Annotate Let_mutable with the kind of value
2016-04-12 14:49:52 +02:00
Pierre Chambart
f4665bee42
Annotate each field of a block separately
2016-04-12 14:49:51 +02:00
alainfrisch
83ae23568c
Renaming block_kind -> value_kind.
2016-04-12 14:49:50 +02:00
alainfrisch
4bf9ad6a3c
Keep the approx on all Llet nodes, not only variables.
2016-04-12 14:49:42 +02:00
alainfrisch
c996f5f18d
Keep track of mutable variables obtained by eliminating local references holding aun unboxable number type. Then force unboxing of such variables to avoid repeated boxing every time the reference is assigned.
2016-04-12 14:49:40 +02:00
Mark Shinwell
ee367399a2
Attend to final Flambda CR comments for 4.03 release
2016-03-30 11:29:34 +02:00
Pierre Chambart
0c3ccbd838
Remove_unused_arguments stub functions should not be specialised
2016-03-15 23:25:59 +01:00
Gabriel Scherer
ab8fc91e29
Merge pull request #492 from chambart/fix_dflambda
...
Fix -dflambda argument
2016-03-05 09:28:42 -05:00
Mark Shinwell
1c003afb9a
Correct erroneous comment
2016-03-03 10:01:27 +09:00
Mark Shinwell
f5bc512181
Flambda: do not forget the default case when measuring the size of Switch
2016-02-29 16:46:02 +00:00
Mark Shinwell
8cb01881f7
Flambda: restore correct simplification code for over-applications
2016-02-29 16:45:06 +00:00
Mark Shinwell
8641de145e
Merge pull request #484 from lpw25/fix-extract-projections
...
GPR#484: Change how Extract_projections handles nested sets of closures
2016-02-26 16:15:32 +00:00
Leo White
e9a6562a60
Change how extract projections handles nested sets of closures
2016-02-24 16:25:59 +00:00
Mark Shinwell
0453c74baa
Fix Unbox_closures to lessen runtime performance penalty
2016-02-24 09:03:15 +00:00
Damien Doligez
5401ce8473
Update headers for the new license.
...
Remains to be done: remove all headers in testsuite/tests.
2016-02-18 16:59:16 +01:00
Leo White
4253ed1530
Tidy up new command-line parameters
2016-02-11 16:02:02 +00:00
Mark Shinwell
4137939cd7
Make warning 59 less unhelpful (includes work by Runhang Li)
2016-02-11 14:35:18 +00:00
Mark Shinwell
bde2bdd206
Reformatting only (to the standards of tools/check-typo)
2016-02-10 18:28:38 +01:00
Mark Shinwell
c67bd88eee
Addressing CR comments for Flambda
2016-02-10 17:01:33 +01:00
Leo White
59aab8d1c2
Support for unroll and and specialise attributes
2016-02-10 14:14:42 +01:00
Mark Shinwell
7a02671d61
Further Flambda fixes
2016-02-10 14:14:42 +01:00
Mark Shinwell
f95fb8bbb0
Bug fixes etc for Flambda
2016-02-09 18:38:16 +01:00
Mark Shinwell
a397511031
Import latest Flambda changes
2016-02-09 09:59:26 +01:00
Pierre Chambart
cdd75a23e6
Flambda produces the same stack traces as closure
2016-01-28 17:33:15 +01:00
Pierre Chambart
fd8cdc9d20
Propagate debuginfo as an environment
2016-01-28 16:38:10 +01:00
Leo White
b9bdfa8248
Mark opt arg wrappers of recursive functions as stubs
2016-01-28 16:01:56 +01:00
Pierre Chambart
b0b0f6609c
Enable flambda
2016-01-28 15:04:47 +01:00
Pierre Chambart
d07c0698d0
Fix small divergences
2016-01-22 01:24:02 +01:00
Pierre Chambart
0e8ed08a9d
Add warning headers to flambda files
2016-01-22 00:39:46 +01:00
Mark Shinwell
fb35dc8fb4
Fix chambart/ocaml-1 GPR#134: wrong sharing of float array literals (Flambda only)
2016-01-21 16:46:49 +00:00
Mark Shinwell
0664a1cf03
Alter array patch after feedback from jdimino
2016-01-15 14:49:01 +00:00
Mark Shinwell
2a8be79dc5
Further updates to middle_end/ only
2016-01-12 16:37:27 +01:00
Mark Shinwell
2ff7c69704
Further updates to middle_end/ only
2016-01-12 15:45:31 +01:00
Mark Shinwell
b7df26e34b
Update middle_end/ for recent changes from flambda_trunk
2016-01-12 13:38:52 +01:00
Mark Shinwell
71bed7af0d
Correct name of licence
2016-01-05 08:46:03 +00:00
Mark Shinwell
b085ec553c
New files for flambda
2016-01-04 13:42:56 +00:00