1. 01 Feb, 2016 16 commits
    • mstarzinger's avatar
      [interpreter] Fix re-throw to not have frame-state. · 8420d575
      mstarzinger authored
      The runtime call to Runtime::kReThrow does not need a frame-state node
      attached, the frame-state input count is zero. This restructures the
      graph builder to not instantiate a FrameStateBeforeAndAfter for it.
      
      R=jarin@chromium.org
      TEST=cctest/test-run-bytecode-graph-builder
      BUG=v8:4674
      LOG=n
      
      Review URL: https://codereview.chromium.org/1654833002
      
      Cr-Commit-Position: refs/heads/master@{#33641}
      8420d575
    • yangguo's avatar
      [regexp] add fuzzer support for regexp parser and compiler. · 9f5dca8f
      yangguo authored
      R=jochen@chromium.org
      BUG=chromium:577261
      LOG=N
      
      Review URL: https://codereview.chromium.org/1655853002
      
      Cr-Commit-Position: refs/heads/master@{#33640}
      9f5dca8f
    • mstarzinger's avatar
      [interpreter] Deprecate notion of an unreachable environment. · 7d07a6c4
      mstarzinger authored
      The notion of an unreachable environment is useful for a recursive
      descent iteration (e.g. over an AST) where nodes are created on the
      ascent path as well. For a flat iteration (e.g. over bytecode stream)
      environments become unreachable at the end of a visitation function.
      Hence any unreachable path can be represented by nulling the tracked
      environment completely. This further reduces the number of redundant
      nodes being created.
      
      R=oth@chromium.org
      
      Review URL: https://codereview.chromium.org/1650483003
      
      Cr-Commit-Position: refs/heads/master@{#33639}
      7d07a6c4
    • rmcilroy's avatar
      [Interpreter] Set bytecode array in Runtime_SetCode. · d81edba7
      rmcilroy authored
      Set the bytecode array correctly in Runtime_SetCode.
      This fixes issues with building the snapshot with ignition enabled.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1647913002
      
      Cr-Commit-Position: refs/heads/master@{#33638}
      d81edba7
    • yangguo's avatar
      [regexp] do not store flags as bitfield in the parser. · ca6587c0
      yangguo authored
      This reverts a small part of e709aa24 in an attempt to recover
      lost page_cycler performance.
      
      R=jkummerow@chromium.org
      BUG=chromium:580973
      LOG=N
      
      Review URL: https://codereview.chromium.org/1651073002
      
      Cr-Commit-Position: refs/heads/master@{#33637}
      ca6587c0
    • zhengxing.li's avatar
      X87: Change num_double_registers() to num_allocatable_double_registers() for TestStackSlot. · a1a8dd14
      zhengxing.li authored
        Although x87 has 8 registers, it use only 1 double register in TurboFan code generation for some limitations.
      
        So for TestStackSlot() function, use the num_allocatable_double_registers() to check the avaliable double registers
        of TurboFan is more suitable than num_double_registers().
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1653913002
      
      Cr-Commit-Position: refs/heads/master@{#33636}
      a1a8dd14
    • mstarzinger's avatar
      [interpreter] Simplify BytecodeBranchAnalysis to minimum. · c207f10b
      mstarzinger authored
      This simplifies the branch analysis we perform on the bytecode stream
      down to the bare minimum that we need to build graphs. Note that we
      still record all branch targets, even though only the backwards ones
      would be needed, but this is essentially for free and might be useful
      eventually.
      
      R=oth@chromium.org
      
      Review URL: https://codereview.chromium.org/1646873004
      
      Cr-Commit-Position: refs/heads/master@{#33635}
      c207f10b
    • mstarzinger's avatar
      [interpreter] Reachability is implied by live environment. · 83a2c8ed
      mstarzinger authored
      The reachability of a bytecode is implied by a live environment reaching
      the bytecode during the abstract control flow simulation of the bytecode
      iteration perfromed by the graph builder. There is no need to compute it
      upfront anymore.
      
      Also, the upfront computation was only an approximation when it came to
      the reachability of an exception handler. This is why several tests for
      translation of exception handlers can now be enabled.
      
      R=oth@chromium.org
      
      Review URL: https://codereview.chromium.org/1645293003
      
      Cr-Commit-Position: refs/heads/master@{#33634}
      83a2c8ed
    • mstarzinger's avatar
      [interpreter] Simplify graph builder control flow simulation. · ee5b58d9
      mstarzinger authored
      This simplifies how the BytecodeGraphBuilder simulates control flow by
      reversing the propagation direction to forwards propagation. This is the
      same direction as the data flow which is also a forward propagation. In
      this way the analysis information needed at merge points is drastically
      reduced while still retaining the same simulation power.
      
      In short: We push down environments instead of pulling them.
      
      R=oth@chromium.org
      
      Review URL: https://codereview.chromium.org/1641893004
      
      Cr-Commit-Position: refs/heads/master@{#33633}
      ee5b58d9
    • nikolaos's avatar
      Avoid multiple rewriting of object key expressions · 077d70f0
      nikolaos authored
      NonPatternRewrite was called more than once for the same AST
      in the case of (computed) key expressions present in object
      literals.  As an example, in:
      
         var x = { [[...42]]: 17 };
      
      the array containing the spread would be desugared first and
      then the resulting do-expression would again be desugared.
      
      This could be problematic if a computed key expression contains
      large nested array/object literals.
      
      R=rossberg@chromium.org
      BUG=
      
      Review URL: https://codereview.chromium.org/1645023002
      
      Cr-Commit-Position: refs/heads/master@{#33632}
      077d70f0
    • ahaas's avatar
      [wasm] Initialize the root register for WASM tests. · a17bd3f3
      ahaas authored
      The root register is needed (at least on x64) to access
      ExternalReferences.
      
      R=titzer@chromium.org
      
      Review URL: https://codereview.chromium.org/1641153003
      
      Cr-Commit-Position: refs/heads/master@{#33631}
      a17bd3f3
    • zhengxing.li's avatar
      X87: Change the test case for X87 RunRoundInt32ToFloat32. · 587ad6fc
      zhengxing.li authored
       The CL #33347 (https://codereview.chromium.org/1589363002) added the RunRoundInt32ToFloat32 test case and X87 failed at it.
      
       The reason is same as the CL #31808 (issue 1430943002, X87: Change the test case for X87 float operations), please refer: https://codereview.chromium.org/1430943002/.
      
       Here is the key comments from CL #31808
       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 RunRoundInt32ToFloat32. Such as: volatile double expect = static_cast<float>(*i).
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1649323002
      
      Cr-Commit-Position: refs/heads/master@{#33630}
      587ad6fc
    • littledan's avatar
      Ship RegExp subclassing · 4e982c0d
      littledan authored
      This patch ships the first part of RegExp subclassing--defining
      Symbol.{match,replace,search,split}, but keeping their original
      definitions which are restricted to a RegExp receiver and do not
      call out to the core 'exec' method. This is being shipped separately
      because the two sets of extension points are separate features with
      separate functionality. The amount of behavior which is held behind
      the flag is very small, just exposing the symbols as properties of
      Symbol--the behavior that the String methods call out to these Symbol
      properties has already been shipping unflagged.
      
      R=yangguo@chromium.org
      BUG=v8:4305,v8:4343,v8:4344,v8:4345
      LOG=Y
      CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      
      Review URL: https://codereview.chromium.org/1652793002
      
      Cr-Commit-Position: refs/heads/master@{#33629}
      4e982c0d
    • yangguo's avatar
      [regexp] fix indentation and variable shadowing. · a6aef237
      yangguo authored
      TBR=brucedawson@chromium.org
      
      Review URL: https://codereview.chromium.org/1655743002
      
      Cr-Commit-Position: refs/heads/master@{#33628}
      a6aef237
    • yangguo's avatar
      [debugger] correctly find function context. · 835b0383
      yangguo authored
      In the debugger we are interested in getting the context for the
      current frame, which is usually a function context. To do that,
      we used to call Context::declaration_context, which may also
      return a block context. This is wrong and can lead to crashes.
      Instead, we now use a newly introduced Context::closure_context,
      which skips block contexts. This works fine for the debugger,
      since we have other means to find and materialize block contexts.
      
      R=rossberg@chromium.org
      BUG=chromium:582051
      LOG=N
      
      Review URL: https://codereview.chromium.org/1648263002
      
      Cr-Commit-Position: refs/heads/master@{#33627}
      835b0383
    • v8-autoroll's avatar
      Update V8 DEPS. · f8593be2
      v8-autoroll authored
      Rolling v8/tools/clang to 667833c8778efe12d3d749f5f5dfd4b10a1388a0
      
      TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
      
      Review URL: https://codereview.chromium.org/1651003002
      
      Cr-Commit-Position: refs/heads/master@{#33626}
      f8593be2
  2. 31 Jan, 2016 1 commit
  3. 30 Jan, 2016 2 commits
  4. 29 Jan, 2016 21 commits