1. 24 Jun, 2016 1 commit
  2. 20 Jun, 2016 5 commits
    • yangguo's avatar
      [debug] always add debug slot for statements. · 9611a4d2
      yangguo authored
      Previously we would elide debug slots if the statement position it
      belongs to has just already been written. The motivation is that since
      we should only break once per statement, we can elide debug slots that
      has the same statement position as the previous debug slot.
      
      This is an unnecessary optimization, since the debugger has yet another
      check against breaking twice at the same statement at runtime, in
      Debug::Break.
      
      This optimization can also be wrong, if there is control flow involved,
      for example if we can jump to the elided debug slot without executing
      the previous debug slot.
      
      CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      R=jgruber@chromium.org
      
      Review-Url: https://codereview.chromium.org/2080173002
      Cr-Commit-Position: refs/heads/master@{#37107}
      9611a4d2
    • ahaas's avatar
      [wasm] Use the new TF operators for F64Cos, F64Sin, F64Tan, and F64Exp · cdf4d10d
      ahaas authored
      R=bmeurer@chromium.org, bradnelson@chromium.org
      BUG=v8:5086
      
      Review-Url: https://codereview.chromium.org/2083473002
      Cr-Commit-Position: refs/heads/master@{#37094}
      cdf4d10d
    • yangguo's avatar
      Simplify AssemblerPositionsRecorder. · 9c3d730d
      yangguo authored
      R=bmeurer@chromium.org, jgruber@chromium.org
      
      Review-Url: https://codereview.chromium.org/2072963003
      Cr-Commit-Position: refs/heads/master@{#37089}
      9c3d730d
    • bmeurer's avatar
      [builtins] Introduce proper Float64Tan operator. · c87168bc
      bmeurer authored
      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=v8:5086,v8:5126
      R=yangguo@chromium.org
      
      Review-Url: https://codereview.chromium.org/2083453002
      Cr-Commit-Position: refs/heads/master@{#37087}
      c87168bc
    • mtrofin's avatar
      [wasm] Separate compilation from instantiation · c1d01aea
      mtrofin authored
      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=v8:5072
      
      Review-Url: https://codereview.chromium.org/2056633002
      Cr-Commit-Position: refs/heads/master@{#37086}
      c1d01aea
  3. 17 Jun, 2016 3 commits
  4. 16 Jun, 2016 3 commits
  5. 14 Jun, 2016 2 commits
  6. 13 Jun, 2016 3 commits
    • ahaas's avatar
      [wasm] Use the new Float64Atan(2) TF operators in wasm. · ab46151a
      ahaas authored
      R=bmeurer@chromium.org, bradnelson@chromium.org
      BUG=v8:5086, v8:5095
      
      Review-Url: https://codereview.chromium.org/2062773002
      Cr-Commit-Position: refs/heads/master@{#36931}
      ab46151a
    • bmeurer's avatar
      [builtins] Introduce proper Float64Atan and Float64Atan2 operators. · 89d8c57b
      bmeurer authored
      Import base::ieee754::atan() and base::ieee754::atan2() from fdlibm and
      introduce Float64Atan and Float64Atan2 TurboFan operators based on those,
      similar to what we already did for Float64Log and Float64Log1p. Rewrite
      Math.atan() and Math.atan2() as TurboFan builtin and use the operators
      to also inline Math.atan() and Math.atan2() into optimized TurboFan functions.
      
      R=yangguo@chromium.org
      BUG=v8:5086,v8:5095
      
      Review-Url: https://codereview.chromium.org/2065503002
      Cr-Commit-Position: refs/heads/master@{#36916}
      89d8c57b
    • bmeurer's avatar
      [builtins] Introduce proper Float64Log1p operator. · 7ceed92a
      bmeurer authored
      Import base::ieee754::log1p() from fdlibm and introduce a Float64Log1p
      TurboFan operator based on that, similar to what we do for Float64Log.
      Rewrite Math.log1p() as TurboFan builtin and use that operator to also
      inline Math.log1p() into optimized TurboFan functions.
      
      Also unify the handling of the special IEEE 754 functions somewhat in
      the TurboFan backends. At some point we can hopefully express this
      completely in the InstructionSelector (once we have an idea what to do
      with the ST(0) return issue on IA-32/X87).
      
      Drive-by-fix: Add some more test coverage for the log function.
      
      R=yangguo@chromium.org
      BUG=v8:5086,v8:5092
      
      Review-Url: https://codereview.chromium.org/2060743002
      Cr-Commit-Position: refs/heads/master@{#36914}
      7ceed92a
  7. 10 Jun, 2016 1 commit
    • bmeurer's avatar
      [builtins] Introduce proper base::ieee754::log. · d0c7775d
      bmeurer authored
      This switches Math.log to use an fdlibm based version of log, imported
      as base::ieee754::log, and use that consistently everywhere, i.e. change
      the Float64Log TurboFan operators on Intel to use the C++ implementation
      as well (same for Crankshaft).
      
      R=yangguo@chromium.org
      BUG=v8:5065,v8:5086
      
      Review-Url: https://codereview.chromium.org/2053893003
      Cr-Commit-Position: refs/heads/master@{#36880}
      d0c7775d
  8. 09 Jun, 2016 1 commit
  9. 03 Jun, 2016 4 commits
  10. 18 May, 2016 1 commit
  11. 13 May, 2016 1 commit
  12. 11 May, 2016 1 commit
    • mstarzinger's avatar
      [compiler] Pass inlining_id via relocation info. · 32049620
      mstarzinger authored
      This passes the inlining_id of deoptimization points via the relocation
      info instead of via a side-channel to the CPU profiler. This is one step
      towards deprecating the side-channel in question and avoid the need for
      performing a lookup of the return address of the deopt point.
      
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/1956693002
      Cr-Commit-Position: refs/heads/master@{#36177}
      32049620
  13. 04 May, 2016 1 commit
    • gdeepti's avatar
      Add new relocation type WASM_MEMORY_SIZE_REFERENCE, use relocatable pointers... · 117a56b7
      gdeepti authored
      Add new relocation type WASM_MEMORY_SIZE_REFERENCE, use relocatable pointers to update wasm memory size references in generated code.
       - Add new RelocInfo mode WASM_MEMORY_SIZE_REFERENCE in the assembler and add relocation information to immediates in compare instructions.
       - Use relocatable constants for MemSize/BoundsCheck in the wasm compiler
      
      R=titzer@chromium.org, yangguo@chromium.org, bradnelson@chromium.org
      
      Review-Url: https://codereview.chromium.org/1921203002
      Cr-Commit-Position: refs/heads/master@{#36044}
      117a56b7
  14. 27 Apr, 2016 1 commit
    • ssanfilippo's avatar
      [Interpreter] Add Ignition statistics JavaScript extension. · 905becd1
      ssanfilippo authored
      This commit introduces IgnitionStatisticsExtension, which provides
      methods for accessing Ignition statistics and counters from JavaScript.
      
      The extension is registered when FLAG_ignition and
      FLAG_trace_ignition_dispatches are both enabled.
      
      For the moment, the only exposed function is
      getIgnitionDispatchCounters(), which allows to retrieve Ignition
      dispatch counters as a JavaScript object.
      
      BUG=v8:4899
      LOG=N
      
      Review URL: https://codereview.chromium.org/1899133004
      
      Cr-Commit-Position: refs/heads/master@{#35816}
      905becd1
  15. 25 Apr, 2016 1 commit
  16. 21 Apr, 2016 1 commit
    • ahaas's avatar
      [wasm] New implementation of popcnt and ctz. · b4889f7d
      ahaas authored
      This patch provides a new implementation of popcnt and ctz in the case
      where the platform does not provide these instructions. Instead of
      building a TF graph which implements it we now call a C function.
      
      Additionally I turned on additional tests in test-run-wasm-64.cc
      
      R=titzer@chromium.org
      
      Review URL: https://codereview.chromium.org/1857363003
      
      Cr-Commit-Position: refs/heads/master@{#35685}
      b4889f7d
  17. 11 Apr, 2016 1 commit
    • ssanfilippo's avatar
      [Interpreter] Enable tracing of bytecode handler dispatches. · 1e3257d2
      ssanfilippo authored
      When FLAG_trace_ignition_dispatches is enabled, a dispatch counter is
      kept for each pair of source-destination bytecode handlers.
      
      Each counter saturates at max uintptr_t value.
      
      Counters are dumped as a JSON-encoded object of objects, such that
      each key on the top level object is a source bytecode name, and each key
      on the corresponding value is a destination bytecode name, with the
      associated counter as value. The output file name can be controlled
      with the FLAG_trace_ignition_dispatches_output_file flag.
      
      The JSON file may be written by calling
      Interpreter::WriteDispatchCounters(), which is done for d8 in
      Shell::OnExit, if FLAG_trace_ignition_dispatches is enabled.
      
      BUG=v8:4899
      LOG=N
      
      Review URL: https://codereview.chromium.org/1828633003
      
      Cr-Commit-Position: refs/heads/master@{#35380}
      1e3257d2
  18. 04 Apr, 2016 1 commit
  19. 31 Mar, 2016 1 commit
  20. 29 Mar, 2016 1 commit
  21. 16 Mar, 2016 5 commits
  22. 15 Mar, 2016 1 commit
    • ahaas's avatar
      [wasm] Int64Lowering of I64Div and I64Rem. · 29e0e8e9
      ahaas authored
      On 32-bit systems these instructions are compiled to calls to
      C functions. The TF node for the function call is already generated in
      the wasm compiler, the lowering of the I64 parameters is done in the
      Int64Lowering. We use the return value of the C function to determine
      whether the calculation should trap or not.
      
      R=titzer@chromium.org
      
      Review URL: https://codereview.chromium.org/1804513002
      
      Cr-Commit-Position: refs/heads/master@{#34768}
      29e0e8e9