On Tue, Dec 13, 2011 at 09:39:03PM +0100, Benedikt Meurer wrote:
> You can grab my current patch for the new OCaml ARM backend at:
> 
>  http://ps.informatik.uni-siegen.de/~meurer/tmp/ocaml-arm-20111213.diff
> 
> Compared to the old backend, this one does the following:
> 
> - 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.

Dear Benedikt,

This looks like an impressive amount of work.  I'd like to suggest that a good
approach to getting some/all of this merged might be to divide the patch up
into smaller units each addressing a particular deficiency or implementing
a particular feature.  In that way it should be more straightforward to
understand the effects on the whole system of each particular patch and
maintain stability and compatibility.  I understand that this might cause some
work and that some of the patches might be intertwined.  (Another approach
might be to introduce this backend as a second ARM backend with the
understanding that it may be experimental to a certain extent---but I think
that's less satisfactory, and less likely to find favour with everyone.)

Which items from the above list would you most like to see in the core
distribution?  I would have thought the basic VFP support was fairly high
up the list.

Mark

-- 
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

Reply via email to