Vincent St-Amour
53f7550b51
Added type signatures for operations on inexact complexes and floats.
...
original commit: a31d7b60c8e6911f7b77c3a6f96af2c37da36b9e
2010-07-21 21:09:40 -04:00
Vincent St-Amour
9fea49db55
Added optimization for zero?.
...
original commit: 47195410cbbe7d19ac6e33175fd57bfce6e6c4b3
2010-07-21 21:09:40 -04:00
Vincent St-Amour
40d4840ae1
Fixed unsafe optimization that considered floats as complexes.
...
original commit: 60bfce14bc0166742fed7675b81d8c5c0dcec2d4
2010-07-16 19:08:20 -04:00
Vincent St-Amour
134fb72de1
Further fixes in overlap checking.
...
Rhss of code dispatching on overlapping structs are no longer
considered dead, and as such, are now typechecked.
Had to fix a test that passed only because some not-really-dead code
was not being typechecked.
original commit: 4d5b50dee9e04aee167a7e04fbbe23526131fcad
2010-07-16 19:08:19 -04:00
Stevie Strickland
f3a78d1e10
Two fixes in overlap checking.
...
- Names were not being resolved, so a superstruct name and substruct name
could be seen as non-overlapping.
- Struct parents were not checked in the overlapping algorithm.
original commit: 654b7df1decd52763ffedcdc507a4bf367b1cecf
2010-07-16 19:08:19 -04:00
Vincent St-Amour
eb5e5f55d6
Documented the optimizer.
...
original commit: 8d6230956dc8c207c097a389fa1f0c7273bb55b7
2010-07-16 19:08:18 -04:00
Vincent St-Amour
1657089284
Added mutable pair optimizations.
...
original commit: fc29e7e8562e4b00c6e7de5882d8ccf374051ca1
2010-07-16 12:22:16 -04:00
Vincent St-Amour
295b5daa2d
Fixed an infinite loop.
...
original commit: f21454e71141feb491c88cf7f83636ee55c76775
2010-07-16 12:22:16 -04:00
Vincent St-Amour
210446e679
The imaginary parts of reals are ignored when doing complex division.
...
original commit: c587038b339b98ea14f90d683706c470aed05f24
2010-07-16 12:22:15 -04:00
Vincent St-Amour
4da58f05c4
Fixnums and integers can now be coerced for complex operations.
...
original commit: 443d8b9f917055d051844bb1cd4078a75dcdd592
2010-07-16 12:22:15 -04:00
Vincent St-Amour
b6597e15ed
The imaginary parts of inexact reals are ignored when doing complex multiplication.
...
original commit: c645aa7ebcb6f53686bee78caf3a66af51c36142
2010-07-16 12:22:15 -04:00
Vincent St-Amour
5f878b83bc
The imaginary parts of inexact reals are ignored when doing complex
...
addition or subtraction.
original commit: 748e9e47ad65c31d653907623b17689b47c76269
2010-07-16 12:22:13 -04:00
Vincent St-Amour
6ec1b3686b
Added coercions for floats with unboxed complex operations.
...
However, this generates superfluous operations involving their
imaginary part of 0.
original commit: 025af5b815503cb4aa64f0a253204016ccba7383
2010-07-16 12:22:13 -04:00
Vincent St-Amour
f5c518398f
Enabled optimization of complex conjugate at the top level of complex operations.
...
original commit: fff71e6a1d5746bf30ec7b3d64ec63ccd43f8065
2010-07-16 12:22:12 -04:00
Vincent St-Amour
4e3f1c1e4b
Added unboxed complex conjugate.
...
original commit: 063211d92263267b8e6b2703af70d9a46e7186bf
2010-07-16 12:22:12 -04:00
Vincent St-Amour
19781fc153
Added optimizations for iterating over vectors and strings.
...
original commit: 0b0da84eba4fe7dcab87e4e5eed5dd213de2dc9f
2010-07-16 12:22:12 -04:00
Vincent St-Amour
70cfe1b953
Added dead code elimination.
...
original commit: 1e550139aa67631ffc965027584284b61453b634
2010-07-16 12:22:11 -04:00
Vincent St-Amour
52559ccd98
Better internal error reporting.
...
original commit: 58fe07ad70b74345e65ccf58171dc73e96be6b2b
2010-07-16 12:22:11 -04:00
Vincent St-Amour
a4cb468a71
Various fixnum unsafe operations improvements.
...
original commit: b7229487a59d3fa53f92bffb9f7374ab28bb8032
2010-07-16 12:22:11 -04:00
Vincent St-Amour
8d95570bcb
Added types for sequence functions.
...
original commit: 4a8113eac6adfd68533a0a134ba8b1434846da97
2010-07-16 12:22:10 -04:00
Vincent St-Amour
7849444de2
Fixed the type for fxrshift.
...
original commit: 85b96a98b3f3ae2cb89f157bbf2ee3a83a5c365e
2010-07-16 12:22:10 -04:00
Vincent St-Amour
4d23f3416c
Added types for byte-string I/O functions.
...
original commit: 8c840a22825bd6f2723e02a8ff56d76ffaa66367
2010-07-16 12:22:09 -04:00
Vincent St-Amour
33f4ea048d
Added types for integer/bytes functions.
...
original commit: 3dbbd6d3fc47e3f23fee85bfcfe53d2827f18db5
2010-07-16 12:22:09 -04:00
Vincent St-Amour
9a06f49bce
Added type for collect-garbage.
...
original commit: abee5a4db7633ccbc3daff77d5ab80594756bea3
2010-07-16 12:22:09 -04:00
Ryan Culpepper
f3054a84c0
Added uses of unstable/struct
...
original commit: 07f57aac9b3f52552397bd53597de192ff62fbbc
2010-07-13 12:07:47 -06:00
Robby Findler
7477ced0dc
rewrote an ->d contract so that it would work with a let*-style scoping
...
original commit: 41cfcbe862d48722d0efef76d08b14b0ec428498
2010-07-10 10:01:25 -05:00
Sam Tobin-Hochstadt
91d6ac64d1
remove debugging printf
...
original commit: e28b60e44fde524c520c62f3fe54b9f6dac04b9d
2010-07-09 14:06:46 -04:00
Sam Tobin-Hochstadt
e103e44bc1
Fix missing unquote
...
original commit: d030d0631d8cb77888ba8a53843b0fb8e4b4c0dc
2010-07-09 13:52:39 -04:00
Sam Tobin-Hochstadt
d3be8100a0
add variance helper functions
...
original commit: a84796d8d7c7696ee635308ebf173c375466ebb3
2010-07-09 13:52:39 -04:00
Sam Tobin-Hochstadt
ac2e4153b0
add `make-constant'
...
original commit: c6fb95d44d2869baa2f53f3f8dba04b19620da81
2010-07-09 13:52:39 -04:00
Sam Tobin-Hochstadt
87bf9dc23d
generalize inferred types for invariant positions
...
original commit: 898c92eb1e6b476a8511d4d4be2e9b962e147d5e
2010-07-09 13:52:39 -04:00
Vincent St-Amour
06afbef56f
Removed a stray TODO comment.
...
original commit: 8505bd8bca25f9352eca5ad8d8a009bd6fe65a68
2010-07-08 18:29:16 -04:00
Vincent St-Amour
a128800e24
Pushed optimizations to auxiliary syntax classes.
...
original commit: dbda43ac6ba5d7e001cde75b16e39fcf3f60b5e1
2010-07-08 18:29:15 -04:00
Vincent St-Amour
8deff8c920
Refactoring of the optimizer.
...
original commit: c3f46cc8a6512379ead3cf99cf94fe426bec3f5a
2010-07-08 18:29:15 -04:00
Vincent St-Amour
e9ff5ae34d
Moved Typed Scheme's optimizer to its own subdirectory.
...
original commit: 24aad77da3e3c2e411642cdb08fffaaa31a0b1cb
2010-07-08 18:29:15 -04:00
Vincent St-Amour
8ffb3128e4
Fixed pessimization of some complex code.
...
original commit: ea8523bd63665f5330d25c7babf3872298f1e570
2010-07-07 22:08:51 -04:00
Vincent St-Amour
9320340cb9
Improved unboxed complex operations.
...
Intermediate results are kept as unboxed floats as long as we stay
within complex arithmetic code.
original commit: 7853d333495376f065c63a19866ac2eba6f8926a
2010-07-07 19:42:56 -04:00
Vincent St-Amour
f7ac316db2
Avoid boxing intermediate results when doing multiple complex
...
operations in a row.
However, because of values and let-values, we lose float unboxing.
If we have a single complex operation, this is much slower than my
previous implementation (though still faster than generic
operations). With 2 complex operations, the new implementation becomes
faster.
original commit: 7921074eef1e36984479db5b8eea3c6bbbe13064
2010-07-07 19:42:55 -04:00
Vincent St-Amour
d55cf6d13a
Avoided duplicate computation in inexact complex division.
...
original commit: de52d2ce9ffede21df37e74edb6cdb47bfab1828
2010-07-07 19:42:55 -04:00
Vincent St-Amour
9e3912d390
Generic inexact complex arithmetic operations are now replaced with
...
the right combinations of unsafe float operations.
original commit: 3fb69bc764885f2e6ef25134da747caa32b80f05
2010-07-07 19:42:54 -04:00
Vincent St-Amour
592aa2ac8c
Added an optimization for vector-length of known-length vectors.
...
original commit: e52d63ee686e20401f0b0df80d178e40e9a0226f
2010-07-07 19:42:54 -04:00
Vincent St-Amour
f578a22046
Have type ascriptions record the ascribed type in the type table.
...
original commit: eb7fc7a9655f26f35220295c24086da3699c3187
2010-07-07 19:42:54 -04:00
Sam Tobin-Hochstadt
10d5e7851e
Add typeof mappings only to original form.
...
original commit: e865380f6f7ebf843c4a4a7dea25261b28e759fc
2010-07-06 14:09:46 -04:00
Vincent St-Amour
ccbf54bdf7
Added support for make-flrectangular, flreal-part, flimag-part and
...
their unsafe counterparts to Typed Scheme and its optimizer.
original commit: 389a20795a5bb6db25341b899e7ec58e6eb5a0d1
2010-07-02 20:58:30 -04:00
Vincent St-Amour
a3a3bd1e2e
Added coercion of fixnums to floats to the optimizer.
...
original commit: 556734a223f4193c1c23ded76f204f1e6bb25295
2010-07-02 20:58:29 -04:00
Vincent St-Amour
fe84eaf722
Added struct optimizations.
...
original commit: a6d11a1df08336183e1af36b787c134e1bf4f469
2010-07-02 20:58:28 -04:00
Sam Tobin-Hochstadt
b415e84cd6
Fix inference for heterogenous vectors.
...
original commit: 0e400291e78c46cf1f4ded2c668e2b989814fc5e
2010-07-02 17:25:07 -04:00
Sam Tobin-Hochstadt
b4e86dc502
Use `define-type' to make docs clearer.
...
original commit: da3b4ed543ec9ca9aa3b114f4da44d12af4a60e7
2010-07-02 17:25:07 -04:00
Sam Tobin-Hochstadt
c67aef8622
Refactoring of tc-app.
...
- Move `check-below' into its own module
- Move `tc/apply' to its own unit
- Move `tc/funapp' and `tc/funapp1' to own module, outside of unit
original commit: 219682bbbef3f1593bde169796087b56e354a7fc
2010-07-02 17:25:07 -04:00
Vincent St-Amour
c6d892cd0f
Fixed make-vector's type to reflect generalization on vectors.
...
original commit: ed4f7b7bd7bc452b6accfd32ae14402fc60532c7
2010-07-02 15:48:08 -04:00