Skip to content
Snippets Groups Projects
  1. Dec 12, 2013
    • Simon Peyton Jones's avatar
      Return exprArity, not manifestArity · b24e0c4b
      Simon Peyton Jones authored and Joachim Breitner's avatar Joachim Breitner committed
      This patch was authored by SPJ, and extracted from "Improve the handling
      of used-once stuff" by Joachim.
      b24e0c4b
    • Simon Peyton Jones's avatar
      Improve the handling of used-once stuff · 80989de9
      Simon Peyton Jones authored and Joachim Breitner's avatar Joachim Breitner committed
      Joachim and I are committing this onto a branch so that we can share it,
      but we expect to do a bit more work before merging it onto head.
      
      Nofib staus:
        - Most programs, no change
        - A few improve
        - A couple get worse (cacheprof, tak, rfib)
      Investigating the "get worse" set is what's holding up putting this
      on head.
      
      The major issue is this.  Consider
      
          map (f g) ys
      
      where f's demand signature looks like
      
         f :: <L,C1(C1(U))> -> <L,U> -> .
      
      So 'f' is not saturated.  What demand do we place on g?
      Answer
              C(C1(U))
      That is, the inner C1 should stay, even though f is not saturated.
      
      I found that this made a significant difference in the demand signatures
      inferred in GHC.IO, which uses lots of higher-order exception handlers.
      
      I also had to add used-once demand signatures for some of the
      'catch' primops, so that we know their handlers are only called once.
      80989de9
    • Simon Peyton Jones's avatar
      Guarding against silly shifts · 869f69fd
      Simon Peyton Jones authored and Joachim Breitner's avatar Joachim Breitner committed
      This patch was authored by SPJ and extracted from "Improve the handling
      of used-once stuff" by Joachim.
      869f69fd
    • Simon Peyton Jones's avatar
      Assign strictness signatures to primitive operations · 0558911f
      Simon Peyton Jones authored and Joachim Breitner's avatar Joachim Breitner committed
      This patch was authored by SPJ, and extracted from "Improve the handling
      of used-once stuff" by Joachim.
      0558911f
    • Simon Peyton Jones's avatar
      Do not split void functions · ba78bf17
      Simon Peyton Jones authored and Joachim Breitner's avatar Joachim Breitner committed
      This is authored by SPJ, and split out out "Improve the handling of
      used-once stuff" by Joachim.
      ba78bf17
    • Simon Peyton Jones's avatar
      Some refactoring of Demand and DmdAnal · 838da6fc
      Simon Peyton Jones authored and Joachim Breitner's avatar Joachim Breitner committed
      This was authored by SPJ and extracted from the "Improve the handling of
      used-once stuff" patch by Joachim.
      838da6fc
  2. Dec 10, 2013
  3. Dec 09, 2013
    • Joachim Breitner's avatar
      Sort the output of -dump-strsigs · 5e0fe058
      Joachim Breitner authored
      5e0fe058
    • Joachim Breitner's avatar
      Replace mkTopDmdType by mkClosedStrictSig · 3cdf1251
      Joachim Breitner authored
      because it is not a top deman (see previous commit), and it is only used
      in an argument to mkStrictSig.
      3cdf1251
    • Joachim Breitner's avatar
      Rename topDmdType to nopDmdType · f64cf134
      Joachim Breitner authored
      because topDmdType is ''not'' the top of the lattice, as it puts an
      implicit absent demand on free variables, but Abs is the bottom of the
      Usage lattice.
      
      Why nopDmdType? Becuase it is the demand of doing nothing: Everything
      lazy, everything absent, no definite divergence.
      f64cf134
    • Joachim Breitner's avatar
      Do not forget CPR information after an IO action · a31cb5b0
      Joachim Breitner authored
      but do forget about certain divergence, if required. Fixes one part of
      ticket #8598.
      
      The added function (deferAfterIO) can maybe be merged with existing
      code, but given the ongoing work in the nested-cpr branch, I defer that
      work.
      a31cb5b0
    • Joachim Breitner's avatar
      New flag: -ddump-strsigs · 3f6da561
      Joachim Breitner authored
      The existing flag -ddump-stranal dumps the full Core, which is very
      verbose and not always helpful. This adds a more concise output (one
      line per top-level bind) that is faster to read, and especially more
      suitable to be used when writing test cases for the strictness analiser.
      3f6da561
  4. Dec 05, 2013
  5. Dec 04, 2013
  6. Dec 03, 2013
  7. Dec 02, 2013
Loading