Skip to content

Commit

Permalink
deps: cherry-pick 43547df from V8 upstream
Browse files Browse the repository at this point in the history
Original commit message:

  [crankshaft] Don't inline "dont_crankshaft" functions

  Crankshaft shouldn't try to inline functions it knows it can't handle.

  BUG=v8:5033

  Review-Url: https://codereview.chromium.org/2000703002
  Cr-Commit-Position: refs/heads/master@{#36417}

Fixes: #6883
PR-URL: #7863
Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: targos - Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: ofrobots - Ali Ijaz Sheikh <ofrobots@google.com>
  • Loading branch information
fhinkel authored and ofrobots committed Aug 5, 2016
1 parent af63871 commit 75b37a6
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 1 deletion.
2 changes: 1 addition & 1 deletion deps/v8/include/v8-version.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#define V8_MAJOR_VERSION 5
#define V8_MINOR_VERSION 0
#define V8_BUILD_NUMBER 71
#define V8_PATCH_LEVEL 59
#define V8_PATCH_LEVEL 60

// Use 1 for candidates and 0 otherwise.
// (Boolean macro values are not supported by all preprocessors.)
Expand Down
4 changes: 4 additions & 0 deletions deps/v8/src/crankshaft/hydrogen.cc
Original file line number Diff line number Diff line change
Expand Up @@ -8423,6 +8423,10 @@ bool HOptimizedGraphBuilder::TryInline(Handle<JSFunction> target,
TraceInline(target, caller, "parse failure");
return false;
}
if (target_shared->dont_crankshaft()) {
TraceInline(target, caller, "ParseAndAnalyze found incompatibility");
return false;
}

if (target_info.scope()->num_heap_slots() > 0) {
TraceInline(target, caller, "target has context-allocated variables");
Expand Down
21 changes: 21 additions & 0 deletions deps/v8/test/mjsunit/regress/regress-5033.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// Copyright 2016 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Flags: --allow-natives-syntax

var test = function() {
var t = Date.now(); // Just any non-constant double value.
var o = {
['p']: 1,
t
};
};

function caller() {
test();
}
caller();
caller();
%OptimizeFunctionOnNextCall(caller);
caller();

0 comments on commit 75b37a6

Please sign in to comment.