diff options
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/ghc.mk | 15 | ||||
| -rw-r--r-- | compiler/parser/Parser.y.pp | 8 | 
2 files changed, 9 insertions, 14 deletions
diff --git a/compiler/ghc.mk b/compiler/ghc.mk index 1149fbdf1e..770f580c07 100644 --- a/compiler/ghc.mk +++ b/compiler/ghc.mk @@ -341,20 +341,23 @@ else  compiler_CONFIGURE_OPTS += --ghc-option=-DNO_REGS  endif +# Careful optimisation of the parser: we don't want to throw everything +# at it, because that takes too long and doesn't buy much, but we do want +# to inline certain key external functions, so we instruct GHC not to +# throw away inlinings as it would normally do in -O0 mode. +compiler/stage1/build/Parser_HC_OPTS += -O0 -fno-ignore-interface-pragmas  # If we're bootstrapping the compiler during stage2, or we're being  # built by a GHC whose version is > 7.8, we need -fcmm-sink to be  # passed to the compiler. This is required on x86 to avoid the  # register allocator running out of stack slots when compiling this  # module with -fPIC -dynamic. +# See #8182 for all the details  ifeq "$(CMM_SINK_BOOTSTRAP_IS_NEEDED)" "YES"  compiler/stage1/build/Parser_HC_OPTS += -fcmm-sink  endif -# However, we may be using e.g. 7.6, and thus the bootstrap compiler -# does not need to pass -fcmm-sink, but stage1+ does! -# We pass -fcmm-sink to every stage != 1 -# See #8182 for all the details -compiler/stage2/build/Parser_HC_OPTS += -fcmm-sink -compiler/stage3/build/Parser_HC_OPTS += -fcmm-sink +# We also pass -fcmm-sink to every stage != 1 +compiler/stage2/build/Parser_HC_OPTS += -O0 -fno-ignore-interface-pragmas -fcmm-sink +compiler/stage3/build/Parser_HC_OPTS += -O0 -fno-ignore-interface-pragmas -fcmm-sink  ifeq "$(GhcProfiled)" "YES" diff --git a/compiler/parser/Parser.y.pp b/compiler/parser/Parser.y.pp index b18d0d35c6..bd2bd0b922 100644 --- a/compiler/parser/Parser.y.pp +++ b/compiler/parser/Parser.y.pp @@ -16,14 +16,6 @@  --     http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings  -- for details -{-# OPTIONS_GHC -O0 -fno-ignore-interface-pragmas #-} -{- -Careful optimisation of the parser: we don't want to throw everything -at it, because that takes too long and doesn't buy much, but we do want -to inline certain key external functions, so we instruct GHC not to -throw away inlinings as it would normally do in -O0 mode. --} -  module Parser ( parseModule, parseStmt, parseIdentifier, parseType,                  parseHeader ) where  | 
