Commit graph

885 commits

Author SHA1 Message Date
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
a31715ecde Proper fix for causality
This time it should work in all cases
2011-10-18 09:51:35 +02:00
Cédric Pasteur
c61371de5d Fixed the Mc_memalloc example
Replaced  some ifs by merges. The previous code 
was incorrect.
2011-10-17 18:13:59 +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
4f9a91eebd Fixed dependency issue with linear splits 2011-10-17 15:25:52 +02:00
Cédric Pasteur
e2d4d33d97 Fixed linear typing with args that are tuples 2011-10-17 11:52:36 +02:00
Cédric Pasteur
c2ab607195 Fix for causality when using linear types 2011-10-17 11:47:45 +02:00
Cédric Pasteur
6fefd551b1 Fixed typing of iterators in some cases
If a variable is already used linearly before,
do not reuse it linearly
2011-10-17 11:46:47 +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
f51ca395d8 script to clean the compiler binaries
To refresh everything, it is now sufficient
first clean_heptc
second use heptc
2011-10-14 13:39:10 +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
Cédric Pasteur
1aac6f7be4 Fixed bug in unicity check in linear typing
Test case included
2011-10-07 11:59:13 +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
Cédric Pasteur
175c8e34ff Fixed control fusion 2011-10-05 10:49:51 +02:00
Adrien Guatto
d0ed09c3e5 Ext-value inlining pass. 2011-10-04 15:14:02 +02:00
Cédric Pasteur
0c29505821 Inlined example with linearity annotations 2011-10-04 14:47:46 +02:00
Cédric Pasteur
902cbaf7a1 Fixed error with memalloc and const value with when 2011-10-04 14:34:44 +02:00
Cédric Pasteur
4c9a7a42a6 Fixed linearity annotations
This is a bug in the compiler. It should not 
be accepted.
2011-10-04 13:51:36 +02:00
Cédric Pasteur
5e39091321 Some work on the build script for examples 2011-10-04 11:30:21 +02:00
Adrien Guatto
2fb27770b8 Fixed iterator minimization bug. 2011-10-03 10:54:50 +02:00
Cédric Pasteur
80f24b747c Updated comments 2011-09-26 10:19:48 +02:00
Cédric Pasteur
168a161690 Correct inlined version 2011-09-15 17:20:49 +02:00
Cédric Pasteur
36c1c7252e Fixed memalloc application with fields 2011-09-15 16:55:17 +02:00
Cédric Pasteur
1231afdbb1 Fixed inlining
Inlining is now recursive.
2011-09-15 13:28:41 +02:00
Cédric Pasteur
26ad2739dd Inlined version of mission control 2011-09-15 11:23:16 +02:00
Cédric Pasteur
da3660c08c Tweaked the printer to generate correct code
There is still a big problem with priority
of operators
2011-09-15 11:10:39 +02:00
Cédric Pasteur
339feaa747 Ignore unknown nodes (instead of crashing) 2011-09-14 15:55:29 +02:00
Cédric Pasteur
332ddabba4 Mission control example with inlining 2011-09-14 15:55:09 +02:00
Cédric Pasteur
346b223a94 Mission control example with inlining 2011-09-14 15:54:34 +02:00
Cédric Pasteur
1c43a8b1ac Fixed code generation for constant arrays 2011-09-14 09:08:28 +02:00
Cédric Pasteur
3a9dc1c34d Small fixes in Inline
Also inline function calls, not only nodes.
2011-09-12 18:11:00 +02:00
Cédric Pasteur
d786803a6e Use heptc script directly 2011-09-09 17:05:02 +02:00
Cédric Pasteur
1d6b68cef6 Fix syntax for ocaml < 3.12 2011-09-09 17:03:54 +02:00
Cédric Pasteur
4648f7fbab Scade example with linear annotations 2011-09-09 16:31:41 +02:00
Cédric Pasteur
4d912e9349 Added more options for memalloc
There is now three options for memory allocation:
  - -only-linear activates only the linear 
annotations (with typing and code generation)
  - -only-memalloc does only memory allocation
  - -memalloc does both

When linear typing is not activated, linearity 
annotations are ignored (the signature in the .epi
does not contain the annotations)
2011-09-09 16:05:44 +02:00
Cédric Pasteur
eb18342c33 Do not forget to also traverse local linear vars 2011-09-09 16:00:21 +02:00
Cédric Pasteur
b0bb7ad39f Fixed problem with application of memalloc 2011-09-09 15:53:15 +02:00
Cédric Pasteur
c550b09805 Fixed code generated for alias types to arrays 2011-09-09 13:54:29 +02:00
Cédric Pasteur
9427117fe1 Fixed linear typing of accumulators 2011-09-09 11:29:24 +02:00
Cédric Pasteur
eb0a19926c Erase all linearities if memalloc is not activated 2011-09-09 10:11:44 +02:00
Cédric Pasteur
08437bf448 Fixed linear typing of nested calls 2011-09-08 14:27:24 +02:00
Cédric Pasteur
7bf5f3f323 Fixed typing of iterator 2011-09-08 14:10:55 +02:00
Cédric Pasteur
09afb3aca4 Fixed invalid types in static expressions 2011-09-08 13:05:17 +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
2105d7ad18 Fix for linear types and automata 2011-09-08 10:45:19 +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