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
Alain Frisch
8ec89825dd
Typos.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13094 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-11-15 13:57:46 +00:00
Alain Frisch
43d30581a7
Fix #5821 : Wrong record field is reported as duplicate.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13093 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-11-14 16:59:33 +00:00
Hongbo Zhang
8930e12294
tune the indentation of [let rec ... and ...] and fix the bug of ~+
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13092 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-11-12 14:30:45 +00:00
Gabriel Scherer
35160d3712
fix two minor stale locations (Location.none) in typemod.ml
...
The two bewildering "_none_" error messages fixed by this commit
could be observed in the following way:
echo "let f (x, y) = x + 1" > test.ml
touch test.mli
ocamlc -c -annot test.ml
File "_none_", line 1:
Error: Could not find the .cmi file for interface test.mli.
grep "def f" test.annot
def f "test.ml" 1 0 20 "_none_" 1 0 -1
Behavior after the fixes:
echo "let f (x, y) = x + 1" > test.ml
touch test.mli
ocamlc -c -annot test.ml
File "test.ml", line 1:
Error: Could not find the .cmi file for interface test.mli.
grep "def f" test.annot
def f "test.ml" 1 0 20 "test.ml" 1 0 -1
One could argue that for the "could not find the .cmi" error, the file
chosen could be test.mli. I find it more natural to have the name of
the file that the user asked to compile (and therefore provoked the
error). Any of those choices is better than "_none_" anyway.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13091 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-11-11 10:59:43 +00:00
Jacques Garrigue
17fc404e78
merge patch new-error.diff by lpw25
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/record-disambiguation@13090 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-11-11 03:46:59 +00:00
Jonathan Protzenko
e41b5df033
Add a strict_sequence flag to OCamlbuild.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13089 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-11-10 15:06:53 +00:00
Jonathan Protzenko
76f3646b12
Add a new bin_annot tag to OCamlbuild.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13088 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-11-10 15:02:56 +00:00
Fabrice Le Fessant
ec7ac9cb3d
PR#5771: Add primitives for reading 2, 4, 8 bytes in strings and bigarrays
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13087 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-11-09 16:15:29 +00:00
Fabrice Le Fessant
d34a734947
PR#5795: Generate sqrtsd opcode instead of external call to sqrt on amd64
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13086 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-11-09 13:26:43 +00:00
Alain Frisch
5668b31352
New implementation of cmt2annot, based on an OO iterator for typed trees. Mostly work for Partial_implementation ( #5816 ).
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13085 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-11-08 17:21:27 +00:00
Alain Frisch
0a96bac530
Header.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13084 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-11-08 14:30:38 +00:00