inside the GHC code generator

Bulat Ziganshin bulat.ziganshin at gmail.com
Thu Feb 23 08:31:58 EST 2006


Hello Rene,

Thursday, February 23, 2006, 4:19:15 PM, you wrote:

RdV> The following link gives reasons for not generating via C
RdV> http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&selm=4zp8kn7xe.fsf_-_%40beta.franz.com

i read it now

RdV> Naturally a number of these are common lisp specific, however I think that
RdV> Haskell and GCC are quite semantically different, so using GCC might prevent
RdV> a lot of optimizations, that aren't possible in C, but would be in GHC.

seems that you don;t understand the situation. ghc compiles Haskell to
language called "core", do almost all optimizations at level of this
language, then translates final result to the "STG" language from that
the C-- code is generated. changing the translation of STG can't
prevent ANY ghc optimization. although iy is not so easy because ghc
code generation and RTS closely tied together

RdV> The OCAML-OPT backend is supposed to produce i386 assembly that is 
RdV> competitive with GCC. Maybe this could be ported to GHC?

can you please show the code for the factorial accumulating function:

factorial n r  =  if n=1  then r  else (factorial (n - 1) (n*r))

i think that ocaml can't generate code better than gcc and especially
icc (intel C/C++ compiler), but may be i'm wrong? ;)

-- 
Best regards,
 Bulat                            mailto:Bulat.Ziganshin at gmail.com



More information about the Glasgow-haskell-users mailing list