1. 03 Sep, 2012 4 commits
  2. 07 Aug, 2012 1 commit
  3. 06 Aug, 2012 1 commit
  4. 24 Jul, 2012 1 commit
  5. 16 Jul, 2012 1 commit
    • Ian Lynagh's avatar
      Make -fPIC a dynamic flag · cdf946e4
      Ian Lynagh authored
      Hopefully I've kept the logic the same, and we now generate warnings if
      the user does -fno-PIC but we ignore them (e.g. because they're on OS X
      amd64).
      cdf946e4
  6. 26 Jun, 2012 1 commit
  7. 20 Jun, 2012 3 commits
  8. 27 Apr, 2012 2 commits
    • Simon Peyton Jones's avatar
      Revert "Add -faggressive-primops" · 75336070
      Simon Peyton Jones authored
      This reverts commit 745ec959.
      
      Sigh. Seg fault
      75336070
    • Simon Peyton Jones's avatar
      Add -faggressive-primops · 745ec959
      Simon Peyton Jones authored
      I'm experimenting with making GHC a bit more aggressive about
      
        a) dropping case expressions if the result is unused
              Simplify.rebuildCase, CaseElim equation
      
        b) floating case expressions inwards
              FloatIn.fiExpr, AnnCase
      
      In both cases the new behaviour is gotten with a static (debug)
      flag -faggressive-primops.  The extra "aggression" is to allow
      discarding and floating in for side-effecting operations.  See
      the new, extensive Note [PrimOp can_fail and has_side_effects]
      and Note [Aggressive PrimOps] in PrimoOp.
      
      When discarding a case with unused binders, in the lifted-type
      case it's definitely ok if the scrutinee terminates; previously
      we were checking exprOkForSpeculation, which is significantly
      worse.
      
      There's a related change to CoreUtils/CoreArity, but I'll put that
      in the next commit.
      745ec959
  9. 16 Jan, 2012 1 commit
  10. 13 Jan, 2012 1 commit
    • Simon Peyton Jones's avatar
      Add -faggressive-primops plus refactoring in CoreUtils · 601c983d
      Simon Peyton Jones authored
      I'm experimenting with making GHC a bit more aggressive about
        a) dropping case expressions if the result is unused
              Simplify.rebuildCase, CaseElim equation
      
        b) floating case expressions inwards
              FloatIn.fiExpr, AnnCase
      
      In both cases the new behaviour is gotten with a static (debug)
      flag -faggressive-primops.  The extra "aggression" is to allow
      discarding and floating in for side-effecting operations.  See
      the new, extensive Note [PrimOp can_fail and has_side_effects]
      in PrimoOp.
      
      When discarding a case with unused binders, in the lifted-type
      case it's definitely ok if the scrutinee terminates; previously
      we were checking exprOkForSpeculation, which is significantly
      worse.
      
      So I wanted a new function CoreUtils.exprCertainlyTerminates.
      In doing this I ended up with a significant refactoring in
      CoreUtils.  The new structure has quite a lot of nice sharing:
      
          exprIsCheap             = exprIsCheap' isHNFApp
          exprIsExpandable        = exprIsCheap' isConLikeApp
      
          exprIsHNF               = exprIsHNFlike isHNFApp
          exprIsConLike           = exprIsHNFlike isConLikeApp
          exprCertainlyTerminates = exprIsHNFlike isTerminatingApp
      601c983d
  11. 28 Nov, 2011 1 commit
  12. 17 Oct, 2011 2 commits
  13. 18 Jun, 2011 1 commit
    • dterei's avatar
      SafeHaskell: Disable certain ghc extensions in Safe. · 45c64c1d
      dterei authored
      This patch disables the use of some GHC extensions in
      Safe mode and also the use of certain flags. Some
      are disabled completely while others are only allowed
      on the command line and not in source PRAGMAS.
      
      We also check that Safe imports are indeed importing
      a Safe or Trustworthy module.
      45c64c1d
  14. 19 Apr, 2011 1 commit
  15. 31 Mar, 2011 1 commit
  16. 08 Dec, 2010 4 commits
  17. 28 Oct, 2010 1 commit
  18. 23 Sep, 2010 1 commit
  19. 13 Sep, 2010 1 commit
  20. 30 Aug, 2010 1 commit
  21. 16 Aug, 2010 1 commit
    • simonpj@microsoft.com's avatar
      Refactor the command-line argument parsing (again) · 0cb74388
      simonpj@microsoft.com authored
      This change allows the client of CmdLineParser a bit more flexibility,
      by giving him an arbitrary computation (not just a deprecation
      message) for each flag.  
      
      There are several clients, so there are lots of boilerplate changes.
      
      Immediate motivation: if RTS is not profiled, we want to make 
      Template Haskell illegal.  That wasn't with the old setup.
      0cb74388
  22. 17 Jun, 2010 1 commit
  23. 04 Nov, 2009 1 commit
  24. 14 Oct, 2009 1 commit
  25. 21 Aug, 2009 1 commit
  26. 20 Aug, 2009 1 commit
  27. 05 Jul, 2009 1 commit
  28. 17 Mar, 2009 1 commit
    • Simon Marlow's avatar
      Add fast event logging · 8b18faef
      Simon Marlow authored
      Generate binary log files from the RTS containing a log of runtime
      events with timestamps.  The log file can be visualised in various
      ways, for investigating runtime behaviour and debugging performance
      problems.  See for example the forthcoming ThreadScope viewer.
      
      New GHC option:
      
        -eventlog   (link-time option) Enables event logging.
      
        +RTS -l     (runtime option) Generates <prog>.eventlog with
                    the binary event information.
      
      This replaces some of the tracing machinery we already had in the RTS:
      e.g. +RTS -vg  for GC tracing (we should do this using the new event
      logging instead).
      
      Event logging has almost no runtime cost when it isn't enabled, though
      in the future we might add more fine-grained events and this might
      change; hence having a link-time option and compiling a separate
      version of the RTS for event logging.  There's a small runtime cost
      for enabling event-logging, for most programs it shouldn't make much
      difference.
      
      (Todo: docs)
      8b18faef
  29. 16 Dec, 2008 1 commit
    • Simon Marlow's avatar
      UNDO: Add -fpass-case-bndr-to-join-points · 5a336f14
      Simon Marlow authored
      rolling back:
      
      Fri Dec  5 10:51:59 GMT 2008  simonpj@microsoft.com
        * Add -fpass-case-bndr-to-join-points
        
        See Note [Passing the case binder to join points] in Simplify.lhs
        The default now is *not* to pass the case binder.  There are some
        nofib results with the above note; the effect is almost always 
        negligible.
        
        I don't expect this flag to be used by users (hence no docs). It's just
        there to let me try the performance effects of switching on and off.
        
      
          M ./compiler/main/StaticFlagParser.hs +1
          M ./compiler/main/StaticFlags.hs +4
          M ./compiler/simplCore/Simplify.lhs -14 +73
      5a336f14
  30. 09 Dec, 2008 1 commit
    • Ian Lynagh's avatar
      Make some profiling flags dynamic · aedb94f5
      Ian Lynagh authored
      In particular:
          -fauto-sccs-on-all-toplevs          -auto-all   -no-auto-all
          -fauto-sccs-on-exported-toplevs     -auto       -no-auto
          -fauto-sccs-on-individual-cafs      -caf-all    -no-caf-all
      aedb94f5