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

Issue 12221119: Remove SminessPropagator and FlowGraphTypePropagator and all associated infrastructure and fields. (Closed)

Created:
7 years, 10 months ago by Vyacheslav Egorov (Google)
Modified:
7 years, 10 months ago
Reviewers:
regis, srdjan
CC:
reviews_dartlang.org
Visibility:
Public.

Description

Remove SminessPropagator and FlowGraphTypePropagator and all associated infrastructure and fields. Replace multiple fields (result_cid_, propagated_cid_, propagated_type_, reaching_cid_) with a single field of type CompileType which represents an element of type analysis lattice and incorporates information about: value's nullability, concrete class id and abstract super type. This ensures that propagated cid and type are always in sync and complement each other Implement a new FlowGraphPropagator that propagates types over the CompileType-lattice. BUG= Committed: https://code.google.com/p/dart/source/detail?r=18377

Patch Set 1 #

Total comments: 29

Patch Set 2 : Addressed comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1188 lines, -1551 lines) Patch
M runtime/vm/compiler.cc View 3 chunks +15 lines, -4 lines 0 comments Download
M runtime/vm/flow_graph_builder.cc View 1 chunk +1 line, -6 lines 0 comments Download
M runtime/vm/flow_graph_compiler_ia32.cc View 2 chunks +11 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_compiler_x64.cc View 1 2 chunks +8 lines, -1 line 0 comments Download
M runtime/vm/flow_graph_optimizer.h View 1 chunk +0 lines, -33 lines 0 comments Download
M runtime/vm/flow_graph_optimizer.cc View 13 chunks +18 lines, -451 lines 0 comments Download
A runtime/vm/flow_graph_type_propagator.h View 1 1 chunk +77 lines, -0 lines 0 comments Download
A runtime/vm/flow_graph_type_propagator.cc View 1 1 chunk +734 lines, -0 lines 0 comments Download
M runtime/vm/il_printer.cc View 9 chunks +45 lines, -29 lines 0 comments Download
M runtime/vm/intermediate_language.h View 1 114 chunks +210 lines, -277 lines 0 comments Download
M runtime/vm/intermediate_language.cc View 15 chunks +30 lines, -714 lines 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M runtime/vm/intermediate_language_ia32.cc View 7 chunks +16 lines, -15 lines 0 comments Download
M runtime/vm/intermediate_language_mips.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M runtime/vm/intermediate_language_x64.cc View 6 chunks +12 lines, -13 lines 0 comments Download
M runtime/vm/object.cc View 1 chunk +5 lines, -4 lines 0 comments Download
M runtime/vm/vm_sources.gypi View 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
Vyacheslav Egorov (Google)
Hi Regis & Srdjan, Please take a look. This CL refactors our type propagation switching ...
7 years, 10 months ago (2013-02-11 17:31:07 UTC) #1
regis
LGTM https://codereview.chromium.org/12221119/diff/1/runtime/vm/flow_graph_type_propagator.cc File runtime/vm/flow_graph_type_propagator.cc (right): https://codereview.chromium.org/12221119/diff/1/runtime/vm/flow_graph_type_propagator.cc#newcode18 runtime/vm/flow_graph_type_propagator.cc:18: Too many blank lines. https://codereview.chromium.org/12221119/diff/1/runtime/vm/flow_graph_type_propagator.cc#newcode285 runtime/vm/flow_graph_type_propagator.cc:285: intptr_t CompileType::ToNullableCid() ...
7 years, 10 months ago (2013-02-11 19:51:49 UTC) #2
srdjan
First set of comments, still reviewing the rest. https://codereview.chromium.org/12221119/diff/1/runtime/vm/compiler.cc File runtime/vm/compiler.cc (right): https://codereview.chromium.org/12221119/diff/1/runtime/vm/compiler.cc#newcode195 runtime/vm/compiler.cc:195: OS::Print("Before ...
7 years, 10 months ago (2013-02-11 20:54:31 UTC) #3
srdjan
LGTM https://codereview.chromium.org/12221119/diff/1/runtime/vm/intermediate_language.h File runtime/vm/intermediate_language.h (right): https://codereview.chromium.org/12221119/diff/1/runtime/vm/intermediate_language.h#newcode2383 runtime/vm/intermediate_language.h:2383: || (receiver_class_id() == kSmiCid); Why not kBigintCid? Add ...
7 years, 10 months ago (2013-02-11 21:10:50 UTC) #4
Vyacheslav Egorov (Google)
7 years, 10 months ago (2013-02-18 14:05:22 UTC) #5
Message was sent while issue was closed.
sending stale drafts

https://codereview.chromium.org/12221119/diff/1/runtime/vm/compiler.cc
File runtime/vm/compiler.cc (right):

https://codereview.chromium.org/12221119/diff/1/runtime/vm/compiler.cc#newcod...
runtime/vm/compiler.cc:195: OS::Print("Before type propagation:\n");
On 2013/02/11 20:54:31, srdjan wrote:
> Have we made decision to print diagnostics with PrintErr?

I am not sure.

FlowGraphPrinter still prints to stdout, so I'd like to keep this in sync.

https://codereview.chromium.org/12221119/diff/1/runtime/vm/flow_graph_compile...
File runtime/vm/flow_graph_compiler_ia32.cc (right):

https://codereview.chromium.org/12221119/diff/1/runtime/vm/flow_graph_compile...
runtime/vm/flow_graph_compiler_ia32.cc:571: __ cmpl(EAX,
raw_transition_sentinel);
On 2013/02/11 20:54:31, srdjan wrote:
> __ CompareObject instead?

Done.

https://codereview.chromium.org/12221119/diff/1/runtime/vm/flow_graph_compile...
File runtime/vm/flow_graph_compiler_x64.cc (right):

https://codereview.chromium.org/12221119/diff/1/runtime/vm/flow_graph_compile...
runtime/vm/flow_graph_compiler_x64.cc:570: __ cmpq(RAX,
raw_transition_sentinel);
On 2013/02/11 20:54:31, srdjan wrote:
> __ CompareObject instead?

Done.

https://codereview.chromium.org/12221119/diff/1/runtime/vm/flow_graph_type_pr...
File runtime/vm/flow_graph_type_propagator.cc (right):

https://codereview.chromium.org/12221119/diff/1/runtime/vm/flow_graph_type_pr...
runtime/vm/flow_graph_type_propagator.cc:18: 
On 2013/02/11 19:51:49, regis wrote:
> Too many blank lines.

Done.

https://codereview.chromium.org/12221119/diff/1/runtime/vm/flow_graph_type_pr...
runtime/vm/flow_graph_type_propagator.cc:41: OS::Print("%s\n",
worklist_[i]->Type()->ToCString());
On 2013/02/11 20:54:31, srdjan wrote:
> You could add UNREACHBALE here instead of ASSERT below?

This was accidental debug code. I'll revert it.

https://codereview.chromium.org/12221119/diff/1/runtime/vm/flow_graph_type_pr...
File runtime/vm/flow_graph_type_propagator.h (right):

https://codereview.chromium.org/12221119/diff/1/runtime/vm/flow_graph_type_pr...
runtime/vm/flow_graph_type_propagator.h:9: #include "vm/flow_graph.h"
On 2013/02/11 20:54:31, srdjan wrote:
> Order alphabetically

Done.

https://codereview.chromium.org/12221119/diff/1/runtime/vm/flow_graph_type_pr...
runtime/vm/flow_graph_type_propagator.h:12: 
On 2013/02/11 19:51:49, regis wrote:
> We use a single blank line after namespace. Do not ask me why.

Done.

https://codereview.chromium.org/12221119/diff/1/runtime/vm/flow_graph_type_pr...
runtime/vm/flow_graph_type_propagator.h:57: // Do nothing. Only needed for
container.
On 2013/02/11 20:54:31, srdjan wrote:
> intialize the fields nonetheless.

Done.

https://codereview.chromium.org/12221119/diff/1/runtime/vm/flow_graph_type_pr...
runtime/vm/flow_graph_type_propagator.h:74: 
On 2013/02/11 19:51:49, regis wrote:
> ditto before namespace.

Done.

https://codereview.chromium.org/12221119/diff/1/runtime/vm/intermediate_langu...
File runtime/vm/intermediate_language.h (right):

https://codereview.chromium.org/12221119/diff/1/runtime/vm/intermediate_langu...
runtime/vm/intermediate_language.h:2383: || (receiver_class_id() == kSmiCid);
On 2013/02/11 21:10:50, srdjan wrote:
> Why not kBigintCid? Add a comment why or rename.

Renamed to IsInlinedNumericComparison.

Powered by Google App Engine
This is Rietveld 408576698