summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2021-06-01 21:17:51 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-06-10 13:54:40 -0400
commit3d5cb3352c1e1c20f0d5de427f4edbc765ce06d6 (patch)
treec0f47881c34c64268b2def0aee6fe1ff63e69a0d /.gitlab-ci.yml
parent472c2bf003e9f3bb93b82265f2a0a7124f944421 (diff)
downloadhaskell-3d5cb3352c1e1c20f0d5de427f4edbc765ce06d6.tar.gz
Fix INLINE pragmas in desugarer
In #19969 we discovered that GHC has has a bug *forever* that means it sometimes essentially discarded INLINE pragams. This happened when you have * Two more more mutually recursive functions * Some of which (presumably not all!) have an INLINE pragma * Completely monomorphic. This hits a particular case in GHC.HsToCore.Binds.dsAbsBinds, which was simply wrong -- it put the INLINE pragma on the wrong binder. This patch fixes the bug, rather easily, by adjusting the no-tyvar, no-dict case of GHC.HsToCore.Binds.dsAbsBinds. I also discovered that the GHC.Core.Opt.Pipeline.shortOutIndirections was not doing a good job for {-# INLINE lcl_id #-} lcl_id = BIG gbl_id = lcl_id Here we want to transfer the stable unfolding to gbl_id (we do), but we also want to remove it from lcl_id (we were not doing that). Otherwise both Ids have large stable unfoldings. Easily fixed. Note [Transferring IdInfo] explains.
Diffstat (limited to '.gitlab-ci.yml')
0 files changed, 0 insertions, 0 deletions