Adam Gundry pushed to branch wip/amg/castz at Glasgow Haskell Compiler / GHC
Commits:
-
bd2aa21d
by Adam Gundry at 2025-07-24T20:08:56+01:00
1 changed file:
Changes:
| ... | ... | @@ -58,6 +58,7 @@ import GHC.Core.Type |
| 58 | 58 | import GHC.Core.Coercion
|
| 59 | 59 | import GHC.Core.Rules
|
| 60 | 60 | import GHC.Core.TyCo.Compare( eqType )
|
| 61 | +import GHC.Core.TyCo.FVs
|
|
| 61 | 62 | |
| 62 | 63 | import GHC.Builtin.Names
|
| 63 | 64 | import GHC.Builtin.Types ( naturalTy, typeSymbolKind, charTy )
|
| ... | ... | @@ -1666,7 +1667,12 @@ ds_hs_wrapper wrap = go wrap |
| 1666 | 1667 | go (WpEvLam ev) k = k $ Lam ev
|
| 1667 | 1668 | go (WpTyLam tv) k = k $ Lam tv
|
| 1668 | 1669 | go (WpCast co) k = assert (coercionRole co == Representational) $
|
| 1669 | - k $ \e -> mkCastDs e co
|
|
| 1670 | + do { zap_casts <- hasZapCasts <$> getDynFlags
|
|
| 1671 | + ; k $ \e -> -- AMG TODO: clean this up if it helps T5030
|
|
| 1672 | + if zap_casts
|
|
| 1673 | + then (if isReflCo co then e else mkCastZ e (coercionRKind co) (shallowCoVarsOfCo co))
|
|
| 1674 | + else mkCastDs e co
|
|
| 1675 | + }
|
|
| 1670 | 1676 | go (WpEvApp tm) k = do { core_tm <- dsEvTerm tm
|
| 1671 | 1677 | ; k $ \e -> e `App` core_tm }
|
| 1672 | 1678 | go (WpLet ev_binds) k = dsTcEvBinds ev_binds $ \bs ->
|