Vincent St-Amour
768bb63361
Fix optimizer to work with new types.
2011-01-31 16:39:14 -05:00
Vincent St-Amour
d4c93cc12e
TR's numeric tower is now built from unions of non-overlapping base types.
...
A lot of the work that was done by special-casing number types can now be
done by TR's handling of unions. This makes it easier to add more numeric
types to the tower and should make writing down types for numeric
primitives much less error-prone.
In addition, this commit adds several numeric types that will help get
tighter bounds on integer arithmetic, such as Index types. They will have
to be integrated to the base environment before they can be useful.
2011-01-31 16:39:13 -05:00
Vincent St-Amour
33581fd67e
map + syntax->list -> syntax-map
2010-12-08 18:17:05 -05:00
Matthew Flatt
5d8e000d6d
swap vector*-ref' and
vector-ref', etc.
...
Merge to 5.0.2
2010-10-25 11:22:35 -06:00
Vincent St-Amour
12a5454b14
Removed logging when no optimization actually happens.
2010-10-14 14:13:06 -04:00
Vincent St-Amour
27e722f27b
Inexact-Complex -> Float-Complex
2010-10-12 16:47:46 -04:00
Vincent St-Amour
a59a99c42d
Changed the TR numeric tower to use the new flonums.
2010-10-12 16:47:45 -04:00
Vincent St-Amour
2c4d6fbb01
Added optimization for first, second and co when possible.
2010-10-12 16:47:44 -04:00
Vincent St-Amour
99178c70a0
Have the optimizer ignore struct/exec.
2010-10-06 18:43:35 -04:00
Vincent St-Amour
1b28aa41c7
Removed an obsolete comment.
2010-09-15 20:21:51 -04:00
Vincent St-Amour
0166ece180
Extended pair optimization to the rest of the standard derived pair accessors.
2010-09-09 18:54:34 -04:00
Vincent St-Amour
7450821068
Refactoring.
2010-09-09 18:54:34 -04:00
Vincent St-Amour
024f873947
Extended pair optimizations to some derived pair accessors.
2010-09-09 18:54:33 -04:00
Vincent St-Amour
6e5ea420a1
Removed useless requires.
2010-09-09 18:54:33 -04:00
Vincent St-Amour
85550953c8
Removed unused exports.
2010-09-09 18:54:33 -04:00
Sam Tobin-Hochstadt
b6b840076b
Lots more laziness, and useless require removal.
2010-09-09 16:08:03 -04:00
Vincent St-Amour
ae88abd5c8
Removed unsafe optimization on fixnums.
2010-09-07 16:57:02 -04:00
Ryan Culpepper
0c4f82a434
added #:commit to TR optimizer stxclasses
2010-08-31 16:21:44 -06:00
Ryan Culpepper
04a93812b4
fixed TR optimizer to work with backtracking syntax/parse update
...
problem was unboxed-inexact-complex-opt-expr, "non exhaustive" error variant
2010-08-31 10:55:58 -06:00
Vincent St-Amour
9884663697
Cleanup of syntax-parse patterns.
2010-08-27 14:43:19 -04:00
Vincent St-Amour
ca16ac4db5
Improved logging since it's now used for testing.
2010-08-27 13:29:42 -04:00
Vincent St-Amour
6f6ec3b2bf
Adapted filename logging for testing purposes.
2010-08-27 13:29:42 -04:00
Vincent St-Amour
9b598df60a
Logging can be turned on from the command-line.
2010-08-27 13:29:41 -04:00
Sam Tobin-Hochstadt
52c90628ce
Fixes for real/imag-part
2010-08-26 16:59:12 -04:00
Sam Tobin-Hochstadt
c40c48bd97
Avoid reboxing when computing real/imag-part.
2010-08-26 16:59:12 -04:00
Sam Tobin-Hochstadt
fd2d37a710
Add optimization for `magnitude', fix handling of functions that return floats, not complexes.
2010-08-26 16:59:12 -04:00
Vincent St-Amour
c653a8e655
Changed optimization order for reals in complex operations.
...
Made generated names more informative and updated tests accordingly.
2010-08-05 16:43:36 -04:00
Vincent St-Amour
1105e70b30
Unbox literals at expansion time.
2010-08-05 09:04:23 -04:00
Vincent St-Amour
bdf84f371d
Optimize coercion of integer literals.
2010-08-05 09:04:23 -04:00
Vincent St-Amour
fb31a6556e
Added optimization for make-polar
2010-08-05 09:04:22 -04:00
Vincent St-Amour
b47a77dd57
Eliminate user-introduced boxing.
2010-08-02 21:33:30 -04:00
Vincent St-Amour
27f8279711
Extended use-site analysis to look through trivial rebindings, to support for loops.
2010-07-29 18:29:59 -04:00
Vincent St-Amour
260de85a6e
Make sure that let-bound functions don't escape through a rhs before we change their interface.
2010-07-29 18:29:58 -04:00
Vincent St-Amour
435407b37a
Fixed over-generous pattern matching.
2010-07-29 18:29:58 -04:00
Vincent St-Amour
b58461da2d
Fixed a bug that caused the let optimizations to choke on TR-introduced code.
2010-07-29 18:29:58 -04:00
Vincent St-Amour
f08456cf07
Extended unboxing of let-bound functions to support let loops.
2010-07-29 18:29:57 -04:00
Vincent St-Amour
855928eb7b
Fixed a bug in the complex use-site analysis.
2010-07-29 18:29:57 -04:00
Vincent St-Amour
4633a2a30a
Refactoring of the call-site correction code.
2010-07-29 18:29:55 -04:00
Vincent St-Amour
29b9eb389d
Changed optimization order, to avoid potential conflicts.
2010-07-29 18:29:55 -04:00
Vincent St-Amour
eed20f7c3a
Fix for escaping functions.
2010-07-29 18:29:55 -04:00
Vincent St-Amour
3e9e5560bf
Be more aggressive when unboxing let bindings.
2010-07-29 18:29:54 -04:00
Vincent St-Amour
defe96a148
Fixed a bug with functions with unboxed complex and non-complex args.
2010-07-29 18:29:53 -04:00
Vincent St-Amour
9d471df8b9
Added unboxed arguments to let-bound functions.
2010-07-29 18:29:53 -04:00
Vincent St-Amour
1d758ee782
Added an option to see the result of the optimizer before compiling.
2010-07-29 18:29:53 -04:00
Vincent St-Amour
b0d299d1b8
Added unboxed letrec-syntaxes+values bindings.
2010-07-29 18:29:52 -04:00
Vincent St-Amour
8dc23d43eb
Added unboxed letrec bindings.
2010-07-29 18:29:52 -04:00
Vincent St-Amour
4803eafa67
Fixed a bug with exact complexes.
2010-07-25 22:15:18 -04:00
Vincent St-Amour
1b998f25e5
Fix to tolerate complexes of unknown exactness inside inexact-complex
...
expressions.
2010-07-25 20:13:36 -04:00
Vincent St-Amour
80b6ef7dd1
The optimizer now ignores code that is inside a with-handlers form,
...
since it would be typechecked in an unusual manner.
2010-07-23 18:52:47 -04:00
Vincent St-Amour
5892ef2fad
Fixed unboxing of let bindings.
2010-07-23 18:52:46 -04:00