From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id pBID8UKx027900 for ; Sun, 18 Dec 2011 14:08:31 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ai0BAHnk7U5KfVM2kGdsb2JhbABDq1EIIgEBAQEJCQ0HFAQhgXIBAQECAQESAiwBATcBBAsLEiISNAEFAQ4OBicOh1gCBpoiCoozhB0BjUADBIshY6J6PYN6 X-IronPort-AV: E=Sophos;i="4.71,371,1320620400"; d="scan'208";a="135911929" Received: from mail-ee0-f54.google.com ([74.125.83.54]) by mail1-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 18 Dec 2011 14:08:25 +0100 Received: by eekc50 with SMTP id c50so5937004eek.27 for ; Sun, 18 Dec 2011 05:08:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=subject:mime-version:content-type:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to:x-mailer; bh=HqQr1n3Z0rcjd5pMjdMBz3+3HfhyA+bbWLuKDuBL/d0=; b=pbsPRRu79j3gjX06L35KtcsFFpFEtTgkaEqTDW1RpJ25DohS2lM7dA1UrisL+SOXUM fUOmJyQqvbQIT9xuTBYnPk1B/+6YiVIvFWRkoxKRXuit9TuuuQAl3Z9M2qdFLkKEos/R HJ+TAdJiCbwZMuEi5Ju5jOJEDI1cyakEWYJn8= Received: by 10.14.2.97 with SMTP id 73mr2180648eee.45.1324213703958; Sun, 18 Dec 2011 05:08:23 -0800 (PST) Received: from coruscant.kosmos.all (ip-95-223-170-32.unitymediagroup.de. [95.223.170.32]) by mx.google.com with ESMTPS id t59sm12016623eeh.10.2011.12.18.05.08.21 (version=SSLv3 cipher=OTHER); Sun, 18 Dec 2011 05:08:22 -0800 (PST) Mime-Version: 1.0 (Apple Message framework v1251.1) Content-Type: text/plain; charset=iso-8859-1 From: Benedikt Meurer In-Reply-To: Date: Sun, 18 Dec 2011 14:08:23 +0100 Cc: =?iso-8859-1?Q?St=E9phane_Glondu?= , Mehdi Dogguy Message-Id: References: <55531934-37A5-4CC5-AB67-20CE4CCE8269@googlemail.com> <4EE37070.4010702@inria.fr> <4EE63E88.40805@glondu.net> To: caml users X-Mailer: Apple Mail (2.1251.1) Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by walapai.inria.fr id pBID8UKx027900 Subject: [Caml-list] Re: New experimental ARM backend [was: OCaml maintenance status / community fork (again)] 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