1. 30 Jul, 2008 1 commit
  2. 11 Jul, 2008 1 commit
  3. 16 Jun, 2008 1 commit
    • Ian Lynagh's avatar
      More commandline flag improvements · 0f5e104c
      Ian Lynagh authored
      * Allow -ffoo flags to be deprecated
      * Mark some -ffoo flags as deprecated
      * Avoid using deprecated flags in error messages, in the build system, etc
      * Add a flag to en/disable the deprecated flag warning
      0f5e104c
  4. 14 Jun, 2008 3 commits
  5. 05 Jun, 2008 1 commit
    • simonpj@microsoft.com's avatar
      Desugar multiple polymorphic bindings more intelligently · a3f24157
      simonpj@microsoft.com authored
      Occasionally people write very large recursive groups of definitions. 
      In general we desugar these to a single definition that binds tuple,
      plus lots of tuple selectors.  But that code has quadratic size, which
      can be bad.
      
      This patch adds a new case to the desugaring of bindings, for the
      situation where there are lots of polymorphic variables, but no
      dictionaries.  (Dictionaries force us into the general case.)
      
      See Note [Abstracting over tyvars only].  
      
      The extra behaviour can be disabled with the (static) flag
      
      	-fno-ds-multi-tyvar
      
      in case we want to experiment with switching it on or off.  There is
      essentially-zero effect on the nofib suite though.
      
      I was provoked into doing this by Trac #1136.  In fact I'm not sure
      it's the real cause of the problem there, but it's a good idea anyway.
      a3f24157
  6. 03 Jun, 2008 2 commits
  7. 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
      25628e27
  8. 20 May, 2008 1 commit
  9. 22 Apr, 2008 3 commits
  10. 29 Mar, 2008 1 commit
  11. 25 Mar, 2008 1 commit
  12. 09 Mar, 2008 1 commit
    • rl@cse.unsw.edu.au's avatar
      Remove ndpFlatten · e415eeaf
      rl@cse.unsw.edu.au authored
      This patch removes the ndpFlatten directory and the -fflatten static flag.
      This code has never worked and has now been superceded by vectorisation.
      e415eeaf
  13. 28 Feb, 2008 1 commit
    • Simon Marlow's avatar
      Enable -prof -threaded (#886) · 50c4d039
      Simon Marlow authored
      It turns out that -prof -threaded works (modulo some small changes),
      because all the data structures used in profiling are only accessed by
      one thread at a time, at long as we don't use +RTS -N2 or higher.  So
      this patch enables the use of -prof -threaded, but an error is given
      if you ask for more than one CPU with +RTS -N.
      50c4d039
  14. 17 Jan, 2008 1 commit
    • simonpj@microsoft.com's avatar
      Add -fspec-inline-join-points to SpecConstr · 44d4bf2c
      simonpj@microsoft.com authored
      This patch addresses a problem that Roman found in SpecConstr.  Consider:
      
      foo :: Maybe Int -> Maybe Int -> Int
      foo a b = let j b = foo a b
                 in
                 case b of
                   Nothing -> ...
                   Just n  -> case a of
                                Just m  -> ... j (Just (n+1)) ...
                                Nothing -> ... j (Just (n-1)) ...
      
      We want to make specialised versions for 'foo' for the patterns
      	Nothing  (Just v)
      	(Just a) (Just b)
      
      Two problems, caused by the join point j.  First, j does not
      scrutinise b, so j won't be specialised f for the (Just v) pattern.
      Second, j is defined where the free var 'a' is not evaluated.
      
      Both are solved by brutally inlining j at its call sites.  This risks
      major code bloat, but it's relatively quick to implement.  The flag
      	-fspec-inline-join-points
      causes brutal inlining for a 
      	non-recursive binding
      	of a function
      	whose RHS contains calls
      	of a recursive function
      
      The (experimental) flag is static for now, and I have not even
      documented it properly.
      
      44d4bf2c
  15. 10 Jan, 2008 1 commit
  16. 03 Jan, 2008 1 commit
  17. 20 Dec, 2007 1 commit
  18. 27 Nov, 2007 1 commit
  19. 16 Nov, 2007 1 commit
  20. 09 Oct, 2007 1 commit
  21. 21 Sep, 2007 1 commit
  22. 04 Sep, 2007 1 commit
  23. 03 Sep, 2007 1 commit
  24. 01 Sep, 2007 1 commit
  25. 07 Aug, 2007 1 commit
  26. 17 Jul, 2007 1 commit
  27. 08 Jul, 2007 1 commit
  28. 02 Jul, 2007 1 commit
  29. 27 Jun, 2007 1 commit
  30. 26 Jun, 2007 1 commit
  31. 22 Jun, 2007 2 commits
  32. 12 Jun, 2007 1 commit
    • Ian Lynagh's avatar
      Tweak banner printing · cedd4187
      Ian Lynagh authored
      * -{short,long}-ghci-banner are now dynamic options, so you can put
        ":set -short-ghci-banner" in .ghci
      * The -v2 banner information now always tells you what compiler booted GHC,
        and what stage the compiler is. Thus we no longer assume that stage > 1
        iff GHCI is defined.
      cedd4187
  33. 01 Jun, 2007 1 commit
  34. 10 May, 2007 1 commit