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
9c1d005ebb
New back-end optimization pass: dead code elimination.
...
(Removes arithmetic and load instructions whose results are unused.)
(Cherry-picked from branch backend-optim.)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14686 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-26 09:31:18 +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
Fabrice Le Fessant
9b53f8b10d
Re-add configure option -with-frame-pointers
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13738 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-03 18:03:59 +00:00
Fabrice Le Fessant
97bc1fa9e2
Reverting -with-frame-pointers
...
Fails to compile alt-ergo without frame-pointers. No time to debug
before tonight, so I revert and will merge again after fixing the
problem.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13732 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-03 06:29:33 +00:00
Fabrice Le Fessant
1b2667b9f2
Add -with-frame-pointers to ./configure
...
This option can be used to tell the native compiler that it should
update frame pointers, so that debuggers and profiling tools
(especially Linux perf) can use them. For now, it is only supported
by the Unix/amd64 port.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13730 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-03 04:42:42 +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
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
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
Damien Doligez
0c3a7de507
merge changes from 4.00 branching to 4.00.0 (part 1)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12784 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-07-26 19:21:54 +00:00
Xavier Leroy
79eab1a6e2
PR#5513: protect against min_int / -1 crashing on x86
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12187 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-02-24 10:13:02 +00:00
Benedikt Meurer
fb327a7c2b
Also pass Cmm.memory_chunk to select_addressing.
...
The rational behind this change is that for the ARM instruction sets, the
valid range for address offsets depends on the type of data being loaded
or stored.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12120 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-02-04 09:43:33 +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
Xavier Leroy
8e5b81144b
PR#5027: method! for overriding
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@10296 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2010-04-22 12:51:06 +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
Xavier Leroy
9ccb911666
Can select which assembler to use at configuration time (PR#4171)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8462 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2007-10-30 12:37:16 +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
2413371d18
Prevoir d'avoir des options de ligne de commande specifiques a un processeur
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@5304 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2002-11-29 15:03:37 +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
bae1b84692
Faire Filename.quote sur les noms de fichiers passes au compilo C, etc (PR#896)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@4516 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2002-03-12 16:17:53 +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
Pierre Weis
2116da4220
Getting rid of obsolete boolean operators & and or
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3359 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-12-28 13:07:42 +00:00
Pierre Weis
9abfff060e
Suppression de Formatmsg, réécriture des messages à l'aide de Format.fprintf
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@3123 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-04-21 08:13:22 +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
Pierre Weis
39553e9972
Révision de l'impression à l'aide de format: utilisation de printf
...
pour condenser les programmes et aussi préparer une future (éventuelle)
internationalisation d'Objective Caml.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2796 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-02-08 20:00:06 +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
1442bc4dd8
23 registres entiers, pas 24
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2791 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2000-02-07 10:23:10 +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