Fix broken LLVM code gen
authorMoritz Angermann <moritz.angermann@gmail.com>
Thu, 21 Sep 2017 22:05:46 +0000 (18:05 -0400)
committerBen Gamari <ben@smart-cactus.org>
Fri, 22 Sep 2017 00:13:05 +0000 (20:13 -0400)
In 8b007abbeb30 (nativeGen: Consistently use blockLbl to generate
CLabels from BlockIds) all blockLbls were changed. This interfered with
the `toInfoLbl` call in CmmProcPoint, and caused the LLVM backend to
fall over.

Reviewers: bgamari, austin, simonmar

Reviewed By: bgamari

Subscribers: rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D4006

compiler/cmm/CmmProcPoint.hs

index 68f80db..153872f 100644 (file)
@@ -275,8 +275,9 @@ splitAtProcPoints dflags entry_label callPPs procPoints procMap
      let add_label map pp = mapInsert pp lbls map
            where lbls | pp == entry = (entry_label, fmap cit_lbl (mapLookup entry info_tbls))
                       | otherwise   = (block_lbl, guard (setMember pp callPPs) >>
-                                                    Just (toInfoLbl block_lbl))
-                      where block_lbl = blockLbl pp
+                                                    Just info_table_lbl)
+                      where block_lbl      = blockLbl pp
+                            info_table_lbl = infoTblLbl pp
 
          procLabels :: LabelMap (CLabel, Maybe CLabel)
          procLabels = foldl' add_label mapEmpty