Commit Graph

41 Commits (c550f4b8583596b4b59662960371943e7f750fdf)

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