Mark Shinwell
cd0bd8aa73
Spacetime: a new memory profiler ( #585 )
2016-07-29 15:07:10 +01:00
Gabriel Scherer
99db3207e7
fallout from #645 : remove emit_data_label (unused, breaks the build)
2016-07-10 10:14:40 -04:00
Alain Frisch
e3ee2805b7
Merge pull request #645 from mshinwell/delete_cmm_label_stuff
...
Remove Cdefine_label and Clabel_address
2016-07-10 14:52:07 +02:00
Mark Shinwell
c843ca0691
Labels after calls, call GC points and checkbound points (again) ( #660 )
2016-07-06 11:44:00 +01:00
Mark Shinwell
8e16cdd85d
Remove Cdefine_label and Clabel_address
2016-06-29 10:01:03 +01:00
Fabrice Le Fessant
80c4576f03
Add line directives to preprocessed files
2016-06-29 10:43:00 +02:00
alainfrisch
502e4f9336
More warnings when compiling the compiler.
2016-03-15 22:46:35 +01: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
Xavier Leroy
6cd8656249
PR#7024 and GPR#295: CSE confuses +0.0 and -0.0
...
The fix consists in representing float literals by their bit patterns (int64) in the Mach and Linear intermediate languages.
A regression test was added to the test suite.
2015-11-19 09:25:02 +01:00
Jérémie Dimino
843aef33bd
Support Val in the sparc/emit.mlp
...
Not tested, but without it just can't compile anything
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16392 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2015-08-25 16:18:54 +00:00
Jérémie Dimino
766a5adf41
Update sparc backend for unboxed primitive arguments/results
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16391 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2015-08-25 16:18:54 +00:00
Xavier Leroy
ac02f56351
More precise typing at the C-- and Mach level:
...
- Register type "Addr" is split into
. "Val" (well-formed OCaml values, appropriate as GC roots)
. "Addr" (derived pointers within the heap, must not survive a GC)
- memory_chunk "Word" is split into
. "Word_val" (OCaml value)
. "Word_int" (native-sized integer, not a pointer into the heap)
Cmmgen was updated to use Word_val or Word_int as appropriate.
Application #1 : fail at compile-time if a derived pointer within the heap
survives a GC point (cf. PR#6484).
Application #2 : CSE can do a better job across allocation points
(keep factoring expressions of type Int, Val, Float, but not Addr).
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/cmm-mach-types@15568 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-11-06 08:54:14 +00:00
Xavier Leroy
558f40e344
New back-end optimization pass: common subexpression elimination (CSE).
...
(Reuses results of previous computations instead of recomputing them.)
(Cherry-picked from branch backend-optim.)
Tested on amd64/linux and i386/linux.
Other back-ends compile (after assorted updates) but are untested.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14688 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-26 10:40:22 +00:00
Xavier Leroy
29b34438e0
- Constant ropagation for float and int32/int64/nativeint arithmetic.
...
Constant propagation for floats can be turned off with option
-no-float-const-prop, for codes that change FP rounding modes at
run-time.
- Clambda / C-- / Mach: represent float constants as FP numbers of type
float rather than literals of type string.
- Tested for AMD64; other archs need testing.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14673 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-25 08:41:13 +00:00
Mark Shinwell
583bfd46c2
be explicit when constructing integers that are block headers
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14464 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-03-17 14:34:00 +00:00
Benedikt Meurer
3bb161216b
Perform constant optimizations for integer division and modulus on the C-- level.
...
This way we can avoid having to duplicate the same functionality for
every backend, and we may also benefit from other optimizations performed
during C-- generation.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14303 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-11-19 07:01:54 +00:00
Alain Frisch
f16534ef1a
Reintegrate raise_variants branch.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14289 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-11-13 13:55:13 +00:00
Alain Frisch
07e704dfd5
Remove use of deprecated features ( #6227 , patch by johnwhitington).
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14271 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-11-07 11:02:51 +00:00
Alain Frisch
0efe8df107
Adapt sparc backend (stacktraces not supported anyway).
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/raise_variants@14230 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-10-15 12:07:23 +00:00
Damien Doligez
def31744f9
remove all $Id keywords
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13013 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-10-15 17:50:56 +00:00
Fabrice Le Fessant
930864c9cc
Fix PR#5695 (Redoing commit 12756 without unwanted changes)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12758 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-07-22 15:18:52 +00:00
Fabrice Le Fessant
808d083b9f
Revert commit r12756 containing unwanted changes
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12757 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-07-22 15:15:55 +00:00
Fabrice Le Fessant
5e74e6f0cc
Fix PR#5695
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12756 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-07-22 15:12:43 +00:00
Xavier Leroy
ca0c236919
PR#4869: rare collisions between assembly labels for code and data
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11887 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-12-18 10:00:56 +00:00
Damien Doligez
3b507dd1aa
renaming of Objective Caml to OCaml and cleanup of copyright headers
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11156 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2011-07-27 14:17:02 +00:00
Damien Doligez
bdc0fadee2
merge changes from release/3.11.1 to release/3.11.2
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9540 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-01-20 16:26:46 +00:00
Damien Doligez
1279ab4b76
fusion des changements 3.09.1 -> 3.09.2
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7382 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2006-04-16 23:28:22 +00:00
Jacques Garrigue
fa7b15b858
remove dead code
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7107 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2005-10-07 09:34:19 +00:00
Xavier Leroy
a8afc7f0a0
Revu checkbound pour Sparc/non-Solaris (PR#2980)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6598 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2004-08-12 16:04:07 +00:00
Damien Doligez
258c929f64
PR#1914,PR#1956, suppression du portage Mac OS 9
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6060 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2004-01-05 20:26:19 +00:00
Damien Doligez
5a678d29f5
depollution suite (PR#1914 et PR#1956)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6045 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2004-01-01 16:42:43 +00:00
Xavier Leroy
9fe0fd71c4
Bug dans comparaison immediate pour Sparc V9
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5818 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2003-09-04 12:31:08 +00:00
Xavier Leroy
4755668ea9
Support Sparc et PowerPC pour NetBSD (PR#1746)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5711 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2003-07-17 15:11:03 +00:00
Xavier Leroy
2f698390a5
Support SPARC V8 et SPARC V9. Suppression indirection sur young_limit dans le cas de Solaris.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5303 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2002-11-29 15:03:08 +00:00
Xavier Leroy
9178881f44
Introduction et utilisation de Cglobal_symbol pour declarer explicitement les symboles de donnees qui doivent etre globaux
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5296 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2002-11-24 15:55:26 +00:00
Damien Doligez
851b9cb158
deps
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5020 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2002-07-22 16:38:07 +00:00
Xavier Leroy
71cf31f0e2
Ajout du packaging d'unites de compilation (option -pack)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@4367 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2002-02-08 16:55:44 +00:00
Xavier Leroy
c02c135946
Introduction de Double_u (doubles alignes sur un mot) par opposition a Double (doubles alignes naturellement). A tester.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2937 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-03-10 14:31:06 +00:00
Xavier Leroy
1cac403368
Ajout des modules Int32, Int64 et Nativeint
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2807 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-02-11 15:09:27 +00:00
Xavier Leroy
d9fe400f4e
Oubli: Cint32
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2784 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-02-04 15:08:23 +00:00
Xavier Leroy
dca961a658
Traitement plus uniforme des load et des store. Ajout load/store sur int32 et float32
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2781 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-02-04 13:47:25 +00:00
Xavier Leroy
cc0f32b054
Changement de la licence
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2553 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1999-11-17 18:59:06 +00:00
Xavier Leroy
80a18abcec
fmovd -> 2 fmovs (car l'assembleur GNU ne comprend pas fmovd)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2197 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-11-26 09:34:46 +00:00
Xavier Leroy
59cb8750d2
Simplification des modes d'adressage: suppression du mode Iindexed2, inefficace et genant le bon scheduling
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2133 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-10-20 15:27:27 +00:00
Xavier Leroy
6813c409c9
Portage SparcLinux
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1951 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-05-11 14:57:23 +00:00
Xavier Leroy
4b87c64279
Retour en arriere sur la modif des offsets dans les descripteurs de frames
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1811 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-11-27 16:28:21 +00:00
Xavier Leroy
ba8856fa7b
Suite a la nouvelle interface avec le GC: stocker les offsets dans les frame descriptors sans le 96 en plus
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1803 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-11-25 12:59:56 +00:00
Xavier Leroy
144a8147db
Tabs
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1676 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-30 12:25:47 +00:00
Xavier Leroy
572d7fce33
Etiquettes de donnees a partir de 100000 au lieu de 10000
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1665 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-27 09:44:27 +00:00
Xavier Leroy
5095724f32
Nouvelle architecture des parties dependantes du processeur
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1656 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1997-07-24 13:36:24 +00:00