1. 25 Aug, 2016 6 commits
    • jarin's avatar
      [turbofan] Insert dummy values when changing from None type. · c83b21ab
      jarin authored
      Currently we choose the MachineRepresentation::kNone representation for
      values of Type::None, and when converting values from the kNone representation
      we use "impossible" conversions that will crash at runtime. This
      assumes that the impossible conversions should never be hit (the only
      way to produce the impossible values is to perform an always-failing
      runtime check on a value, such as Smi-checking a string). Note that
      this assumes that the runtime check is executed before the impossible
      convesrion.
      
      Introducing BitwiseOr type feedback broke this in two ways:
      
      - we always pick Word32 representation for bitwise-or, so the
        impossible conversion does not trigger (it only triggers with
        None representation), and we could end up with unsupported
        conversions from Word32.
      
      - even if we inserted impossible conversions, they are pure conversions.
        Since untagging, bitwise-or operations are also pure, we could hoist
        all these before the smi check of the inputs and we could hit the
        impossible conversions before we get to the smi check.
      
      This CL addresses this by just providing dummy values for conversions
      from the Type::None type. It also removes the impossible-to-* conversions.
      
      BUG=chromium:638132
      
      Review-Url: https://codereview.chromium.org/2266823002
      Cr-Commit-Position: refs/heads/master@{#38883}
      c83b21ab
    • bmeurer's avatar
      [compiler] Properly canonicalize handles even with concurrent recompilation. · 052ba98d
      bmeurer authored
      For concurrent recompilation we created the CompilationHandleScope after
      the CanonicalHandleScope, which basically disabled the canonicalization
      because the deferred handle creation doesn't pay attention to the
      canonicalization mode then. This meant that we did not canonicalize
      handles properly as soon as concurrent recompilation was enabled.
      
      R=jarin@chromium.org
      BUG=v8:5267
      
      Review-Url: https://codereview.chromium.org/2276953004
      Cr-Commit-Position: refs/heads/master@{#38882}
      052ba98d
    • bmeurer's avatar
      [turbofan] Add regression tests for LoadElement/Field in diamond. · a124bf77
      bmeurer authored
      This introduces appropriate unit tests to ensure that merging of
      elements/fields information is correct for diamonds.
      
      BUG=chromium:639210,v8:5266
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2278043002
      Cr-Commit-Position: refs/heads/master@{#38881}
      a124bf77
    • franzih's avatar
      [api] Disable new and delete using = delete. · 8ce60a19
      franzih authored
      According to our style guide on Copyable and Movable Types,
      copy/move operators should be disabled using = delete in the public: section.
      Use consistent style for disabling new and delete.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2276063002
      Cr-Commit-Position: refs/heads/master@{#38880}
      8ce60a19
    • franzih's avatar
      [api] Disable copy constructors using = delete. · 6effe72f
      franzih authored
      According to our style guide on Copyable and Movable Types,
      copy/move operators should be disabled using = delete in the public: section,
      not in the private: section.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2272063002
      Cr-Commit-Position: refs/heads/master@{#38879}
      6effe72f
    • franzih's avatar
      Disable copy constructor in public: section or use macro. · b2fee84f
      franzih authored
      According to our style guide on Copyable and Movable Types,
      copy/move operators should be disabled in the public: section, not
      in the private: section. If disabled with a macro such as
      DISALLOW_COPY_AND_ASSIGN, it should be at the end of the private: section,
      and should be the last thing in the class.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2271043003
      Cr-Commit-Position: refs/heads/master@{#38878}
      b2fee84f
  2. 24 Aug, 2016 31 commits
  3. 23 Aug, 2016 3 commits