Merge V8 5.4.500.40
Test: Manual - built & ran d8
Change-Id: I4edfa2853d3e565b729723645395688ece3193f4
diff --git a/src/compiler/osr.cc b/src/compiler/osr.cc
index 55431c2..187e612 100644
--- a/src/compiler/osr.cc
+++ b/src/compiler/osr.cc
@@ -24,10 +24,16 @@
namespace compiler {
OsrHelper::OsrHelper(CompilationInfo* info)
- : parameter_count_(info->scope()->num_parameters()),
- stack_slot_count_(info->scope()->num_stack_slots() +
- info->osr_expr_stack_height()) {}
-
+ : parameter_count_(
+ info->is_optimizing_from_bytecode()
+ ? info->shared_info()->bytecode_array()->parameter_count()
+ : info->scope()->num_parameters()),
+ stack_slot_count_(
+ info->is_optimizing_from_bytecode()
+ ? info->shared_info()->bytecode_array()->register_count() +
+ InterpreterFrameConstants::kExtraSlotCount
+ : info->scope()->num_stack_slots() +
+ info->osr_expr_stack_height()) {}
#ifdef DEBUG
#define TRACE_COND (FLAG_trace_turbo_graph && FLAG_trace_osr)
@@ -78,8 +84,8 @@
}
// Copy all nodes.
- for (size_t i = 0; i < all.live.size(); i++) {
- Node* orig = all.live[i];
+ for (size_t i = 0; i < all.reachable.size(); i++) {
+ Node* orig = all.reachable[i];
Node* copy = mapping->at(orig->id());
if (copy != sentinel) {
// Mapping already exists.
@@ -107,7 +113,7 @@
}
// Fix missing inputs.
- for (Node* orig : all.live) {
+ for (Node* orig : all.reachable) {
Node* copy = mapping->at(orig->id());
for (int j = 0; j < copy->InputCount(); j++) {
if (copy->InputAt(j) == sentinel) {