Commit graph

819 commits

Author SHA1 Message Date
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 fc1edf91f0 OOPS forgot compiler_timings 2012-03-07 17:51:06 +01:00
Adrien Guatto 834e16cad5 Fix: replace opt with native in build system 2012-03-07 17:48:30 +01: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
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