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

I should have been a bit clearer here. I meant that optimizations that are available from
STG -> Assembler, are better than STG -> C -> Assembler.

GHC currently doesn't do most of the optimizations I am thinking of.
-- Bit tagging to reduce pointer chasing, speed up pattern matching. Due to memory latency and speed it is quicker to do bit masking rather than memory reads -- Parameter passing and regisgter usage opimizations that rely on the structure of the RTS.
-- Multiple stacks with custom frame layout.
-- dynamic code optimization etc.
-- Taking advantage of special assember instructions and flags.

Though I have also seen comments that you can do a lot of these with GCC if you do your own stack and parameter management. i.e. don't use the C stack at all.

Though your suggestions are probably better than nothing, which is probably what the alternative is (for instance I have not sufficient time to work on these things).

Note that I didn't say that the assembly generation of OCAML was better than GCC, just that it was comparable.

Rene.


_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to