Permalink
Switch branches/tags
Commits on Dec 27, 2013
Commits on Dec 21, 2013
  1. Fix usage of -z for gold

    Ben Gamari committed Dec 21, 2013
    gold doesn't seem to recognize `-z origin`, only `-zorigin`. Odd.
Commits on Dec 20, 2013
  1. LlvmMangler: Make sure no symbols slip through re-.typing

    Ben Gamari committed Dec 18, 2013
    Previously a few symbols weren't flipped from %function to %object
    as the section splitter was emitting them without processes. This
    may be a bug in itself but for now let's just work around the issue
    but rewriting all symbol `.types`.
  2. LlvmMangler: Rewrite @function symbols to @object

    bgamari committed with Ben Gamari Dec 14, 2013
  3. LlvmManger: Fix rewriteInstructions

    bgamari committed with Ben Gamari Dec 14, 2013
    breakSubstring argument order was wrong
Commits on Dec 17, 2013
  1. Remove unused eqExprX

    nomeata committed Dec 17, 2013
  2. Mention '-fno-ignore-asserts' in documentation.

    23Skidoo committed with nomeata Dec 17, 2013
    (Closes: #8617)
  3. Copy-pasto.

    23Skidoo committed with nomeata Dec 17, 2013
Commits on Dec 16, 2013
  1. Make types of bothDmdType more precise

    nomeata committed Dec 9, 2013
    by only passing the demand on the free variables, and whether the
    argument (resp. scrunitee) may or will diverge.
  2. Disentangle postProcessDmdTypeM and postProcessUnsat

    nomeata committed Dec 9, 2013
    Make different postProcess code paths for function arguments (which are
    post-processed just to be both'ed) and unsaturated functions (which are
    post-processed for other reasons.)
  3. Refactor peelManyCalls

    nomeata committed Dec 14, 2013
    its first argument is just used for its length (the arity of the call).
    So changing the type to Int to reflect that.
    
    Also add a note [Demands from unsaturated function calls] that hopefully
    comprehensively and comprehensibly explains what is going on here.
  4. Split DmdResult into DmdResult and CPRResult

    nomeata committed Dec 12, 2013
    this is a small-step-refactoring patch and not very interesting on its
    own.
  5. Clarify the default demand on demand environments

    nomeata committed Dec 4, 2013
    by adding Notes and using easier to understand combinators.
Commits on Dec 12, 2013
  1. Improve the handling of used-once stuff

    simonpj committed with nomeata Nov 22, 2013
    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.
  2. Guarding against silly shifts

    simonpj committed with nomeata Dec 11, 2013
    This patch was authored by SPJ and extracted from "Improve the handling
    of used-once stuff" by Joachim.
  3. Assign strictness signatures to primitive operations

    simonpj committed with nomeata Dec 11, 2013
    This patch was authored by SPJ, and extracted from "Improve the handling
    of used-once stuff" by Joachim.
  4. Do not split void functions

    simonpj committed with nomeata Dec 11, 2013
    This is authored by SPJ, and split out out "Improve the handling of
    used-once stuff" by Joachim.
  5. Some refactoring of Demand and DmdAnal

    simonpj committed with nomeata Dec 11, 2013
    This was authored by SPJ and extracted from the "Improve the handling of
    used-once stuff" patch by Joachim.
Commits on Dec 10, 2013
  1. Spelling in comment

    simonpj committed Dec 10, 2013
  2. Better debug printing

    simonpj committed Dec 10, 2013
  3. Do not generate given kind-equalities (fix Trac #8566)

    simonpj committed Dec 10, 2013
    This is a long-standing bug.  We were generating a Given
    equality between kind variables, and (at least until we support
    kind coercions) we can't do that.
    
    The fix is to drop such Given equalities entirely. That may
    mean we can't prove some things, but that's fair enough -- the
    current proof language can't express such proofs.
    
    See Note [Do not create Given kind equalities] in TcSMonad
  4. Add more .mailmap entries

    hvr committed Dec 10, 2013
    Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
Commits on Dec 9, 2013
  1. Replace mkTopDmdType by mkClosedStrictSig

    nomeata committed Dec 9, 2013
    because it is not a top deman (see previous commit), and it is only used
    in an argument to mkStrictSig.
  2. Rename topDmdType to nopDmdType

    nomeata committed Dec 9, 2013
    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.
  3. Do not forget CPR information after an IO action

    nomeata committed Dec 6, 2013
    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.
  4. New flag: -ddump-strsigs

    nomeata committed Dec 9, 2013
    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.
  5. Fix windows x86_64 build.

    thoughtpolice committed Dec 9, 2013
    On win64 sizeof(long) != sizeof(void*), so debugTrace was casting a
    value of incorrect size causing a validate failure.
    
    Signed-off-by: Austin Seipp <austin@well-typed.com>
Commits on Dec 5, 2013
  1. Remove the LFBlackHole constructor

    Patrick Palka committed Dec 5, 2013
    After commit 55c703b, this code is no longer used anywhere.