X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fmain%2FDriverFlags.hs;h=65080f2599b2a08afdd4bf07713c8b01701a0f1b;hb=114470474d2e037d16b736354070fa03181e8348;hp=333b23072d1a4516456eb5018d46450571646699;hpb=51f8f0f50c1a709ed898d149f458f781279fa4c6;p=ghc-hetmet.git diff --git a/ghc/compiler/main/DriverFlags.hs b/ghc/compiler/main/DriverFlags.hs index 333b230..65080f2 100644 --- a/ghc/compiler/main/DriverFlags.hs +++ b/ghc/compiler/main/DriverFlags.hs @@ -1,7 +1,7 @@ {-# OPTIONS -#include "hschooks.h" #-} ----------------------------------------------------------------------------- --- $Id: DriverFlags.hs,v 1.69 2001/09/06 15:43:35 simonpj Exp $ +-- $Id: DriverFlags.hs,v 1.77 2001/10/26 00:53:27 sof Exp $ -- -- Driver flags -- @@ -222,6 +222,7 @@ static_flags = , ( "keep-hc-file" , AnySuffix (\_ -> writeIORef v_Keep_hc_files True) ) , ( "keep-s-file" , AnySuffix (\_ -> writeIORef v_Keep_s_files True) ) , ( "keep-raw-s-file", AnySuffix (\_ -> writeIORef v_Keep_raw_s_files True) ) + , ( "keep-il-file" , AnySuffix (\_ -> writeIORef v_Keep_il_files True) ) , ( "keep-tmp-files" , AnySuffix (\_ -> writeIORef v_Keep_tmp_files True) ) , ( "split-objs" , NoArg (if can_split @@ -272,6 +273,9 @@ static_flags = , ( "fmax-simplifier-iterations", Prefix (writeIORef v_MaxSimplifierIterations . read) ) + , ( "frule-check", + SepArg (\s -> writeIORef v_RuleCheck (Just s)) ) + , ( "fusagesp" , NoArg (do writeIORef v_UsageSPInf True add v_Opt_C "-fusagesp-on") ) @@ -296,12 +300,14 @@ static_flags = dynamic_flags = [ ( "cpp", NoArg (updDynFlags (\s -> s{ cppFlag = True })) ) + , ( "F", NoArg (updDynFlags (\s -> s{ ppFlag = True })) ) , ( "#include", HasArg (addCmdlineHCInclude) ) , ( "v", OptPrefix (setVerbosity) ) , ( "optL", HasArg (addOpt_L) ) , ( "optP", HasArg (addOpt_P) ) + , ( "optF", HasArg (addOpt_F) ) , ( "optc", HasArg (addOpt_c) ) , ( "optm", HasArg (addOpt_m) ) , ( "opta", HasArg (addOpt_a) ) @@ -343,7 +349,7 @@ dynamic_flags = [ , ( "ddump-simpl", NoArg (setDynFlag Opt_D_dump_simpl) ) , ( "ddump-simpl-iterations", NoArg (setDynFlag Opt_D_dump_simpl_iterations) ) , ( "ddump-spec", NoArg (setDynFlag Opt_D_dump_spec) ) - , ( "ddump-sat", NoArg (setDynFlag Opt_D_dump_sat) ) + , ( "ddump-prep", NoArg (setDynFlag Opt_D_dump_prep) ) , ( "ddump-stg", NoArg (setDynFlag Opt_D_dump_stg) ) , ( "ddump-stranal", NoArg (setDynFlag Opt_D_dump_stranal) ) , ( "ddump-tc", NoArg (setDynFlag Opt_D_dump_tc) ) @@ -459,7 +465,8 @@ buildStaticHscOpts = do 0 -> hsc_minusNoO_flags 1 -> hsc_minusO_flags 2 -> hsc_minusO2_flags - _ -> error "unknown opt level" + n -> throwDyn (CmdLineError ("unknown optimisation level: " + ++ show n)) -- ToDo: -Ofile -- take into account -fno-* flags by removing the equivalent -f* @@ -482,7 +489,7 @@ buildStaticHscOpts = do machdepCCOpts | prefixMatch "alpha" cTARGETPLATFORM - = return ( ["-static"], ["-w"] ) + = return ( ["-static", "-w", "-mieee"], [] ) -- For now, to suppress the gcc warning "call-clobbered -- register used for global register variable", we simply -- disable all warnings altogether using the -w flag. Oh well. @@ -536,6 +543,7 @@ machdepCCOpts addOpt_L a = updDynFlags (\s -> s{opt_L = a : opt_L s}) addOpt_P a = updDynFlags (\s -> s{opt_P = a : opt_P s}) +addOpt_F a = updDynFlags (\s -> s{opt_F = a : opt_F s}) addOpt_c a = updDynFlags (\s -> s{opt_c = a : opt_c s}) addOpt_a a = updDynFlags (\s -> s{opt_a = a : opt_a s}) addOpt_m a = updDynFlags (\s -> s{opt_m = a : opt_m s})