Cédric Pasteur
8815a2cd03
Better handling of clocks in memalloc
...
- We can do a better allocation if we take into
account 'when' in extvalues
(test/good/memalloc_clocks.ept shows the
improvement)
- Fixed a bug with memalloc on records: if we
translate:
o = { a with .f = u }
to
o = a; o.f = u
then we cannot share u and o.f
2012-06-20 09:17:13 +02:00
Cédric Pasteur
ee7d60120b
Fixed bug in translation to minils
2012-06-19 15:56:54 +02:00
Gwenal Delaval
2956002f85
Correction and simplification of the sigali pass
...
Added a "Contracts" pass, after inlining, taking care of the
contracts of the nodes called in the body of a node. This pass
"inlines" the code and assume/guarantee parts of these subcontracts.
The "Sigali" pass both generates the sigali ("z3z") code and add the call to
the controller (which is a node generated further by the sigali tool).
Therefore this pass has been included into the mls compiler, and removed
from the targets (a "z3z" dummy target has been kept for backward compatibility
reasons).
2012-06-06 15:59:08 +02:00
Gwenal Delaval
bb0bc8bfe5
Added local assume/guarantee
...
Added local assume/guarantee in contracts.
No syntax associated to these local asume/guarantee: internal use only.
2012-05-29 14:14:46 +02:00
Adrien Guatto
e05f3732a0
Timing framework.
2012-03-07 17:48:08 +01:00
Adrien Guatto
f09792485e
Hept2mls: fixed missing enter_node
2012-03-07 17:48:08 +01:00
Léonard Gérard
8a78bc7d7d
Add [external] in the signatures. fix callgraph acordingly.
2012-02-21 16:07:29 +01:00
Adrien Guatto
76ae2f4518
Loop unrolling.
2012-02-08 16:16:41 +01:00
Cédric Pasteur
2f993a602c
Fixed base clock in code generation
...
Put the base clock inside the equation where it
belongs.
2012-01-25 09:34:58 +01:00
Adrien Guatto
cad8a0149f
Option to perform type inference on all types
2012-01-23 13:36:24 +01:00
Léonard Gérard
f0cbbccc2a
unsafe in minils node
2011-12-12 11:27:18 +01:00
Cédric Pasteur
54cde301f6
C code generation for printf
2011-12-12 10:36:24 +01:00
Cédric Pasteur
f76667e042
Second part of the fix
2011-12-06 15:44:20 +01:00
Léonard Gérard
d5f72c278c
mls2obc bug fix
...
y = (if then else) when c
ou bien
y = f() when c
ne compilait pas.
2011-11-28 15:12:22 +01:00
Adrien Guatto
1b73f3444e
Clock before dumping .epci
2011-11-24 11:41:11 +01:00
Léonard Gérard
fdab1ac55c
Strict-SSA option to switch array encoding.
2011-11-21 03:26:26 +01:00
Léonard Gérard
b49c37f7bf
Add ways to declare unsafe functions + unsafe fix
2011-11-21 03:26:26 +01:00
Léonard Gérard
efa6b5cf70
Correct scalarize and java load_conf
2011-11-18 12:32:37 +01:00
Adrien Guatto
1a9dc17618
Fixed clocking annotations.
...
1. Transmit annotations to extvaluese in Hept2mls.
2. Handle a pre-existing w_ck when clocking extvalues.
2011-11-10 15:36:54 +01:00
Léonard Gérard
76109b553a
Add -O option to enable optims.
2011-11-02 17:23:23 +01:00
Léonard Gérard
33021aaa90
Print stateful in heptagon.
...
Conflicts:
compiler/heptagon/hept_printer.ml
2011-11-02 13:15:33 +01:00
Léonard Gérard
ffe2b23a82
new sheduler by default
2011-10-23 17:42:26 +02:00
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
4d912e9349
Added more options for memalloc
...
There is now three options for memory allocation:
- -only-linear activates only the linear
annotations (with typing and code generation)
- -only-memalloc does only memory allocation
- -memalloc does both
When linear typing is not activated, linearity
annotations are ignored (the signature in the .epi
does not contain the annotations)
2011-09-09 16:05:44 +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
33bc0adff1
Type should be unaliased when expecting an array
2011-09-06 13:39:44 +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
Cédric Pasteur
379f509dfc
Added typing of signatures
...
This fixes a bug where mapfold would insert
untyped constants in the code.
2011-09-05 15:33:31 +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
Cédric Pasteur
69a5ad8df8
Fixed code generation of n-dim static arrays
...
Also added some tests.
2011-07-21 11:19:07 +02:00
Cédric Pasteur
0a372672e0
Fixed bug with type alias
...
We should always unalias a type if we're expecting
an array type.
2011-07-21 09:13:49 +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
250ccb8e23
Fix iterators obc pattern types
2011-07-08 17:22:58 +02:00
Adrien Guatto
7d9e31a83b
Tomato checking in check.sh
2011-07-08 11:56:38 +02:00
Léonard Gérard
5837f3906f
Multidimensional iterators in java.
2011-06-28 17:50:42 +02:00
Léonard Gérard
c5fbcbe765
removing white spaces
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
Adrien Guatto
4794045208
Reworked Obc AST: from right patterns to extvalues.
...
I introduced a notion of extended values in Obc expressions,
replacing the Epattern constructor. Patterns may now only
occur at their rightful place, on the left of an assignment.
This change allows to index global constant arrays.
2011-05-30 16:25:00 +02:00
Brice Gelineau
938e8897b2
n-ary Sarray_power Earray_fill
2011-05-26 18:43:30 +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
Leonard Gerard
88497a2da3
parsing clocks.
2011-05-26 15:56:58 +02:00
Leonard Gerard
a8215c8083
compile ! nearly all tests passed.
2011-05-26 15:56:58 +02:00
Cédric Pasteur
1ea4290f9e
Added scheduler that tries to minimize interferences
2011-05-25 09:12:15 +02:00
Cédric Pasteur
2b2cba8e2d
Added split operator
2011-05-25 09:12:14 +02:00