diff options
author | Myles Borins <mylesborins@google.com> | 2019-09-24 11:56:38 -0400 |
---|---|---|
committer | Myles Borins <myles.borins@gmail.com> | 2019-10-07 03:19:23 -0400 |
commit | f7f6c928c1c9c136b7926f892b8a2fda11d8b4b2 (patch) | |
tree | f5edbccb3ffda2573d70a6e291e7157f290e0ae0 /deps/v8/src/runtime/runtime-compiler.cc | |
parent | ffd22e81983056d09c064c59343a0e488236272d (diff) | |
download | android-node-v8-f7f6c928c1c9c136b7926f892b8a2fda11d8b4b2.tar.gz android-node-v8-f7f6c928c1c9c136b7926f892b8a2fda11d8b4b2.tar.bz2 android-node-v8-f7f6c928c1c9c136b7926f892b8a2fda11d8b4b2.zip |
deps: update V8 to 7.8.279.9
PR-URL: https://github.com/nodejs/node/pull/29694
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
Diffstat (limited to 'deps/v8/src/runtime/runtime-compiler.cc')
-rw-r--r-- | deps/v8/src/runtime/runtime-compiler.cc | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/deps/v8/src/runtime/runtime-compiler.cc b/deps/v8/src/runtime/runtime-compiler.cc index 19c6f8bff5..4364c55775 100644 --- a/deps/v8/src/runtime/runtime-compiler.cc +++ b/deps/v8/src/runtime/runtime-compiler.cc @@ -266,7 +266,26 @@ RUNTIME_FUNCTION(Runtime_CompileForOnStackReplacement) { } DCHECK(result->is_turbofanned()); - if (!function->HasOptimizedCode()) { + if (function->feedback_vector().invocation_count() <= 1 && + function->HasOptimizationMarker()) { + // With lazy feedback allocation we may not have feedback for the + // initial part of the function that was executed before we allocated a + // feedback vector. Reset any optimization markers for such functions. + // + // TODO(mythria): Instead of resetting the optimization marker here we + // should only mark a function for optimization if it has sufficient + // feedback. We cannot do this currently since we OSR only after we mark + // a function for optimization. We should instead change it to be based + // based on number of ticks. + DCHECK(!function->IsInOptimizationQueue()); + function->ClearOptimizationMarker(); + } + // TODO(mythria): Once we have OSR code cache we may not need to mark + // the function for non-concurrent compilation. We could arm the loops + // early so the second execution uses the already compiled OSR code and + // the optimization occurs concurrently off main thread. + if (!function->HasOptimizedCode() && + function->feedback_vector().invocation_count() > 1) { // If we're not already optimized, set to optimize non-concurrently on // the next call, otherwise we'd run unoptimized once more and // potentially compile for OSR again. |