1. 05 Apr, 2005 16 commits
    • simonmar's avatar
      [project @ 2005-04-05 15:51:26 by simonmar] · 4ddd2cf7
      simonmar authored
      x86_64: fix brainos in implementation of fl. pt. negation
      4ddd2cf7
    • simonmar's avatar
      [project @ 2005-04-05 15:38:01 by simonmar] · 86460846
      simonmar authored
      Instead of gathering a set of 'candidates' in the occurrence
      	analyser, use the isLocalId predicate to identify things
      	for which occurrence information is required.  By defn
      	isLocalId is true of Ids (whether top level or not) defined
      	in this module, and that is exactly what we want.
      
      	The 'candidates set' predated the LocalId invariant, I think.
      86460846
    • simonmar's avatar
      [project @ 2005-04-05 14:41:37 by simonmar] · 7e3bd52c
      simonmar authored
      Implement the out-of-line floating-point MachOps
      7e3bd52c
    • simonmar's avatar
      [project @ 2005-04-05 14:39:13 by simonmar] · 3449c116
      simonmar authored
      blackhole updates
      3449c116
    • simonmar's avatar
      [project @ 2005-04-05 14:31:17 by simonmar] · e57a1f27
      simonmar authored
      wibble
      e57a1f27
    • simonmar's avatar
      [project @ 2005-04-05 14:23:35 by simonmar] · 47cdab05
      simonmar authored
      Catch up with InfoTable changes
      47cdab05
    • simonmar's avatar
      [project @ 2005-04-05 12:19:54 by simonmar] · 16214216
      simonmar authored
      Some multi-processor hackery, including
      
        - Don't hang blocked threads off BLACKHOLEs any more, instead keep
          them all on a separate queue which is checked periodically for
          threads to wake up.
      
          This is good because (a) we don't have to worry about locking the
          closure in SMP mode when we want to block on it, and (b) it means
          the standard update code doesn't need to wake up any threads or
          check for a BLACKHOLE_BQ, simplifying the update code.
      
          The downside is that if there are lots of threads blocked on
          BLACKHOLEs, we might have to do a lot of repeated list traversal.
          We don't expect this to be common, though.  conc023 goes slower
          with this change, but we expect most programs to benefit from the
          shorter update code.
      
        - Fixing up the Capability code to handle multiple capabilities (SMP
          mode), and related changes to get the SMP mode at least building.
      16214216
    • simonmar's avatar
      [project @ 2005-04-05 09:45:06 by simonmar] · 14a5aadb
      simonmar authored
      x86_64: generate 32-bit relative offset plus 32-bit padding instead of
      a 64-bit relative offset.  This is probably not the best place to do
      it, but it'll do for now.
      
      Also reinstate some changes that accidentally got spammed yesterday.
      14a5aadb
    • simonmar's avatar
      [project @ 2005-04-05 09:42:48 by simonmar] · 81639819
      simonmar authored
      GHC package: set $(GhcLibHcOpts) to empty; we want $(GhcStage2HcOpts)
      to take precedence here.
      81639819
    • simonmar's avatar
      [project @ 2005-04-05 09:38:00 by simonmar] · 3f4fd743
      simonmar authored
      Main x86_64 hacking: we have a problem on this arch where binutils
      can't generate 64-bit relative relocations (R_X86_64_PC64), which many
      of our info-table fields are.  So far we've been hacking around it by
      putting everything in the text section, but I've decided to adopt
      another approach: we'll use explicit 32-bit offset fields on this
      platform instead.  This is safe in the default "small" memory model
      where all symbols are guaranteed to be in the lower 2Gb of the address
      space.
      
      NCG changes coming; mangler changes are probably required too.
      3f4fd743
    • simonmar's avatar
      [project @ 2005-04-05 09:31:27 by simonmar] · e5e14491
      simonmar authored
      print format type fixup
      e5e14491
    • simonmar's avatar
      [project @ 2005-04-05 09:30:11 by simonmar] · b0ac0f91
      simonmar authored
      printf format type fixup
      b0ac0f91
    • simonmar's avatar
      [project @ 2005-04-05 09:28:32 by simonmar] · f50d2bf0
      simonmar authored
      type fixups
      f50d2bf0
    • simonmar's avatar
      [project @ 2005-04-05 09:22:27 by simonmar] · 9392c097
      simonmar authored
      type fixup
      9392c097
    • krasimir's avatar
      [project @ 2005-04-05 09:06:36 by krasimir] · bdfa0107
      krasimir authored
      In many places there was a common pattern
      
      when (verbose >= n) $ putMsg "..."
      
      It is now replaced with
      
      debutTraceMsg dflags n "..."
      
      In few places hPutStrLn stderr or putStrLn was used instead of putMsg in
      the above pattern. They are replaced too. Now putMsg is used only in places
      where the verbosity flag was not checked.
      bdfa0107
    • simonpj's avatar
      [project @ 2005-04-05 08:25:06 by simonpj] · 43c2b681
      simonpj authored
      Final wibbles, I hope
      43c2b681
  2. 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
  3. 03 Apr, 2005 4 commits
  4. 02 Apr, 2005 1 commit
  5. 01 Apr, 2005 3 commits
    • simonmar's avatar
      [project @ 2005-04-01 12:15:15 by simonmar] · 97e69a51
      simonmar authored
      enable x86_64 native codegen
      97e69a51
    • simonmar's avatar
      [project @ 2005-04-01 12:14:29 by simonmar] · 6c554010
      simonmar authored
      First cut at the x86_64 native code generator.  Lots of code is shared
      with i386, but floating point uses SSE2.
      
      This more or less works, the things I know that don't work are:
      
        - the floating-point primitives (sin, cos etc.) are missing
        - floating-point comparisons involving NaN are wrong
        - there's no PIC support yet
      
      Also, I have a long list of small things to fix up to improve
      performance.
      
      I think the small memory model is assumed, for now.
      6c554010
    • simonmar's avatar
      [project @ 2005-04-01 11:34:20 by simonmar] · 79c03a2f
      simonmar authored
      build fix when !GHCI
      79c03a2f
  6. 31 Mar, 2005 2 commits
    • simonmar's avatar
      [project @ 2005-03-31 16:11:49 by simonmar] · 426e0396
      simonmar authored
      DriverPipeline.compile: we should be grabbing the OPTIONS from the
      StringBuffer, not reading the file again (duh!)
      
      SysTools: some message cleanups
      426e0396
    • simonmar's avatar
      [project @ 2005-03-31 15:16:53 by simonmar] · c1909a1b
      simonmar authored
      More hacking on the GHC API to get it into shape for VS
      
       - load now takes a LoadHowMuch argument, which is either
      	LoadAllTargets
      	LoadUpTo Module
      	LoadDependenciesOf Module
         which should be self-explanatory.  LoadDependenciesOf might go
         away in the future, it's necessary at the moment because it is
         used in the implementation of:
      
       - checkModule :: Session -> Module -> MessageHandler -> IO CheckResult
      
         which is currently the only way to get at the parsed & typechecked
         abstract syntax for a module.
      c1909a1b