Commit Graph

1330 Commits

Author SHA1 Message Date
Vincent St-Amour
6df18f3f24 Cleanup of the test harness.
original commit: 1c9e8e05b061648ee7a54bf120c288eefddbfb15
2010-08-27 13:29:43 -04:00
Vincent St-Amour
989cd5ce81 Renamed tests directory to make more sense with the new structure.
original commit: 7cfba9f02d48d10a886bf2cfce2499a26b8db9af
2010-08-27 13:29:43 -04:00
Vincent St-Amour
31342660e4 Improved logging since it's now used for testing.
original commit: ca16ac4db50032324c2886766f477909f38b983c
2010-08-27 13:29:42 -04:00
Vincent St-Amour
5169f42b28 Test expected optimizations by comparing optimizer logs instead of expanded code.
original commit: 18af26ec9b4a20aa62bddc5cd04d54c6c35a7ac2
2010-08-27 13:29:42 -04:00
Vincent St-Amour
2ed40e6b09 Adapted filename logging for testing purposes.
original commit: 6f6ec3b2bf1999e64c04b9ff2afb29739e9c3eef
2010-08-27 13:29:42 -04:00
Vincent St-Amour
99658f326c Logging can be turned on from the command-line.
original commit: 9b598df60a5fb621491a3513ff445e2db6053f83
2010-08-27 13:29:41 -04:00
Vincent St-Amour
7b0682b8d0 Use sandboxes instead of duplicate files to test results when optimizing.
original commit: 46b2a2113af3e6f8174379880620f7add5b0f079
2010-08-26 18:08:41 -04:00
Vincent St-Amour
e291319f96 Exclude directories when testing TR's optimizer.
original commit: eadc2a7e4c35d56ad84a251a52f1af7ce5548425
2010-08-26 17:46:59 -04:00
Vincent St-Amour
6e2563c2a9 Documented with-asserts.
original commit: 63530ed74df880b55b4dc85398181fb2925e6947
2010-08-26 17:46:58 -04:00
Vincent St-Amour
acd7b572ae Added with-asserts, from code from Neil Toronto.
original commit: ea472a9d57b7344e9111bd37663fd7ad0884f0d5
2010-08-26 17:46:58 -04:00
Vincent St-Amour
ee39b520ce Extend sign analysis to sqr.
original commit: 694d2da4b362f83b6f492095c712703856acb068
2010-08-26 17:46:57 -04:00
Sam Tobin-Hochstadt
4d0a7b1d97 Fixes for real/imag-part
original commit: 52c90628ce5ec306287c8202ab863fefbb9a1d62
2010-08-26 16:59:12 -04:00
Sam Tobin-Hochstadt
3929e32f26 Tests for new optimizer additions.
original commit: 3e4ddde80806795923ee8dab602da80ca38e2ec0
2010-08-26 16:59:12 -04:00
Sam Tobin-Hochstadt
c35ef60c7f Avoid reboxing when computing real/imag-part.
original commit: c40c48bd97b12526e8cc9da0b9a68926478cdbdf
2010-08-26 16:59:12 -04:00
Sam Tobin-Hochstadt
daa11ce61f Add optimization for `magnitude', fix handling of functions that return floats, not complexes.
original commit: fd2d37a7108855691b566997d4c9a3032416f169
2010-08-26 16:59:12 -04:00
Eli Barzilay
48b7074752 More "~n" -> "\n" changes
original commit: 8e0f8dd39c3744472b450021f003f9cbe8cbcb62
2010-08-26 12:11:00 -04:00
Eli Barzilay
8ab581cf2e Change a bunch of "~%" and "~n" in format strings to "\n".
original commit: 7dc4d2e5a63ab416d90e44d7bf75cb5593329909
2010-08-25 17:17:01 -04:00
Eli Barzilay
d4b3623003 Lots of "~e" to "~.s" changes.
original commit: 606b7f60dc597a6870efc11364e1dd3e1a8b4a1b
2010-08-25 17:17:01 -04:00
Sam Tobin-Hochstadt
7efb07a4b0 Add Futureof' type, types for future' and `touch'
original commit: b08de170bc616d2217c6fde3dff8c3f1b042eb3b
2010-08-25 10:27:07 -04:00
Vincent St-Amour
69ebe6711b Fixed the type of file-position.
original commit: a4b0c69ec20074eba319070613ff63d40cd937e0
2010-08-24 16:58:21 -04:00
Sam Tobin-Hochstadt
5df8b46738 Use current-readtable as the base for the TR readtable.
Closes PR 1115.

original commit: 72f31ffec02fc4c8f39169b80811bca98abb8f75
2010-08-21 14:05:46 -04:00
Sam Tobin-Hochstadt
cb7ab0f8ad Provide -> in typed-scheme/no-check.
- Closes PR 10882

original commit: 90eeef60d73229217f87b847b38d180e6a929301
2010-08-18 16:37:32 -04:00
Sam Tobin-Hochstadt
04481bfb64 Better printing for environments.
original commit: 510c80b70077f09d0d5d54c5ba566abaeb59316e
2010-08-18 16:37:32 -04:00
Vincent St-Amour
f2b9a8fe2c Documented TR's behavior when mixing exactness.
original commit: cf692e986d2a3690260884d929daae321d21eeb3
2010-08-13 18:48:32 -04:00
Sam Tobin-Hochstadt
f9b3146577 Fix variance of hash tables and parameters
original commit: 6e489f8464d2bc60e64a03e3c618e8ebf7561129
2010-08-13 11:06:56 -04:00
Sam Tobin-Hochstadt
4d5a707d99 Handle structs with special constructors and mutability.
Closes PR 11089.

original commit: 3359032ad58d94c9447bf842d8abcf3ad98b41fd
2010-08-13 11:06:56 -04:00
Sam Tobin-Hochstadt
6369cdb91c Require flat contracts in box/c, hash/c, and vector/c.
Closes PR 11085.

original commit: 0c1dfd3c5e3490fedf2ec27b7aed962bd0cbd174
2010-08-13 11:06:56 -04:00
Stevie Strickland
21da67fbd9 Fix creation of a reversed List type from ListDots substitution.
original commit: a9f6ea69bfbb23d4e6ab1b5ebfcb6bb9e3b3c05a
2010-08-12 17:46:39 -04:00
Vincent St-Amour
da31c3f9a2 Documented TR's behavior on literals.
original commit: 201aaa9090b3aeedc0454bdd575565f8764ef2c8
2010-08-06 12:21:50 -04:00
Vincent St-Amour
b9ef6ec241 More precise type for expt.
original commit: 0a45e0e361d811ac07440fb24d415502d191583c
2010-08-06 11:09:04 -04:00
Vincent St-Amour
019ea62c25 Added a test for unboxed nested loops.
original commit: 4d43c2156562540bcd70cf91a4c712b1546f9f2e
2010-08-05 17:21:54 -04:00
Vincent St-Amour
918d50b25d Changed optimization order for reals in complex operations.
Made generated names more informative and updated tests accordingly.

original commit: c653a8e655712d1108bedfff505cb51d9b804005
2010-08-05 16:43:36 -04:00
Vincent St-Amour
507afc21f4 Fixed source location for for:.
original commit: 500685c0f2b02ccc8ffb8746d93fde5b25a20ccc
2010-08-05 09:04:25 -04:00
Vincent St-Amour
79f4bcfbdb Generalize naturals to integers to minimize annotations on mutated variables.
original commit: b18f2353cab9712c827dda692649bcd16bc3e79e
2010-08-05 09:04:25 -04:00
Vincent St-Amour
ece22fd4fd Added opt-lambda:.
original commit: 4cb749130954c821754fd976d92c02aca2013429
2010-08-05 09:04:25 -04:00
Vincent St-Amour
a29f10633f Added another tracing option to TR.
original commit: 0b3c637f5d5215e3fced3e83433119524145b488
2010-08-05 09:04:24 -04:00
Vincent St-Amour
d1e64146d4 Fixed parsing of keyword types.
original commit: 416591b35532d117bb70acf7a8282329b626c27b
2010-08-05 09:04:24 -04:00
Vincent St-Amour
d65ea9ef38 Unbox literals at expansion time.
original commit: 1105e70b302416c40269c11e60d7ddaa3d14b66e
2010-08-05 09:04:23 -04:00
Vincent St-Amour
82340857d9 Optimize coercion of integer literals.
original commit: bdf84f371d4ccf952e08251703a4249c37f81a85
2010-08-05 09:04:23 -04:00
Vincent St-Amour
4c41407d64 Added optimization for make-polar
original commit: fb31a6556e04d9aa6aa31c215394a80b9d146bd7
2010-08-05 09:04:22 -04:00
Vincent St-Amour
267e4c1e78 Fixed typechecking of imaginaries.
original commit: dbdbaed50600b7ce47e2dacc12ba1e6f2a0345b4
2010-08-05 09:04:21 -04:00
Vincent St-Amour
5b89be655b Added technical term links to the optimizer documentation.
original commit: 5fa6b1c1391b80eb3a9cb9a7823780359cc91d73
2010-08-03 14:57:42 -04:00
Vincent St-Amour
f51d1e640d Imaginaries can't be inexact complexes.
original commit: bce003fa1813b309382d6af01090f3cb5b9f84d5
2010-08-03 14:51:24 -04:00
Vincent St-Amour
6e1c0a9ca5 Added a link to the optimization guide in the TR reference.
original commit: 82f976a4d9c94d880a817a8a70b99f8673d01616
2010-08-02 21:33:31 -04:00
Vincent St-Amour
83c6f99041 Documented the optimizer.
original commit: cb516081c742cfeb04d754d4925389de33319cd7
2010-08-02 21:33:30 -04:00
Vincent St-Amour
492c89be8d Eliminate user-introduced boxing.
original commit: b47a77dd57a4ed92f49cd92253c6c06905923f9f
2010-08-02 21:33:30 -04:00
Sam Tobin-Hochstadt
875e95973a Remove obselete docs.
Add docs for legacy forms.

original commit: 39c2359006e2cc5da862d50b6d45e38bcf8cd72f
2010-08-02 17:23:01 -04:00
Sam Tobin-Hochstadt
2c1f173d62 define-struct:' -> struct:' in docs.
Fix typo.

original commit: 1ce4040cd299de6c837c81b872a3b722b42c9635
2010-08-02 16:59:37 -04:00
Sam Tobin-Hochstadt
1f05ee70e2 Don't treat Error types as potentially non-regular. (Reported by SK)
original commit: 431ff8d794425e12577c662be7827a38531ad39f
2010-08-02 15:41:42 -04:00
Vincent St-Amour
d19a3ff923 Added some reflection functions to Typed Racket.
original commit: c4ba6b60388a2d65fcb44a726d12373f9ca17eee
2010-07-29 19:11:20 -04:00
Vincent St-Amour
fbb55c63c4 Extended use-site analysis to look through trivial rebindings, to support for loops.
original commit: 27f8279711ae93601c00d27c8041a017afdf592c
2010-07-29 18:29:59 -04:00
Vincent St-Amour
db1103ebbc Fixed types of let loop lambdas.
original commit: 914f142f4fc16e4053e9e899b12e094ac93cf53e
2010-07-29 18:29:59 -04:00
Vincent St-Amour
a016db4697 Make sure that let-bound functions don't escape through a rhs before we change their interface.
original commit: 260de85a6efbc692abaec64d6837a4dfa965cb78
2010-07-29 18:29:58 -04:00
Vincent St-Amour
78a27d2bf9 Fixed over-generous pattern matching.
original commit: 435407b37a519c2e0c4401f9a07f93de99e134cb
2010-07-29 18:29:58 -04:00
Vincent St-Amour
851401b25b Fixed a bug that caused the let optimizations to choke on TR-introduced code.
original commit: b58461da2dc2fd495e555e24ffd1abddca3a25b3
2010-07-29 18:29:58 -04:00
Vincent St-Amour
0edccc7db9 Extended unboxing of let-bound functions to support let loops.
original commit: f08456cf0708483f267fba86e10f52c318d0dedd
2010-07-29 18:29:57 -04:00
Vincent St-Amour
a2e41f4588 Fixed a bug in the complex use-site analysis.
original commit: 855928eb7b446d7c7eb741afe8f3a6e632f95141
2010-07-29 18:29:57 -04:00
Vincent St-Amour
425ec70787 Refactoring of the call-site correction code.
original commit: 4633a2a30aef91dd7d10445d1a445c75be08fe1b
2010-07-29 18:29:55 -04:00
Vincent St-Amour
1b054179b6 Changed optimization order, to avoid potential conflicts.
original commit: 29b9eb389d8e5ee68c922e18d67e75fe6eaa607d
2010-07-29 18:29:55 -04:00
Vincent St-Amour
c631cec4d8 Fix for escaping functions.
original commit: eed20f7c3a8a459dedc8798777ff3df71f2cfb2b
2010-07-29 18:29:55 -04:00
Vincent St-Amour
0f5db893f5 Be more aggressive when unboxing let bindings.
original commit: 3e9e5560bf216a0d555b38ee2cb6cf8a4c5ef908
2010-07-29 18:29:54 -04:00
Vincent St-Amour
7c875c3bb2 More tests for unboxed args of let-bound functions.
original commit: bb144249183f8e287a37a1590df5a5aa219862f8
2010-07-29 18:29:54 -04:00
Vincent St-Amour
da5586ca57 Fixed a bug with functions with unboxed complex and non-complex args.
original commit: defe96a148227eceaee94c886ac565cf8f253951
2010-07-29 18:29:53 -04:00
Vincent St-Amour
f86dd7f384 Added unboxed arguments to let-bound functions.
original commit: 9d471df8b96be389202d39d5346f37eefb6d6607
2010-07-29 18:29:53 -04:00
Vincent St-Amour
7bc583e27b Added an option to see the result of the optimizer before compiling.
original commit: 1d758ee78221a87e477e62ab9cca03c816adf49a
2010-07-29 18:29:53 -04:00
Vincent St-Amour
ff4a589eee Register type of loop lambdas generated by the for macros.
original commit: 27f0e50d537ef3adc5c8db94927e6f61b3e89dee
2010-07-29 18:29:52 -04:00
Vincent St-Amour
28378f77d5 Added unboxed letrec-syntaxes+values bindings.
original commit: b0d299d1b86e2bf07c7715e87ebb303f03bde853
2010-07-29 18:29:52 -04:00
Vincent St-Amour
277df87ff6 Added unboxed letrec bindings.
original commit: 8dc23d43eb23eac7a887ae2f3ef3633c54d3ba87
2010-07-29 18:29:52 -04:00
Vincent St-Amour
c625d547ca Fixed a bug with exact complexes.
original commit: 4803eafa6722acfdf0d37dab3782660d22665b84
2010-07-25 22:15:18 -04:00
Vincent St-Amour
6473855e45 Fix to tolerate complexes of unknown exactness inside inexact-complex
expressions.

original commit: 1b998f25e5626ff18bf18c911c4b161a66574b72
2010-07-25 20:13:36 -04:00
Vincent St-Amour
34d7dda844 Added a test for cross-module struct optimization.
(cherry picked from commit 4e6fc3154bd286d3edcd36a25bfc672cc6a0659d)

original commit: 8f47f0019fae4faf0ea8bb09d7fbd3b3e06254df
2010-07-25 04:16:08 -04:00
Vincent St-Amour
a248746a2d Added one more test for unboxed let bindings.
original commit: ec39ea5f3352068497a97c959e72814fab7089d0
2010-07-24 17:01:23 -04:00
Vincent St-Amour
ea0d96e9dd The optimizer now ignores code that is inside a with-handlers form,
since it would be typechecked in an unusual manner.

original commit: 80b6ef7dd19e7d094578ae176442ee3fa8047b96
2010-07-23 18:52:47 -04:00
Vincent St-Amour
27fe7f732f Fixed a test that could not work because of shadowing in hand-optimized code.
original commit: 5d86813267521e3191b91e884418ac39bdb3a8e2
2010-07-23 18:52:46 -04:00
Vincent St-Amour
56fde8109f Fixed unboxing of let bindings.
original commit: 5892ef2fad2c92346cd2871e25846696f3312185
2010-07-23 18:52:46 -04:00
Vincent St-Amour
5c75aa1793 Fixed typo.
original commit: 12ce9abda6916bd590ac76666a6f3db4a63dd2f3
2010-07-23 18:52:45 -04:00
Vincent St-Amour
a479e9d5e3 The optimizer now ignores expressions ignored by the typechecker.
original commit: 82b064a520405575ea69e453dfd768ac2df2b17c
2010-07-23 18:52:44 -04:00
Vincent St-Amour
e9d9c2aca9 Added a test to the optimizer.
original commit: ea580e6ff88cb3be758690b99a1968179cbc3c26
2010-07-23 18:52:43 -04:00
Vincent St-Amour
eb60ac080a let bindings of inexact-complex numbers can be replaced by bindings
for each of their components.

This allows unboxing of intermediate results that are bound and only
ever used in positions where they would be unboxed.

original commit: 83987fffac7719ab0c35d3df49ea0a7adf4bc9b6
2010-07-23 18:52:42 -04:00
Vincent St-Amour
fe68e29caa Optimized extracting parts of inexact complexes.
original commit: 063b87697a333b2b8f53e6d2b8a43e8f500e2762
2010-07-23 18:52:42 -04:00
Vincent St-Amour
2ef2641a4d Refactoring of the optimizer.
original commit: 0493e6f7623361a289989654d25deac19e552de6
2010-07-23 18:52:41 -04:00
Sam Tobin-Hochstadt
69476bba24 Optimize (apply + (map f l)) to avoid the intermediate list.
original commit: 5bb730f72c91f52166009d1e5fbe52a346c91edf
2010-07-23 14:11:40 -04:00
Vincent St-Amour
9bef097987 Optimizations on one-argument cases of arithmetic operations.
original commit: 0ee0886cab6989843a9bef1eb3797657e0f1d0c2
2010-07-21 21:09:43 -04:00
Vincent St-Amour
6c0c6b3f65 Added optimization for string-length and bytes-length.
original commit: 4e944f73abc138b7d283020bf5c577fe6ecf6e95
2010-07-21 21:09:42 -04:00
Vincent St-Amour
19f4d78569 Added box optimizations.
original commit: d6ce6e664f0bd361207725fb3ea9b2a265f39374
2010-07-21 21:09:42 -04:00
Vincent St-Amour
245f1e311c Improved closure properties of bitwise-and.
original commit: 234e8c363cfd90499566ae24b3cb548785a93ff8
2010-07-21 21:09:41 -04:00
Vincent St-Amour
3aae29501e Bytes are fixnums.
original commit: c4ae44123f74de07933d1c6edfb25be4609af6dd
2010-07-21 21:09:41 -04:00
Vincent St-Amour
43683352c5 Improved behavior of coercions with n-ary arithmeric operations.
original commit: d078305a59368156e0c977798af4cb805bc3b679
2010-07-21 21:09:41 -04:00
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
545a02dfe6 Changed the interface to typed racket's test harness.
original commit: b13075a1c0679ecf20cc6c84224131c45f455399
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
b71fbae36a 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.
(cherry picked from commit 4d5b50dee9e04aee167a7e04fbbe23526131fcad)

original commit: e0614cfed24dfc9e7f89b9a8c77e7930695b0269
2010-07-18 18:58:02 -04:00
Stevie Strickland
0161cda2d4 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.
(cherry picked from commit 654b7df1decd52763ffedcdc507a4bf367b1cecf)

original commit: 3884d5661022ef970a77f127e7a58d052760d635
2010-07-18 18:58:02 -04:00
Vincent St-Amour
1130482725 Documented the optimizer.
(cherry picked from commit 8d6230956dc8c207c097a389fa1f0c7273bb55b7)

original commit: 536551ce5ec30081a4823a21512e8ecbfc448bbf
2010-07-18 18:57:41 -04:00
Vincent St-Amour
a421071d91 Added whitespace to the typed racket test harness.
original commit: 8aa4fae613c3f2c99dd5bb145727db94916df537
2010-07-16 19:08:21 -04:00
Vincent St-Amour
8f088b820b Don't abort typed racket's tests if the main tests fail.
original commit: 8563f02ba82edd822f0e6a6b39ff915d5708587a
2010-07-16 19:08:21 -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
9c89287b24 Fixed bugs in the tests.
original commit: b0788372ea1fc619036656b88aab1f4736a4d5e3
2010-07-16 12:22:14 -04:00
Vincent St-Amour
c413450d2c Better error reporting by the optimizer's test harness.
original commit: 566aeedb598dbc2788ff4360bb23177fbdd74a30
2010-07-16 12:22:14 -04:00
Vincent St-Amour
9c1a9c4661 The optimizer's test harness now makes sure that optimized and
non-optimized versions of the same code evaluate to the same thing.

Unfortunately, this leads to a lot of code duplication. We can't
abstract over optimization like we do for the benchmarks since the
wrapper module would interfere with testing expanded code for
equality.

original commit: 7fb1b41a28c1a082e5f726bbc2acab4e2cc0e5fb
2010-07-16 12:22:14 -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
c05f2797aa Added a test for cross-module struct optimization.
original commit: 4e6fc3154bd286d3edcd36a25bfc672cc6a0659d
2010-07-16 12:22:10 -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
Sam Tobin-Hochstadt
f6df8722f5 Improve interface for `find-mutated-vars', now supports mutable *and* immutable versions.
original commit: 692a1724746d1dfa9f666c8f6fed2090ed900099
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
38d40649d5 Changed the optimizer's test harness to ignore type tables.
original commit: e8a0a26c2f4b3f8da6beb0b3a6b7348d6cfeccf9
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
474741601b Add flags for running the optimizer tests and compiling the benchmarks
original commit: e989631d56a70b90077cbdca7993a25dc70c2011
2010-07-02 19:00:57 -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