Jacques Garrigue
5011d90eb8
only need to copy if pattern contains polymorphic variants
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13158 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-25 04:28:12 +00:00
Hongbo Zhang
733654abab
raise an error when multiple private keywords are used in type declarations
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13157 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-24 05:09:22 +00:00
Wojciech Meyer
2d3c0b7c1e
PR#5697: Update changes
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13156 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-22 01:34:24 +00:00
Wojciech Meyer
2ebc2c2790
Update reference file for the ocamlbuild tests - still need some more work
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13155 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-22 01:34:23 +00:00
Wojciech Meyer
a3c8cd0170
Fix PR#5752.
...
Patch by Grégoire Sutre!
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13154 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-22 01:34:21 +00:00
Wojciech Meyer
1cfa222553
Fix test
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13153 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-22 01:34:20 +00:00
Wojciech Meyer
38dc96e0be
Always store full path to ocamlbuild in a variable that is available to the sub-tests
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13152 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-22 01:34:19 +00:00
Wojciech Meyer
469ae8ae60
Use name of the the tools in high detail level logs, this helps comparing logs
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13151 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-22 01:34:16 +00:00
Benedikt Meurer
6d46c663db
Collect the constrained registers into a set.
...
Sets allow for faster insertion than ordered lists, while also supporting
iteration according to the comparison function.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13150 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-21 18:36:26 +00:00
Benedikt Meurer
6fad047cc0
PR#5181: Merge common floating point constants in ocamlopt.
...
Instead of generating a unique quadword constant for each and every
floating point constant use within a function, we now collect the floating
point constants on a per-module basis, and generate only one quadword
per floating point constant.
This affects only the amd64 and i386 ports (both Unix/Linux/OS X and Windows).
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13149 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-21 18:33:32 +00:00
Jacques Garrigue
030e9d8f10
propagate type information to patterns, even with polymorphic variants
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13147 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-21 07:50:19 +00:00
Damien Doligez
42af44f5a6
add kaputt to the external test suite
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13146 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-20 15:04:18 +00:00
Benedikt Meurer
d3b1fa2c9b
Simplify and optimize the coloring algorithm.
...
There's no need to first split the registers into constrained/unconstrained
sets first and transform these sets into a list using an additional pass;
instead we can directly place the registers on lists, where the constrained
list is sorted by spill cost.
Afterwards all that's left to do is to assign locations to the constrained
and unconstrained registers by traversing the lists.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13145 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-20 10:38:15 +00:00
Benedikt Meurer
45bc825115
Fix whitespace in emitted AMD64 code.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13144 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-20 10:37:55 +00:00
Benedikt Meurer
19ea264f3d
Combine the first two coloring passes.
...
This combines the preallocation of spilled registers and splitting of
the remaining registers into constrained and unconstrained, and thereby
saves one pass on the register set.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13143 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-20 10:37:37 +00:00
Benedikt Meurer
2f077a9ab7
Compute the degrees while building the interference graph.
...
This speeds up the register allocator and allows for further optimizations.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13142 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-20 10:37:13 +00:00
Alain Frisch
ff4e0a81f8
#5774 : fix MSVC port.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13141 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-19 16:22:30 +00:00
Alain Frisch
a19a4642e5
Enable 'unused stuff' warnings in tools/ and get rid of them.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13140 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-19 09:25:21 +00:00
Alain Frisch
f1d0e5afab
Add a -dtypedtree flag to all tools (using Printtyped). Also fix ocamlnat.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13139 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-18 17:19:53 +00:00
Jacques Garrigue
37406cc484
fix PR#5858
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13137 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-18 09:58:32 +00:00
Alain Frisch
e174901c93
#5744 : remove other primitives.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13136 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-17 17:15:04 +00:00
Alain Frisch
82a5220524
This should not have been committed.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13135 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-17 16:49:30 +00:00
Alain Frisch
9c86462e3d
#5774 : caml_int64_direct_bswap should not be a primitive.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13134 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-17 16:48:52 +00:00
Alain Frisch
7709574b9a
Sort the primitives file and remove duplicates.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13133 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-17 16:07:05 +00:00
Jacques Garrigue
1430e90e89
shorten paths in annot + lookup abbreviations in persistent structures
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/short-paths@13132 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-17 03:18:31 +00:00
Hongbo Zhang
2854b1d448
desuaring Bigarray syntax for -dsource
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13131 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-14 02:57:43 +00:00
Alain Frisch
516c752e0d
#5546 : change compilation scheme for nested structures (improve compilation time and sometimes runtime performance as well). Patch by F. Le Fessant.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13130 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-13 15:40:25 +00:00
Damien Doligez
f559b6e8f0
better locations
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13129 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-13 12:48:51 +00:00
Damien Doligez
773378a743
followup to r13120: output ALL locations
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13128 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-10 13:16:10 +00:00
Damien Doligez
4e20a37f46
fix white space
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13127 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-10 13:15:22 +00:00
Benedikt Meurer
b87cdb1d51
Add missing note about PR#5798 to Changes.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13126 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-10 11:38:20 +00:00
Jacques Garrigue
6a55d4f552
improve performance
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/short-paths@13124 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-10 10:39:26 +00:00
Jacques Garrigue
2d4cb892dd
expand to simpler types
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/short-paths@13123 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-10 10:39:07 +00:00
Damien Doligez
7e263248d7
fix wrong locations in AST
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13122 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-08 20:56:07 +00:00
Damien Doligez
0c14bdda48
fix whitespace and long lines
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13121 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-08 20:55:42 +00:00
Damien Doligez
551e5c854b
shorter format for locations; output all locations
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13120 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-08 20:55:17 +00:00
Jacques Garrigue
85bb9663e6
Improve fix of PR#5848 (allow disambiguation, only restrict scope of GADTs)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13119 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-08 02:40:56 +00:00
Jacques Garrigue
c5f4577572
better test for PR#5848
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13118 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-07 02:28:58 +00:00
Jacques Garrigue
b7370effb7
fix PR#5848 by disabling disambiguation for GADTs in patterns
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13117 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-07 02:22:18 +00:00
Damien Doligez
06e853389f
fix missing locations
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13116 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-06 15:41:43 +00:00
Damien Doligez
8ddac35439
ignore stuff
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13115 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-06 15:41:11 +00:00
Damien Doligez
1e2ddf4bd1
ignore stuff
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13114 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-06 15:40:24 +00:00
Damien Doligez
19e086795e
segfault in Array.append in rare case
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13113 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-06 15:39:30 +00:00
Jacques Garrigue
c8273a179c
merge branches/record-disambiguation
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13112 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-06 09:41:21 +00:00
Alain Frisch
705510eef9
Remove unused (and wrong) value declaration.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13111 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-04 16:25:37 +00:00
Jacques Garrigue
505dcfb2fe
fix PR#5343 (was still unsound)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13107 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-02 02:46:22 +00:00
Fabrice Le Fessant
89bdc10350
PR#5774: Add bswap primitives for amd64
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13106 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-11-29 09:55:00 +00:00
Wojciech Meyer
f80d01e968
PR#5825: Add Changes entry.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13099 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-11-19 01:30:54 +00:00
Wojciech Meyer
bda692b6da
PR#5825: Add a primitive to use source file wrapped in the coresponding module.
...
Patch by Grégoire Henry!
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13097 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-11-18 16:16:50 +00:00
Xavier Leroy
23502e1275
PR#5824: avoid tagging before right shifts
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13096 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-11-17 17:23:15 +00:00