Improving the performance of breakpoints up to 50% (by playing with laziness)
authorPepe Iborra <mnislaih@gmail.com>
Wed, 21 Feb 2007 18:56:49 +0000 (18:56 +0000)
committerPepe Iborra <mnislaih@gmail.com>
Wed, 21 Feb 2007 18:56:49 +0000 (18:56 +0000)
commit2bbec92eb827c0d70b25f4006a954d95ae3088bf
tree63fd276cbd0438982f405ceca89f440efa585090
parent1c7caf1c6d5abacb2af32d8224241c575829b9fd
Improving the performance of breakpoints up to 50% (by playing with laziness)

This patch performs several optimizations with the goal of minimizing the cost of building the arguments to breakpointJump:
  - Group them all in a single tuple, to minimize closure creation in heap
  - Wrap this with the GHC.Base.lazy combinator, to induce max laziness
  - Remove as many literal strings as possible
    * injecting a module-local CAF to store the module name and use that
    * eliminating the package string (not needed).
compiler/deSugar/DsBinds.lhs
compiler/deSugar/DsBreakpoint.lhs
compiler/deSugar/DsMonad.lhs
compiler/main/Breakpoints.hs
compiler/main/GHC.hs