On Dec 18, 2011, at 12:57 , Benedikt Meurer wrote: >> - Support for both softfp and VFPv3-D16 (if present). >> - Properly supports interworking with Thumb/Thumb-2 code (for both OCaml and >> C code!) >> - Supports dynamic linking and large memory models. >> - Optional support for position-independent code via -fPIC, disabled by >> default and not required for natdynlink. >> - Can emit both ARM and Thumb-2 code (currently Thumb-2 is used for ARMv7+ >> and ARM is used for everything else), with avg. code size savings of 27% for >> Thumb-2 (quite close the optimal 30% advertised by ARM Ltd.). I may also add >> support to emit small functions using Thumb-1 (for pre-ARMv7 / armel) in the >> future to reduce code size. >> - Supports both AAPCS (armel) as well as extended VFP calling conventions >> (armhf). >> - Properly supports backtraces. >> - Recognizes several special ARM instructions (=> reduced code size and >> latency). >> - Does not rely on GCC internals, but uses the standard ARM EABI runtime. > > - Support for both VFPv3-D16 and VFPv3(-D32), using ocamlopt switch -ffpu > (armhf only). > - Support for architecture selection using -farch. > - Support for profiling using gprof. > - Code cleanups. > - Confirmed to work with Debian/armel on ARM9 / Cortex-A8 and Debian/armhf on > Cortex-A8.
Some notes about performance of the new backend: It is up to 4x faster (Cortex-A8 / armhf) and code size is reduced by up to 28% compared to the 3.12.1 backend (Cortex-A8 / armel). See [1] for details. > Testers and feedback welcome. While we are at it: Can we have this patch applied to the Debian OCaml package? This would (a) get OCaml running native on armhf and (b) get some testing / feedback for the patch. HTH, Benedikt [1] https://github.com/downloads/bmeurer/ocaml-arm/ocaml-arm-3.12.1+20111218-benchmark.pdf -- Caml-list mailing list. Subscription management and archives: https://sympa-roc.inria.fr/wws/info/caml-list Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
