Use OPTIONS rather than OPTIONS_GHC for pragmas
[ghc-hetmet.git] / compiler / main / HscMain.lhs
index 93324d5..51d6d88 100644 (file)
@@ -5,6 +5,13 @@
 \section[GHC_Main]{Main driver for Glasgow Haskell compiler}
 
 \begin{code}
+{-# OPTIONS -w #-}
+-- The above warning supression flag is a temporary kludge.
+-- While working on this module you are encouraged to remove it and fix
+-- any warnings in the module. See
+--     http://hackage.haskell.org/trac/ghc/wiki/CodingStyle#Warnings
+-- for details
+
 module HscMain
     ( newHscEnv, hscCmmFile
     , hscFileCheck
@@ -53,7 +60,7 @@ import HsSyn          ( HsModule, LHsBinds, HsGroup, LIE, LImportDecl, HsDoc,
                           HaddockModInfo )
 import CoreSyn
 import SrcLoc          ( Located(..) )
-import StringBuffer    ( hGetStringBuffer, stringToStringBuffer )
+import StringBuffer
 import Parser
 import Lexer
 import SrcLoc          ( mkSrcLoc )
@@ -76,6 +83,7 @@ import SimplStg               ( stg2stg )
 import CodeGen         ( codeGen )
 import CmmParse                ( parseCmmFile )
 import CmmCPS
+import CmmInfo
 import CodeOutput      ( codeOutput )
 import NameEnv          ( emptyNameEnv )
 
@@ -475,13 +483,11 @@ hscSimplify :: ModGuts -> Comp ModGuts
 hscSimplify ds_result
   = do hsc_env <- gets compHscEnv
        liftIO $ do
-       flat_result <- {-# SCC "Flattening" #-}
-                      flatten hsc_env ds_result
            -------------------
            -- SIMPLIFY
            -------------------
        simpl_result <- {-# SCC "Core2Core" #-}
-                       core2core hsc_env flat_result
+                       core2core hsc_env ds_result
        return simpl_result
 
 --------------------------------------------------------------
@@ -602,10 +608,11 @@ hscCompile cgguts
          ------------------  Code generation ------------------
          abstractC <- {-# SCC "CodeGen" #-}
                       codeGen dflags this_mod data_tycons
-                              foreign_stubs dir_imps cost_centre_info
+                              dir_imps cost_centre_info
                               stg_binds hpc_info
          ------------------  Convert to CPS --------------------
-         continuationC <- cmmCPS dflags abstractC
+         --continuationC <- cmmCPS dflags abstractC >>= cmmToRawCmm
+         continuationC <- cmmToRawCmm abstractC
          ------------------  Code output -----------------------
          (stub_h_exists,stub_c_exists)
              <- codeOutput dflags this_mod location foreign_stubs 
@@ -671,7 +678,7 @@ hscFileCheck hsc_env mod_summary compileToCore = do {
            -- RENAME and TYPECHECK
            -------------------
          (tc_msgs, maybe_tc_result) 
-               <- _scc_ "Typecheck-Rename" 
+               <- {-# SCC "Typecheck-Rename" #-}
                   tcRnModule hsc_env (ms_hsc_src mod_summary) 
                        True{-save renamed syntax-}
                        rdr_module
@@ -690,8 +697,7 @@ hscFileCheck hsc_env mod_summary compileToCore = do {
                                md_rules     = [panic "no rules"],
                                   -- Rules are CoreRules, not the
                                   -- RuleDecls we get out of the typechecker
-                                md_vect_info = 
-                                  panic "HscMain.hscFileCheck: no VectInfo"
+                                md_vect_info = noVectInfo
                                    -- VectInfo is added by the Core 
                                    -- vectorisation pass
                           }
@@ -721,7 +727,8 @@ hscCmmFile dflags filename = do
   case maybe_cmm of
     Nothing -> return False
     Just cmm -> do
-        continuationC <- cmmCPS dflags [cmm]
+        --continuationC <- cmmCPS dflags [cmm] >>= cmmToRawCmm
+        continuationC <- cmmToRawCmm [cmm]
        codeOutput dflags no_mod no_loc NoStubs [] continuationC
        return True
   where
@@ -731,6 +738,8 @@ hscCmmFile dflags filename = do
                               ml_obj_file = panic "hscCmmFile: no obj file" }
 
 
+myParseModule :: DynFlags -> FilePath -> Maybe StringBuffer
+              -> IO (Either ErrMsg (Located (HsModule RdrName)))
 myParseModule dflags src_filename maybe_src_buf
  =    --------------------------  Parser  ----------------
       showPass dflags "Parser" >>