1. 26 Sep, 2016 1 commit
    • jgruber's avatar
      Enable component builds for fuzzers · 22606f0c
      jgruber authored
      V8 is collecting a growing amount of fuzzers, all of which take substantial
      space on the bots and in chromium build archives. This CL improves that
      situation by allowing component (shared library) builds for almost all fuzzers.
      
      The parser fuzzer is handled as an exception since it would require exporting a
      large number of additional functions.
      
      A component build results in about a 50-100x improvement in file size for each
      fuzzer (~50M-100M to around 1.1M).
      
      BUG=chromium:648864
      CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_compile_dbg_ng;master.tryserver.chromium.android:android_clang_dbg_recipe
      
      Review-Url: https://codereview.chromium.org/2360983002
      Cr-Commit-Position: refs/heads/master@{#39709}
      22606f0c
  2. 24 Sep, 2016 1 commit
    • littledan's avatar
      Move async/await JS support code out of experimental natives · 13b8a123
      littledan authored
      The file formerly known as src/js/harmony-async-await.js does not
      expose anything directly to JavaScript code; it just makes a few
      functions available on the native context for the parser desugaring
      to expand into. Experimental natives have various issues with
      larger amounts of code, so this patch moves the JS builtins to
      support async functions out of experimental natives and into the
      core snapshot. The change would be done eventually anyway, but this
      patch does it before removing the flag to support shipping the
      feature while avoiding the pitfalls of experimental natives.
      
      Drive by cleanup: remove more unused functions from the whitelist for experimental natives.
      
      BUG=v8:5427,v8:4483
      
      Review-Url: https://codereview.chromium.org/2365123002
      Cr-Commit-Position: refs/heads/master@{#39706}
      13b8a123
  3. 23 Sep, 2016 2 commits
  4. 22 Sep, 2016 4 commits
    • rmcilroy's avatar
      [Interpreter] Optimize BytecodeArrayBuilder and BytecodeArrayWriter. · e5ac75c6
      rmcilroy authored
      This CL optimizes the code in BytecodeArrayBuilder and
      BytecodeArrayWriter by making the following main changes:
      
       - Move operand scale calculation out of BytecodeArrayWriter to the
      BytecodeNode constructor, where the decision on which operands are
      scalable can generally be statically decided by the compiler.
       - Move the maximum register calculation out of BytecodeArrayWriter
      and into BytecodeRegisterOptimizer (which is the only place outside
      BytecodeGenerator which updates which registers are used). This
      avoids the BytecodeArrayWriter needing to know the operand types
      of a node as it writes it.
       - Modify EmitBytecodes to use individual push_backs rather than
      building a buffer and calling insert, since this turns out to be faster.
       - Initialize BytecodeArrayWriter's bytecode vector by reserving 512
      bytes,
       - Make common functions in Bytecodes constexpr so that they
      can be statically calculated by the compiler.
       - Move common functions and constructors in Bytecodes and
      BytecodeNode to the header so that they can be inlined.
       - Change large static switch statements in Bytecodes to const array
      lookups, and move to the header to allow inlining.
      
      I also took the opportunity to remove a number of unused helper
      functions, and rework some others for consistency.
      
      This reduces the percentage of time spent in making BytecodeArrays
       in  CodeLoad from ~15% to ~11% according to perf. The
      CoadLoad score increase by around 2%.
      
      BUG=v8:4280
      
      Committed: https://crrev.com/b11a8b4d41bf09d6b3d6cf214fe3fb61faf01a64
      Review-Url: https://codereview.chromium.org/2351763002
      Cr-Original-Commit-Position: refs/heads/master@{#39599}
      Cr-Commit-Position: refs/heads/master@{#39637}
      e5ac75c6
    • heimbuef's avatar
      Replaced different means of zone pooling/reusing by one zone segment pool · a124feb0
      heimbuef authored
      BUG=v8:5409
      
      Review-Url: https://codereview.chromium.org/2348303002
      Cr-Commit-Position: refs/heads/master@{#39633}
      a124feb0
    • heimbuef's avatar
      Pool implementation for zone segments · 37c688a2
      heimbuef authored
      BUG=v8:5409
      
      Review-Url: https://codereview.chromium.org/2335343007
      Cr-Commit-Position: refs/heads/master@{#39631}
      37c688a2
    • hablich's avatar
      Revert of [Interpreter] Optimize BytecodeArrayBuilder and BytecodeArrayWriter.... · 5d693348
      hablich authored
      Revert of [Interpreter] Optimize BytecodeArrayBuilder and BytecodeArrayWriter. (patchset #6 id:200001 of https://codereview.chromium.org/2351763002/ )
      
      Reason for revert:
      Prime suspect for roll blocker: https://codereview.chromium.org/2362503002/
      
      Original issue's description:
      > [Interpreter] Optimize BytecodeArrayBuilder and BytecodeArrayWriter.
      >
      > This CL optimizes the code in BytecodeArrayBuilder and
      > BytecodeArrayWriter by making the following main changes:
      >
      >  - Move operand scale calculation out of BytecodeArrayWriter to the
      > BytecodeNode constructor, where the decision on which operands are
      > scalable can generally be statically decided by the compiler.
      >  - Move the maximum register calculation out of BytecodeArrayWriter
      > and into BytecodeRegisterOptimizer (which is the only place outside
      > BytecodeGenerator which updates which registers are used). This
      > avoids the BytecodeArrayWriter needing to know the operand types
      > of a node as it writes it.
      >  - Modify EmitBytecodes to use individual push_backs rather than
      > building a buffer and calling insert, since this turns out to be faster.
      >  - Initialize BytecodeArrayWriter's bytecode vector by reserving 512
      > bytes,
      >  - Make common functions in Bytecodes constexpr so that they
      > can be statically calculated by the compiler.
      >  - Move common functions and constructors in Bytecodes and
      > BytecodeNode to the header so that they can be inlined.
      >  - Change large static switch statements in Bytecodes to const array
      > lookups, and move to the header to allow inlining.
      >
      > I also took the opportunity to remove a number of unused helper
      > functions, and rework some others for consistency.
      >
      > This reduces the percentage of time spent in making BytecodeArrays
      >  in  CodeLoad from ~15% to ~11% according to perf. The
      > CoadLoad score increase by around 2%.
      >
      > BUG=v8:4280
      >
      > Committed: https://crrev.com/b11a8b4d41bf09d6b3d6cf214fe3fb61faf01a64
      > Cr-Commit-Position: refs/heads/master@{#39599}
      
      TBR=mythria@chromium.org,leszeks@chromium.org,rmcilroy@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4280
      
      Review-Url: https://codereview.chromium.org/2360193003
      Cr-Commit-Position: refs/heads/master@{#39612}
      5d693348
  5. 21 Sep, 2016 3 commits
    • rmcilroy's avatar
      [Interpreter] Optimize BytecodeArrayBuilder and BytecodeArrayWriter. · b11a8b4d
      rmcilroy authored
      This CL optimizes the code in BytecodeArrayBuilder and
      BytecodeArrayWriter by making the following main changes:
      
       - Move operand scale calculation out of BytecodeArrayWriter to the
      BytecodeNode constructor, where the decision on which operands are
      scalable can generally be statically decided by the compiler.
       - Move the maximum register calculation out of BytecodeArrayWriter
      and into BytecodeRegisterOptimizer (which is the only place outside
      BytecodeGenerator which updates which registers are used). This
      avoids the BytecodeArrayWriter needing to know the operand types
      of a node as it writes it.
       - Modify EmitBytecodes to use individual push_backs rather than
      building a buffer and calling insert, since this turns out to be faster.
       - Initialize BytecodeArrayWriter's bytecode vector by reserving 512
      bytes,
       - Make common functions in Bytecodes constexpr so that they
      can be statically calculated by the compiler.
       - Move common functions and constructors in Bytecodes and
      BytecodeNode to the header so that they can be inlined.
       - Change large static switch statements in Bytecodes to const array
      lookups, and move to the header to allow inlining.
      
      I also took the opportunity to remove a number of unused helper
      functions, and rework some others for consistency.
      
      This reduces the percentage of time spent in making BytecodeArrays
       in  CodeLoad from ~15% to ~11% according to perf. The
      CoadLoad score increase by around 2%.
      
      BUG=v8:4280
      
      Review-Url: https://codereview.chromium.org/2351763002
      Cr-Commit-Position: refs/heads/master@{#39599}
      b11a8b4d
    • caitp's avatar
      [builtins] move String.prototype[@@iterator] to C++ builtin · 5784773f
      caitp authored
      BUG=v8:5388
      R=bmeurer@chromium.org, adamk@chromium.org
      TBR=hpayer@chromium.org
      
      Review-Url: https://codereview.chromium.org/2348493003
      Cr-Commit-Position: refs/heads/master@{#39598}
      5784773f
    • machenbach's avatar
      [gn] Add gn support to gcmole · a8951a96
      machenbach authored
      This also adds sources missing for PPC and x87, fixes a few
      missing files in gyp due to wrong quotation and a few that
      were simply not included.
      
      The gn files are now authoritative, but the gcmole gyp and
      gn source lists are enforced to match exactly.
      
      This additional enforcement helped finding the bugs above
      and will be removed when we deprecate the gyp files.
      
      BUG=614645
      NOTRY=true
      
      Review-Url: https://codereview.chromium.org/2352103002
      Cr-Commit-Position: refs/heads/master@{#39592}
      a8951a96
  6. 20 Sep, 2016 5 commits
  7. 19 Sep, 2016 2 commits
  8. 15 Sep, 2016 2 commits
  9. 14 Sep, 2016 3 commits
    • machenbach's avatar
      [gn] Fix no-inline config for V8 · 3999fb07
      machenbach authored
      This restores the original gyp behavior. Blocks:
      https://codereview.chromium.org/2334003005
      
      BUG=chromium:474921
      NOTRY=true
      
      Review-Url: https://codereview.chromium.org/2344493002
      Cr-Commit-Position: refs/heads/master@{#39414}
      3999fb07
    • ahaas's avatar
      [wasm] Write fuzzers for single wasm sections. · 3ff20190
      ahaas authored
      This CL adds fuzzers for the wasm module sections 'types', 'names',
      'globals', 'imports', 'function signatures', 'memory', and 'data', one
      fuzzer per section. No fuzzers are added for the other sections because
      either there already exists a fuzzer (e.g. wasm-code), or there exist
      inter-section dependencies.
      
      To avoid introducing a bunch executables which would make compilation
      with make slow, I introduce a single executable
      'v8_simple_wasm_section_fuzzer' which calls the fuzzers mentioned above.
      This executable is run by the trybots and ensures that the fuzzers
      actually compile. For debugging I introduce commandline parameters which
      allow to execute the specific fuzzers from 'v8_simple_wasm_section_fuzzer'.
      
      R=titzer@chromium.org, jochen@chromium.org, mstarzinger@chromium.org
      
      Review-Url: https://codereview.chromium.org/2336603002
      Cr-Commit-Position: refs/heads/master@{#39413}
      3ff20190
    • ahaas's avatar
      [wasm] Move the wasm-module-runner from test/cctest to test/common · cc7926d6
      ahaas authored
      The wasm-module-runner is used both in cctests and in fuzzers. As
      discussed offline, it is weird to include cctest header files in
      fuzzers, so I introduce a new test/common directory which contains the
      common files.
      
      R=titzer@chromium.org, jochen@chromium.org
      
      Review-Url: https://codereview.chromium.org/2335193002
      Cr-Commit-Position: refs/heads/master@{#39411}
      cc7926d6
  10. 13 Sep, 2016 1 commit
  11. 12 Sep, 2016 2 commits
  12. 08 Sep, 2016 2 commits
  13. 06 Sep, 2016 3 commits
  14. 05 Sep, 2016 3 commits
  15. 02 Sep, 2016 2 commits
    • adamk's avatar
      Remove unnessary includes of parser.h · 6dd2bc20
      adamk authored
      This makes for slightly faster rebuilds when touching parser-base.h
      (which changes frequently!). Also takes care of an old TODO,
      moving CompileTimeValue into its own file under ast/, where it
      properly belongs.
      
      BUG=v8:5294
      
      Review-Url: https://codereview.chromium.org/2305883002
      Cr-Commit-Position: refs/heads/master@{#39141}
      6dd2bc20
    • mvstanton's avatar
      Forking the type system between Crankshaft & Turbofan. · 17e9e2f4
      mvstanton authored
      Our Type class has a semantic and representational dimension.
      Much code in src/ast, Crankshaft and Turbofan is based on it.
      Going forward in Turbofan we'd like to remove representational information
      entirely. To that end, new type AstType has been created to preserve
      existing behavior for the benefit of Crankshaft and the AST.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2302283002
      Cr-Commit-Position: refs/heads/master@{#39135}
      17e9e2f4
  16. 01 Sep, 2016 2 commits
  17. 31 Aug, 2016 1 commit
  18. 29 Aug, 2016 1 commit