1. 28 Jun, 2016 21 commits
    • bmeurer's avatar
      [turbofan] Introduce Float64Pow and NumberPow operators. · e607e12e
      bmeurer authored
      Introduce a new machine operator Float64Pow that for now is backed by
      the existing MathPowStub to start the unification of Math.pow, and at
      the same time address the main performance issue that TurboFan still has
      with the imaging-darkroom benchmark in Kraken.
      
      Also migrate the Math.pow builtin itself to a TurboFan builtin and
      remove a few hundred lines of hand-written platform code for special
      handling of the fullcodegen Math.pow version.
      
      BUG=v8:3599,v8:5086,v8:5157
      
      Review-Url: https://codereview.chromium.org/2103733003
      Cr-Commit-Position: refs/heads/master@{#37323}
      e607e12e
    • bmeurer's avatar
      [arm64] We must not overwrite registers for binop results that are used in frame states. · 29da5460
      bmeurer authored
      The ARM64 instruction selector can generate code like this
      
        negs w0, w1
        b.vs deopt
      
      but then reference the old value of w0 in the frame state, which will
      obviously lead to wrong results.
      
      R=jarin@chromium.org
      BUG=v8:5158
      
      Review-Url: https://codereview.chromium.org/2103793002
      Cr-Commit-Position: refs/heads/master@{#37322}
      29da5460
    • oth's avatar
      [interpreter] Streamline bytecode array writing. · 3bc6cc4f
      oth authored
      Simplify bytecode array writing and remove some now unused bytecode traits
      definitions.
      
      BUG=v8:4280
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2100793003
      Cr-Commit-Position: refs/heads/master@{#37321}
      3bc6cc4f
    • zhengxing.li's avatar
      X87: Reland: [Crankshaft] Always check for stubs marked to not require an eager frame. · 7a02c728
      zhengxing.li authored
        port 1b4e0130(r37181)
      
        original commit message:
        Previously only stubs built in the snapshot were checked for having an
        eager frame. This caused a regression to creap in on ia32 for
        RegExpConstructResultStub. Change test to always check.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2098303003
      Cr-Commit-Position: refs/heads/master@{#37320}
      7a02c728
    • zhengxing.li's avatar
      X87: [builtins] NonNumberToNumber and StringToNumber now use CallRuntime... · 90fa326a
      zhengxing.li authored
      X87: [builtins] NonNumberToNumber and StringToNumber now use CallRuntime instead of TailCallRuntime.
      
        port b5c69cbf (r37132)
      
        original commit message:
        With the tail call, pointers to the JS heap could be pushed on a
        js-to-wasm frame. On the js-to-wasm frame, however, this pointer would
        not be updated by the GC.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2108543002
      Cr-Commit-Position: refs/heads/master@{#37319}
      90fa326a
    • mlippautz's avatar
      [heap] Optimize ArrayBuffer tracking · 8d2ae278
      mlippautz authored
      With the current approach we only need to track using an unordered set as we can
      still access the backing store pointer and length by the time we free the
      backing store.
      
      BUG=chromium:619491, chromium:611688
      LOG=N
      R=ulan@chromium.org
      
      Review-Url: https://codereview.chromium.org/2107443002
      Cr-Commit-Position: refs/heads/master@{#37318}
      8d2ae278
    • zhengxing.li's avatar
      X87: [cleanup] Remove dead code from DeclareLookupSlot and rename it. · 43d0b7e7
      zhengxing.li authored
        port cbc6adc8 (r37111)
      
        original commit message:
        Runtime_DeclareLookupSlot is used when generating code for var and function declarations
        originating in an eval. Over time, it's accumulated quite a bit of cruft, which this CL removes:
      
          - With legacy const gone, lookup slots never have any property attributes.
          - There was a bit signaling that the variable was from an eval, but that was redundant since
            DeclareLookupSlot is only used for eval.
          - Some Proxy-related code didn't make sense here.
      
        Its name was also not terribly clear: while "LookupSlot" is used in several places, this
        particular function is only used for declaring variables and functions inside sloppy eval.
        Renamed (and split into two) to make this clear for future archeologists.
      
        Also added various DCHECKs to check the assumptions being made.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2107663002
      Cr-Commit-Position: refs/heads/master@{#37317}
      43d0b7e7
    • yangguo's avatar
      [debug] fix return position computation for liveedit. · 4c691429
      yangguo authored
      R=jgruber@chromium.org
      
      Review-Url: https://codereview.chromium.org/2107693002
      Cr-Commit-Position: refs/heads/master@{#37316}
      4c691429
    • alph's avatar
      Fix MSAN error on arm64 bot. · ca1dcc9c
      alph authored
      The main fix is to mark stack memory the SafeStackFrameIterator
      accesses as initialied.
      
      Drive-by: Make sure we bail out when the simulator is in the
      process of updating FP/SP registers.
      
      BUG=v8:5156
      
      Review-Url: https://codereview.chromium.org/2104763002
      Cr-Commit-Position: refs/heads/master@{#37315}
      ca1dcc9c
    • neis's avatar
      Fix behavior of throw on yield*. · 2f0cb3af
      neis authored
      When calling the throw method on a generator suspended inside a yield*, yield*
      in turn tries to call throw on its iterable.  If the iterable does not provide a
      throw method, yield* must try to call the return method instead and then throw a
      TypeError.  Due to a bug in our desugaring, we never threw the TypeError.
      
      R=adamk@chromium.org
      BUG=v8:5132
      
      Review-Url: https://codereview.chromium.org/2094253002
      Cr-Commit-Position: refs/heads/master@{#37314}
      2f0cb3af
    • zhengxing.li's avatar
      X87: [builtins] Introduce proper Float64Tan operator. · d9440156
      zhengxing.li authored
        port c87168bc (r37087)
      
        original commit message:
        Import base::ieee754::tan() from fdlibm and introduce Float64Tan TurboFan
        operator based on that, similar to what we do for Float64Cos and Float64Sin.
        Rewrite Math.tan() as TurboFan builtin and use those operators to also
        inline Math.tan() into optimized TurboFan functions.
      
        Drive-by-fix: Kill the %_ConstructDouble intrinsics, and provide only
        the %ConstructDouble runtime entry for writing tests.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2101233002
      Cr-Commit-Position: refs/heads/master@{#37313}
      d9440156
    • yangguo's avatar
      [liveedit] remove bogus test case. · 353e1152
      yangguo authored
      Removing a bad test case because:
      - The test case makes wrong assumptions about compilation. We now
        may run bytecode with the interpreter.
      - The test exposes internal implementation details such as pc offset
        of JIT code.
      - The test uses a runtime function specially written to cater to, and
        used only by this test. Being unmaintained, this runtime function
        is already returning bogus results, making this test useless.
      
      R=jgruber@chromium.org
      
      Review-Url: https://codereview.chromium.org/2101223002
      Cr-Commit-Position: refs/heads/master@{#37312}
      353e1152
    • neis's avatar
      Rip out most of our outdated modules implementation. · 41f5f0c0
      neis authored
      R=adamk@chromium.org
      BUG=
      
      Review-Url: https://codereview.chromium.org/2081733004
      Cr-Commit-Position: refs/heads/master@{#37311}
      41f5f0c0
    • neis's avatar
      Fix behavior of return on yield*. · 6dffb078
      neis authored
      When calling the return method on a generator suspended inside a yield*, yield*
      in turn calls return on its iterable.  If this results in a "done" iterator,
      yield* must return immediately, thus terminating the generator.  For some
      reason, we didn't terminate the generator but continued right after the yield*.
      
      R=adamk@chromium.org
      BUG=v8:5131
      
      Review-Url: https://codereview.chromium.org/2100093002
      Cr-Commit-Position: refs/heads/master@{#37310}
      6dffb078
    • yangguo's avatar
      Use source position table for unoptimized code. · 610a8cbb
      yangguo authored
      R=bmeurer@chromium.org, jgruber@chromium.org
      BUG=v8:5117
      
      Review-Url: https://codereview.chromium.org/2095893002
      Cr-Commit-Position: refs/heads/master@{#37309}
      610a8cbb
    • bjaideep's avatar
      AIX: Update variable name which conflicts with system defined variable · 37538cb2
      bjaideep authored
          variable hz is defined as a macro in AIX system header
          /usr/include/sys/m_param.h (as "ticks per second of the clock").
          The pre-processor replaces hz with the numeric value defined in
          system header file and therefore emits an error.
          Re-naming variable name to "iz".
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      
      BUG=
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2104483002
      Cr-Commit-Position: refs/heads/master@{#37308}
      37538cb2
    • zhengxing.li's avatar
      X87: [wasm] Separate compilation from instantiation. · fe70bda4
      zhengxing.li authored
        port c1d01aea (r37086)
      
        original commit message:
        Compilation of wasm functions happens before instantiation. Imports are linked afterwards, at instantiation time. Globals and memory are also
        allocated and then tied in via relocation at instantiation time.
      
        This paves the way for implementing Wasm.compile, a prerequisite to
        offering the compiled code serialization feature.
      
        Currently, the WasmModule::Compile method just returns a fixed array
        containing the code objects. More appropriate modeling of the compiled module to come.
      
        Opportunistically centralized the logic on how to update memory
        references, size, and globals, since that logic is the exact same on each
        architecture, except for the actual storing of values back in the
        instruction stream.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2100393003
      Cr-Commit-Position: refs/heads/master@{#37307}
      fe70bda4
    • bmeurer's avatar
      [turbofan] Introduce simplified operator NumberAbs. · f50a601f
      bmeurer authored
      Add NumberAbs operator to implement an inline version of Math.abs, that
      can be optimized and eliminated. We don't use any speculation here, but
      for now stick to the information we can infer (this way we avoid the
      inherent deopt loops that Crankshaft has around Math.abs).
      
      CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
      R=jarin@chromium.org
      BUG=v8:5086
      
      Review-Url: https://codereview.chromium.org/2096403002
      Cr-Commit-Position: refs/heads/master@{#37306}
      f50a601f
    • v8-autoroll's avatar
      Update V8 DEPS. · 53d2d24c
      v8-autoroll authored
      Rolling v8/build to 87e063014aa0f343b15f5de495a28e5f8572bf8d
      
      Rolling v8/tools/clang to 2ad431ac7823581e1f39c5b770704e1e1ca6cb32
      
      TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
      
      Review-Url: https://codereview.chromium.org/2101893002
      Cr-Commit-Position: refs/heads/master@{#37305}
      53d2d24c
    • zhengxing.li's avatar
      X87: [builtins] Introduce proper Float64Cos and Float64Sin. · 3bc1a842
      zhengxing.li authored
        port c781e831 (r37072)
      
        original commit message:
        Import base::ieee754::cos() and base::ieee754::sin() from fdlibm and
        introduce Float64Cos and Float64Sin TurboFan operator based on that,
        similar to what we do for Float64Log. Rewrite Math.cos() and Math.sin()
        as TurboFan builtins and use those operators to also inline Math.cos()
        and Math.sin() into optimized TurboFan functions.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2105613002
      Cr-Commit-Position: refs/heads/master@{#37304}
      3bc1a842
    • mattloring's avatar
      Reland of Include file names in trace_turbo output (patchset #1 id:1 of... · 9480ea44
      mattloring authored
      Reland of Include file names in trace_turbo output (patchset #1 id:1 of https://codereview.chromium.org/2083153004/ )
      
      Reason for revert:
      Ready to test fix and reland.
      
      Original issue's description:
      > Revert of Include file names in trace_turbo output (patchset #3 id:40001 of https://codereview.chromium.org/2083863004/ )
      >
      > Reason for revert:
      > Many build bots are failing with a message of the form:
      >
      > Missing or invalid v8 JSON file: /tmp/tmp2qcEUy_swarming/0/output.json
      >
      > Can be relanded once we understand why these failures are occuring.
      >
      > Original issue's description:
      > > Include file names in trace_turbo output
      > >
      > > The trace turbo output will overwrite itself when functions in different
      > > files share the same name. Output files now have the form
      > > `turbo-<function_name>:<opt_file_name>-<opt_phase>.suffix`.
      > >
      > > R=ofrobots@google.com
      > > BUG=
      > >
      > > Committed: https://crrev.com/a53b9bf02f31e5647c37e0392afa19f74df1a3ba
      > > Cr-Commit-Position: refs/heads/master@{#37199}
      >
      > TBR=ofrobots@google.com,bmeurer@chromium.org,danno@chromium.org
      > # Skipping CQ checks because original CL landed less than 1 days ago.
      > NOPRESUBMIT=true
      > NOTREECHECKS=true
      > NOTRY=true
      > BUG=
      >
      > Committed: https://crrev.com/97c2bc362f234bd58515a0faf6af23b4f8ad183a
      > Cr-Commit-Position: refs/heads/master@{#37204}
      
      TBR=ofrobots@google.com,bmeurer@chromium.org,danno@chromium.org,machenbach@google.com
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=
      
      Review-Url: https://codereview.chromium.org/2081323007
      Cr-Commit-Position: refs/heads/master@{#37303}
      9480ea44
  2. 27 Jun, 2016 19 commits