Hannes Siebenhandl pushed to branch wip/fendor/t23703 at Glasgow Haskell Compiler / GHC

Commits:

2 changed files:

Changes:

  • compiler/GHC/Types/Unique/DFM.hs
    ... ... @@ -472,14 +472,12 @@ alterUDFM_L
    472 472
       -> (Maybe elt, UniqDFM key elt)  -- ^ New element at @key@ and modified 'UniqDFM'
    
    473 473
     alterUDFM_L f (UDFM m i) k =
    
    474 474
       let
    
    475
    -    -- Force the key Word64 as the thunk is almost never worth it.
    
    476
    -    !key = getKey $ getUnique k
    
    477
    -    (mElt, udfm) = M.alterF (dupe . alterf) key m
    
    475
    +    (mElt, udfm) = M.alterLookupWithKey alterf (getKey $ getUnique k) m
    
    478 476
       in
    
    479
    -    (mElt, UDFM udfm (i + 1))
    
    477
    +    (untag mElt, UDFM udfm (i + 1))
    
    480 478
       where
    
    481
    -  dupe :: Maybe (TaggedVal elt) -> (Maybe elt, Maybe (TaggedVal elt))
    
    482
    -  dupe mt = (fmap taggedFst mt, mt)
    
    479
    +  untag Nothing = Nothing
    
    480
    +  untag (Just (TaggedVal v _)) = Just v
    
    483 481
       alterf :: Maybe (TaggedVal elt) -> (Maybe (TaggedVal elt))
    
    484 482
       alterf Nothing = inject $ f Nothing
    
    485 483
       alterf (Just (TaggedVal v _)) = inject $ f (Just v)
    

  • compiler/GHC/Types/Unique/Map.hs
    ... ... @@ -22,7 +22,6 @@ module GHC.Types.Unique.Map (
    22 22
         addToUniqMap_Acc,
    
    23 23
         addToUniqMap_L,
    
    24 24
         alterUniqMap,
    
    25
    -    alterUniqMap_L,
    
    26 25
         addListToUniqMap_C,
    
    27 26
         adjustUniqMap,
    
    28 27
         delFromUniqMap,
    
    ... ... @@ -161,15 +160,6 @@ alterUniqMap :: Uniquable k
    161 160
     alterUniqMap f (UniqMap m) k = UniqMap $
    
    162 161
         alterUFM (fmap (k,) . f . fmap snd) m k
    
    163 162
     
    
    164
    -alterUniqMap_L :: Uniquable k
    
    165
    -             => (Maybe a -> Maybe a)
    
    166
    -             -> UniqMap k a
    
    167
    -             -> k
    
    168
    -             -> (Maybe a, UniqMap k a)
    
    169
    -alterUniqMap_L f (UniqMap m) k =
    
    170
    -  let (r, m') = alterUFM_L (fmap (k,) . f . fmap snd) m k
    
    171
    -  in (snd <$> r, UniqMap m')
    
    172
    -
    
    173 163
     addListToUniqMap_C
    
    174 164
         :: Uniquable k
    
    175 165
         => (a -> a -> a)