On 06/12/12 21:35, Brandon Allbery wrote:
On Thu, Dec 6, 2012 at 4:04 PM, Simon Marlow <marlo...@gmail.com
<mailto:marlo...@gmail.com>> wrote:
On 05/12/12 15:17, Brandon Allbery wrote:
Probably none; on most platforms you're actually generating
different
code (dynamic libraries require generation of position-independent
Sure there's a lot of differences in the generated code, but inside
GHC these differences only appear at the very last stage of the
pipeline, native code generation (or LLVM). All the stages up to
that can be shared, which accounts for roughly 80% of compilation
time (IIRC).
I was assuming it would be difficult to separate those stages of the
internal compilation pipeline out, given previous discussions of how
said pipeline works. (In particular I was under the impression
saving/restoring state in the pipeline to rerun the final phase with
multiple code generators was not really possible, and multithreading
them concurrently even less so.)
I don't think there's any problem (unless I've forgotten something). In
fact, the current architecture should let us compile one function at a
time both ways, so we don't get a space leak by retaining all the Cmm code.
Cheers,
Simon
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users