• Ben.Lippmeier@anu.edu.au's avatar
    * Refactor CLabel.RtsLabel to CLabel.CmmLabel · a02e7f40
    Ben.Lippmeier@anu.edu.au authored
    The type of the CmmLabel ctor is now
      CmmLabel :: PackageId -> FastString -> CmmLabelInfo -> CLabel
      
     - When you construct a CmmLabel you have to explicitly say what
       package it is in. Many of these will just use rtsPackageId, but
       I've left it this way to remind people not to pretend labels are
       in the RTS package when they're not. 
       
     - When parsing a Cmm file, labels that are not defined in the 
       current file are assumed to be in the RTS package. 
       
       Labels imported like
          import label
       are assumed to be in a generic "foreign" package, which is different
       from the current one.
       
       Labels imported like
          import "package-name" label
       are marked as coming from the named package.
       
       This last one is needed for the integer-gmp library as we want to
       refer to labels that are not in the same compilation unit, but
       are in the same non-rts package.
       
       This should help remove the nasty #ifdef __PIC__ stuff from
       integer-gmp/cbits/gmp-wrappers.cmm
       
    a02e7f40
CgMonad.lhs 26.3 KB