1. 03 Jun, 2008 1 commit
  2. 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
  3. 20 May, 2008 1 commit
  4. 22 Apr, 2008 3 commits
  5. 29 Mar, 2008 1 commit
  6. 25 Mar, 2008 1 commit
  7. 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
  8. 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
  9. 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
  10. 10 Jan, 2008 1 commit
  11. 03 Jan, 2008 1 commit
  12. 20 Dec, 2007 1 commit
  13. 27 Nov, 2007 1 commit
  14. 16 Nov, 2007 1 commit
  15. 09 Oct, 2007 1 commit
  16. 21 Sep, 2007 1 commit
  17. 04 Sep, 2007 1 commit
  18. 03 Sep, 2007 1 commit
  19. 01 Sep, 2007 1 commit
  20. 07 Aug, 2007 1 commit
  21. 17 Jul, 2007 1 commit
  22. 08 Jul, 2007 1 commit
  23. 02 Jul, 2007 1 commit
  24. 27 Jun, 2007 1 commit
  25. 26 Jun, 2007 1 commit
  26. 22 Jun, 2007 2 commits
  27. 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
  28. 01 Jun, 2007 1 commit
  29. 10 May, 2007 1 commit
  30. 07 May, 2007 1 commit
  31. 04 May, 2007 1 commit
    • simonpj@microsoft.com's avatar
      Make -frewrite-rules into a dynamic flag; off for -O0 · 5943ce90
      simonpj@microsoft.com authored
      Argubly rewrite rules should not fire with -O0, and it turns
      out that when compiling GHC.Base with -O0 we get a crash if
      the rewrite rules do fire (see Note [Scoping for Builtin rules]
      in PrelRules).
      
      So unless someone yells, rewrite rules are off with -O0.
      
      The new (now dynamic) flag is 
          -frewrite rules (with -fno-rewrite-rules to disable)
      
      The old (static) flag -frules-off is gone.
      5943ce90
  32. 01 May, 2007 1 commit
    • chevalier@alum.wellesley.edu's avatar
      Remove references to -fticky-ticky flag · 3c506a6c
      chevalier@alum.wellesley.edu authored
      -ticky is the command-line flag for ticky-ticky profiling now, but
      internally, the -fticky-ticky flag was used to represent whether ticky
      was on. This led to link errors if the user supplied -fticky-ticky but
      not -ticky (ticky code would be generated but the wrong RTS library
      would be passed to the linker). I removed references to -fticky-ticky
      -- now, only the way flags dictate whether ticky is on, and
      -fticky-ticky is no longer accepted as a command-line option.
      3c506a6c
  33. 14 Apr, 2007 1 commit
  34. 06 Apr, 2007 1 commit
  35. 09 Feb, 2007 1 commit
  36. 07 Feb, 2007 1 commit
    • chevalier@alum.wellesley.edu's avatar
      Lightweight ticky-ticky profiling · 5ddee764
      chevalier@alum.wellesley.edu authored
      The following changes restore ticky-ticky profiling to functionality
      from its formerly bit-rotted state. Sort of. (It got bit-rotted as part
      of the switch to the C-- back-end.)
      
      The way that ticky-ticky is supposed to work is documented in Section 5.7
      of the GHC manual (though the manual doesn't mention that it hasn't worked
      since sometime around 6.0, alas). Changes from this are as follows (which
      I'll document on the wiki):
      
      * In the past, you had to build all of the libraries with way=t in order to
      use ticky-ticky, because it entailed a different closure layout. No longer.
      You still need to do make way=t in rts/ in order to build the ticky RTS,
      but you should now be able to mix ticky and non-ticky modules.
      
      * Some of the counters that worked in the past aren't implemented yet.
      I was originally just trying to get entry counts to work, so those should
      be correct. The list of counters was never documented in the first place,
      so I hope it's not too much of a disaster that some don't appear anymore.
      Someday, someone (perhaps me) should document all the counters and what 
      they do. For now, all of the counters are either accurate (or at least as
      accurate as they always were), zero, or missing from the ticky profiling
      report altogether.
      
      This hasn't been particularly well-tested, but these changes shouldn't
      affect anything except when compiling with -fticky-ticky (famous last
      words...)
      
      Implementation details:
      
      I got rid of StgTicky.h, which in the past had the macros and declarations 
      for all of the ticky counters. Now, those macros are defined in Cmm.h.
      StgTicky.h was still there for inclusion in C code. Now, any remaining C
      code simply cannot call the ticky macros -- or rather, they do call those
      macros, but from the perspective of C code, they're defined as no-ops. 
      (This shouldn't be too big a problem.)
      
      I added a new file TickyCounter.h that has all the declarations for ticky
      counters, as well as dummy macros for use in C code. Someday, these 
      declarations should really be automatically generated, since they need
      to be kept consistent with the macros defined in Cmm.h.
      
      Other changes include getting rid of the header that was getting added to
      closures before, and getting rid of various code having to do with eager
      blackholing and permanent indirections (the changes under compiler/ 
      and rts/Updates.*).
      5ddee764
  37. 11 Jan, 2007 1 commit