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
Xavier Leroy
7984a93671
Bring stack backtraces up-to-date on PowerPC, incl. reraise.
...
Tested on PowerPC/Linux. Needs testing on PowerPC/MacOS X.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14324 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-11-28 14:43:56 +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
0773bfa849
Support raise_notrace under powerpc (not tested). Do not distinguish raise/reraise for now.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/raise_variants@14229 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-10-15 12:06:41 +00:00
Xavier Leroy
bfc08c41ac
PR#6049: support for OpenBSD/macppc
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13835 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-24 08:17:30 +00:00
Gabriel Scherer
c1da5f35cd
fix macppc build (patch by Anil Madhavapeddy)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13827 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-21 14:59:12 +00:00
Gabriel Scherer
75b8c0184f
PR#5933 type-specialize 'let compare = compare' on ints and strings
...
According to the reporter 'sliquister', type-specialized comparison
can nearly halve compilation time in some cases. This patch applies
type-specialization throughout the OCaml distribution sources, so not
all changes will have performance utility, but in this case I think
it's best to be consistent, as I see no downside to the change.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13410 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-03-19 07:22:12 +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
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
04b1656222
clean up spaces and tabs
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9547 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-01-22 12:48:24 +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
ed32f569e3
merge changes from ocaml3110 to ocaml3111rc0
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@9270 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2009-05-20 11:52:42 +00:00
Alain Frisch
a0e661f623
Roll-back: natdynlink won't be ported to PowerPC anytime soon.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8499 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2007-11-09 15:06:57 +00:00
Alain Frisch
3958a92c72
Merge the natdynlink branch into HEAD.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8477 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2007-11-06 15:16:56 +00:00
Damien Doligez
4167841b16
fusion de la version 3.10.0
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8416 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2007-10-08 14:19:34 +00:00
Xavier Leroy
4b5512c74c
Stack backtraces on uncaught exceptions in native code (merge of the opt_backtrace branch)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7812 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2007-01-29 12:11:18 +00:00
Xavier Leroy
d9be4fee6a
Portage PowerPC 64 bits
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7430 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2006-05-31 08:16:34 +00:00
Xavier Leroy
ab4160d21b
Typos
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6424 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2004-06-19 17:39:35 +00:00
Xavier Leroy
63b506d2cd
Suppression portage ocamlopt pour Power/AIX
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6423 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2004-06-19 16:17:31 +00:00
Xavier Leroy
96b512c1da
Utiliser bctrl plutot que blrl, evite de perturber la prediction des adresses de retour sur le G5
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6129 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2004-02-22 14:56:25 +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
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
Damien Doligez
0c39583400
alignement stack frames a 16 octets sur powerpc
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5607 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2003-06-20 15:17:52 +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
ec928fee86
PowerPC: traiter correctement les branchements conditionnels relatifs qui debordent (PR#723)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@4242 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2002-01-09 19:40:48 +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
600656aa48
Ajout load/store int32 et float32
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2792 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-02-07 10:23:22 +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
5ac8854085
Eviter d'emettre des addi 1, 1, 0 en cas de fonction qui n'utilise pas la pile
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1988 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-06-22 12:43:04 +00:00
Damien Doligez
c75800174b
Portage Rhapsody, suite et fin
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1888 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-03-13 19:31:32 +00:00
Damien Doligez
e6373b2028
Portage Rhapsody, suite
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1887 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-03-13 17:47:24 +00:00
Xavier Leroy
8a66e4a3cb
Portage Rhapsody, suite
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1886 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-03-13 15:06:16 +00:00
Xavier Leroy
e378bb74d8
Premier jet portage Rhapsody
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@1885 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1998-03-13 13:57:35 +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