1. 25 Apr, 2016 36 commits
  2. 24 Apr, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Introduce TruncateTaggedToWord32 simplified operator. · 0231a7ef
      bmeurer authored
      This allows us to get rid of the "push TruncateFloat64ToInt32 into Phi"
      trick that was used in the MachineOperatorReducer to combine the
      ChangeTaggedToFloat64 and TruncateFloat64ToInt32 operations. Instead of
      doing that later, we can just introduce the proper operator during the
      representation selection directly.
      
      Also separate the TruncateFloat64ToInt32 machine operator, which had two
      different meanings depending on a flag (either JavaScript truncation or
      C++ style round to zero). Now there's a TruncateFloat64ToWord32 which
      represents the JavaScript truncation (implemented via TruncateDoubleToI
      macro + code stub) and the RoundFloat64ToInt32, which implements the C++
      round towards zero operation (in the same style as the other WebAssembly
      driven Round* machine operators).
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1919513002
      
      Cr-Commit-Position: refs/heads/master@{#35743}
      0231a7ef
  3. 23 Apr, 2016 1 commit
    • mtrofin's avatar
      [turbofan] Single entry into deferred · 5ae587cf
      mtrofin authored
      If a deferred block has multiple predecessors, they have to be
      all deferred. Otherwise, we can run into a situation where if a range
      that spills only in deferred blocks inserts its spill in the block, and
      other ranges need moves inserted by ResolveControlFlow in the predecessors,
      the register of the range spilled in the deferred block may be clobbered.
      
      To avoid that, when a deferred block has multiple predecessors, and some
      are not deferred, we add a non-deferred block to collect all such edges.
      
      This CL addresses the validator assertion failure the referenced issue, as well
      as the greedy allocator failure - which was caused by the situation described
      above.
      
      BUG=v8:4940
      LOG=n
      
      Review URL: https://codereview.chromium.org/1912093005
      
      Cr-Commit-Position: refs/heads/master@{#35742}
      5ae587cf
  4. 22 Apr, 2016 2 commits