Version française
Home     About     Download     Resources     Contact us    
Browse thread
Comparison of OCaml and MLton for numerics
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Alain Frisch <Alain.Frisch@i...>
Subject: Re: [Caml-list] Comparison of OCaml and MLton for numerics
Brian Hurt wrote:
> where the function is only called from one place, or 3) where inlining
> opened up signifigant other optimization opportunities.  The classic
> example for Ocaml here is replacing a call to Pervasives.compare with an
> integer compare.  Most of the rest of the time, inlining is either a
> break even proposition, or often a loss.

Another good situation is when inlining allows the compiler to turn a
function call to an unknown location into a direct function call (or no
function call at all). This happens as soon as you write "List.map (fun
x -> ...)". Inlining List.map would avoid the allocation of the closure
and a computed call (and then the local abstraction will also be inlined
in the body of the inlined List.map because it is used only once).
Currently, OCaml never inlines recursive functions.

-- Alain