Commit graph

321 commits

Author SHA1 Message Date
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
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