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

Issue 1415883005: Introduce AbstractValue and AbstractValueDomain (Closed)

Created:
5 years, 2 months ago by Johnni Winther
Modified:
5 years ago
CC:
reviews_dartlang.org
Base URL:
https://github.com/dart-lang/sdk.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

This is part of a move towards being able to replace TypeMask. First step is replacing TypeMask usage with interface that do not imply any particular way of abstracting runtime values. This CL is the first part of this first step. This CL: - renames the existing AbstractValue in cps_ir/type_propagation.dart to AbstractConstant - introduces AbstractValue as an empty superinterface of TypeMask, and - lift the interface of TypeMaskSystem to the superinterface AbstractValueDomain. In follow-ups: - change simple uses from TypeMask(System) to AbstractValue(Domain) - update names and comment in AbstractValueDomain to more precisely reflect the abstraction - update the complex uses (mainly type_propagation.dart) to use AbstractValue(Domain) R=asgerf@google.com Committed: https://github.com/dart-lang/sdk/commit/1328c98cc2b9c8a4704375753626fe34c569325e

Patch Set 1 #

Total comments: 3

Patch Set 2 : Revived #

Total comments: 2

Patch Set 3 : Updated cf. comments. #

Total comments: 3
Unified diffs Side-by-side diffs Delta from patch set Stats (+466 lines, -171 lines) Patch
M pkg/compiler/lib/src/cps_ir/type_mask_system.dart View 1 19 chunks +86 lines, -8 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/type_propagation.dart View 1 64 chunks +212 lines, -162 lines 1 comment Download
A pkg/compiler/lib/src/types/abstract_value_domain.dart View 1 2 1 chunk +164 lines, -0 lines 2 comments Download
M pkg/compiler/lib/src/types/type_mask.dart View 1 1 chunk +1 line, -1 line 0 comments Download
M pkg/compiler/lib/src/types/types.dart View 1 1 chunk +3 lines, -0 lines 0 comments Download

Messages

Total messages: 16 (5 generated)
Johnni Winther
New classes in types/runtime_value_abstraction.dart and adopted in cps_ir/type_mask_system.dart cps_ir/cps_ir_nodes.dart types/type_mask.dart ScalarReplacer has been updated to ...
5 years, 2 months ago (2015-10-22 13:27:29 UTC) #2
asgerf
I'm OK with the design, but I'm concerned that CPS will become stuck mid-way in ...
5 years, 2 months ago (2015-10-22 15:26:18 UTC) #3
Siggi Cherem (dart-lang)
Good point Asger. I'm also curious about whether we'll change our mind about how to ...
5 years, 2 months ago (2015-10-22 22:06:40 UTC) #4
Johnni Winther
PTAL
5 years ago (2015-11-30 10:32:44 UTC) #6
Johnni Winther
ping
5 years ago (2015-12-02 08:50:54 UTC) #7
asgerf
Sorry about the delay. LGTM. https://codereview.chromium.org/1415883005/diff/20001/pkg/compiler/lib/src/types/abstract_value_domain.dart File pkg/compiler/lib/src/types/abstract_value_domain.dart (right): https://codereview.chromium.org/1415883005/diff/20001/pkg/compiler/lib/src/types/abstract_value_domain.dart#newcode24 pkg/compiler/lib/src/types/abstract_value_domain.dart:24: /// A system that ...
5 years ago (2015-12-02 11:38:31 UTC) #8
Johnni Winther
Committed patchset #3 (id:40001) manually as 1328c98cc2b9c8a4704375753626fe34c569325e (presubmit successful).
5 years ago (2015-12-02 12:52:19 UTC) #10
Johnni Winther
https://codereview.chromium.org/1415883005/diff/20001/pkg/compiler/lib/src/types/abstract_value_domain.dart File pkg/compiler/lib/src/types/abstract_value_domain.dart (right): https://codereview.chromium.org/1415883005/diff/20001/pkg/compiler/lib/src/types/abstract_value_domain.dart#newcode24 pkg/compiler/lib/src/types/abstract_value_domain.dart:24: /// A system that implements an abstraction over runtime ...
5 years ago (2015-12-02 13:15:07 UTC) #11
sra1
I have a 'rude' question. Why we need this extra layer of abstract classes called ...
5 years ago (2015-12-02 17:42:24 UTC) #13
asgerf
https://codereview.chromium.org/1415883005/diff/40001/pkg/compiler/lib/src/types/abstract_value_domain.dart File pkg/compiler/lib/src/types/abstract_value_domain.dart (right): https://codereview.chromium.org/1415883005/diff/40001/pkg/compiler/lib/src/types/abstract_value_domain.dart#newcode28 pkg/compiler/lib/src/types/abstract_value_domain.dart:28: abstract class AbstractValueDomain { On 2015/12/02 17:42:24, sra1 wrote: ...
5 years ago (2015-12-02 18:05:07 UTC) #14
Johnni Winther
5 years ago (2015-12-03 09:05:16 UTC) #15
Message was sent while issue was closed.
On 2015/12/02 17:42:24, sra1 wrote:
> I have a 'rude' question.
> 
> Why we need this extra layer of abstract classes called AbstractSomething? 
> Perhaps you could expand the CL comment to include motivation?
> 

This is part of a move towards being able to replace TypeMask. First step is
replacing TypeMask usage with interface that do not imply any particular way of
abstracting runtime values. This CL is the first part of this first step.

Powered by Google App Engine
This is Rietveld 408576698