Commit graph

58 commits

Author SHA1 Message Date
Cédric Pasteur
0d9a35a8b6 Fixed Callgraph_mapfold 2010-07-13 15:37:29 +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
Cédric Pasteur
4598b29ad2 Forgot to move this file too 2010-07-13 08:47:02 +02:00
Cédric Pasteur
e7bd251b35 Added Global_mapfold and Mls_mapfold
- Global_mapfold is used to iterate over types
defined in Types or Signature (the iterators 
from Types were moved here)
- Mls_mapfold to iterate over Minils AST (we
do not iterate over clocks yet: is it useful ?)
2010-07-09 11:33:17 +02:00
Cédric Pasteur
b0a5a7f13e Heptcheck compiles !! 2010-07-08 15:25:26 +02:00
Léonard Gérard
5baa30f7c1 Last refactor ? and hept_mapred shows in ! 2010-07-08 15:22:26 +02:00
Cédric Pasteur
7ed81a8950 Moved Obc_printer to a separate file 2010-07-08 15:19:04 +02:00
Cédric Pasteur
978313de1e Moved sequential to compiler/ dir 2010-07-08 15:19:04 +02:00
Léonard Gérard
5cc57cd3b0 Static_exps should be in types. field name of ops is a param. 2010-07-08 15:17:08 +02:00
Cédric Pasteur
037f9be664 Remove unused code 2010-07-08 15:16:27 +02:00
Cédric Pasteur
769cb1d881 Updated ast for Static
- Static are used for consts in Heptagon and Minils.
For now, node static parameters remain int only
(ie they are type parameters). Do we need more ?
- Also updated Parsetree AST to the recent changes
in API
2010-07-08 15:16:27 +02:00
Léonard Gérard
3cc1652425 Minils and signature tweaked further. 2010-07-08 15:12:02 +02:00
Adrien Guatto
ed280669ec Efields and Etuple are op 2010-07-08 15:04:57 +02:00
Léonard Gérard
d58e83a985 Proposition 1. 2010-07-08 15:04:57 +02:00
Adrien Guatto
7918332353 Temporary fix for array literals. 2010-07-08 12:44:34 +02:00
Cédric Pasteur
d594ace895 This case is unused 2010-07-07 17:03:36 +02:00
Adrien Guatto
0712378133 Fixed output structure allocation in C backend 2010-07-07 14:44:43 +02:00
Cédric Pasteur
c123000eef Always generate a f_out struct
Generate it even if the node has no output. It 
should be noted that it is impossible to call
a node without an output in an Heptagon program. 
This is only useful to provide a simple interface
eg for the generation of main().
2010-07-07 09:58:23 +02:00
Adrien Guatto
0fbaa0217b Fixed missing include dir in minils/_tags 2010-07-06 13:35:11 +02:00
Léonard Gérard
65c12884bd SConst -> Sconst 2010-07-06 11:12:14 +02:00
Adrien Guatto
1113fd7ec1 Yet another refactoring fix 2010-07-02 15:45:50 +02:00
Adrien Guatto
5a6a3c74ac Fixed refactoring errors. 2010-07-02 15:38:11 +02:00
Adrien Guatto
eaafc5db05 C backend: better array printing 2010-07-02 15:30:46 +02:00
Léonard Gérard
0ae39e8698 Good static Constructors names.
Conflicts:

	compiler/global/static.ml
	compiler/heptagon/analysis/typing.ml
	compiler/heptagon/heptagon.ml
	compiler/heptagon/parsing/scoping.ml
	compiler/minils/mls_utils.ml
2010-07-01 20:00:46 +02:00
Léonard Gérard
de16b4f178 typo Mls_{P->p}arser 2010-07-01 19:41:07 +02:00
Adrien Guatto
a7e34a0a17 C backend: added missing #include 2010-07-01 15:41:07 +02:00
Adrien Guatto
3714cd2a39 C back-end: main() generation updated to the lastest calling convention. 2010-07-01 15:21:11 +02:00
Adrien Guatto
83f02ad86f C backend: moved main() to its own file. 2010-07-01 14:44:08 +02:00
Léonard Gérard
b93b176383 Mls parsing error handling adapted to menhir 2010-06-30 18:46:40 +02:00
Cédric Pasteur
79fb193206 New calling convention in generated code
Functions take as arg:
	- the inputs
	- a 'f_out' structure: if there is at least one
input (whatever their type are)
	- a 'f_mem' structure: containing memories and
contexts for child nodes. This is created only for
node (not for fun). A node declared statefull 
without any memory will have an empty structure.
2010-06-30 17:30:48 +02:00
Léonard Gérard
7e29ba4057 ?? nothing 2010-06-30 17:25:00 +02:00
Léonard Gérard
562c0ab602 re re Parsing. 2010-06-30 15:45:40 +02:00
Léonard Gérard
6ab18a65ec Parsing..... again. 2010-06-30 15:45:40 +02:00
Léonard Gérard
92afdbfb98 Mls parsing to ammend. 2010-06-30 15:45:40 +02:00
Cédric Pasteur
01d0cd02c3 Remove bounds hack in Eselect_dyn
We no longer need to store the bounds as the 
bounds check expression is generated from MiniLS
code where the type is directly available.
2010-06-30 13:46:46 +02:00
Cédric Pasteur
b4419a6760 Better deal with memory less nodes
There are now 3 kinds of nodes: Eprim : primitive 
nodes, Enode: nodes with memory, Efun: nodes 
without memory.

Typing now sets correct eq_statefull and b_statefull
for equations and blocks. Resets are only added 
when a node with memory is called.

The calling convention is the generated code needs
to be modified so that we can remove the context 
for nodes without memory.
2010-06-30 13:37:54 +02:00
Léonard Gérard
2af3686af2 Mls printer fix. 2010-06-30 03:25:08 +02:00
Léonard Gérard
2127a1c2d4 Mls printing fix. 2010-06-29 19:21:07 +02:00
Léonard Gérard
88732ef2a9 parsing warning removed. 2010-06-29 19:21:07 +02:00
Léonard Gérard
eca36de94b Moved mlsparsing stuff to minils/parsing. 2010-06-29 19:18:50 +02:00
Adrien Guatto
f35bf95458 Indentation fixes! 2010-06-29 11:18:50 +02:00
Adrien Guatto
ef55c8f9fd Fixed forgotten AST change in MiniLS. 2010-06-29 11:12:04 +02:00
Léonard Gérard
0f2d046d59 Gros blop pour que Mlsc compile.
-* Séparation du fichier minils avec création de mls_utils
-* Lexer et Parser qui fonctionnent (pas complets encore)
-* Use of menhir with --explain pour debug du parser
-* Quelques refactoring (ident/name...)
2010-06-28 18:06:39 +02:00
Adrien Guatto
ff07d77667 Assertion generation for C back-end. 2010-06-27 23:28:38 +02:00
Adrien Guatto
5db45bd497 Generated C programs now accept a max step command-line argument. 2010-06-27 23:28:38 +02:00
Adrien Guatto
b4ddefa65c Tabs, trailing ws and long lines shall receive no mercy! 2010-06-26 17:17:28 +02:00
Cédric Pasteur
dece22d0b6 Fix iterators with constant arrays 2010-06-25 13:48:57 +02:00
Cédric Pasteur
9b18eb71a4 Operators can appear in the exp normal form 2010-06-25 13:48:46 +02:00
Léonard Gérard
1a829ea4e0 Mls parser tweak, todos and co added 2010-06-24 05:05:58 +02:00
Cédric Pasteur
744f166e12 Add a missing case in Minils Init
The encoding of a reset for e1 -> e2 (in heptagon) is:
	if true fby false then e1 else e2

which is well initiliazed even in e2 = pre x.
2010-06-24 05:01:10 +02:00