X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fdriver%2Fghc.lprl;h=ff08503cad3ac36bb65d80ac884416e6b028d0ca;hb=be1c09e748d4485b4188be256f7772d7b3895101;hp=95eae3ba12ef781462687ddc355c0dcd32242830;hpb=b3e36b5be2c5e5225de413ede8f9e203fc5237d7;p=ghc-hetmet.git diff --git a/ghc/driver/ghc.lprl b/ghc/driver/ghc.lprl index 95eae3b..ff08503 100644 --- a/ghc/driver/ghc.lprl +++ b/ghc/driver/ghc.lprl @@ -281,11 +281,11 @@ these are turned off by -Wnot. '-fwarn-missing-methods', '-fwarn-duplicate-exports'); @MinusWOpts = (@StandardWarnings, - '-fwarn-incomplete-patterns', '-fwarn-unused-binds', + '-fwarn-unused-matches', + '-fwarn-incomplete-patterns', '-fwarn-unused-imports'); @MinusWallOpts = (@MinusWOpts, - '-fwarn-unused-matches', '-fwarn-type-defaults', '-fwarn-name-shadowing', '-fwarn-missing-signatures'); @@ -702,7 +702,6 @@ sub setupOptimiseFlags { '-ffoldr-build-on', '-fdo-eta-reduction', - '-fdo-case-elim', '-fdo-lambda-eta-expansion', '-fcase-of-case', '-fcase-merge', @@ -776,6 +775,11 @@ sub setupOptimiseFlags { '-fcse', # CSE must immediately follow a simplification pass, because it relies # on the no-shadowing invariant. See comments at the top of CSE.lhs + '-ffull-laziness', # nofib/spectral/hartel/wang doubles in speed if you + # do full laziness late in the day. It only happens + # after fusion and other stuff, so the early pass doesn't + # catch it. For the record, the redex is + # f_el22 (f_el21 r_midblock) '-ffloat-inwards', # Case-liberation for -O2. This should be after @@ -1076,6 +1080,7 @@ sub setupLinkOpts { ,'-u', "${uscore}PrelPack_unpackCString_closure" ,'-u', "${uscore}PrelException_stackOverflow_closure" ,'-u', "${uscore}PrelException_heapOverflow_closure" + ,'-u', "${uscore}PrelException_NonTermination_static_closure" )); if (!$NoHaskellMain) { unshift (@Ld_flags,'-u', "${uscore}PrelMain_mainIO_closure"); @@ -1457,7 +1462,7 @@ Now the Haskell compiler, C compiler, and assembler } if (-f $hsc_out_c_stub) { - &run_something("cp $hsc_out_c_stub $ofile_c_stub_target", 'Copy foreign export C stubs'); + &run_something("rm -f $ofile_c_stub_target && echo '#include \"${ofile_h_stub_target}\"' > $ofile_c_stub_target && cat $hsc_out_c_stub >> $ofile_c_stub_target", 'Copy foreign export C stubs'); local ($hsc_out_s_stub); local ($hsc_out_o_stub); ($ofile_s_stub_target = $ofile_c_stub_target) =~ s/\.(.*)$/\.s/;