Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(665)

Issue 157833004: Disable hoisting CheckClass due to excessive deoptimization. (Closed)

Created:
6 years, 10 months ago by srdjan
Modified:
6 years, 10 months ago
Reviewers:
Cutch
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Disable hoisting CheckClass due to excessive deoptimization (issue 16285). Detect that a deoptimization was caused by hoisted check class instruction and disable hoisting of CheckClassInstr for that function. This is a short-term solution to fix excessive deoptimization causing slow start-ups. R=johnmccutchan@google.com Committed: https://code.google.com/p/dart/source/detail?r=32460

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+54 lines, -26 lines) Patch
M runtime/vm/code_generator.h View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/compiler.cc View 1 2 3 4 2 chunks +1 line, -5 lines 0 comments Download
M runtime/vm/deopt_instructions.cc View 1 2 3 4 1 chunk +3 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.cc View 1 2 3 4 4 chunks +13 lines, -4 lines 0 comments Download
M runtime/vm/intermediate_language.h View 1 2 3 4 1 chunk +3 lines, -0 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 1 2 3 4 2 chunks +4 lines, -4 lines 0 comments Download
M runtime/vm/intermediate_language_ia32.cc View 1 2 3 4 2 chunks +4 lines, -4 lines 0 comments Download
M runtime/vm/intermediate_language_mips.cc View 1 2 3 4 2 chunks +4 lines, -4 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 1 2 3 4 2 chunks +4 lines, -4 lines 0 comments Download
M runtime/vm/object.h View 1 2 3 4 3 chunks +8 lines, -0 lines 0 comments Download
M runtime/vm/object.cc View 1 2 3 4 2 chunks +8 lines, -0 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
srdjan
6 years, 10 months ago (2014-02-07 23:03:46 UTC) #1
Cutch
lgtm
6 years, 10 months ago (2014-02-07 23:07:14 UTC) #2
srdjan
On 2014/02/07 23:07:14, Cutch wrote: > lgtm Thee VM crashes unless I disable all LICM. ...
6 years, 10 months ago (2014-02-07 23:27:40 UTC) #3
srdjan
Committed patchset #5 manually as r32460 (presubmit successful).
6 years, 10 months ago (2014-02-08 00:02:31 UTC) #4
Florian Schneider
6 years, 10 months ago (2014-02-10 09:22:58 UTC) #5
Message was sent while issue was closed.
On 2014/02/07 23:27:40, srdjan wrote:
> On 2014/02/07 23:07:14, Cutch wrote:
> > lgtm
> 
> Thee VM crashes unless I disable all LICM. Changed.

This is a known problem. The problem is as follows: Right now, we don't know
which instructions depend on a CheckClass. There is no explicit dependency.
Therefore, you can't selectively disable hoisting for CheckClass only, because
the instructions depending on the CheckClass must not be hoisted as well.

To solve this problem for good we need explicit dependencies in the IL. I think
this would be a good idea in general even though it adds additional overhead to
the IL.

Powered by Google App Engine
This is Rietveld 408576698