Commit graph

653 commits

Author SHA1 Message Date
Juan Jose Garcia Ripoll
92d5aac5eb We cannot build MSVC with debug information on variables because the compiler does not allow us to statically initialize arrays/vectors of the ecl_array/ecl_vector type 2009-07-24 20:26:09 +02:00
Juan Jose Garcia Ripoll
a0f06986b1 Fixed error in proclamation of si:get-sysprop. 2009-07-24 20:12:28 +02:00
Juan Jose Garcia Ripoll
7a08ed15ab We cannot build statically allocated arrays with the Microsoft compiler. 2009-07-24 19:55:57 +02:00
Juan Jose Garcia Ripoll
efc4505d58 The ld-format variable can not use tilde-question-mark format because the remaining linker options may contain tildes (happens in Windows) and be misunderstood as format commands 2009-07-24 15:58:45 +02:00
Juan Jose Garcia Ripoll
69725f20c6 The compiler now emits more accurate conversions from and to C types using the new functions (See CHANGELOG for the problem solved) 2009-07-15 15:19:43 +02:00
Juan Jose Garcia Ripoll
bfb6e2cef7 Remove debug statement 2009-07-13 23:49:26 +02:00
Juan Jose Garcia Ripoll
55eeb0e955 Remove debug statement 2009-07-13 23:48:52 +02:00
Juan Jose Garcia Ripoll
99cdc4dae7 CALL-GLOBAL-LOC used the values type of a c1form instead of the primary type and thus no safe inline form from sysfun.lsp matched any reasonable expansion. 2009-07-13 12:06:01 +02:00
Juan Jose Garcia Ripoll
c8118dd93c The utility functions for ENSURE-*-TYPE returned the argument type in the third and not in the second value (cmpnum.lsp) 2009-07-13 11:48:49 +02:00
Juan Jose Garcia Ripoll
f80bb43e28 In the type propagator for ISQRT, remove the circular reader forms. 2009-07-12 23:52:59 +02:00
Juan Jose Garcia Ripoll
eb4b073e8b CIS, ASIN, ACOS, ASINH, ACOSH and ATANH now use the calling convention for functions with a fixed number of arguments 2009-07-12 23:47:24 +02:00
Juan Jose Garcia Ripoll
f5c03a9638 Fixed a couple of typos in the new type propagations for special functions 2009-07-12 23:46:45 +02:00
Juan Jose Garcia Ripoll
88498d35f5 Type propagators now work with type names, not with C1FORMS (More general and will allow caching in the future). Implemented type propagators for COS, SIN, TAN, COSH, SINH, TANH, ATAN, SQRT, ABS, ISQRT, LOG, EXP, EXPT. 2009-07-12 20:16:23 +02:00
Juan Jose Garcia Ripoll
2657f3b9d0 Added proclamation for CIS. Made proclamation of LOG and ATAN more precise. 2009-07-12 20:14:16 +02:00
Juan Jose Garcia Ripoll
65635f1452 Minor read-only annotations in cmpopt.lsp 2009-07-09 23:31:50 +02:00
Juan Jose Garcia Ripoll
7e694a08fd Invalid inline expansion for SCHAR. 2009-07-09 11:00:24 +02:00
Juan Jose Garcia Ripoll
d2e864e74a Allow c-inline, one-liner forms to output values in the VALUES register. 2009-07-09 10:36:01 +02:00
Juan Jose Garcia Ripoll
a57cb9e32a Deactivate a debug statement in type-and 2009-07-09 10:35:27 +02:00
Juan Jose Garcia Ripoll
03afa98d41 Since not always the compiler macros are applied, we are forced to have type propagators that handle the 1, 2 and more argument cases for +, *, / and -. 2009-07-08 23:03:13 +02:00
Juan Jose Garcia Ripoll
759fa298ab Remove a debug assertion. 2009-07-08 23:02:34 +02:00
Juan Jose Garcia Ripoll
1f83e389fb Fixed typos in the inline expanders for two-argument versions of CEILING TRUNCATE and ROUND. 2009-07-08 22:30:45 +02:00
Juan Jose Garcia Ripoll
5178118517 Added new inline expansions for MOD and REM with generic arguments. 2009-07-08 21:44:44 +02:00
Juan Jose Garcia Ripoll
6b936383c3 More fixes to the analysis of code branches in p1tagbody and similar functions. p1let and p1let* now optimize the type of the variable based on the generated assumptions. 2009-07-08 21:33:22 +02:00
Juan Jose Garcia Ripoll
9e5bfb3aa7 Fixed computation of a the values list from a values type: &optional and &rest types must result in an or-type between NULL and the denoted type. 2009-07-08 21:32:33 +02:00
Juan Jose Garcia Ripoll
b3b61b59b2 At several places in the compiler only the primary type of an expression was needed, but we retrieved the full values type. 2009-07-08 21:31:20 +02:00
Juan Jose Garcia Ripoll
a4599f13af Removed a broken inline expansion for #'/ 2009-07-08 21:29:35 +02:00
Juan Jose Garcia Ripoll
4303ea8572 The routine VALUES-TYPE-PRIMARY-TYPE did not extract any value from VALUES types 2009-07-08 13:33:20 +02:00
Juan Jose Garcia Ripoll
2838b1042b Implemented type propagation for MULTIPLE-VALUE-SETQ 2009-07-08 11:16:42 +02:00
Juan Jose Garcia Ripoll
cf61dbe4cb Implemented type propagation for MULTIPLE-VALUE-BIND 2009-07-08 11:15:25 +02:00
Juan Jose Garcia Ripoll
c63786e396 Function to extract the output values of a function that returns more than one value 2009-07-08 11:15:09 +02:00
Juan Jose Garcia Ripoll
49357b1d9b Do not simplify the function type proclamations, specially now that we can handle VALUES types. 2009-07-08 11:14:44 +02:00
Juan Jose Garcia Ripoll
6f9d335302 In cmpnum.lsp, MAXIMUM-NUMBER-TYPE outputs the minimum, not the maximum type. 2009-07-08 11:11:46 +02:00
Juan Jose Garcia Ripoll
6884850535 Added type information for EXPT 2009-07-08 10:48:56 +02:00
Juan Jose Garcia Ripoll
ad6a35f9e3 Implemented type propagation for *, +, - and / 2009-07-08 10:48:30 +02:00
Juan Jose Garcia Ripoll
52c7aba69e Add type information for FLOOR, CEILING, TRUNCATE, MOD and REM 2009-07-08 09:10:52 +02:00
Juan Jose Garcia Ripoll
c846732195 P1TAGBODY now performs either several passes of type propagation or uses a safe version that does not rely on which-way information and resets the input assumptions. 2009-07-08 09:10:14 +02:00
Juan Jose Garcia Ripoll
cbdb71d6ab Allow disabling the type propagation notes (which are still not conditions). 2009-07-05 17:18:04 +02:00
Juan Jose Garcia Ripoll
cf0f4ae6d0 Implemented branch merging for IF and TAGBODY 2009-07-05 10:24:12 +02:00
Juan Jose Garcia Ripoll
6b0b233da5 Fixed typo in values-type-primary-type 2009-07-05 10:11:51 +02:00
Juan Jose Garcia Ripoll
a33f442197 Implemented an experimental (and still incomplete) phase for type propagation. 2009-07-05 09:44:57 +02:00
Juan Jose Garcia Ripoll
aebe505993 Use the new routines for multiple values type to implement c1form-primary-type 2009-07-05 09:44:28 +02:00
Juan Jose Garcia Ripoll
1b8bb0bef1 Implemented TYPE-AND for multiple value types 2009-07-05 09:42:38 +02:00
Juan Jose Garcia Ripoll
8034185d4a Fixed typo in type propagators for ASET/AREF 2009-07-04 19:54:40 +02:00
Juan Jose Garcia Ripoll
06c3b848d9 Fix the inline expansion of array-dimension. 2009-07-04 19:23:17 +02:00
Juan Jose Garcia Ripoll
0ea425866c Organize the code in INLINE-ARGS, factoring out parts that can be used in call-global-loc and allowing the use of temporary variables which are not of type :cl-object. 2009-07-04 17:17:50 +02:00
Juan Jose Garcia Ripoll
6446cde7c3 An attempt at providing a unifor and simpler framework for optimizing array access. 2009-07-04 17:17:46 +02:00
Juan Jose Garcia Ripoll
1b33714752 Better inline expansions of ELT/(SETF ELT) (M. Kocic) 2009-07-03 19:15:20 +02:00
Juan Jose Garcia Ripoll
42d387c300 Improve the inline definitions of arrayp and vectorp. 2009-07-03 08:54:59 +02:00
Juan Jose Garcia Ripoll
70a281909a Protect sysfun.lsp from a nasty user that changes the readtable. 2009-07-02 00:13:21 +02:00
Juan Jose Garcia Ripoll
8d06d5b7fa Fix yet another typo in cmpwt.lsp. 2009-07-01 14:02:32 +02:00