Commit Graph

8750 Commits (0b9347f482130b9c92c84ed2d0914c8a327d69fb)

Author SHA1 Message Date
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