* 64 bit SPARC code generator updated for ocaml 3.08.3
@ 2005-04-09 18:59 John Carr
2005-04-15 19:37 ` [Caml-list] " David MENTRE
0 siblings, 1 reply; 3+ messages in thread
From: John Carr @ 2005-04-09 18:59 UTC (permalink / raw)
To: caml-list
I updated my patches for 64 bit SPARC code to work with ocaml 3.08.3:
http://www.mit.edu/~jfc/ocaml-3.08.3-sparc64.tar.gz
There are two changes from the 3.08.1 version:
1. The 64 bit startup code did not allocate a large enough stack
frame, causing crashes in garbage collection in some programs
due to register window saves overwriting of the zero word that
terminates the chain of stack frames. If you want to fix this
without upgrading, change 176 to 208 in the save statement at
asmrun/sparc-sparc64.S line 319.
2. ocaml does not compile on Solaris because otherlibs/graph/.depend
contains references to /usr/X11R6; the install script deletes
these dependencies.
As before:
This only affects native code, ocamlopt.
Although the patched ocaml recognizes other 64 bit SPARC operating
systems, I only have access to Solaris 9.
Floats are still boxed in 64 bit code but are properly aligned,
potentially improving performance.
Here are run times for three of the microbenchmarks we discussed on
the list recently, from left to right lorentzian 200, sieve 10000000,
sort 10000:
lore siev sort
ML 32 6.78 1.52 2.87
ML 64 7.41 1.18 2.72
C 32 2.81 1.93 2.54*
C 64 2.92 3.50
ML 32 = ocamlopt 3.08.3 32 bit version with -march=v8
ML 64 = ocamlopt 3.08.3 64 bit version
C 32 = Sun C++ 5.5 -xO3 -xarch=v8plus except * = gcc 3.3.2
C 64 = Sun C++ 5.5 -xO3 -xarch=v9
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Caml-list] 64 bit SPARC code generator updated for ocaml 3.08.3
2005-04-09 18:59 64 bit SPARC code generator updated for ocaml 3.08.3 John Carr
@ 2005-04-15 19:37 ` David MENTRE
0 siblings, 0 replies; 3+ messages in thread
From: David MENTRE @ 2005-04-15 19:37 UTC (permalink / raw)
To: John Carr; +Cc: caml-list
John Carr <jfc@MIT.EDU> writes:
> Although the patched ocaml recognizes other 64 bit SPARC operating
> systems, I only have access to Solaris 9.
I have tried your patch on linux sparc64.
make opt.opt fails with following error:
make[2]: Entering directory `/home/david/ocaml-sparc/ocaml-3.08.3/camlp4/odyl'
cp odyl_config.ml odyl_config.ppo
../../ocamlcompopt.sh -warn-error A -I ../../otherlibs/dynlink -c -impl odyl_config.ppo
../tools/ocamlopt.sh: line 8: 11056 Segmentation fault $COMM $*
make[2]: *** [odyl_config.cmx] Error 139
I have applied your previous modification for gnu asm issue.
Yours,
d.
--
pub 1024D/A3AD7A2A 2004-10-03 David MENTRE <dmentre@linux-france.org>
5996 CC46 4612 9CA4 3562 D7AC 6C67 9E96 A3AD 7A2A
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: 64 bit SPARC code generator updated for ocaml 3.08.3
[not found] <425D3948.5090004@informatik.uni-oldenburg.de>
@ 2005-04-13 15:38 ` John Carr
0 siblings, 0 replies; 3+ messages in thread
From: John Carr @ 2005-04-13 15:38 UTC (permalink / raw)
To: Bernd Kuhls; +Cc: caml-list
> I tried to compile Ocaml 3.08.3 with your patches but I get this error:
> sparc-sparc64.S:190: Error: Illegal operands
The GNU assembler does not support the form of the "wr" pseudo-op
used in sparc-sparc64.S. Change line 190 from
wr %g1, %fprs ! say we do not need the registers preserved
to
wr %g1, 0, %fprs ! say we do not need the registers preserved
My gcc uses the Solaris assembler so I did not notice this problem.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2005-04-15 19:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-09 18:59 64 bit SPARC code generator updated for ocaml 3.08.3 John Carr
2005-04-15 19:37 ` [Caml-list] " David MENTRE
[not found] <425D3948.5090004@informatik.uni-oldenburg.de>
2005-04-13 15:38 ` John Carr
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox