Turn on -O2 for the RTS by default
authorSimon Marlow <marlowsd@gmail.com>
Fri, 26 Oct 2012 10:12:49 +0000 (11:12 +0100)
committerSimon Marlow <marlowsd@gmail.com>
Thu, 1 Nov 2012 10:13:17 +0000 (10:13 +0000)
Optimisation now makes a difference when compiling .cmm code, because
it enables the optimisation passes in CmmPipeline.  Recently validate
has not been optimising the .cmm code because it uses SRC_HC_OPTS=-O0,
which explains why I couldn't reproduce #7366 in validate (the bug
miscompiled rts/PrimOps.cmm).

mk/config.mk.in

index a906d25..f8d4d6a 100644 (file)
@@ -360,9 +360,11 @@ LAX_DEPENDENCIES = NO
 # ----------------------------------------------------------------------------
 # Options for GHC's RTS
 
-# For an optimised RTS (you probably don't want to change these; we build
-# a debugging RTS by default now.  Use -debug to get it).
-GhcRtsHcOpts=-optc-O2
+# Build an optimised RTS.  Remember that we need to turn on
+# optimisation both for C code (-optc-O2) and .cmm code (-O2).  For
+# the debugging RTS flavour, rts/ghc.mk overrides these to turn off
+# optimisation.
+GhcRtsHcOpts=-optc-O2 -O2
 GhcRtsCcOpts=-fomit-frame-pointer
 
 # Include the front panel code?  Needs GTK+.