1. 04 Mar, 2019 1 commit
  2. 17 Aug, 2016 1 commit
    • jarin's avatar
      [turbofan] Only do value numbering when types are compatible. · b190d133
      jarin authored
      At the moment, two NumberConstant nodes get different type even if their
      value is the same because we always allocate a new heap number for
      each number constant. This can lead to replacing a node with a node of
      disjoint type in value numbering, which can result in incorrect code
      down the line because of inconsistent types.
      
      This fix makes sure that we only replace a node with a sub-type
      node. Once we introduce a proper type for number constants, we can
      move back to the intersection typing in value numbering.
      
      Unfortunately, it is quite hard to write a repro for this because we cache NumberConstant nodes. We only throw away cached values that have too many conflicts (>5), so the test has to contain values that fall into the same bucket. That's where the magic floating point numbers in the test come from (they have the same low 8-bits of their hashes).
      
      BUG=chromium:633497
      
      Review-Url: https://codereview.chromium.org/2251833002
      Cr-Commit-Position: refs/heads/master@{#38675}
      b190d133
  3. 16 Jul, 2016 1 commit
  4. 20 Jun, 2016 1 commit
  5. 15 Jan, 2016 1 commit
  6. 24 Jun, 2014 1 commit
  7. 04 Jun, 2014 1 commit
  8. 03 Apr, 2014 1 commit
  9. 31 Mar, 2014 1 commit
  10. 28 Feb, 2014 3 commits
  11. 25 Feb, 2014 1 commit
  12. 20 Feb, 2014 1 commit
  13. 14 Feb, 2014 1 commit