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

Issue 11048032: Support for mixed null/smi equality: do not deoptimize, emit same optimized code as if that was smi… (Closed)

Created:
8 years, 2 months ago by srdjan
Modified:
8 years, 2 months ago
CC:
reviews_dartlang.org
Visibility:
Public.

Description

Support for mixed null/smi equality: do not deoptimize, emit same optimized code as if that was smi-equality only. Moved assert for duplicate class checks into ICData. Allow CheckClassInstr to check for Smi as well. Committed: https://code.google.com/p/dart/source/detail?r=13254

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : #

Patch Set 7 : #

Total comments: 8
Unified diffs Side-by-side diffs Delta from patch set Stats (+474 lines, -139 lines) Patch
M runtime/vm/code_generator.h View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/code_generator.cc View 1 2 3 4 2 chunks +32 lines, -17 lines 2 comments Download
M runtime/vm/flow_graph_compiler.cc View 1 2 2 chunks +2 lines, -1 line 0 comments Download
M runtime/vm/flow_graph_compiler_ia32.h View 1 2 3 4 1 chunk +8 lines, -7 lines 0 comments Download
M runtime/vm/flow_graph_compiler_x64.h View 1 2 3 4 1 chunk +8 lines, -7 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.cc View 1 2 3 4 5 4 chunks +62 lines, -4 lines 0 comments Download
M runtime/vm/intermediate_language.h View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M runtime/vm/intermediate_language_ia32.cc View 1 2 3 4 5 5 chunks +56 lines, -44 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 1 2 3 4 5 5 chunks +53 lines, -43 lines 2 comments Download
M runtime/vm/object.h View 1 2 3 4 3 chunks +19 lines, -6 lines 0 comments Download
M runtime/vm/object.cc View 1 2 3 4 8 chunks +49 lines, -7 lines 4 comments Download
M runtime/vm/stub_code.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/stub_code_ia32.cc View 1 2 3 4 5 1 chunk +91 lines, -0 lines 0 comments Download
M runtime/vm/stub_code_x64.cc View 1 2 3 4 5 6 1 chunk +90 lines, -0 lines 0 comments Download

Messages

Total messages: 4 (0 generated)
srdjan
8 years, 2 months ago (2012-10-04 17:39:43 UTC) #1
regis
LGTM
8 years, 2 months ago (2012-10-04 18:04:30 UTC) #2
Florian Schneider
DBC https://codereview.chromium.org/11048032/diff/16007/runtime/vm/code_generator.cc File runtime/vm/code_generator.cc (right): https://codereview.chromium.org/11048032/diff/16007/runtime/vm/code_generator.cc#newcode992 runtime/vm/code_generator.cc:992: // teh control flow bypasses regular inline cache ...
8 years, 2 months ago (2012-10-05 09:17:35 UTC) #3
srdjan
8 years, 2 months ago (2012-10-09 18:06:03 UTC) #4
Thanks for feedback. Landing changes in next CL.

https://codereview.chromium.org/11048032/diff/16007/runtime/vm/code_generator.cc
File runtime/vm/code_generator.cc (right):

https://codereview.chromium.org/11048032/diff/16007/runtime/vm/code_generator...
runtime/vm/code_generator.cc:992: // teh control flow bypasses regular inline
cache (null arguments).
On 2012/10/05 09:17:35, Florian Schneider wrote:
> s/teh/the/ :)

Done.

https://codereview.chromium.org/11048032/diff/16007/runtime/vm/intermediate_l...
File runtime/vm/intermediate_language_x64.cc (right):

https://codereview.chromium.org/11048032/diff/16007/runtime/vm/intermediate_l...
runtime/vm/intermediate_language_x64.cc:589: // TODO(vegorov): should be
eliminated earlier by constant propagation.
On 2012/10/05 09:17:35, Florian Schneider wrote:
> Indentation is off.

Done.

https://codereview.chromium.org/11048032/diff/16007/runtime/vm/object.cc
File runtime/vm/object.cc (right):

https://codereview.chromium.org/11048032/diff/16007/runtime/vm/object.cc#newc...
runtime/vm/object.cc:7383: bool ICData::HasCheck(const GrowableArray<intptr_t>&
cids) const {
On 2012/10/05 09:17:35, Florian Schneider wrote:
> Do we want this inside #ifdef DEBUG as well to avoid having it in the release
> build?

#if defined(DEBUG)

https://codereview.chromium.org/11048032/diff/16007/runtime/vm/object.cc#newc...
runtime/vm/object.cc:7405: ASSERT(!HasCheck(class_ids));
On 2012/10/05 09:17:35, Florian Schneider wrote:
> Maybe DEBUG_ASSERT?

Done.

Powered by Google App Engine
This is Rietveld 408576698