1. 07 Jun, 2018 1 commit
    • Leszek Swirski's avatar
      Revert "[sfi] Remove SFI function literal id field" · b6888b63
      Leszek Swirski authored
      This reverts commit ceb9c812.
      
      Reason for revert: Tanks compile time
      
      Original change's description:
      > [sfi] Remove SFI function literal id field
      > 
      > SharedFunctionInfos store their original function literal's id. This is
      > also their index in the Script's SFI list.
      > 
      > Since the function literal id is only needed for lazy compilation and live
      > edit, we can calculate it on-the-fly by linear search in the Script SFI list,
      > and save a field on the SFI.
      > 
      > If this regresses compile performance, we could alternatively store the
      > function literal id on the preparsed scope data as future work.
      > 
      > Bug: chromium:818642
      > Change-Id: I5468cea0e115921f1c864d94e567d749a4349882
      > Reviewed-on: https://chromium-review.googlesource.com/1082480
      > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#53523}
      
      TBR=hpayer@chromium.org,leszeks@chromium.org,verwaest@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: chromium:818642
      Bug: chromium:850417
      Change-Id: If2fd21331b7062532c04004a51e705f7e9d0a151
      Reviewed-on: https://chromium-review.googlesource.com/1090494Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53573}
      b6888b63
  2. 05 Jun, 2018 1 commit
    • Leszek Swirski's avatar
      [sfi] Remove SFI function literal id field · ceb9c812
      Leszek Swirski authored
      SharedFunctionInfos store their original function literal's id. This is
      also their index in the Script's SFI list.
      
      Since the function literal id is only needed for lazy compilation and live
      edit, we can calculate it on-the-fly by linear search in the Script SFI list,
      and save a field on the SFI.
      
      If this regresses compile performance, we could alternatively store the
      function literal id on the preparsed scope data as future work.
      
      Bug: chromium:818642
      Change-Id: I5468cea0e115921f1c864d94e567d749a4349882
      Reviewed-on: https://chromium-review.googlesource.com/1082480
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53523}
      ceb9c812
  3. 03 Jun, 2018 1 commit
  4. 31 May, 2018 1 commit
  5. 28 May, 2018 1 commit
  6. 06 Apr, 2018 1 commit
  7. 27 Mar, 2018 1 commit
  8. 22 Mar, 2018 3 commits
  9. 20 Mar, 2018 2 commits
  10. 16 Mar, 2018 1 commit
  11. 23 Feb, 2018 1 commit
    • jgruber's avatar
      Remove unused runtime functions · 1ee80eba
      jgruber authored
      The list of runtime function use counts was generated with:
      
      $ grep -o '^ *F(\w*' src/runtime/runtime.h | sed 's/^ *F(//' | sort | while read f; do USE_COUNT=$(git grep "\(Runtime::k\|Runtime::kInline\|%\|%_\)$f" | wc -l); echo $USE_COUNT $f; done
      
      This reduces libv8.so size by 59K on an x64 release build.
      
      Bug: v8:7310
      Change-Id: Ib4d097e63ed065f41bf73e9529e4354575be5229
      Reviewed-on: https://chromium-review.googlesource.com/934272Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51526}
      1ee80eba
  12. 22 Feb, 2018 1 commit
    • Benedikt Meurer's avatar
      [cleanup] Introduce a dedicated FeedbackCell. · aff1f378
      Benedikt Meurer authored
      This is preparatory cleanup work for eventually tracking the functions
      (rather than concrete closures) in the CALL_IC, also for builtins like
      the default PromiseCapability [[Resolve]] and [[Reject]] functions. It
      adds a new FeedbackCell type, which is used by JSFunctions consistently
      now to reference the feedback vector (or undefined if not the function
      is not compiled yet or is a native/asm.js function).
      
      This also changes the calling convention for FastNewClosure builtin and
      the JSCreateClosure operator in TurboFan to carry the FeedbackCell here
      instead of the parent FeedbackVector and the slot index. In addition we
      eliminate the now unused %InterpreterNewClosure runtime function.
      
      Bug: v8:2206, v8:7253, v8:7310
      Change-Id: Ib4ce456e276e0273e57c163dcdd0b33abf863656
      Reviewed-on: https://chromium-review.googlesource.com/928403
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51474}
      aff1f378
  13. 19 Dec, 2017 1 commit
  14. 28 Nov, 2017 1 commit
  15. 27 Oct, 2017 1 commit
  16. 28 Sep, 2017 2 commits
  17. 18 Sep, 2017 1 commit
    • Mythri's avatar
      [TurboFan] Remove SetForceInline · 5114f14c
      Mythri authored
      SetForceInline flag is no longer used. This flag was added for
      inlining some of the javascript builtins. They are now ported to
      TurboFan builtins. This cl removes SetForceInline runtime function
      and the corresponding bits in the SharedFunctionInfo. Also update
      inlining heuristics to not look for this bit.
      
      Bug: v8:6682
      Change-Id: Ie8df9648332b765a556e24609c38b4e55b810527
      Reviewed-on: https://chromium-review.googlesource.com/668436Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Commit-Queue: Mythri Alle <mythria@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48065}
      5114f14c
  18. 07 Sep, 2017 1 commit
  19. 17 Aug, 2017 1 commit
    • Ross McIlroy's avatar
      Reland "[Compiler] Remove CompileDebugCode and EnsureBytecode and replace with Compile" · 73ec5598
      Ross McIlroy authored
      This is a reland of 21da12a9
      Original change's description:
      > [Compiler] Remove CompileDebugCode and EnsureBytecode and replace with Compile
      > 
      > Removes the Compiler::CompileDebugCode and Compiler::EnsureBytecode functions
      > and replaces them with a Compiler::Compile(Handle<SharedFunctionInfo> shared)
      > function. The code in compiler.cc is refactored to use this function to compile
      > the SharedFunctionInfo when compiling a JSFunction.
      > 
      > Also does some other cleanup:
      >  - Removes CompileUnoptimizedFunction and inlines into new Compiler function
      >  - Moves code to create top level SharedFunctionInfo into CompilerTopLevel and
      >    out of FinalizeUnoptimizedCompile.
      > 
      > BUG=v8:6409
      > 
      > Change-Id: Ic54afcd8eb005c17f3ae6b2355060846e3091ca3
      > Reviewed-on: https://chromium-review.googlesource.com/613760
      > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47394}
      
      TBR=yangguo@chromium.org
      TBR=jarin@chromium.org
      
      Bug: v8:6409
      Change-Id: If2eae66a85f129e746a5ca5c04935540f3f86b04
      Reviewed-on: https://chromium-review.googlesource.com/618886Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47399}
      73ec5598
  20. 03 Aug, 2017 1 commit
  21. 02 Aug, 2017 1 commit
  22. 01 Aug, 2017 1 commit
  23. 31 Jul, 2017 1 commit
    • Leszek Swirski's avatar
      [sfi] Remove opt_count · e47d1757
      Leszek Swirski authored
      Remove opt_count from SFI, which only had two real uses:
      
        1. Detecting OSR in tests -- replaced with a stack walk in
           %GetOptimizationStatus
        2. Naming optimization log files -- replaced with the
           optimization id
      
      This allows us to remove a field from the SFI, moving the
      bailout reason into the counters field.
      
      As a drive-by, add optimization marker information (e.g.
      marked for optimization) to the optimization status.
      
      Change-Id: Id77deb5dd5439dfba058a7e1e1748de26b717d0d
      Reviewed-on: https://chromium-review.googlesource.com/592028Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47009}
      e47d1757
  24. 25 Jul, 2017 1 commit
  25. 17 Jul, 2017 1 commit
    • Leszek Swirski's avatar
      Revert "[runtime] Move profiler ticks from SFI to feedback vector" · 14c5c4fd
      Leszek Swirski authored
      This reverts commit a2fcdc7c.
      
      Reason for revert: Large regressions in RCS (https://chromeperf.appspot.com/group_report?bug_id=740126)
      
      Original change's description:
      > [runtime] Move profiler ticks from SFI to feedback vector
      > 
      > Instead of counting profiler ticks on the shared function info (which is
      > shared between native contexts), count them on the feedback vector
      > (which is not). This allows us to continue pushing optimization
      > decisions off the SFI, onto the feedback vector.
      > 
      > Note that a side-effect of this is that ICs don't have to walk the stack
      > to reset profiler ticks, as they can access the feedback vector directly
      > from their feedback nexus.
      > 
      > Change-Id: I232ae9e759fca75cd89d393148a4ff42caa2646f
      > Reviewed-on: https://chromium-review.googlesource.com/544888
      > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#46411}
      
      TBR=rmcilroy@chromium.org,leszeks@chromium.org,ishell@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Change-Id: Id587e4172e300c420f93c49744a2a0e66696edf8
      Reviewed-on: https://chromium-review.googlesource.com/574227
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46702}
      14c5c4fd
  26. 05 Jul, 2017 1 commit
  27. 30 Jun, 2017 2 commits
  28. 28 Jun, 2017 1 commit
    • Igor Sheludko's avatar
      [runtime] Cleanup native methods creation in js/intl.js. · e7bd43c3
      Igor Sheludko authored
      This CL replaces usages of utils.InstallFunctions and utils.InstallGetter()
      with the DEFINE_METHOD* macros that ensure that the native function is
      created in proper form from the beginning. Thus the function will not
      require further reconfiguring like adding a computed name or removing of
      'prototype' property.
      
      This CL is one of a series of cleanup CL which are the preliminary steps for
      improving function closures creation.
      
      Bug: v8:6459
      Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng
      Change-Id: I667d70fae12a2f50d0fe18d958b6520110b4b573
      Reviewed-on: https://chromium-review.googlesource.com/548075
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46278}
      e7bd43c3
  29. 06 Jun, 2017 1 commit
    • Igor Sheludko's avatar
      [parser] Introduce SharedFunctionInfo::has_shared_name(). · 9a2c18f5
      Igor Sheludko authored
      Properly propagate the fact that the function has a statically known name from
      parser to SharedFunctionInfo objects. The empty string that has been set as
      name before this CL does not help to distinguish cases like:
        var o1 = { ''(){} };
        var o1 = { [foo()](){} };
      or
        var o2 = { get ''(){} };
        var o2 = { get [foo()](){} };
      
      This is a preliminary step for using different layouts for closure objects with
      and without computed names.
      
      TBR=bmeurer@chromium.org, marja@chromium.org
      
      Bug: v8:6459
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I10afa6f4bda7881c3714711a75f720f83c1d875d
      Reviewed-on: https://chromium-review.googlesource.com/522073
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45744}
      9a2c18f5
  30. 22 May, 2017 1 commit
  31. 20 Apr, 2017 1 commit
  32. 18 Apr, 2017 1 commit
  33. 12 Apr, 2017 1 commit
  34. 16 Feb, 2017 1 commit
  35. 05 Jan, 2017 1 commit