1. 27 Jun, 2007 5 commits
    • Michael D. Adams's avatar
      Formatting only · c9c4951c
      Michael D. Adams authored
      c9c4951c
    • Michael D. Adams's avatar
      Added stack checks to the CPS algorithm · 1f46671f
      Michael D. Adams authored
      This eliminates one of the panics introduced by 
      the previous patch:
      'First pass at implementing info tables for CPS'
        
      The other panic introduced by that patch still remains.
      It was due to the need to convert from a
        ContinuationInfo to a CmmInfo.
        (codeGen/CgInfoTbls.hs:emitClosureCodeAndInfoTable)
        (codeGen/CgInfoTbls.hs:emitReturnTarget)
      1f46671f
    • Michael D. Adams's avatar
      First pass at implementing info tables for CPS · f96e9aa0
      Michael D. Adams authored
      This is a fairly complete implementation, however
      two 'panic's have been placed in the critical path
      where the implementation is still a bit lacking so
      do not expect it to run quite yet.
      
      One call to panic is because we still need to create
      a GC block for procedures that don't have them yet.
      (cmm/CmmCPS.hs:continuationToProc)
      
      The other is due to the need to convert from a
      ContinuationInfo to a CmmInfo.
      (codeGen/CgInfoTbls.hs:emitClosureCodeAndInfoTable)
      (codeGen/CgInfoTbls.hs:emitReturnTarget)
      f96e9aa0
    • Michael D. Adams's avatar
    • Michael D. Adams's avatar
      Added pointerhood to LocalReg · 20780258
      Michael D. Adams authored
      This version should compile but is still incomplete as it introduces
      potential bugs at the places marked 'TODO FIXME NOW'.
      It is being recorded to help keep track of changes.
      20780258
  2. 26 Jun, 2007 1 commit
  3. 21 Jun, 2007 1 commit
  4. 19 Jun, 2007 1 commit
  5. 13 Jun, 2007 1 commit
  6. 06 Jun, 2007 2 commits
  7. 29 May, 2007 4 commits
  8. 25 May, 2007 3 commits
    • Michael D. Adams's avatar
    • Michael D. Adams's avatar
      Moved global register saving from the backend to codeGen · bd3a364d
      Michael D. Adams authored
      This frees the Cmm data type from keeping a list of live global registers
      in CmmCall which helps prepare for the CPS conversion phase.
      
      CPS conversion does its own liveness analysis and takes input that should
      not directly refer to parameter registers (e.g. R1, F5, D3, L2).  Since
      these are the only things which could occur in the live global register
      list, CPS conversion makes that field of the CmmCall constructor obsolite.
      
      Once the CPS conversion pass is fully implemented, global register saving
      will move from codeGen into the CPS pass.  Until then, this patch
      is worth scrutinizing and testing to ensure it doesn't cause any performance
      or correctness problems as the code passed to the backends by the CPS
      converting will look very similar to the code that this patch makes codeGen
      pass to the backend.
      bd3a364d
    • Michael D. Adams's avatar
      Formatting changes for CPS code. · 21bc3ec7
      Michael D. Adams authored
      21bc3ec7
  9. 24 May, 2007 2 commits
  10. 23 May, 2007 7 commits
  11. 22 May, 2007 3 commits
  12. 21 May, 2007 3 commits
  13. 18 May, 2007 6 commits
  14. 16 May, 2007 1 commit