1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-22 19:44:10 +02:00
guile/module/language/cps
Andy Wingo 2ca88789b1 Type inference distinguishes &fixnum and &bignum types
This will allow heap-object? / inum? predicates to do something useful.

* module/language/cps/types.scm (&fixnum, &bignum): Split &exact-integer
  into these types.  Keep &exact-integer as a union type.
  (type<=?): New helper.
  (constant-type): Return &fixnum or &bignum as appropriate.
  (define-exact-integer!): New helper, tries to make exact integer
  results be &fixnum if they are within range.  Adapt users.
  (restricted-comparison-ranges, define-binary-result!): Use type<=?
  instead of = for &exact-integer.
* module/language/cps/type-fold.scm (logtest, mul, logbit?): Use
  type<=?.
* module/language/cps/specialize-numbers.scm (inferred-sigbits):
  (specialize-operations): Use type<=?.
2017-10-26 15:23:16 +02:00
..
closure-conversion.scm Unbox indexes of vectors, strings, and structs 2015-12-01 15:42:24 +01:00
compile-bytecode.scm First step towards emitting new instructions: "j" instead of "br" 2017-10-25 16:53:18 +02:00
constructors.scm Unbox indexes of vectors, strings, and structs 2015-12-01 15:42:24 +01:00
contification.scm Remove contification restriction in case-lambda 2017-03-09 14:47:42 +01:00
cse.scm Fabricated expression tweak in CSE 2016-09-01 10:54:31 +02:00
dce.scm Factor out compute-effects/elide-type-checks from dce.scm 2015-07-24 11:39:18 +02:00
effects-analysis.scm Use make-struct/no-tail instead of make-struct 2017-09-20 22:07:18 +02:00
elide-values.scm Add missing files 2015-07-22 18:27:37 +02:00
handle-interrupts.scm Improve handle-interrupts placement 2016-12-18 23:05:15 +01:00
intmap.scm Move thread bindings to (ice-9 threads) 2016-10-23 22:29:44 +02:00
intset.scm Move thread bindings to (ice-9 threads) 2016-10-23 22:29:44 +02:00
licm.scm Loop-invariant code motion 2015-07-24 16:50:58 +02:00
optimize.scm Include missing #:simplify? option in (language cps optimize). 2016-01-04 22:43:30 +01:00
peel-loops.scm Loop peeling 2015-07-27 13:45:23 +02:00
primitives.scm Add unboxed floating point comparison instructions. 2017-01-12 09:27:43 -05:00
prune-bailouts.scm Add missing files 2015-07-22 18:27:37 +02:00
prune-top-level-scopes.scm Add missing files 2015-07-22 18:27:37 +02:00
reify-primitives.scm Move thread bindings to (ice-9 threads) 2016-10-23 22:29:44 +02:00
renumber.scm Add missing files 2015-07-22 18:27:37 +02:00
rotate-loops.scm Fix compilation of continue' in while'. 2016-08-04 21:36:34 +02:00
self-references.scm Add missing files 2015-07-22 18:27:37 +02:00
simplify.scm Remove unused function in simplify.scm 2016-01-04 23:33:24 +01:00
slot-allocation.scm All clauses of function have same nlocals 2017-03-09 14:25:37 +01:00
spec.scm Fix guild compile --to=cps / --from=cps 2017-02-23 11:37:44 +01:00
specialize-numbers.scm Type inference distinguishes &fixnum and &bignum types 2017-10-26 15:23:16 +02:00
specialize-primcalls.scm Add ursh/immediate and ulsh/immediate ops 2015-12-02 22:11:19 +01:00
split-rec.scm Add missing files 2015-07-22 18:27:37 +02:00
type-checks.scm Factor out compute-effects/elide-type-checks from dce.scm 2015-07-24 11:39:18 +02:00
type-fold.scm Type inference distinguishes &fixnum and &bignum types 2017-10-26 15:23:16 +02:00
types.scm Type inference distinguishes &fixnum and &bignum types 2017-10-26 15:23:16 +02:00
utils.scm Fix bug in intmap-map 2015-12-26 22:12:09 +01:00
verify.scm Replace return primcalls with $values 2015-10-28 11:11:23 +00:00
with-cps.scm Add missing files 2015-07-22 18:27:37 +02:00