Commit graph

3107 commits

Author SHA1 Message Date
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
Juan Jose Garcia Ripoll
a44afe8b19 New configure option --with-profile-cflags, to build a profiled ECL 2009-07-02 11:07:41 +02:00
Juan Jose Garcia Ripoll
2501807b2d Remove unused macro definitions. 2009-07-02 10:31:29 +02:00