Commit graph

277 commits

Author SHA1 Message Date
Cédric Pasteur
04b8853a1d Added a new reinit operator
It has type:
reinit: t at r * t -> t at r

It can be used to put a constant value in a 
location.
2011-10-17 15:28:04 +02:00
Cédric Pasteur
0f403e3694 Fix for wrong number of expected args 2011-10-17 10:17:18 +02:00
Léonard Gérard
ef4478e37e removed some stupid warnings. 2011-10-14 13:33:34 +02:00
Adrien Guatto
ee2f5ca443 Tomato: simplification + update signature via modules.
test/good/linear_init.ept now compiles.
2011-10-10 17:01:08 +02:00
Adrien Guatto
3269a04052 Do not inline linear extended values. 2011-10-06 16:18:48 +02:00
Adrien Guatto
30089e7d0f Fixed extvalue inlining w.r.t. linear copy 2011-10-05 17:44:01 +02:00
Adrien Guatto
d0ed09c3e5 Ext-value inlining pass. 2011-10-04 15:14:02 +02:00
Cédric Pasteur
902cbaf7a1 Fixed error with memalloc and const value with when 2011-10-04 14:34:44 +02:00
Adrien Guatto
2fb27770b8 Fixed iterator minimization bug. 2011-10-03 10:54:50 +02:00
Cédric Pasteur
70787757aa Fixed normalization of fby
The incorrect behaviour was introduced in commit
6b86b86e9d.

We should have:
       o = v fby e
     becomes
       mem_o = v fby e;
       o = mem_o

The old way would break with:
 v = true fby false fby v
that would generate unschedulable code.
2011-09-08 11:45:43 +02:00
Cédric Pasteur
81947eca40 Made linearity field not optional
This helped solve a few bugs with linear types,
for instance when using automata.
The intermediate code is not well-typed (wrt to
linear types only), after the encoding of automata.
2011-09-07 17:51:31 +02:00
Cédric Pasteur
9d1702587a Fix interaction between tomato and memalloc
Take linearity into account when comparing exps
2011-09-07 14:15:33 +02:00
Cédric Pasteur
caa43f163f Added dependency from a read to a linear read
This got lost along the way when porting memalloc
to the new branch
2011-09-07 14:14:59 +02:00
Cédric Pasteur
7ac567cc35 Update the signature instead of recreating it
This avoids losing additional info in the
signature (such as linearity)
2011-09-07 11:32:16 +02:00
Cédric Pasteur
8cc879be7a Generate code from interface (.epi) files
It includes the definition of types, constants
and prototypes defined in the interface.
2011-09-06 11:55:06 +02:00
Gwenaël Delaval
c57b71b6aa Merge branch 'bzr' into decade
- Added Boolean module (enum types to boolean vectors)
- Added Hept_clocking analysis, called before Boolean
- Added z3z target from minils (sigali format)
- Bug corrections in Normalize, Normalize_mem

Conflicts:
	compiler/heptagon/analysis/typing.ml
	compiler/heptagon/heptagon.ml
	compiler/heptagon/parsing/hept_parser.mly
	compiler/heptagon/parsing/hept_parsetree.ml
	compiler/heptagon/parsing/hept_scoping.ml
	compiler/main/hept2mls.ml
	compiler/main/heptc.ml
	compiler/main/mls2seq.ml
	compiler/minils/minils.ml
	compiler/minils/transformations/normalize_mem.ml
	test/check
2011-08-04 13:37:33 +02:00
Gwenal Delaval
2c4be9d42c Correct scoping and typing with contracts 2011-07-27 16:13:45 +02:00
Gwenal Delaval
c77386d517 Active Boolean pass and Sigali backend 2011-07-27 11:21:34 +02:00
Cédric Pasteur
7d95b95ed7 Merge branch 'memalloc' into decade
Conflicts:
	compiler/global/signature.ml
	compiler/heptagon/analysis/typing.ml
	compiler/heptagon/hept_printer.ml
	compiler/heptagon/hept_utils.ml
	compiler/heptagon/heptagon.ml
	compiler/heptagon/parsing/hept_parser.mly
	compiler/heptagon/parsing/hept_parsetree.ml
	compiler/heptagon/parsing/hept_scoping.ml
	compiler/heptagon/transformations/switch.ml
	compiler/main/hept2mls.ml
	compiler/minils/minils.ml
	compiler/minils/mls_printer.ml
	compiler/obc/c/cgen.ml
	compiler/obc/control.ml
	compiler/utilities/misc.mli
2011-07-21 08:50:45 +02:00
Léonard Gérard
57155b45e2 remove the ; _ } from ocaml 3.12 ... 2011-07-08 15:31:17 +02:00
Adrien Guatto
1e95cc4098 patch tomato wrong merge. 2011-07-08 15:27:17 +02:00
Adrien Guatto
40e64b305d Tomato: disable debug messages by default 2011-07-08 11:56:38 +02:00
Adrien Guatto
7d9e31a83b Tomato checking in check.sh 2011-07-08 11:56:38 +02:00
Adrien Guatto
d1c2789574 Tomato: properly handle n-ary functions. 2011-07-08 11:56:38 +02:00
Adrien Guatto
8f0ef3a256 Properly use clocking information in corner cases. 2011-07-08 11:56:38 +02:00
Adrien Guatto
2283fcdfaa Properly handle fused outputs. 2011-07-08 11:56:38 +02:00
Adrien Guatto
3657018861 Tomato: finer equivalence classes for Eapp and
Eiterator when a reset variable is present.
2011-07-08 11:56:38 +02:00
Adrien Guatto
3c5bb4e8b7 Tomato working with clocks and when. 2011-07-08 11:56:37 +02:00
Adrien Guatto
891174d73c All-new and fresh tomato!
Not working ATM:
  * tuples
  * when
2011-07-08 11:56:37 +02:00
Léonard Gérard
0518ecafe6 Merge branch 'multidimensional' into decade
Conflicts:
	compiler/obc/c/cgen.ml
	compiler/obc/java/java_main.ml
2011-07-08 11:36:46 +02:00
Brice Gelineau
42c2936040 Bugfix for the clocking analysis of iterators 2011-07-06 15:56:56 +02:00
Adrien Guatto
cedcabfbc4 Fix memory normalization: the correct clock was
missing.
2011-07-06 11:50:02 +02:00
Léonard Gérard
5837f3906f Multidimensional iterators in java. 2011-06-28 17:50:42 +02:00
Brice Gelineau
c70d34ec06 Preliminary version of multidimensional iterators. 2011-06-28 17:50:42 +02:00
Léonard Gérard
83b0182874 Merge branch 'clocked_inputs' into decade
Conflicts:
	compiler/heptagon/analysis/typing.ml
	compiler/heptagon/parsing/hept_scoping.ml
	compiler/heptagon/parsing/hept_static_scoping.ml
	compiler/main/mls2obc.ml
	compiler/obc/c/cmain.ml
2011-06-28 14:46:43 +02:00
Léonard Gérard
108981c0eb Static constraints in the source. Equal removed
( = ) in pervasives is a stub, it will be typed in a polymorphic way.
This is necessary to have a simple way to transform exp into a static_exp
even when there is the = operator.
2011-06-09 14:53:40 +02:00
Léonard Gérard
46ed39b7b3 Remove some warnings. 2011-06-09 14:40:31 +02:00
Cédric Pasteur
f45e30d207 Yet another special case for iterators 2011-06-07 10:49:36 +02:00
Brice Gelineau
938e8897b2 n-ary Sarray_power Earray_fill 2011-05-26 18:43:30 +02:00
Léonard Gérard
fe74030f78 Fix clocking of iterators. 2011-05-26 16:08:59 +02:00
Léonard Gérard
b73e6502a6 resets are now without constraint. 2011-05-26 15:56:59 +02:00
Léonard Gérard
d7d7552be4 Fix printing and parsing of clocks 2011-05-26 15:56:59 +02:00
Léonard Gérard
fd00f099f5 correct reset and level clock 2011-05-26 15:56:59 +02:00
Léonard Gérard
2a2b363bf7 Real asynchronous resets. 2011-05-26 15:56:59 +02:00
Léonard Gérard
fbfa6eda1a Add Ewhen to the minils ast, And clocking of iterators.
Ewhen is now the only case of possible recursion for minils exps.
This add was motivated by equations like :
(y,z) = f(x) when c
This equation to be correctly normalized in minils before needed :
y',z' = f(x)
y = y' when c
z = z' when c
But this new variables where needless since the final translation of when c
is the identity.
2011-05-26 15:56:59 +02:00
Léonard Gérard
87dc76f113 Code formating fixes (typos, tabs, spaces at endofline,...) 2011-05-26 15:56:59 +02:00
Léonard Gérard
de49540a76 clean signature printing. 2011-05-26 15:56:59 +02:00
Léonard Gérard
74cc367a0e correct base_clock and signature. 2011-05-26 15:56:59 +02:00
Léonard Gérard
9a17648516 good clocks in signatures 2011-05-26 15:56:59 +02:00
Leonard Gerard
88497a2da3 parsing clocks. 2011-05-26 15:56:58 +02:00