Juan Jose Garcia Ripoll
f2c0bae755
Export the symbols naming locations and c1forms from C-DATA
2009-12-29 18:06:37 +01:00
Juan Jose Garcia Ripoll
bf78e2ef29
cmpc-pass.lsp was not loaded by load.lsp.in
2009-12-29 17:37:33 +01:00
Juan Jose Garcia Ripoll
980b2ab650
CTOP-WRITE takes an argument denoting the source of the code
2009-12-29 17:36:07 +01:00
Juan Jose Garcia Ripoll
eb029bd8d1
LOCATION-PRIMARY-TYPE exported from C-DATA
2009-12-29 17:32:51 +01:00
Juan Jose Garcia Ripoll
55b9d4344e
propagate-types now only takes two arguments
2009-12-29 17:32:27 +01:00
Juan Jose Garcia Ripoll
a71c8203f8
Restore the function enforce-types, but now using locations instead of c1forms.
2009-12-29 17:32:11 +01:00
Juan Jose Garcia Ripoll
0abf905420
Removed type information from C1FORMs
2009-12-29 17:18:33 +01:00
Juan Jose Garcia Ripoll
97b6077f84
New file cmploc.lsp for dealing with locations.
2009-12-29 16:51:05 +01:00
Juan Jose Garcia Ripoll
8355766f0c
+init-function-name+ is now in C-DATA
2009-12-29 16:50:48 +01:00
Juan Jose Garcia Ripoll
d6c25c24bf
Explicitely export from C-DATA the flags that COMPILER must then export.
2009-12-29 16:50:24 +01:00
Juan Jose Garcia Ripoll
3fcfaef8cf
In cmpmain.lsp, t3local-fun is now a private symbol.
2009-12-29 16:49:43 +01:00
Juan Jose Garcia Ripoll
c663a87d2a
Reorganize sysfun.lsp using the new packages.
2009-12-29 16:49:19 +01:00
Juan Jose Garcia Ripoll
7956fb1441
Further reorganization, eliminating most uses of WT-* functions from the compiler driver.
2009-12-29 16:18:14 +01:00
Juan Jose Garcia Ripoll
509a7eae43
Further split cmpdefs.lsp into other files, including now a file for package definitions, a file for data types, a file for global variables, and a new package C-DATA that contains all those common structures.
2009-12-29 14:58:04 +01:00
Juan Jose Garcia Ripoll
2dad791a12
Further reorganized the c-backend, including a pass to replace constants with equivalent C expressions for accuracy.
2009-12-29 12:33:30 +01:00
Juan Jose Garcia Ripoll
187144581f
Full code reorganization, further splitting the backend.
2009-12-29 12:05:21 +01:00
Juan Jose Garcia Ripoll
b695d03693
Add optional debug statement
2009-12-29 00:22:11 +01:00
Juan Jose Garcia Ripoll
af90a24100
Simplified the compiler for blocks, eliminating the need for temporaries.
2009-12-28 21:36:22 +01:00
Juan Jose Garcia Ripoll
35bceed7d8
Fixed the compiler for MULTIPLE-VALUE-BIND, which was producing wrong code because it set bindings _before_ the values form.
2009-12-28 21:35:03 +01:00
Juan Jose Garcia Ripoll
c644e6e761
Parsing of optional arguments uses the jmp-nonzero operator
2009-12-28 21:34:06 +01:00
Juan Jose Garcia Ripoll
113b2907e4
Moved the functions for printing C1FORMS from cmpbackend to cmppass
2009-12-28 21:33:23 +01:00
Juan Jose Garcia Ripoll
f4e36b921b
Remove debug statements in cmpbind.lsp
2009-12-28 21:32:40 +01:00
Juan Jose Garcia Ripoll
e8ba4e673a
Ensure that the input to the JMP-ZERO/NONZERO operators is an object with integer representation type.
2009-12-28 21:32:21 +01:00
Juan Jose Garcia Ripoll
b4645481d5
Simplify the construction of slot accessors.
2009-12-28 21:31:24 +01:00
Juan Jose Garcia Ripoll
9716718a82
When updating the type of a destination, use the primary type. New operator JMP-NONZERO.
2009-12-28 21:30:59 +01:00
Juan Jose Garcia Ripoll
7e2eb381a9
The backend has to be loaded almost at the end, after tables, passes and other macros.
2009-12-28 21:29:57 +01:00
Juan Jose Garcia Ripoll
e73c32c844
Avoid using (void) when discarding output from C expressions.
2009-12-28 16:21:30 +01:00
Juan Jose Garcia Ripoll
41998701ac
In new-cmp/cmpbackend.lsp, added missing indirection in an argument to cl_parse_key()
2009-12-28 16:20:53 +01:00
Juan Jose Garcia Ripoll
3ad041e968
Removed debug statements in EMIT-LOCAL-FUNS.
2009-12-28 15:06:59 +01:00
Juan Jose Garcia Ripoll
97bc8f4c4e
Removed some debug statements, redirected others to *dump-output*
2009-12-28 15:06:06 +01:00
Juan Jose Garcia Ripoll
40c698cc64
Remove obsolete file new-cmp/cmptest
2009-12-28 15:05:15 +01:00
Juan Jose Garcia Ripoll
3ff0f77c89
Enforce the representation type of values output in various C forms.
2009-12-28 14:47:47 +01:00
Juan Jose Garcia Ripoll
7a59afb68d
Add missing compiler files to the list of sources loaded by Emacs.
2009-12-28 14:47:27 +01:00
Juan Jose Garcia Ripoll
b659f7de92
Enforce :BOOL representation type on condition values for IF statements.
2009-12-28 14:46:28 +01:00
Juan Jose Garcia Ripoll
c17b26f4d2
Fixed the pass for assigning labels.
2009-12-27 23:24:46 +01:00
Juan Jose Garcia Ripoll
eb8dbf74d7
Fixed typos in the generation of code for stack-push and stack-push-values.
2009-12-27 23:24:17 +01:00
Juan Jose Garcia Ripoll
dcfc2b35f7
Remove assignments to T.
2009-12-27 23:23:56 +01:00
Juan Jose Garcia Ripoll
3301e97a93
Remove assignment to T.
2009-12-27 23:23:35 +01:00
Juan Jose Garcia Ripoll
5581002abe
Added another debug statement.
2009-12-27 23:23:15 +01:00
Juan Jose Garcia Ripoll
d9f4d00c89
Remove bogus debug statement.
2009-12-27 23:22:58 +01:00
Juan Jose Garcia Ripoll
64783d5742
SI:STRING-TO-OBJECT had wrong proclamations.
2009-12-27 23:22:12 +01:00
Juan Jose Garcia Ripoll
ddc638fde4
New separate pass for assigning numbers to labels.
2009-12-27 20:20:38 +01:00
Juan Jose Garcia Ripoll
2dd36d0118
When registering and returning cleanup forms, return fresh lists.
2009-12-27 20:19:34 +01:00
Juan Jose Garcia Ripoll
1ed7e2d366
Remove duplicate definition of make-c1form-alone
2009-12-27 19:01:09 +01:00
Juan Jose Garcia Ripoll
e0195f69e1
Remove duplicate definition of WARN
2009-12-27 19:00:53 +01:00
Juan Jose Garcia Ripoll
73c324feef
Remove debug statement.
2009-12-27 17:32:07 +01:00
Juan Jose Garcia Ripoll
bf22bf374f
Fixes for PROGV:
...
* Operators PROGV/PROGV-EXIT did not register referenced variables.
* Missing PROGV-EXIT operand at the end of a PROGV statement.
* The output variable of PROGV must have type 'cl_index'
2009-12-27 17:31:53 +01:00
Juan Jose Garcia Ripoll
64d92a9e90
Fixed more situations in which the forms did not record the references to the variables they contain -- in particular when they appeared inside lists or other structures.
2009-12-27 16:28:50 +01:00
Juan Jose Garcia Ripoll
d1072abf07
In new-cmp/cmplet.lsp, elimination of unused variables is now redundant with the specialized compiler phase.
2009-12-27 13:07:18 +01:00
Juan Jose Garcia Ripoll
d6ab8d19ad
In cmptranslate.lsp, many forms did not register as references with the variables they used.
2009-12-27 12:57:45 +01:00