Commit graph

8959 commits

Author SHA1 Message Date
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
aaf5609daf make clean does wipe out the entire content of the build directory. 2009-07-06 19:28:54 +02:00
Juan Jose Garcia Ripoll
d15401b037 make clean does wipe out the entire content of the build directory. 2009-07-06 19:28:37 +02:00
Juan Jose Garcia Ripoll
8636b97c1f Mark new release version. 2009-07-05 17:25:15 +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
172636807b Changed the order of C flags so that the user supplied include directories are searched last. 2009-07-05 17:11:23 +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
39d9ee467d Implemented C function for inlining ARRAY-DIMENSION 2009-07-04 19:54:23 +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
509166541b New error functions that will be used in compiled code 2009-07-04 17:17:23 +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
72b1843963 Reintroduce bounds checks in ecl_elt/ecl_elt_set 2009-07-03 18:51:54 +02:00
Juan Jose Garcia Ripoll
f78b7ad8fc ecl_elttype_to_symbol() uses now a name table instead of dispatching with switch. 2009-07-03 14:48:56 +02:00
Juan Jose Garcia Ripoll
4ef65fa6cc Reordering statements in ecl_{aset,aref} gives 25% speedup 2009-07-03 14:34:24 +02:00
Juan Jose Garcia Ripoll
8a3c9cea2c Remove the call to ecl_array_elttype() in ecl_aset_unsafe 2009-07-03 09:35:35 +02:00
Juan Jose Garcia Ripoll
2dc460e7a5 Implement new error functions for array and vector types. 2009-07-03 09:35:06 +02:00
Juan Jose Garcia Ripoll
535863ff57 Consistently with SBCL, array type errors are not recoverable 2009-07-03 09:19:21 +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
95fc3c6413 Create really unchecked versions of aref/aset 2009-07-03 00:25:38 +02:00
Juan Jose Garcia Ripoll
866d8c8604 The array element type is stored in the arrays, vectors and strings, thus simplifying identification and code. Slight speedup in ecl_aref. 2009-07-02 23:48:20 +02:00
Juan Jose Garcia Ripoll
bb2c54296d Ack was already defined. 2009-07-02 23:12:10 +02:00
Juan Jose Garcia Ripoll
e0d4aea4e8 Additional character names, for compatibility with older versions. 2009-07-02 23:08:33 +02:00
Juan Jose Garcia Ripoll
1531a8b36e Move the definition of _XOPEN_SOURCE out of ecl.h so that we can use MAP_ANON. 2009-07-02 17:55:56 +02:00
Juan Jose Garcia Ripoll
da26e27de1 Extend the previous change to C++ builds. 2009-07-02 11:09:24 +02:00