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
Adrien Guatto
9640acb3a4
More efficient ident handling.
2012-03-07 17:48:08 +01:00
Adrien Guatto
6870ea62c9
Inlining: fix issue with nesting of blocks.
2012-03-07 17:48:08 +01:00
Adrien Guatto
3e8e54f42b
Perform inlining before causality/init analysis.
2012-03-07 17:48:08 +01:00
Adrien Guatto
44d3a639e5
Internal error for unknown clocks.
2012-03-02 17:12:30 +01:00
Adrien Guatto
3b0ebf2dbf
print_ident: use the function from Idents
2012-03-02 17:12:30 +01:00
Adrien Guatto
557d00f501
Inlining: do not forget when, merge or last.
2012-03-02 17:12:30 +01:00
Adrien Guatto
ba1b134640
Static evaluation of modulo.
2012-03-02 14:11:19 +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
Léonard Gérard
c1b8e47ffb
Fixed escape of string in java
2012-02-21 14:39:35 +01:00
Adrien Guatto
070d2eab55
Revert "Changed linear typing for merge."
...
This reverts commit 0abb050a23
.
2012-02-14 14:36:47 +01:00
Adrien Guatto
5ac3a7f028
Redisable interference of scalars during scheduling
2012-02-10 11:33:09 +01:00
Adrien Guatto
0abb050a23
Changed linear typing for merge.
...
The new rule accepts that some branches of a linearly typed merge have linear
type Top, provided that at least one has type "lin". E.g.:
node f(x : int at r) returns (o : int at r)
var ck : bool;
let
ck = true;
o = merge ck (x whenot ck) 0;
tel
is now deemed valid.
2012-02-09 16:23:36 +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
f43fcb78f6
Only inline integer extvalues when unrolling
2012-02-08 18:31:51 +01:00
Adrien Guatto
ec0274cc82
C backend: do not inline consts by default.
2012-02-08 17:49:21 +01:00
Adrien Guatto
fa09d86dc1
Unrolling in C backend.
2012-02-08 17:47:28 +01:00
Adrien Guatto
76ae2f4518
Loop unrolling.
2012-02-08 16:16:41 +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
1910e7f868
Static exp evaluation: missing +. and -.
2012-01-26 13:42:03 +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
a7e3f4a973
Added test for clocking in automata
2012-01-25 18:13:43 +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
Adrien Guatto
998b3b0b89
Generate C89
2012-01-25 12:42:14 +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
db5f55b221
Fixed when of stateful exp with memalloc
...
As the expression inside the when will be called
on a faster rhythm, we have to make sure not to
share it with a variable on the slow clock.
We do this by creating a new equation for the
stateful exp.
2012-01-25 09:33:08 +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
0aad3ac466
eclipse stuff
2011-12-15 20:02:38 +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
24c394d2cb
pretty print clocks with links.
2011-12-12 11:01:46 +01:00
Léonard Gérard
ba5f336a6f
Fix antidependance calculation
2011-12-12 11:01:22 +01:00
Cédric Pasteur
80fbe6be5f
Fixed linear typing of printf
2011-12-12 10:36:24 +01:00
Cédric Pasteur
54cde301f6
C code generation for printf
2011-12-12 10:36:24 +01:00
Cédric Pasteur
2fc0435393
Added simple printf
...
Typing and clocking done
2011-12-12 10:36:24 +01:00
Adrien Guatto
0f71dbe145
Bitwise or.
2011-12-06 17:46:35 +01:00
Adrien Guatto
8d772e20e2
Bitwise and.
2011-12-06 15:44:21 +01:00
Adrien Guatto
1ec15b9409
Bitwise operators on integers.
2011-12-06 15:44:21 +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
Adrien Guatto
5097c62449
C backend: put memory of the main node in a global variable.
2011-12-05 10:18:50 +01:00
Cédric Pasteur
add09fe465
Fixed complexity of control optimization
2011-11-29 13:34:50 +01:00
Léonard Gérard
45fbd18fe8
Fix automaton initialization.
2011-11-28 15:12:27 +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
Léonard Gérard
5be7a6acc2
java main void return handling
2011-11-25 18:56:15 +01:00
Léonard Gérard
05750352f8
pat_ty ne semble pas fiable. Voir t19.ept
2011-11-25 18:55:12 +01:00
Cédric Pasteur
3369f6dffc
Don't forget to optimise control recursively
2011-11-24 16:10:14 +01:00
Adrien Guatto
1b73f3444e
Clock before dumping .epci
2011-11-24 11:41:11 +01:00
Léonard Gérard
57f7da94c2
Deal with const ref in Java.
2011-11-21 11:42:26 +01:00
Cédric Pasteur
641b76133d
Don't inline all const
2011-11-21 10:55:53 +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
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
1962cd2df4
Typing bug fix
2011-11-21 03:26:26 +01:00
Léonard Gérard
adc47c536a
Improve Java printing and main.
...
genToString is a fully generic to string function
dealing with arrays, primitive arrays, etc.
2011-11-21 03:26:25 +01:00
Léonard Gérard
25ce5edbd0
debugger_script_gen
2011-11-21 03:26:25 +01:00
Léonard Gérard
442f38b196
stronger heptc and clean_heptc
...
It may be symlinked.
Moreover, when heptc is called with java as first param, it will set the
right target and call javac right after
2011-11-21 03:26:13 +01:00
Léonard Gérard
7b281317f4
fix scalarize
2011-11-20 22:37:00 +01:00
Léonard Gérard
9d8a0be512
Improve scalarize
2011-11-18 12:33:37 +01:00
Léonard Gérard
ca711274c0
Remove infusion from the default optima options.
2011-11-18 12:33:37 +01:00
Léonard Gérard
8ebb75f8bf
New debugger script with a partial generator.
2011-11-18 12:33:37 +01:00
Léonard Gérard
efa6b5cf70
Correct scalarize and java load_conf
2011-11-18 12:32:37 +01:00
Léonard Gérard
be28156de9
Add a simplify pass to Obc
2011-11-18 12:32:37 +01:00
Léonard Gérard
9274ef24aa
Java support type alias.
2011-11-18 12:32:37 +01:00
Léonard Gérard
35a9a24467
Correct obc_mapfold
2011-11-18 12:32:37 +01:00
Léonard Gérard
2a6dab836a
Add alias to obc vd.
2011-11-18 12:32:37 +01:00
Léonard Gérard
fa956a00ad
Remarques pour Control
2011-11-18 12:32:37 +01:00
Léonard Gérard
5a263b0cbd
Fix signature printing.
2011-11-18 12:32:37 +01:00
Léonard Gérard
4e3c58bb40
Allow symbolic static_exp eval.
2011-11-18 12:32:36 +01:00
Léonard Gérard
bdd85f5f81
mapfold over var_ident.
2011-11-18 12:32:36 +01:00
Léonard Gérard
d5858d6dd2
Optimize static evaluation
...
It greatly reduce the amount of constraints kept.
Indeed, all the constraints : x = x, x /y = x/y, etc
were kept when x and y were local params.
2011-11-18 12:32:36 +01:00
Cédric Pasteur
cf1e79efc8
Type signature of all nodes
2011-11-18 10:03:54 +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
Cédric Pasteur
8644982593
Fixed some bugs in the configure
...
Check that ocamlc and ocamlfind point to the
same stdlib dir.
2011-11-14 10:52:28 +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
0222d11b2d
Do not introduce useless variable in [reset every]
2011-11-03 00:46:13 +01:00
Léonard Gérard
dfc0077859
permits to use = instead of returns
2011-11-03 00:46:04 +01:00
Léonard Gérard
abdf93c8c2
inlining corrected
2011-11-03 00:45:43 +01:00
Léonard Gérard
3e64635f95
optimize the control at the end to maximize profit
...
Indeed, some examples showed that memory allocation could trigger a profit-full deadcode removal for the control. See Downscaler.down avec -flatten.
2011-11-03 00:43:36 +01:00
Léonard Gérard
17598a3206
Correct inlining, which was aliasing clocks.
2011-11-03 00:41:29 +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
919eaa72e1
Fix floating point printing.
2011-11-02 16:08:51 +01:00
Léonard Gérard
50487f9296
Fix java main to deal with unit return type.
2011-11-02 16:07:19 +01:00