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
ed2c08315b
Should be affinity, not copy
2012-06-19 09:33:27 +02:00
Gwenal Delaval
cf22ba3989
Optional block in contracts
...
Optional let...tel block in contracts
Sink state in sigali
2012-06-07 17:48:31 +02:00
Gwenal Delaval
2bd31db883
Causality and scheduling with contracts
...
Correction of the causality analysis and scheduling (with interference)
to take contracts into account.
2012-06-07 15:27:07 +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
8153bc4eb5
Fixed Tomato: did not reconstruct internal clocks of extvalues
2012-03-30 14:47:47 +02:00
Léonard Gérard
61e14546df
Interf scheduling tries harder with arrays
2012-03-19 17:45:06 +01:00
Adrien Guatto
44d3a639e5
Internal error for unknown clocks.
2012-03-02 17:12:30 +01:00
Adrien Guatto
699b3c68e9
Tomato: bug fix, node inputs were not properly considered different.
2012-03-01 14:46:33 +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
5ac3a7f028
Redisable interference of scalars during scheduling
2012-02-10 11:33:09 +01:00
Cédric Pasteur
6e2e2a9f47
Fixed bug in interference computation
...
To know the variables read by an equation, we should
only look at the clock of variables. Otherwise,
there could be a problem for node calls that
define new clocks.
2012-02-09 11:48:36 +01:00
Cédric Pasteur
7866321089
Fixed bug in interference
2012-02-09 11:06:28 +01:00
Adrien Guatto
3aeb499cc2
Re-enable interference for enums
2012-02-08 11:13:02 +01:00
Cédric Pasteur
f66c9045df
Special case for merge in the scheduling
...
For merge equations, the generated code will be
on a different rate than the activation clock of
the equation.
2012-02-01 11:19:25 +01:00
Adrien Guatto
1cb4b1154b
Memory allocation: do not share enums (and thus clocks).
2012-01-30 17:48:47 +01:00
Adrien Guatto
946a1f8228
Inline extvalues: do not inline array literals.
2012-01-30 16:37:42 +01:00
Adrien Guatto
84ca123361
Extvalue inlining: rogue debug message.
2012-01-26 13:23:01 +01:00
Adrien Guatto
964f6ca605
Extvalue inlining: fix point computation
2012-01-26 13:21:17 +01:00
Adrien Guatto
53de6cd915
Bug fix in extvalue inlining
2012-01-25 16:11:22 +01:00
Adrien Guatto
bca8664d2f
Tomato: do not forget eq_base_ck when reconstructing
2012-01-25 13:19:09 +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
Cédric Pasteur
3f80f844c7
Schedule with clocks first
...
First optimize clocks and then look at life ranges
2012-01-24 15:33:54 +01:00
Cédric Pasteur
06e997e0c8
Fix for -mall
...
Do not share memories and outputs if they are not
arrays, as it might make the register allocation
by the C compiler less efficient.
2012-01-24 10:29:05 +01:00
Cédric Pasteur
b1bd6dbd57
Compare clock repr
...
Not sure this is necessary but it doesn't hurt to
check twice.
2012-01-23 16:03:01 +01:00
Cédric Pasteur
2b59ec754a
Fix for memories with no uses
...
Add a fake use to make sure they interfere with
other memories and outputs
2012-01-23 16:02:34 +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
c75236b688
miscs
2011-12-12 12:06:46 +01:00
Léonard Gérard
da3147151d
Better check signature error message
2011-12-12 11:30:18 +01:00
Léonard Gérard
f0cbbccc2a
unsafe in minils node
2011-12-12 11:27:18 +01:00
Léonard Gérard
b86555e013
global env misc
2011-12-12 11:08:47 +01:00
Léonard Gérard
ba5f336a6f
Fix antidependance calculation
2011-12-12 11:01:22 +01:00
Cédric Pasteur
2fc0435393
Added simple printf
...
Typing and clocking done
2011-12-12 10:36:24 +01:00
Adrien Guatto
8c6926c5bd
TOMATO was confused about having several empty patterns in the equations
...
of a node.
He should be better now.
2011-12-06 15:44:21 +01:00
Léonard Gérard
fe1f02402b
Test to watch sampling of returned stateful exps.
2011-12-06 15:44:20 +01:00
Cédric Pasteur
f76667e042
Second part of the fix
2011-12-06 15:44:20 +01:00
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