Commit graph

160 commits

Author SHA1 Message Date
Adrien Guatto
3a0b1f9e16 New handy function for pretty-printing: wrap_print. 2010-07-19 15:13:56 +02:00
Adrien Guatto
d75f4f8901 Added an option for global inlining (-flatten). 2010-07-19 13:20:11 +02:00
Adrien Guatto
1d6df4ecb2 Inlining pass added. Use with -inline. 2010-07-19 12:02:29 +02:00
Adrien Guatto
2ccdf677f0 Reworded Heptagon mapfold introductory message. 2010-07-19 12:02:29 +02:00
Adrien Guatto
2a72628f20 Stricter mk_longname. 2010-07-19 12:02:29 +02:00
Cédric Pasteur
fac69ac2fa Remove controllables from parser 2010-07-16 16:08:14 +02:00
Cédric Pasteur
aeca344db5 Automata with mapfold
It does not change much the code but at least
we can now see what is important.
2010-07-16 16:01:27 +02:00
Cédric Pasteur
2d10ef84df Present with Hept_mapfold
Seems so simple, I feel like I missed something...
2010-07-16 15:30:51 +02:00
Cédric Pasteur
af2ea1f361 Compile fix
Always check that the code compiles before committing.
2010-07-16 15:11:53 +02:00
Cédric Pasteur
da9b353e75 Shorter version of is_statefull 2010-07-16 15:10:14 +02:00
Cédric Pasteur
bcc994fb9f No need to collect calls without params
There is no need to collect calls without parameters
as we only need the signature of the function and the code
will be generated when compiling the first file.
2010-07-16 14:35:42 +02:00
Cédric Pasteur
ac4e46eff9 Remove debug info 2010-07-16 14:16:31 +02:00
Cédric Pasteur
9f7c4da446 Added missing operator 2010-07-16 14:15:26 +02:00
Cédric Pasteur
b6583f22b6 Complete fix for the identifiers problem 2010-07-16 14:09:37 +02:00
Cédric Pasteur
d42e56203b Fix for identifiers in C
Instead of calling cname_of_name before creating 
the C ast, keep original names and convert them
when pretty printing the code.
2010-07-16 13:48:37 +02:00
Cédric Pasteur
cdc9b14a44 Fixed problem with multidimensional arrays in args 2010-07-16 12:38:45 +02:00
Cédric Pasteur
27d5790a20 Do not forget iterators at instantiation time either 2010-07-16 12:33:08 +02:00
Cédric Pasteur
7f4a0954bf Also instantiate nodes called in iterators 2010-07-16 12:26:53 +02:00
Cédric Pasteur
778dfdb3f9 Do not loop forever during code generation
- Detect when the computation of the static exp
using simplif failed and abort.
- Added a better way to compute operators in
Static
2010-07-16 12:04:51 +02:00
Cédric Pasteur
3f7564aaa6 Fix for code generation
A node declared with node is statefull (so has a
context struct) even though it is empty. Use
the global_name ref to get the name of the current 
module.
2010-07-16 11:28:01 +02:00
Cédric Pasteur
03f21cc612 Last done with Hept_mapfold 2010-07-16 10:28:26 +02:00
Cédric Pasteur
336b6eac00 Simplify a little Mls2obc
We don't need to return the memory vars as they
are already computed
2010-07-16 09:58:56 +02:00
Cédric Pasteur
66078effbd Added support for tuples in normalize
- (v1, v2, ... ) fby (e1, e2, ...) is translated to
(v1 fby e1, v2 fby e2, ...)

This has made the code even more complex. This will
need to be refactored at some point.
2010-07-15 17:58:32 +02:00
Cédric Pasteur
f6d55712bc Revert "Normalize small tweak."
This reverts commit eb39fcffec.

This change is completely wrong (sorry Leonard ...)
2010-07-15 17:04:18 +02:00
Léonard Gérard
eb39fcffec Normalize small tweak. 2010-07-15 16:21:07 +02:00
Léonard Gérard
57b1405731 Basic clocking port. 2010-07-15 16:20:46 +02:00
Léonard Gérard
c3a3f954f4 Typing fix, if this line is actually useful.
(and 80 colons fix..)
2010-07-15 14:21:19 +02:00
Cédric Pasteur
94468cae5d Fixed iterators
We need to store the qualified name of the iterated node
2010-07-15 13:41:13 +02:00
Cédric Pasteur
0c1860ccbd Fixed problem with tuple consts in Mls2obc 2010-07-15 13:12:11 +02:00
Cédric Pasteur
f8ecf3d76c Fixed Vars read function
When is_left is true, the variables to the right
of the fby should be ignored.
2010-07-15 11:57:47 +02:00
Cédric Pasteur
f2559b5e87 Small refactoring 2010-07-15 11:37:30 +02:00
Cédric Pasteur
f6ffea710d Comments for callgraph_mapfold 2010-07-15 11:31:48 +02:00
Cédric Pasteur
93fef027f0 Keep the list of static parameters in Obc 2010-07-15 11:31:32 +02:00
Cédric Pasteur
aad8545055 Set the correct location for obj_dec 2010-07-15 10:06:16 +02:00
Cédric Pasteur
4f9d6b2d82 Added v_loc in Minils too 2010-07-15 10:02:42 +02:00
Cédric Pasteur
46a09cf369 Make Efield an op (as in Minils)
The fact that this commit mostly removes code proves
that this was a good choice.
2010-07-15 09:56:21 +02:00
Cédric Pasteur
62e216314d Fixed stupid bug 2010-07-15 09:37:20 +02:00
Cédric Pasteur
1c55689b18 Fixed name 2010-07-15 09:27:59 +02:00
Cédric Pasteur
a188952ef6 Ported Normalize (not tested yet) 2010-07-15 09:27:51 +02:00
Léonard Gérard
c657ce8ecb Schedule with the iterator and eqs/var_decs added in mapfold. 2010-07-14 03:45:38 +02:00
Léonard Gérard
57751992c0 Rebase done : Mls re-ported. Mls_mapfold and mls_utils updated. 2010-07-14 02:58:08 +02:00
Léonard Gérard
be7bdc7f27 Mls printer ported. 2010-07-14 02:44:46 +02:00
Léonard Gérard
469e5b86cd A much better and efficient completion_mapfold. 2010-07-14 02:37:03 +02:00
Léonard Gérard
ce4f1916da interface_format_version bump ! 10.... 2010-07-14 02:37:02 +02:00
Léonard Gérard
1c2929078d Small tweaks on the hept_mapfold and comments. 2010-07-14 02:37:02 +02:00
Cédric Pasteur
5440a073d6 Fixed generation of C code 2010-07-13 16:23:26 +02:00
Cédric Pasteur
73bd2d080e Correctly set the name of generated nodes 2010-07-13 16:01:42 +02:00
Cédric Pasteur
0d9a35a8b6 Fixed Callgraph_mapfold 2010-07-13 15:37:29 +02:00
Cédric Pasteur
dab569d8ad Add missing case for ifthenelse 2010-07-13 14:42:46 +02:00
Cédric Pasteur
ee767064b1 Instantiation of parametrized nodes (v2)
- Many changes to make Hept2mls, mls2obc, etc
compile with the api changes
- Added Callgraph_mapfold: starting from a main
program, generates the list of instances of each
node necessary and creates them.
- Mls2seq deals with giving to the code generators
the correct source (mls or obc, wit or without
static parameters)

It is now possible to use parametrized nodes that 
are defined in other files. For that to work, the 
first file has to be compiled to an object file:
	heptc -c mylib.ept
which creates a mylib.epo file. Compiling the main
file will then generate all the instances of 
parametrized nodes from the lib (only the called 
nodes will be compiled, but all the nodes in the 
main file are compiled).
2010-07-13 14:03:39 +02:00