Commit graph

906 commits

Author SHA1 Message Date
Juan Jose Garcia Ripoll
2feabb4ed1 Reactivated the type propagators for +,/,*,- 2010-05-26 23:09:32 +02:00
Juan Jose Garcia Ripoll
eea9b102ad Implemented type propagation for local functions 2010-05-26 23:09:07 +02:00
Juan Jose Garcia Ripoll
3994456543 Implemented a type propagation phase 2010-05-26 22:01:55 +02:00
Juan Jose Garcia Ripoll
89b99fbcee Fixed typos in proclamations.lsp 2010-05-26 22:01:40 +02:00
Juan Jose Garcia Ripoll
f14a1b5a0c Create hash tables for dispatching type propagators. 2010-05-26 12:24:49 +02:00
Juan Jose Garcia Ripoll
910e79852e Instead of using system property lists, create dispatch tables for handling the C1, T1, C2 forms and others. 2010-05-26 12:12:57 +02:00
Juan Jose Garcia Ripoll
75ba91304a Type propagators for ROW-MAJOR-ASET/AREF. 2010-05-26 10:27:14 +02:00
Juan Jose Garcia Ripoll
55c51666b4 Fixed typo in the inline code for ROW-MAJOR-AREF/ASET 2010-05-25 22:53:05 +02:00
Juan Jose Garcia Ripoll
6092f4be4a Remove warnings about unknown optimization setting COMPILATION-SPEED 2010-05-25 22:34:45 +02:00
Juan Jose Garcia Ripoll
5cfb33d7ad Inline forms for ROW-MAJOR-AREF/ASET acting on specialized arrays with elements :[u]int{8,16,32,64}-t 2010-05-25 22:18:01 +02:00
Juan Jose Garcia Ripoll
1c6132d28a Inline MAKE-ARRAY also when :INITIAL-ELEMENT is supplied. 2010-05-25 22:17:24 +02:00
Juan Jose Garcia Ripoll
0a0175d98a Move DELETE-C1FORMS to cmpforms.lsp 2010-05-25 22:16:59 +02:00
Juan Jose Garcia Ripoll
e33fb2f3c2 New special form EXT:COMPILER-TYPECASE used to create compiler macros that select code based on the types of expressions. 2010-05-25 22:16:46 +02:00
Juan Jose Garcia Ripoll
bb3eeabf74 Reimplemented C2LET without REPLACEd variables and eliminated this kind from the rest of the compiler. 2010-05-25 19:43:31 +02:00
Juan Jose Garcia Ripoll
51c7549e72 Precise declarations for ARGC/ARGV 2010-05-25 19:43:03 +02:00
Juan Jose Garcia Ripoll
6b83ade38d Removed the C2LET forms, replacing them with C2LET* and temporary variables. 2010-05-25 15:56:41 +02:00
Juan Jose Garcia Ripoll
40d5fede52 New macro C-DECLAIM for file-local declamations that do not propagate outside the file, not even when loaded. 2010-05-25 15:55:53 +02:00
Juan Jose Garcia Ripoll
cfde0986fd DECLAIM did not work because the routine ADD-DEFAULT-OPTIMIZATIONS did not inspect the root environment 2010-05-25 11:31:14 +02:00
Juan Jose Garcia Ripoll
4a20d0d23c Simplify the inline expansion of AREF/ASET using temporary variables for the array dimensions 2010-05-25 11:30:48 +02:00
Juan Jose Garcia Ripoll
d4f96996e3 The CONS-CDR/CAR optimization was not working fully because the interpreter did not support it and because there were macros shadowing the actual functions. 2010-05-23 22:47:36 +02:00
Juan Jose Garcia Ripoll
7457f9524d Minor fixes in the inference of C1FORM types 2010-05-23 16:32:36 +02:00
Juan Jose Garcia Ripoll
c60112a470 New auxiliary functions CONS-CAR/CONS-CDR help in optimizing loops 2010-05-23 16:31:45 +02:00
Juan Jose Garcia Ripoll
5141fad5e0 SEQUENCE-START-END now returns also the length of the sequence 2010-05-21 23:27:49 +02:00
Juan Jose Garcia Ripoll
4be12cb2c0 New C functions for copy-seq and subseq 2010-05-21 11:24:17 +02:00
Juan Jose Garcia Ripoll
909ed7f1c5 Export the utility function SEQUENCE-COUNT 2010-05-20 23:33:16 +02:00
Juan Jose Garcia Ripoll
7e53f79dd2 Proclaim coerce-to-function 2010-05-20 14:58:11 +02:00
Juan Jose Garcia Ripoll
ec0ddc1174 New function SEQUENCE-START-END 2010-05-20 12:30:52 +02:00
Juan Jose Garcia Ripoll
8a29b98f94 C1FORM-REPLACE-WITH now replaces entirely the form, not just creating a VALUES proxy. 2010-05-19 15:20:59 +02:00
Juan Jose Garcia Ripoll
ef797cb513 Management of variable references, read and set nodes, and type updates is now done through the functions in cmpvar.lsp. 2010-05-19 14:20:17 +02:00
Juan Jose Garcia Ripoll
f7ad326bee Changed the order of arguments in ASET to simplify the resulting SETF forms 2010-05-19 10:22:38 +02:00
Juan Jose Garcia Ripoll
a66b041368 New function for extracting values from constant expressions 2010-05-19 09:48:48 +02:00
Juan Jose Garcia Ripoll
d276d2e2ea Add a type update phase for variables in LET forms 2010-05-19 09:48:28 +02:00
Juan Jose Garcia Ripoll
4f2d4679d3 The compiler macro optimizer for MAKE-ARRAY extracts the type from its arguments. 2010-05-19 09:47:46 +02:00
Juan Jose Garcia Ripoll
2f124f7ed9 Fix the order of array index scanning. 2010-05-18 21:47:36 +02:00
Juan Jose Garcia Ripoll
124862f56f Index checking was always active 2010-05-18 21:44:58 +02:00
Juan Jose Garcia Ripoll
01e225a30d Introduce an environment variable to prevent the compiler from deleting files 2010-05-18 16:40:55 +02:00
Juan Jose Garcia Ripoll
7a7c8ff586 The optimizer for RPLACA/D returned not the cons, but the value. 2010-05-18 16:40:30 +02:00
Juan Jose Garcia Ripoll
6d82235b1b Fixed typo in VT-LOC-VALUE 2010-05-18 12:25:11 +02:00
Juan Jose Garcia Ripoll
a01e56cf83 VT-LOC-VALUE, used to retrieve the constant value of C locations, did not handle statically allocated constants 2010-05-18 11:08:37 +02:00
Juan Jose Garcia Ripoll
49d45942c5 M-V-BIND did not handle properly a proclaimed function with a number of return values that exceed the number of bound variables. 2010-05-18 11:08:04 +02:00
Juan Jose Garcia Ripoll
a53b58c076 Fix inline expansions for ELT using a function, ecl_aset1_unsafe, which is no longer in the library. 2010-05-18 09:56:28 +02:00
Juan Jose Garcia Ripoll
a2e2ed1590 Remove debug statements which were emitted as compiler notes 2010-05-18 00:25:49 +02:00
Juan Jose Garcia Ripoll
5553144a40 CMP-EVAL did not use the compiler environment 2010-05-18 00:21:32 +02:00
Juan Jose Garcia Ripoll
6939923450 Missing definition for CHARACTER-DESIGNATOR. 2010-05-17 23:37:47 +02:00
Juan Jose Garcia Ripoll
8d99c6a2b6 Optimize MEMBER with short, constant lists 2010-05-17 23:06:42 +02:00
Juan Jose Garcia Ripoll
a0f102fb0c More accurate type for AND and OR forms 2010-05-17 22:34:14 +02:00
Juan Jose Garcia Ripoll
271f3499d2 C1AND, C1IF and C1OR now optimize directly C2 forms 2010-05-17 22:31:17 +02:00
Juan Jose Garcia Ripoll
aec68adfcc C1NOT now optimizes C2 expressions directly 2010-05-17 21:59:53 +02:00
Juan Jose Garcia Ripoll
050ba3ba60 C2IF can be built using the existing routines for FMLA-OR/AND/NOT 2010-05-17 21:24:20 +02:00
Juan Jose Garcia Ripoll
2f36c1901a The structure of C2FMLA-AND is imposed onto C2FMLA-OR 2010-05-17 17:30:42 +02:00