Commit Graph

8707 Commits (2825f94d5b775acc8dece40d5a9740fd81a104a8)

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