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.
Patch by jarin@chromium.prg, original review here:
https://codereview.chromium.org/795713003/
TBR=jarin@chromium.org
BUG=
Committed: https://crrev.com/2764fd8d1a266a9136c987c2483492113b0c8d80
Cr-Commit-Position: refs/heads/master@{#26197}
Patch Set 1 #Patch Set 2 : Fixed Win & clang compile issues and nits #Patch Set 3 : Fix tests #Patch Set 4 : Style warnings #
Messages
Total messages: 16 (7 generated)
|