1. 28 Mar, 2017 1 commit
  2. 27 Mar, 2017 2 commits
  3. 24 Mar, 2017 1 commit
  4. 10 Feb, 2017 1 commit
    • rmcilroy's avatar
      [Compiler] Enable use of seperate zones for parsing and compiling. · 1fc93f2e
      rmcilroy authored
      In order to allow parallel compilation of eager inner functions, we need to
      seperate the zone used for parsing (which will be shared between all the
      parallel compile jobs) and the zone used for compilation. This CL changes
      CompilationInfo to require a zone (which can be different from the zone in
      ParseInfo). We then seal the ParseInfo zone after parsing and analysis is done
      to prevent any further allocation in that zone, so that it can be shared
      (read-only) with the parallel compile jobs.
      
      BUG=v8:5203
      
      Review-Url: https://codereview.chromium.org/2645403002
      Cr-Commit-Position: refs/heads/master@{#43089}
      1fc93f2e
  5. 07 Feb, 2017 5 commits
  6. 24 Jan, 2017 1 commit
  7. 20 Jan, 2017 3 commits
  8. 09 Jan, 2017 1 commit
  9. 07 Dec, 2016 1 commit
    • caitp's avatar
      [ignition] desugar GetIterator() via bytecode rather than via AST · b5f146a0
      caitp authored
      Introduces:
      - a new AST node representing the GetIterator() algorithm in the specification, to be used by ForOfStatement, YieldExpression (in the case of delegating yield*), and the future `for-await-of` loop proposed in http://tc39.github.io/proposal-async-iteration/#sec-async-iterator-value-unwrap-functions.
      - a new opcode (JumpIfJSReceiver), which is useful for `if Type(object) is not Object` checks which are common throughout the specification. This node is easily eliminated by TurboFan.
      
      The AST node is desugared specially in bytecode, rather than manually when building the AST. The benefit of this is that desugaring in the BytecodeGenerator is much simpler and easier to understand than desugaring the AST.
      
      This also reduces parse time very slightly, and allows us to use LoadIC rather than KeyedLoadIC, which seems to have  better baseline performance. This results in a ~20% improvement in test/js-perf-test/Iterators micro-benchmarks, which I believe owes to the use of the slightly faster LoadIC as opposed to the KeyedLoadIC in the baseline case. Both produce identical optimized code via TurboFan when the type check can be eliminated, and the load can be replaced with a constant value.
      
      BUG=v8:4280
      R=bmeurer@chromium.org, rmcilroy@chromium.org, adamk@chromium.org, neis@chromium.org, jarin@chromium.org
      TBR=rossberg@chromium.org
      
      Review-Url: https://codereview.chromium.org/2557593004
      Cr-Commit-Position: refs/heads/master@{#41555}
      b5f146a0
  10. 30 Nov, 2016 1 commit
  11. 17 Oct, 2016 1 commit
  12. 07 Oct, 2016 2 commits
  13. 31 Aug, 2016 2 commits
  14. 30 Aug, 2016 1 commit
  15. 22 Aug, 2016 1 commit
  16. 05 Aug, 2016 4 commits
  17. 08 Apr, 2016 1 commit
  18. 09 Dec, 2015 1 commit
  19. 26 Nov, 2015 1 commit
  20. 30 Oct, 2015 1 commit
    • mstarzinger's avatar
      Move compiler cctests into v8::internal::compiler namespace. · 16f13300
      mstarzinger authored
      This moves all cctest files for the compiler to live in the same
      namespace as the components they are testing. Hence we can avoid the
      forbidden using directives pulling in entire namespaces.
      
      From the Google C++ style guide: "You may not use a using-directive to
      make all names from a namespace available". This would be covered by
      presubmit linter checks if build/namespaces were not blacklisted.
      
      R=bmeurer@chromium.org
      
      Review URL: https://codereview.chromium.org/1424943004
      
      Cr-Commit-Position: refs/heads/master@{#31671}
      16f13300
  21. 28 Oct, 2015 1 commit
  22. 30 Sep, 2015 1 commit
  23. 19 Aug, 2015 1 commit
  24. 06 Jul, 2015 1 commit
  25. 12 Mar, 2015 1 commit
  26. 09 Mar, 2015 1 commit
  27. 12 Feb, 2015 1 commit
    • marja's avatar
      Parsing: Make Parser not know about Isolate during background parsing. · df0cb999
      marja authored
      Parser must be able to operate independent of Isolate and the V8 heap during
      parsing. After the heap-independent phase, there is a heap dependent phase,
      during which we internalize strings, handle errors, etc.
      
      This makes Isolate (also via CompilationInfo) unaccessible during parsing, and
      thus decreases the probability of accidental code changes which would add
      heap-dependent operations into the heap-independent phase.
      
      Since Isolate is also accessible via CompilationInfo, now CompilationInfo is
      only passed to the entry points of parsing, and not stored in Parser.
      
      R=rossberg@chromium.org
      BUG=
      
      Review URL: https://codereview.chromium.org/908173003
      
      Cr-Commit-Position: refs/heads/master@{#26612}
      df0cb999
  28. 30 Jan, 2015 1 commit