caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Benedikt Meurer <benedikt.meurer@googlemail.com>
To: caml users <caml-list@inria.fr>
Subject: [Caml-list] Re: New experimental ARM backend [was: OCaml maintenance status / community fork (again)]
Date: Sun, 18 Dec 2011 12:57:45 +0100	[thread overview]
Message-ID: <AB320EDD-5A86-413C-AFBF-A6A40E4E9AE8@googlemail.com> (raw)
In-Reply-To: <C2D371F3-9553-4D85-821A-E521BDC2FA91@googlemail.com>


On Dec 13, 2011, at 21:39 , 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.

I've updated the backend, and a new patch is available for testing at [1], you can also test it by cloning the ocaml-arm repository at [2], some documentation is available on the Wiki at [3].

The following new features are included:

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

Testers and feedback welcome.

greets,
Benedikt

[1] https://github.com/downloads/bmeurer/ocaml-arm/ocaml-arm-3.12.1+20111218.diff.bz2
[2] https://github.com/bmeurer/ocaml-arm
[3] https://github.com/bmeurer/ocaml-arm/wiki

  parent reply	other threads:[~2011-12-18 11:57 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-08  9:10 [Caml-list] OCaml maintenance status / community fork (again) Benedikt Meurer
2011-12-08  9:54 ` Alain Frisch
2011-12-08 10:28   ` Benedikt Meurer
2011-12-08 10:46     ` Alain Frisch
2011-12-08 11:08       ` Benedikt Meurer
2011-12-08 16:42       ` Fabrice Le Fessant
2011-12-08 10:47     ` ivan chollet
2011-12-08 14:07       ` oliver
2011-12-08 11:11     ` Pierre-Alexandre Voye
2011-12-08 18:18       ` Török Edwin
2011-12-09 21:42         ` oliver
2011-12-08 10:16 ` Gabriel Scherer
2011-12-08 11:07 ` Stéphane Glondu
2011-12-09  2:11 ` Jacques Garrigue
2011-12-09 10:37   ` Jérémie Dimino
2011-12-09 11:03     ` Gabriel Scherer
2011-12-09 11:17       ` Stefano Zacchiroli
2011-12-09 11:50         ` Jonathan Protzenko
2011-12-09 12:36           ` Alain Frisch
2011-12-09 23:22         ` Goswin von Brederlow
2011-12-09 22:33       ` oliver
2011-12-09 14:24     ` Benedikt Meurer
2011-12-09 17:00       ` Mehdi Dogguy
2011-12-09 17:36         ` Benedikt Meurer
2011-12-09 17:45           ` Mehdi Dogguy
2011-12-09 23:24             ` Goswin von Brederlow
2011-12-10  9:31               ` Benedikt Meurer
2011-12-10 14:45 ` Xavier Leroy
2011-12-10 15:58   ` Benedikt Meurer
2011-12-12 10:21     ` Xavier Leroy
2011-12-12 10:59       ` Benedikt Meurer
2011-12-12 12:20         ` Mehdi Dogguy
2011-12-12 15:17           ` Goswin von Brederlow
2011-12-19  4:09           ` Romain Beauxis
2011-12-19 17:35             ` Alain Frisch
2011-12-12 12:57         ` Gerd Stolpmann
2011-12-10 17:06   ` Török Edwin
2011-12-10 18:28   ` Jérémie Dimino
2011-12-10 18:34     ` Wojciech Meyer
2011-12-10 19:10       ` Wojciech Meyer
2011-12-10 20:55         ` Jérémie Dimino
2011-12-10 21:40           ` [Caml-list] Camlp4/p5 type reflection [was: OCaml maintenance status / community fork (again)] Wojciech Meyer
2011-12-10 23:34             ` Gabriel Scherer
2011-12-11  0:47               ` [Caml-list] Camlp4/p5 type reflection [ Wojciech Meyer
2011-12-11 11:19                 ` Gabriel Scherer
2011-12-11 18:14                   ` Jérémie Dimino
2011-12-11  9:04               ` [Caml-list] Camlp4/p5 type reflection [was: OCaml maintenance status / community fork (again)] Stéphane Glondu
2011-12-11  9:36                 ` Török Edwin
2011-12-11 10:29                 ` Gabriel Scherer
2011-12-11 11:23                   ` Gerd Stolpmann
2011-12-11 11:38                     ` Gabriel Scherer
2011-12-11 10:20               ` Fabrice Le Fessant
2011-12-11 10:47                 ` Gabriel Scherer
2011-12-11 13:27               ` Alain Frisch
2011-12-11 13:35                 ` Gabriel Scherer
2011-12-11 13:42                   ` Alain Frisch
2011-12-11 13:36                 ` Arnaud Spiwack
2011-12-11 13:46                 ` Stéphane Glondu
2011-12-10 23:28   ` [Caml-list] OCaml maintenance status / community fork (again) Jesper Louis Andersen
2011-12-11 11:02     ` Gerd Stolpmann
2011-12-13 19:36       ` oliver
2011-12-14 12:13         ` Gerd Stolpmann
2011-12-16 10:03           ` Stéphane Glondu
2011-12-11 13:33   ` Goswin von Brederlow
2011-12-11 13:59     ` [Caml-list] Community distribution [was: OCaml maintenance status / community fork (again)] Benedikt Meurer
2011-12-12 17:48   ` [Caml-list] OCaml maintenance status / community fork (again) Stéphane Glondu
2011-12-13 20:39     ` [Caml-list] New experimental ARM backend [was: OCaml maintenance status / community fork (again)] Benedikt Meurer
2011-12-14  9:18       ` Mark Shinwell
2011-12-14 21:51         ` Benedikt Meurer
2011-12-18 11:57       ` Benedikt Meurer [this message]
2011-12-18 13:08         ` [Caml-list] " Benedikt Meurer
2011-12-18 14:50           ` Alexandre Pilkiewicz
2011-12-18 16:42             ` Benedikt Meurer
2011-12-18 17:23           ` Stéphane Glondu
2011-12-21 10:11             ` [Caml-list] " Benedikt Meurer
2011-12-18 13:16         ` [Caml-list] " Benedikt Meurer
2011-12-17 18:36   ` [Caml-list] OCaml maintenance status / community fork (again) Stéphane Glondu
2011-12-18  4:25     ` Till Varoquaux

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AB320EDD-5A86-413C-AFBF-A6A40E4E9AE8@googlemail.com \
    --to=benedikt.meurer@googlemail.com \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).