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

Issue 251753005: Establish distributivity for type union & intersection (Closed)

Created:
6 years, 8 months ago by rossberg
Modified:
6 years, 6 months ago
CC:
v8-dev
Visibility:
Public.

Description

Establish distributivity for type union & intersection This requires introducing proper bounds on all leaf types, so that intersection between bitsets and these types can be accurately represented. Extending a union also becomes more involved. (On the upside, the modified union/intersect algorithm would now allow support for proper variance for function types.) Not sure if it is worth landing this. Distributivity isn't really a crucial property for our use cases. It seems fine if intersection is slightly lossy. R=bmeurer@chromium.org, jarin@chromium.org BUG= Committed: https://code.google.com/p/v8/source/detail?r=21528

Patch Set 1 #

Patch Set 2 : Eps #

Total comments: 2

Patch Set 3 : Accurate representation glb & intersection; renaming #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+607 lines, -316 lines) Patch
M src/types.h View 1 2 15 chunks +160 lines, -85 lines 0 comments Download
M src/types.cc View 1 2 11 chunks +257 lines, -111 lines 0 comments Download
M src/types-inl.h View 1 2 6 chunks +66 lines, -94 lines 0 comments Download
M test/cctest/test-types.cc View 1 2 15 chunks +124 lines, -26 lines 2 comments Download

Messages

Total messages: 8 (0 generated)
rossberg
6 years, 8 months ago (2014-04-25 15:15:10 UTC) #1
rossberg
Benedikt, wanna have a look?
6 years, 7 months ago (2014-05-22 13:58:24 UTC) #2
Benedikt Meurer
I like this change, although it's a pretty big CL. Just two comments, otherwise LGTM.
6 years, 7 months ago (2014-05-23 05:08:52 UTC) #3
Benedikt Meurer
https://codereview.chromium.org/251753005/diff/20001/src/types.cc File src/types.cc (right): https://codereview.chromium.org/251753005/diff/20001/src/types.cc#newcode468 src/types.cc:468: ASSERT(this->Length() >= 2); This function always returns true, so ...
6 years, 7 months ago (2014-05-23 05:08:59 UTC) #4
rossberg
PTAL. I fixed one remaining case of lossiness: the glb should retain representation information. Needed ...
6 years, 7 months ago (2014-05-26 12:46:30 UTC) #5
Benedikt Meurer
Still LGTM https://codereview.chromium.org/251753005/diff/40001/test/cctest/test-types.cc File test/cctest/test-types.cc (right): https://codereview.chromium.org/251753005/diff/40001/test/cctest/test-types.cc#newcode30 test/cctest/test-types.cc:30: #define private public /* To test private ...
6 years, 7 months ago (2014-05-27 09:29:47 UTC) #6
rossberg1
https://codereview.chromium.org/251753005/diff/40001/test/cctest/test-types.cc File test/cctest/test-types.cc (right): https://codereview.chromium.org/251753005/diff/40001/test/cctest/test-types.cc#newcode30 test/cctest/test-types.cc:30: #define private public /* To test private methods :) ...
6 years, 7 months ago (2014-05-27 09:42:58 UTC) #7
rossberg
6 years, 7 months ago (2014-05-27 13:52:39 UTC) #8
Message was sent while issue was closed.
Committed patchset #3 manually as r21528 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698