DescriptionSteps towards unification of number bitset and range types.
- New invariant on union types: if the union has a range then the number
bits in the bitset must be cleared.
- Various tweaks in intersection and union to satisfy the invariant.
- Exposed and used representation bits in range types (and the Limits
helper class).
- Implemented Glb for ranges so that the Is predicate handles
ranges correctly.
- Change typer weakening so that it does not rely on GetRange.
However, the code still seems to be a bit fragile.
- Removed the Smi types from the type system core, instead introduced
Signed31, Unsigned30 and created constructors for Small(Un)Signed
that point to the right type for the architecture.
- Punched a hole in the config to be able to get to the isolate so
that it is possible to allocate heap numbers for newly created
ranges.
R=rossberg@chromium.org
BUG=
Patch Set 1 #Patch Set 2 : Remove forgotten comment #Patch Set 3 : Rebase #Patch Set 4 : Remove an unused variable. #Patch Set 5 : Fix BitsetType::Max for OtherNumber with missing representation #
Total comments: 57
Patch Set 6 : Rebase #Patch Set 7 : Small fixes #Patch Set 8 : Remove bitset representations from RangeType, ConstantType #Patch Set 9 : Plug the OtherNumber bitset hole #Patch Set 10 : Restrict representation on ranges to numbers during normalization #
Total comments: 29
Patch Set 11 : Addressing review comments. #
Total comments: 4
Messages
Total messages: 8 (1 generated)
|