1. 08 Feb, 2016 1 commit
  2. 07 Feb, 2016 22 commits
  3. 06 Feb, 2016 3 commits
  4. 05 Feb, 2016 2 commits
  5. 04 Feb, 2016 3 commits
    • Ömer Sinan Ağacan's avatar
      Remove unused LiveVars and SRT fields of StgCase and StgLetNoEscape · 4f9967aa
      Ömer Sinan Ağacan authored
      Also remove the functions and types that became useless after removing
      the fields:
      
      - SRT functions
      - LiveInfo type and functions
      - freeVarsToLiveVars
      - unariseLives and unariseSRT
      
      Reviewers: bgamari, simonpj, austin
      
      Reviewed By: simonpj
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1880
      4f9967aa
    • Ben Gamari's avatar
      Fix a few loose ends from D1795 · bbc0ec57
      Ben Gamari authored
      George updated the Diff but I didn't noticed until it was too late.
      bbc0ec57
    • Georgios Karachalias's avatar
      Overhaul the Overhauled Pattern Match Checker · 28f951ed
      Georgios Karachalias authored
      Overhaul the Overhauled Pattern Match Checker
      
      * Changed the representation of Value Set Abstractions. Instead of
      using a prefix tree, we now use a list of Value Vector Abstractions.
      The set of constraints Delta for every Value Vector Abstraction is the
      oracle state so that we solve everything only once.
      
      * Instead of doing everything lazily, we prune at once (and in general
      everything is much stricter). Hence, an example written with pattern
      guards is checked in almost the same time as the equivalent with
      pattern matching.
      
      * Do not store the covered and the divergent sets at all. Since what we
      only need is a yes/no (does this clause cover anything? Does it force
      any thunk?) We just keep a boolean for each.
      
      * Removed flags `-Wtoo-many-guards` and `-ffull-guard-reasoning`.
      Replaced with `fmax-pmcheck-iterations=n`. Still debatable what should
      the default `n` be.
      
      * When a guard is for sure not going to contribute anything, we treat
      it as such: The oracle is not called and cases `CGuard`, `UGuard` and
      `DGuard` from the paper are not happening at all (the generation of a
      fresh variable, the unfolding of the pattern list etc.). his combined
      with the above seems to be enough to drop the memory increase for test
      T783 down to 18.7%.
      
      * Do not export function `dsPmWarn` (it is now called directly from
      within `checkSingle` and `checkMatches`).
      
      * Make `PmExprVar` hold a `Name` instead of an `Id`. The term oracle
      does not handle type information so using `Id` was a waste of
      time/space.
      
      * Added testcases T11195, T11303b (data families) and T11374
      
      The patch addresses at least the following:
      Trac #11195, #11276, #11303, #11374, #11162
      
      Test Plan: validate
      
      Reviewers: goldfire, bgamari, hvr, austin
      
      Subscribers: simonpj, thomie
      
      Differential Revision: https://phabricator.haskell.org/D1795
      28f951ed
  6. 03 Feb, 2016 1 commit
  7. 02 Feb, 2016 8 commits