1. 23 Feb, 2016 11 commits
    • mstarzinger's avatar
      [fullcodegen] Implement operand stack depth tracking. · 38915ed7
      mstarzinger authored
      This implements a mechanism to track the exact depth of the operand
      stack in full-codegen for every sub-expression visitation. So far we
      only tracked the depth at statement level, but not at expression level.
      With the introduction of do-expressions it will be possible to construct
      local control flow (i.e. break, continue and friends) that target labels
      at an arbitrary operand stack depth, making this tracking a prerequisite
      for full do-expression support.
      
      R=rossberg@chromium.org,jarin@chromium.org
      BUG=v8:4755,v8:4488
      LOG=n
      
      Review URL: https://codereview.chromium.org/1706283002
      
      Cr-Commit-Position: refs/heads/master@{#34211}
      38915ed7
    • yangguo's avatar
      [interpreter, debugger] replace bytecode on-stack for debugging. · 72ba53b1
      yangguo authored
      R=mcilroy@chromium.org
      BUG=v8:4690
      LOG=N
      
      Review URL: https://codereview.chromium.org/1723803004
      
      Cr-Commit-Position: refs/heads/master@{#34210}
      72ba53b1
    • bmeurer's avatar
      [turbofan] Ship TurboFan inlining. · be65129e
      bmeurer authored
      Until now inlining in TurboFan was staged behind --turbo, which means
      that it wasn't enabled with --turbo-shipping. It seems reasonable to
      ship it now, since Clusterfuzz had fun with it for a year already, and
      we need to reach parity with Crankshaft with more and more things being
      enabled behind --turbo-shipping.
      
      Review URL: https://codereview.chromium.org/1721243002
      
      Cr-Commit-Position: refs/heads/master@{#34209}
      be65129e
    • cbruni's avatar
      [counters] Making runtime counters reentrant. · 5e468666
      cbruni authored
      So far counters did not work when they were reentrant and thus would lead to
      wrong bookkeeping of the counter stack. Using a separate stack-allocated linked
      list to track the timer stack solves this issue. This is a temporary workaround
      with the limitations of the counter system in mind. Eventually we will move to
      the trace-based system for these kind of statistics.
      
      BUG=v8:4770
      LOG=n
      
      Review URL: https://codereview.chromium.org/1695733002
      
      Cr-Commit-Position: refs/heads/master@{#34208}
      5e468666
    • mtrofin's avatar
      [turbofan] fix validator in face of phi optimizations. · 5ae02268
      mtrofin authored
      This fixes an issue encountered in wasm payloads, where we do not
      (yet) optimize away duplicate phi definitions - phis in the same block
      with the same operand list; and when move optimizations merge phi-
      defining moves into the block defining the phi. If all this happens, the
      register allocation validator back-propagation fails because it can't
      distinguish the duplicate phis, when traversing backwards.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1720003002
      
      Cr-Commit-Position: refs/heads/master@{#34207}
      5ae02268
    • bradnelson's avatar
      Allow intish and floatish to be coerced by heap assignment. · 7e805faa
      bradnelson authored
      When assigning to an integer view of the heap an intish
      value does not need to be collapsed with |0.
      Similarly a floatish value does not need to be collapsed with
      fround when assigned to a float view of the heap.
      i32[0] = i32_1 + i32_2;  // ok
      f32[0] = f32_1 + f32_2;  // ok
      
      However, floatish values cannot be safely assigned to double
      arrays.
      f64[0] = f32_1 + f32_2;  // not ok
      
      BUG= https://code.google.com/p/v8/issues/detail?id=4203
      TEST=mjsunit/asm-wasm,test-asm-validator
      R=aseemgarg@chromium.org,titzer@chromium.org
      LOG=N
      
      Review URL: https://codereview.chromium.org/1722473002
      
      Cr-Commit-Position: refs/heads/master@{#34206}
      7e805faa
    • zhengxing.li's avatar
      X87: [interpreter, debugger] support debug breaks via bytecode array copy. · 360c761d
      zhengxing.li authored
        port e032a98d (r34190)
      
        original commit message:
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1717333003
      
      Cr-Commit-Position: refs/heads/master@{#34205}
      360c761d
    • zhengxing.li's avatar
      X87: Emit memory operands for cmp and test on ia32 and x64 when it makes sense. · e1b9058f
      zhengxing.li authored
        port 0e43ff56 (r34187)
      
        original commit message:
        The InstructionSelector now associates an effect level to every node in a block.
      
        The effect level of a node is the number of non-eliminatable nodes encountered from the beginning of the block to the node itself.
      
        With this change, on ia32 and x64, a load from memory into a register can be replaced by a memory operand if all of the following conditions hold:
      
        1. The only use of the load is in a 32 or 64 bit word comparison.
        2. The user node and the load node belong to the same block.
        3. The values of the operands have the same size (i.e., no need to zero-extend or sign-extend the result of the load).
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1724473004
      
      Cr-Commit-Position: refs/heads/master@{#34204}
      e1b9058f
    • v8-autoroll's avatar
      Update V8 DEPS. · ced09a7b
      v8-autoroll authored
      Rolling v8/buildtools to 97b5c485707335dd2952c05bf11412ada3f4fb6f
      
      TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
      
      Review URL: https://codereview.chromium.org/1723843002
      
      Cr-Commit-Position: refs/heads/master@{#34203}
      ced09a7b
    • zhengxing.li's avatar
      X87: Change the test case for X87 RunRoundUint32ToFloat32. · 2cd94856
      zhengxing.li authored
        The CL #33796 (https://codereview.chromium.org/1628133002) added the RunRoundUint32ToFloat32 test case and X87 failed at it.
      
        The reason is same as the CL #33630 (Issue 1649323002: X87: Change the test case for X87 RunRoundInt32ToFloat32), please refer: https://codereview.chromium.org/1649323002.
      
        Here is the key comments from CL #33630:
        Some new test cases use CheckFloatEq(...) and CheckDoubleEq(...) function for result check. When GCC compiling the CheckFloatEq() and CheckDoubleEq() function,
        those inlined functions has different behavior comparing with GCC ia32 build and x87 build.
        The major difference is sse float register still has single precision rounding semantic. While X87 register has no such rounding precsion semantic when directly use register value.
        The V8 turbofan JITTed has exactly same result in both X87 and IA32 port.
      
        For CHECK_EQ(a, b) function, if a and b are doubles, it will has similar behaviors like CheckFloatEq(...) and CheckDoubleEq(...) function when compiled by GCC and causes the test case
        fail.
      
        So we add the following sentence to do type case to keep the same precision for RunRoundUint32ToFloat32. Such as: volatile double expect = static_cast<float>(*i).
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1714413002
      
      Cr-Commit-Position: refs/heads/master@{#34202}
      2cd94856
    • littledan's avatar
      ES2015 web compat workaround: RegExp.prototype.flags => "" · b22b2588
      littledan authored
      It turns out that some old polyfill library uses
      RegExp.prototype.flags as a way of feature testing. It's not clear
      how widespread this is. For now, as a minimal workaround, we can
      return undefined from getters like RegExp.prototype.global when
      the receiver is RegExp.prototype. This patch implements that strategy
      but omits a UseCounter to make backports easier.
      
      R=adamk
      CC=yangguo@chromium.org
      BUG=chromium:581577
      LOG=Y
      CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      
      Review URL: https://codereview.chromium.org/1640803003
      
      Cr-Commit-Position: refs/heads/master@{#34201}
      b22b2588
  2. 22 Feb, 2016 20 commits
  3. 21 Feb, 2016 2 commits
  4. 20 Feb, 2016 7 commits