1. 09 Mar, 2010 1 commit
  2. 18 Sep, 2009 2 commits
  3. 06 Nov, 2009 1 commit
    • 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
  4. 18 Oct, 2009 1 commit
  5. 24 Jul, 2009 1 commit
  6. 07 Jul, 2009 1 commit
  7. 16 Mar, 2009 1 commit
    • dias@eecs.tufts.edu's avatar
      stack overflows and out of memory's · 5dc8b425
      dias@eecs.tufts.edu authored
      1. Stack overflow fixed by making dataflow monad strict in the state.
      2. Out of memory fixed by "forgetting" lastoutfacts in the dataflow monad
         where we should. We were creating an unnecessarily long list that grew
         exponentially...
      5dc8b425
  8. 03 Mar, 2009 1 commit
    • dias@eecs.harvard.edu's avatar
      A few bug fixes; some improvements spurred by paper writing · 31a9d048
      dias@eecs.harvard.edu authored
      Among others:
      - Fixed Stg->C-- translation of let-no-escapes -- it's important to use the
        right continuation...
      - Fixed infinite recursion in X86 backend (shortcutJump mishandled infinite loops)
      - Fixed yet another wrong calling convention -- primops take args only in vanilla regs,
        but they may return results on the stack!
      - Removed StackInfo from LGraph and Block -- now in LastCall and CmmZ
      - Updated avail-variable and liveness code
      31a9d048
  9. 17 Oct, 2008 1 commit
  10. 16 Oct, 2008 1 commit
    • dias@eecs.harvard.edu's avatar
      Fixed linear regalloc bug, dropped some tracing code · c62b824e
      dias@eecs.harvard.edu authored
      o The linear-scan register allocator sometimes allocated a block
        before allocating one of its predecessors, which could lead
        to inconsistent allocations. Now, we allocate a block only
        if a predecessor has set the "incoming" assignments for the block
        (or if it's the procedure's entry block).
      o Also commented out some tracing code on the new codegen path.
      c62b824e
  11. 14 Oct, 2008 1 commit
    • dias@eecs.harvard.edu's avatar
      Clarify the SRT building process · e367ebeb
      dias@eecs.harvard.edu authored
      Before: building a closure that would build an SRT given the top-level
      SRT. It was somewhat difficult to understand the control flow, and it
      may have had held onto some data structures long after they should be dead.
      Now, I just bundle the info we need about CAFs along with the procedure
      and directly call a new top-level function to build the SRTs later.
      e367ebeb
  12. 13 Oct, 2008 2 commits