[fedora-arm] FYI: New OCaml ARM code generator

Richard W.M. Jones rjones at redhat.com
Fri Apr 27 21:46:24 UTC 2012


I'm in the process of backporting the new, rewritten OCaml ARM code
generator to OCaml 3.12.1.  This may necessitate recompiling all OCaml
packages in ARM, but I'll also start on that tomorrow.

The particular reason for doing this is support for natdynlink
(dynamic linking of OCaml code -- think of it as the equivalent of
'dlopen' for OCaml native code).  Having this will enhance a few OCaml
packages in Fedora/ARM and bring them up to par with their x86 cousins.

Here are the highlights of the new implementation taken from the
upstream commit message:

  - Support for both software and hardware floating-point (VFPv3).

  - Properly supports interworking with Thumb/Thumb-2 code for both
    OCaml and C code.

  - Supports dynamic linking and large memory models (PR#5049).

  - Optional support for position-independent code via a command line
    option -fPIC. This is disabled by default and not required for
    natdynlink.

  - Can emit both ARM and Thumb-2 code, with avg. code size savings of
    28% for Thumb-2 (quite close the optimal 30% advertised by ARM
    Ltd.).

  - Supports both AAPCS (armel) as well as extended VFP calling
    conventions (armhf).

  - Supports several special ARM instructions to reduce code size and
    latency.

  - Uses standard ARM EABI runtime functions instead of relying on GCC
    internals.

  - Supports exception backtraces.

  - Supports profiling using gprof.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
New in Fedora 11: Fedora Windows cross-compiler. Compile Windows
programs, test, and build Windows installers. Over 70 libraries supprt'd
http://fedoraproject.org/wiki/MinGW http://www.annexia.org/fedora_mingw


More information about the arm mailing list