WIP: don't reenter WHNF thing for re-tagging
authorGabor Greif <ggreif@gmail.com>
Wed, 27 Dec 2017 18:47:50 +0000 (19:47 +0100)
committerGabor Greif <ggreif@gmail.com>
Wed, 27 Dec 2017 18:47:50 +0000 (19:47 +0100)
this is a very crude test. How to make it more robust?

compiler/codeGen/StgCmmClosure.hs

index ce0f623..034a641 100644 (file)
@@ -1,5 +1,5 @@
-{-# LANGUAGE CPP, RecordWildCards #-}
-
+{-# LANGUAGE CPP, RecordWildCards, StandaloneDeriving #-}
+{-# OPTIONS_GHC -Wno-orphans #-}
 -----------------------------------------------------------------------------
 --
 -- Stg to C-- code generation:
@@ -223,8 +223,13 @@ data LambdaFormInfo
                         -- always a value, needs evaluation
 
   | LFLetNoEscape       -- See LetNoEscape module for precise description
+ deriving Show
 
-
+deriving instance Show TopLevelFlag
+deriving instance Show OneShotInfo
+deriving instance Show ArgDescr
+deriving instance Show StandardFormInfo
+instance Show DataCon where show _ = "<DATACON>"
 -------------------------
 -- StandardFormInfo tells whether this thunk has one of
 -- a small number of standard forms
@@ -586,6 +591,10 @@ getCallMethod dflags name id (LFReEntrant _ _ arity _ _) n_args _v_args _cg_loc
 getCallMethod _ _name _ LFUnlifted n_args _v_args _cg_loc _self_loop_info
   = ASSERT( n_args == 0 ) ReturnIt
 
+getCallMethod _ name id (LFUnknown False) 0 _v_args cg_loc _self_loop_info
+  | occNameString (nameOccName name) == "wild"
+  = pprTrace "getCallMethod" (ppr id <+> ppr cg_loc) ReturnIt
+
 getCallMethod _ _name _ (LFCon _) n_args _v_args _cg_loc _self_loop_info
   = ASSERT( n_args == 0 ) ReturnIt
     -- n_args=0 because it'd be ill-typed to apply a saturated