Léonard Gérard
2b9d3828b1
debut de la correction du when.
...
test :
node f(c :bool) returns (out :int)
let
out = (0 fby 1) when c
tel
et
node f(x :int) returns (out : int)
let
out = 0 fby x
tel
node g(c :bool) returns (out :int)
let
out = f(0) when c
tel
2011-12-06 15:44:20 +01:00
Léonard Gérard
646cfab82b
Enforce style : no tab, no trailing whitespace.
2011-11-21 03:26:27 +01:00
Léonard Gérard
a08da94edc
Scheduling bonus for array updates.
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
bdd85f5f81
mapfold over var_ident.
2011-11-18 12:32:36 +01:00
Cédric Pasteur
1a28ed96e8
Improvement for normalize memories
...
Only create necessary copies (for outputs
and recursive registers).
2011-11-16 16:07:36 +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
ffe2b23a82
new sheduler by default
2011-10-23 17:42:26 +02:00
Léonard Gérard
81ad14ab7b
changed interf_schedule to use clocks correctly
2011-10-20 16:52:50 +02:00
Cédric Pasteur
21433f6416
Only do one copy for two recursive registers
2011-10-20 09:16:51 +02:00
Cédric Pasteur
72cac326a8
Fixed normalization of fby
...
We should normalize not only outputs but also
other fbys to generate correct code. The test shows
a program that was compiled incorrectly.
2011-10-19 16:31:40 +02:00
Cédric Pasteur
85be1252b0
Another try to fix causality of linear ifs
2011-10-17 18:10:38 +02:00
Adrien Guatto
1ec97d187b
Adapted minimization to reinit.
2011-10-17 15:43:55 +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
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