From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by sympa.inria.fr (Postfix) with ESMTPS id BB0BE7ED5C for ; Thu, 9 Aug 2012 01:34:58 +0200 (CEST) Received-SPF: None (mail1-smtp-roc.national.inria.fr: no sender authenticity information available from domain of anil@recoil.org) identity=pra; client-ip=89.16.177.154; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="anil@recoil.org"; x-sender="anil@recoil.org"; x-conformance=sidf_compatible Received-SPF: None (mail1-smtp-roc.national.inria.fr: no sender authenticity information available from domain of anil@recoil.org) identity=mailfrom; client-ip=89.16.177.154; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="anil@recoil.org"; x-sender="anil@recoil.org"; x-conformance=sidf_compatible Received-SPF: None (mail1-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@dark.recoil.org) identity=helo; client-ip=89.16.177.154; receiver=mail1-smtp-roc.national.inria.fr; envelope-from="anil@recoil.org"; x-sender="postmaster@dark.recoil.org"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AuACAGf2IlBZELGagWdsb2JhbABFugYBARYmJ4IgAQEEATo/BQsLGC4hNgYTh34DBgoHsgUNiUoEii1lhgBgA4hOiycBgVOFfoUMiAQ X-IronPort-AV: E=Sophos;i="4.77,735,1336341600"; d="scan'208";a="169431667" Received: from recoil.dh.bytemark.co.uk (HELO dark.recoil.org) ([89.16.177.154]) by mail1-smtp-roc.national.inria.fr with SMTP; 09 Aug 2012 01:34:58 +0200 Received: (qmail 24735 invoked by uid 634); 8 Aug 2012 23:34:58 -0000 X-Spam-Level: * X-Spam-Check-By: dark.recoil.org Received: from Unknown (HELO [192.168.65.255]) (207.239.114.206) (smtp-auth username remote@recoil.org, mechanism cram-md5) by dark.recoil.org (qpsmtpd/0.84) with ESMTPA; Thu, 09 Aug 2012 00:34:57 +0100 Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 6.0 \(1485\)) From: Anil Madhavapeddy In-Reply-To: Date: Wed, 8 Aug 2012 16:34:52 -0700 Cc: Alain Frisch , Dmitry Bely , "caml-list@inria.fr List" , PALI Gabor Janos Content-Transfer-Encoding: quoted-printable Message-Id: References: <501F9855.6080709@frisch.fr> <501F9DB9.2050805@frisch.fr> <501FAB4A.107@frisch.fr> <5022A9FE.4050006@frisch.fr> To: Jesper Louis Andersen X-Mailer: Apple Mail (2.1485) X-Virus-Checked: Checked by ClamAV on dark.recoil.org Subject: Re: [Caml-list] Compiler bug? On 8 Aug 2012, at 11:22, Jesper Louis Andersen wrote: > On Wed, Aug 8, 2012 at 8:03 PM, Alain Frisch wrote: >=20 >> I'm not sure, someone else would have to reply! I guess that these >> registers are supposed to be preserved by the callee in the x64 ABI (and >> obviously, they don't hold pointers to OCaml values, so they don't have = to >> be tracked by the GC). >=20 > Also, the GC itself will not be using Floating Point code at all, so > we can save a lot by not saving/restoring these values on the stack. > It is akin to what the Linux kernel does: trap on the first FP > instruction and only then do work to save/restore the FP context - but > here we know a priori we never will access FP. By doing so we can cut > the time to the GC call down - and reap the benefits by having a > faster GC cycle. The GC does use floating point code in places. See byterun/major_gc.c and the caml_major_collection_slice() function. Gabor Pali is hacking on a FreeBSD kernel module port of the OCaml runtime [1] and disabled all the FP use to run without tripping over the trap checks in kFreeBSD [2]. [1] https://github.com/pgj/mirage-kfreebsd [2] https://github.com/pgj/mirage-kfreebsd/commit/4c1859b88d6da540e7246e493= 809ff6f38ea344e -anil=