1. 06 Apr, 2005 5 commits
  2. 05 Apr, 2005 19 commits
  3. 04 Apr, 2005 14 commits
    • simonpj's avatar
      [project @ 2005-04-04 16:49:42 by simonpj] · 7ea374f5
      simonpj authored
      One more stage2 wibble
      7ea374f5
    • simonpj's avatar
      [project @ 2005-04-04 16:15:04 by simonpj] · 5f38e9ba
      simonpj authored
      More stage2 wibbles
      5f38e9ba
    • simonpj's avatar
      [project @ 2005-04-04 15:54:50 by simonpj] · 57bdd6a6
      simonpj authored
      More wibbles to HsSyn changes
      57bdd6a6
    • simonmar's avatar
      [project @ 2005-04-04 15:54:18 by simonmar] · 61988d63
      simonmar authored
      Use the imul instruction natively, rather than the braindead wrapper
      around it.  The register allocator has been able to handle the fixed
      register usage of imul for a while now.  Also, the wrapper was broken
      on x86_64.
      61988d63
    • simonmar's avatar
      [project @ 2005-04-04 15:51:45 by simonmar] · 7bec5cbf
      simonmar authored
      wibble
      7bec5cbf
    • simonpj's avatar
      [project @ 2005-04-04 15:22:25 by simonpj] · da5cbb63
      simonpj authored
      Further HsSyn wibbles
      da5cbb63
    • simonpj's avatar
      [project @ 2005-04-04 14:11:29 by simonpj] · b5e9d715
      simonpj authored
      Wibbles arising from HsSyn changes
      b5e9d715
    • simonmar's avatar
      [project @ 2005-04-04 13:51:26 by simonmar] · 1347b6d5
      simonmar authored
      Big cleanup of the scheduler.
      
      The main idea here was to extract as much stuff as possible from the
      scheduler loop into seprate functions, so as to better expose the
      control structure of the scheduler.  Now, the scheduler loop is down
      to some 300+ lines; there's some more code that could be extracted,
      but I think it looks pretty good now.
      
      This work is partly due to an initial cleanup by the GRAN/PAR folks,
      heavily re-worked by me.
      1347b6d5
    • simonpj's avatar
      [project @ 2005-04-04 13:30:58 by simonpj] · 0935f932
      simonpj authored
      Update hs-boot file
      0935f932
    • simonpj's avatar
      [project @ 2005-04-04 13:26:59 by simonpj] · 6d0a6464
      simonpj authored
      Wibble: invert sense of test
      6d0a6464
    • simonpj's avatar
      [project @ 2005-04-04 13:16:09 by simonpj] · 01cfd4cf
      simonpj authored
      Documentation for rebindable syntax
      01cfd4cf
    • simonpj's avatar
      [project @ 2005-04-04 11:55:11 by simonpj] · d551dbfe
      simonpj authored
      This commit combines three overlapping things:
      
      1.  Make rebindable syntax work for do-notation. The idea
          here is that, in particular, (>>=) can have a type that
          has class constraints on its argument types, e.g.
             (>>=) :: (Foo m, Baz a) => m a -> (a -> m b) -> m b
          The consequence is that a BindStmt and ExprStmt must have
          individual evidence attached -- previously it was one
          batch of evidence for the entire Do
          
          Sadly, we can't do this for MDo, because we use bind at
          a polymorphic type (to tie the knot), so we still use one
          blob of evidence (now in the HsStmtContext) for MDo.
          
          For arrow syntax, the evidence is in the HsCmd.
          
          For list comprehensions, it's all built-in anyway.
          
          So the evidence on a BindStmt is only used for ordinary
          do-notation.
      
      2.  Tidy up HsSyn.  In particular:
      
      	- Eliminate a few "Out" forms, which we can manage
      	without (e.g. 
      
      	- It ought to be the case that the type checker only
      	decorates the syntax tree, but doesn't change one
      	construct into another.  That wasn't true for NPat,
      	LitPat, NPlusKPat, so I've fixed that.
      
      	- Eliminate ResultStmts from Stmt.  They always had
      	to be the last Stmt, which led to awkward pattern
      	matching in some places; and the benefits didn't seem
      	to outweigh the costs.  Now each construct that uses
      	[Stmt] has a result expression too (e.g. GRHS).
      
      
      3.  Make 'deriving( Ix )' generate a binding for unsafeIndex,
          rather than for index.  This is loads more efficient.
      
          (This item only affects TcGenDeriv, but some of point (2)
          also affects TcGenDeriv, so it has to be in one commit.)
      d551dbfe
    • simonmar's avatar
      [project @ 2005-04-04 10:55:38 by simonmar] · cb486104
      simonmar authored
      comment out parts of the Win32 DLLs section, specifically those that
      don't apply to current Windows distributions.
      cb486104
    • simonmar's avatar
      [project @ 2005-04-04 10:39:23 by simonmar] · de90a39d
      simonmar authored
      Give prototypes for getAllocations and revertCAFs.
      de90a39d
  4. 03 Apr, 2005 2 commits
    • simonmar's avatar
      [project @ 2005-04-03 22:06:15 by simonmar] · 397ef49c
      simonmar authored
      x86_64: some small optimisations to instruction selection, taking
      advantage of automatic zero-extension of 32-bit results.
      397ef49c
    • simonmar's avatar
      [project @ 2005-04-03 22:04:31 by simonmar] · 728126ee
      simonmar authored
      regUsage(x86_64): tell the register allocator that argument registers are read
      by call instructions.
      
      mkSpillInstr/mkLoadInstr(x86_64): implement FP spills/loads, not sure
      if this is quite right yet.
      728126ee