diff options
author | Andy Wingo <wingo@pobox.com> | 2015-11-16 22:32:09 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2015-12-01 11:30:54 +0100 |
commit | 870ac91a4e6a8f75a6d0e246f034c9b4dcc70317 (patch) | |
tree | 6815dd2156ebbfc890622d4edfe18956a77ce945 /libguile/vm-engine.c | |
parent | a7e1c392c27481f1f8bda11bd8ceb0fde9f06c14 (diff) | |
download | guile-870ac91a4e6a8f75a6d0e246f034c9b4dcc70317.tar.gz |
Range inference over the full U64+S64 range
* module/language/cps/types.scm (*min-s32*, *max-s32*): Remove unused
definitions.
(&range-min, &range-max): New definitions, replacing min-fixnum and
max-fixnum as the bounds of precise range analysis.
(type-entry-min, type-entry-max): Store inf values directly as
-inf.0/+inf.0.
(type-entry-clamped-min, type-entry-clamped-max): Remove, as they are
no longer needed.
(clamp-min, clamp-max, make-type-entry): Clamp minimum and maximum
half-ranges in different ways.
(type-entry-union, type-entry-saturating-union)
(type-entry-intersection): Adapt to type-entry-min / type-entry-max
change.
(bv-u32-ref, bv-u32-set!):
(bv-s32-ref, bv-s32-set!):
(bv-u64-ref, bv-u64-set!):
(bv-s64-ref, bv-s64-set!): Precise range inference. This will allow
robust unboxing.
(ash): Infer 64-bit shifts.
Diffstat (limited to 'libguile/vm-engine.c')
0 files changed, 0 insertions, 0 deletions