
On 10 August 2006 06:32, Peter Tanski wrote:
for the Makefile in ghc/rts, in lines 300-346, GC_HC_OPTS += -optc-O3 --isn't this problematic? gcc, from -O2 on includes
-fgcse which
may *reduce* runtime performance in programs using
computed
gotos; -fgcse is actually run twice, because -frerun-cse-after-loop is also set at -O2. Would it
be better to
pass individual flags, such as -funroll-loops and -falign-loops=16 (ppc, Intel setting)?
Possibly, yes. IIRC, -O3 was mainly to get some loop unrolling. This is a performance-critical part of the system though, and when making any changes we like to measure things to make sure we haven't pessimised performance.
(3) I have been looking at how to implement a dual-constructor-in-a- pointer for Integer (i.e., merge constructors of small Integers and big Integers into the Int#). Would that solution be workable or might it break current Haskell programs? Just a thought.
Which representation in particular are you talking about here? Cheers, Simon