1. 29 May, 2008 1 commit
    • dias@eecs.harvard.edu's avatar
      Replacing copyins and copyouts with data-movement instructions · 0d80489c
      dias@eecs.harvard.edu authored
      o Moved BlockId stuff to a new file to avoid module recursion
      o Defined stack areas for parameter-passing locations and spill slots
      o Part way through replacing copy in and copy out nodes
        - added movement instructions for stack pointer
        - added movement instructions for call and return parameters
          (but not with the proper calling conventions)
      o Inserting spills and reloads for proc points is now procpoint-aware
        (it was relying on the presence of a CopyIn node as a proxy for
         procpoint knowledge)
      o Changed ZipDataflow to expect AGraphs (instead of being polymorphic in
         the type of graph)
  2. 30 May, 2008 2 commits
  3. 29 May, 2008 4 commits
  4. 28 May, 2008 1 commit
  5. 29 May, 2008 1 commit
    • dias@eecs.harvard.edu's avatar
      Cmm back end upgrades · 25628e27
      dias@eecs.harvard.edu authored
      Several changes in this patch, partially bug fixes, partially new code:
      o bug fixes in ZipDataflow
         - added some checks to verify that facts converge
         - removed some erroneous checks of convergence on entry nodes
         - added some missing applications of transfer functions
      o changed dataflow clients to use ZipDataflow, making ZipDataflow0 obsolete
      o eliminated DFA monad (no need for separate analysis and rewriting monads with ZipDataflow)
      o started stack layout changes
         - no longer generating CopyIn and CopyOut nodes (not yet fully expunged though)
         - still not using proper calling conventions
      o simple new optimizations:
         - common block elimination
            -- have not yet tried to move the Adams opt out of CmmProcPointZ
         - block concatenation
      o piped optimization fuel up to the HscEnv
         - can be limited by a command-line flag
         - not tested, and probably not yet properly used by clients
      o added unique supply to FuelMonad, also lifted unique supply to DFMonad
  6. 27 May, 2008 1 commit
  7. 28 May, 2008 1 commit
    • Simon Marlow's avatar
      Use MD5 checksums for recompilation checking (fixes #1372, #1959) · 526c3af1
      Simon Marlow authored
      This is a much more robust way to do recompilation checking.  The idea
      is to create a fingerprint of the ABI of an interface, and track
      dependencies by recording the fingerprints of ABIs that a module
      depends on.  If any of those ABIs have changed, then we need to
      In bug #1372 we weren't recording dependencies on package modules,
      this patch fixes that by recording fingerprints of package modules
      that we depend on.  Within a package there is still fine-grained
      recompilation avoidance as before.
      We currently use MD5 for fingerprints, being a good compromise between
      efficiency and security.  We're not worried about attackers, but we
      are worried about accidental collisions.
      All the MD5 sums do make interface files a bit bigger, but compile
      times on the whole are about the same as before.  Recompilation
      avoidance should be a bit more accurate than in 6.8.2 due to fixing
      #1959, especially when using -O.
  8. 23 May, 2008 1 commit
  9. 27 May, 2008 1 commit
  10. 28 May, 2008 1 commit
  11. 26 May, 2008 3 commits
  12. 01 May, 2008 1 commit
  13. 23 May, 2008 1 commit
  14. 21 May, 2008 2 commits
  15. 22 May, 2008 1 commit
  16. 21 May, 2008 2 commits
    • simonpj@microsoft.com's avatar
      Fix Trac #1061: refactor handling of default methods · 24f3ffda
      simonpj@microsoft.com authored
      In an instance declaration, omitted methods get a definition that
      uses the default method.  We used to generate source code and feed it
      to the type checker.  But tc199 shows that is a bad idea -- see
      Note [Default methods in instances] in TcClassDcl.
      So this patch refactors to insteadl all us to generate the 
      *post* typechecked code directly for default methods.
    • simonpj@microsoft.com's avatar
      Comment typo · 08ffc907
      simonpj@microsoft.com authored
  17. 20 May, 2008 2 commits
  18. 15 May, 2008 1 commit
    • simonpj@microsoft.com's avatar
      Tuples cannot contain unboxed types · 48565ca8
      simonpj@microsoft.com authored
      This bug allowed, for example
        f = let x = ( 1#, 'x' ) in x
      which is ill-typed because you can't put an unboxed value in a tuple.
      Core Lint fails on this program.
      The patch makes the program be rejcted up-front.
  19. 20 May, 2008 1 commit
  20. 17 May, 2008 1 commit
  21. 19 May, 2008 4 commits
  22. 20 May, 2008 3 commits
  23. 19 May, 2008 1 commit
  24. 20 May, 2008 3 commits