1. 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
  2. 09 Feb, 2017 1 commit
  3. 07 Feb, 2017 7 commits
  4. 24 Jan, 2017 1 commit
  5. 20 Jan, 2017 3 commits
  6. 16 Jan, 2017 1 commit
  7. 13 Jan, 2017 1 commit
  8. 12 Jan, 2017 1 commit
  9. 09 Jan, 2017 1 commit
  10. 22 Dec, 2016 2 commits
  11. 21 Dec, 2016 2 commits
  12. 20 Dec, 2016 1 commit
  13. 16 Dec, 2016 1 commit
    • vegorov's avatar
      Move TraceInlinedFunction from Hydrogen graph builder to internal::CodeGenerator. · 686d8c86
      vegorov authored
      This allows to share source dumping infrastructure between CS and TF and opens a possibility for external tools like IRHydra to perform deoptimization to source mapping for TF generated code based on --trace-deopt --print-opt-code --code-comments output.
      
      This CL also restores an old TraceInlinedFunction behavior which was lost during source positions refactoring - originally TraceInlinedFunction dumped source code only once per-SFI to avoid large traces whenever some helper function is inlined multiple times.
      
      This CL also adds --print-opt-source flag that would in the future replace obsolete --hydrogen-track-positions.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2575703003
      Cr-Commit-Position: refs/heads/master@{#41758}
      686d8c86
  14. 14 Nov, 2016 1 commit
    • tebbi's avatar
      This CL enables precise source positions for all V8 compilers. It merges... · c3a6ca68
      tebbi authored
      This CL enables precise source positions for all V8 compilers. It merges compiler::SourcePosition and internal::SourcePosition to a single class used throughout the codebase. The new internal::SourcePosition instances store an id identifying an inlined function in addition to a script offset.
      SourcePosition::InliningId() refers to a the new table DeoptimizationInputData::InliningPositions(), which provides the following data for every inlining id:
       - The inlined SharedFunctionInfo as an offset into DeoptimizationInfo::LiteralArray
       - The SourcePosition of the inlining. Recursively, this yields the full inlining stack.
      Before the Code object is created, the same information can be found in CompilationInfo::inlined_functions().
      
      If SourcePosition::InliningId() is SourcePosition::kNotInlined, it refers to the outer (non-inlined) function.
      So every SourcePosition has full information about its inlining stack, as long as the corresponding Code object is known. The internal represenation of a source position is a positive 64bit integer.
      
      All compilers create now appropriate source positions for inlined functions. In the case of Turbofan, this required using AstGraphBuilderWithPositions for inlined functions too. So this class is now moved to a header file.
      
      At the moment, the additional information in source positions is only used in --trace-deopt and --code-comments. The profiler needs to be updated, at the moment it gets the correct script offsets from the deopt info, but the wrong script id from the reconstructed deopt stack, which can lead to wrong outputs. This should be resolved by making the profiler use the new inlining information for deopts.
      
      I activated the inlined deoptimization tests in test-cpu-profiler.cc for Turbofan, changing them to a case where the deopt stack and the inlining position agree. It is currently still broken for other cases.
      
      The following additional changes were necessary:
       - The source position table (internal::SourcePositionTableBuilder etc.) supports now 64bit source positions. Encoding source positions in a single 64bit int together with the difference encoding in the source position table results in very little overhead for the inlining id, since only 12% of the source positions in Octane have a changed inlining id.
       - The class HPositionInfo was effectively dead code and is now removed.
       - SourcePosition has new printing and information facilities, including computing a full inlining stack.
       - I had to rename compiler/source-position.{h,cc} to compiler/compiler-source-position-table.{h,cc} to avoid clashes with the new src/source-position.cc file.
       - I wrote the new wrapper PodArray for ByteArray. It is a template working with any POD-type. This is used in DeoptimizationInputData::InliningPositions().
       - I removed HInlinedFunctionInfo and HGraph::inlined_function_infos, because they were only used for the now obsolete Crankshaft inlining ids.
       - Crankshaft managed a list of inlined functions in Lithium: LChunk::inlined_functions. This is an analog structure to CompilationInfo::inlined_functions. So I removed LChunk::inlined_functions and made Crankshaft use CompilationInfo::inlined_functions instead, because this was necessary to register the offsets into the literal array in a uniform way. This is a safe change because LChunk::inlined_functions has no other uses and the functions in CompilationInfo::inlined_functions have a strictly longer lifespan, being created earlier (in Hydrogen already).
      
      BUG=v8:5432
      
      Review-Url: https://codereview.chromium.org/2451853002
      Cr-Commit-Position: refs/heads/master@{#40975}
      c3a6ca68
  15. 10 Nov, 2016 1 commit
  16. 07 Nov, 2016 1 commit
  17. 02 Nov, 2016 1 commit
    • verwaest's avatar
      Thread decls-list through Declaration using a ThreadedList · 5a18685e
      verwaest authored
      This reduces per-scope overhead from minimally 6 words to 2 words, with one additional pointer per entry, rather than an average of 2 per entry for larger-than-4 element lists. For temp zone parsed functions it additionally makes the declaration-list actually freeable.
      
      This introduces ThreadedList to implement the details of dealing with such a list.
      
      BUG=v8:5209
      
      Review-Url: https://codereview.chromium.org/2457393003
      Cr-Commit-Position: refs/heads/master@{#40703}
      5a18685e
  18. 31 Oct, 2016 1 commit
  19. 25 Oct, 2016 1 commit
    • jgruber's avatar
      [regexp] Remove unused code · 77ddcfb3
      jgruber authored
      This CL removes code that is now unused since the port of regexp.js has been
      completed. Removed functions / classes are:
      
      * regexp.js (GetSubstitution moved to string.js)
      * RegExpConstructResult stub
      * RegExpFlags intrinsic
      * RegExpSource intrinsic
      * RegExpInitializeAndCompile runtime function
      
      BUG=v8:5339
      
      Review-Url: https://codereview.chromium.org/2448463002
      Cr-Commit-Position: refs/heads/master@{#40547}
      77ddcfb3
  20. 20 Oct, 2016 1 commit
  21. 18 Oct, 2016 1 commit
  22. 17 Oct, 2016 4 commits
  23. 11 Oct, 2016 2 commits
  24. 07 Oct, 2016 2 commits
  25. 30 Sep, 2016 1 commit