[commit: ghc] wip/T14626: WIP: "ds" is the suspect (b30d61f)

git at git.haskell.org git at git.haskell.org
Thu Jan 4 17:01:38 UTC 2018


Repository : ssh://git@git.haskell.org/ghc

On branch  : wip/T14626
Link       : http://ghc.haskell.org/trac/ghc/changeset/b30d61f64772d744e06e2acbab21895cb20d9bf7/ghc

>---------------------------------------------------------------

commit b30d61f64772d744e06e2acbab21895cb20d9bf7
Author: Gabor Greif <ggreif at gmail.com>
Date:   Thu Jan 4 14:17:02 2018 +0100

    WIP: "ds" is the suspect
    
    let's see what happens for /= "ds"...


>---------------------------------------------------------------

b30d61f64772d744e06e2acbab21895cb20d9bf7
 compiler/codeGen/StgCmmClosure.hs | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/compiler/codeGen/StgCmmClosure.hs b/compiler/codeGen/StgCmmClosure.hs
index 089e3a4..ef03eee 100644
--- a/compiler/codeGen/StgCmmClosure.hs
+++ b/compiler/codeGen/StgCmmClosure.hs
@@ -626,13 +626,24 @@ getCallMethod dflags name id (LFThunk _ _ updatable std_form_info is_fun)
 getCallMethod _ _name _ (LFUnknown True) _n_arg _v_args _cg_locs _self_loop_info
   = SlowCall -- might be a function
 
-getCallMethod _ _name id (LFUnknown False) 0 _v_args _cg_loc _self_loop_info
+getCallMethod _ name id (LFUnknown False) 0 _v_args _cg_loc _self_loop_info
   | isEvaldUnfolding (idUnfolding id)
   -- , ('w':'i':'l':'d':_) <- occNameString (nameOccName name) -- FIXME: remove later
   -- , (\case OtherCon _ -> False; _ -> True) $ idUnfolding id
   , OtherCon _ <- idUnfolding id
-  -- , take 4 (occNameString (nameOccName name)) == "wild" || pprTrace "getCallMethod#####" (ppr id $$ ppr (idUnfolding id)) True
+  , let str = occNameString (nameOccName name)
+  , take 4 str == "wild" || take 2 str == "ds" || pprTrace "getCallMethod#####" (ppr id $$ ppr (idUnfolding id)) True
+  , take 4 str == "wild" || take 2 str == "ds"
   = {-pprTrace "getCallMethod" (ppr id)-} ReturnIt -- seems to come from case, must be (tagged) WHNF already
+
+
+
+
+{-
+  , head str /= '$'
+  -- , ('w':'i':'l':'d':_) <- occNameString (nameOccName name) -- FIXME: remove later
+  , take 4 str == "wild" || pprTrace "getCallMethod#####" (ppr id $$ text str $$ ppr (idUnfolding id)) True
+-}
 {-
 getCallMethod _ name _ (LFUnknown False) 0 _v_args _cg_loc _self_loop_info
   | occNameString (nameOccName name) == "wild" -- TODO: make this robust



More information about the ghc-commits mailing list