Léonard Gérard
4c2a5121e4
remove useless ml folder.
2011-05-26 15:56:59 +02:00
Léonard Gérard
9a17648516
good clocks in signatures
2011-05-26 15:56:59 +02:00
Léonard Gérard
40fcb4d73e
improve syntax
2011-05-26 15:56:58 +02:00
Leonard Gerard
88497a2da3
parsing clocks.
2011-05-26 15:56:58 +02:00
Leonard Gerard
a8215c8083
compile ! nearly all tests passed.
2011-05-26 15:56:58 +02:00
Leonard Gerard
22354aca0a
a_clock in signatures
2011-05-26 15:56:58 +02:00
Adrien Guatto
fdbe6445a7
User-friendly error message for top-level redefinitions.
2011-05-25 13:26:39 +02:00
Cédric Pasteur
f0f67dacf4
Raise an error when using linear type without memalloc
2011-05-25 09:12:16 +02:00
Cédric Pasteur
a48981f72c
Fix memalloc_apply
2011-05-25 09:12:16 +02:00
Cédric Pasteur
192572ea67
This should fix some bugs in causality
...
This should all be rewritten anyway
2011-05-25 09:12:16 +02:00
Cédric Pasteur
90be09f259
Give correct linearity to generate vars
2011-05-25 09:12:16 +02:00
Cédric Pasteur
d39e883e08
Filter outputs removed by memalloc
2011-05-25 09:12:16 +02:00
Cédric Pasteur
de3a61557b
Improvements on Schedule_Interf
...
Only take into account optimized types.
Reuse code from Interference to compute uses.
2011-05-25 09:12:16 +02:00
Cédric Pasteur
840f6672df
Fixed linear typing of const tuples
2011-05-25 09:12:16 +02:00
Cédric Pasteur
b7ba8e7913
Remove useless case
...
As targeting is only done for linear variables,
this case is already dealt with by
coalesce_linear_vars
2011-05-25 09:12:15 +02:00
Cédric Pasteur
d1a68c5df3
Missing file
2011-05-25 09:12:15 +02:00
Cédric Pasteur
75b4fa9ddc
Fixed bug in the interference of fold
2011-05-25 09:12:15 +02:00
Cédric Pasteur
1ea4290f9e
Added scheduler that tries to minimize interferences
2011-05-25 09:12:15 +02:00
Cédric Pasteur
a2c2a3a619
Fixed typing of if then else
...
First try as T * at r * T -> at r and then as
T * T * at r
2011-05-25 09:12:15 +02:00
Cédric Pasteur
c70861b874
Small fixes
2011-05-25 09:12:15 +02:00
Cédric Pasteur
90648f61ff
Fixed linear typing of automata
...
Each state must be typed in the global environment
and then the accumulator must be joined.
2011-05-25 09:12:15 +02:00
Cédric Pasteur
ebf8b354bd
Fixed conflict in parsing with split
2011-05-25 09:12:15 +02:00
Cédric Pasteur
2b2cba8e2d
Added split operator
2011-05-25 09:12:14 +02:00
Cédric Pasteur
9686e2db01
Oops, forgot to recurse on the pattern of Acall
2011-05-25 09:12:14 +02:00
Cédric Pasteur
db8c87ff07
Fix generation of bounds check expression
2011-05-25 09:12:14 +02:00
Cédric Pasteur
28b9eaa203
Fixed problems with types
2011-05-25 09:12:14 +02:00
Cédric Pasteur
c3d47f4d4b
Fixed error in computation of targeting
2011-05-25 09:12:14 +02:00
Cédric Pasteur
6f32564ad5
Added a sepecial case to deal with iterators
2011-05-25 09:12:14 +02:00
Cédric Pasteur
41d2a1e3cb
Added check for unicity of init
2011-05-25 09:12:14 +02:00
Cédric Pasteur
6332ac7a10
Added init construct
...
It is part of a pattern, eg:
(init<<r>> x, y, init<<r2>>) = f()
2011-05-25 09:12:13 +02:00
Cédric Pasteur
d5218ff91c
Causality check for linear types
2011-05-25 09:12:13 +02:00
Cédric Pasteur
0728f3dae7
More work on code generation
2011-05-25 09:12:13 +02:00
Cédric Pasteur
822e87605b
One step closer to code generation with memalloc
2011-05-25 09:12:13 +02:00
Cédric Pasteur
3f29e8623d
Interaction between linear typing and memalloc
2011-05-25 09:12:13 +02:00
Cédric Pasteur
cf34234ed5
Fixed linear typing of iterators
2011-05-25 09:12:13 +02:00
Cédric Pasteur
ec18040cf4
Linear typing
2011-05-25 09:12:13 +02:00
Cédric Pasteur
6c9d9e90d1
Linearity annotations in the AST
2011-05-25 09:12:13 +02:00
Cédric Pasteur
0b9dc1fc01
Correct fix
2011-05-25 09:12:12 +02:00
Cédric Pasteur
7d2b1e5865
Fixed bug in disjoint clock
2011-05-25 09:12:12 +02:00
Cédric Pasteur
285abc48bf
Fixed some bugs
2011-05-25 09:12:12 +02:00
Cédric Pasteur
dec8cb69c8
Fixed bug in computation of live vars
2011-05-25 09:12:12 +02:00
Cédric Pasteur
68e1fe1ee8
Always check if a var should be optimized
2011-05-25 09:12:12 +02:00
Cédric Pasteur
66386ddca2
Fixed some bugs
2011-05-25 09:12:12 +02:00
Cédric Pasteur
c994e58e06
Fixed bug in listing colors
2011-05-25 09:12:11 +02:00
Cédric Pasteur
032fe693ef
Deadcode removal pass
2011-05-25 09:12:11 +02:00
Cédric Pasteur
448c163181
Dsatur coloring algorithm
...
It is not completely generic, as we need to know
the difference between affinity and interference
edges.
2011-05-25 09:12:11 +02:00
Cédric Pasteur
3f9918b570
Added memory alloc application pass
2011-05-25 09:12:11 +02:00
Cédric Pasteur
a7015a9bf4
Fix for interference
...
Works on a simple program
2011-05-25 09:12:11 +02:00
Cédric Pasteur
9a7f9254d2
Added memalloc pass to the compiler
2011-05-25 09:12:11 +02:00
Cédric Pasteur
1059329c0e
Interference compiles
2011-05-25 09:12:11 +02:00
Cédric Pasteur
197e24b73e
Rename Graph to Sgraph
...
The Graph module name is already used
in OCamlGraph
2011-05-25 09:12:10 +02:00
Cédric Pasteur
7787428f34
Compile fixes
2011-05-25 09:12:10 +02:00
Cédric Pasteur
3ee0e5e7b4
First version of interference.ml
2011-05-25 09:12:10 +02:00
Cédric Pasteur
e9316bbf1b
Interference graph ported to OCamlGraph
2011-05-25 09:12:10 +02:00
Léonard Gérard
d7553b9db0
Fix static_scoping with locally defined types.
2011-05-24 18:33:05 +02:00
Cédric Pasteur
96054a67b6
Correct order for indices in array declaration
...
In C, the order in the declaration of variables
is the same as for access
2011-05-24 11:16:27 +02:00
Léonard Gérard
aea82e79b0
col<100
2011-05-21 15:38:09 +02:00
Cédric Pasteur
72892a9d82
Fixed missing case in Obc_mapfold
2011-05-16 17:30:48 +02:00
Adrien Guatto
36d93a411d
Fix generated C code calling between().
2011-05-12 16:32:52 +02:00
Adrien Guatto
a15276f053
Compile with proper include to pervasives.h.
2011-05-12 16:32:52 +02:00
Gwenal Delaval
acad16b98a
Graphical simulator hepts
...
Added graphical simulator hepts
Added option -hepts to the compiler: this option formats the output of the simulation loop
to fit with hepts (currently working only on C target code). Typically, suppresses all
"decoration" output, like input or output names, and prints output on single lines.
Currently not implemented in hepts: array types.
Usage: to simulate the node Modulename.f:
heptc -target c -s f -hepts modulename.ept
gcc modulename_c/*.c -o ./f_sim
hepts -mod Modulename -node f -exec ./f_sim
2011-05-12 10:08:13 +02:00
Gwenal Delaval
bf4d80c5a3
Correction of Mls_compare for new AST
2011-05-11 14:25:45 +02:00
Leonard Gerard
a9aa794b18
Reset optim
2011-05-10 20:52:32 +02:00
Leonard Gerard
75b7ceab5a
Allows easy debugging printing of Envs.
2011-05-10 20:29:01 +02:00
Leonard Gerard
1d390848fe
real good switch fix.
...
The order switch then reset was wrong, since some reset reset slower inner blocks and equations, to have reset correct after switch it would have been necessary to sample the reset condition correctly (use r when c) using the level_ck... anyway the order seems now irrelevant considering code size.
2011-05-10 20:28:39 +02:00
Leonard Gerard
09b5e8e54a
Rerefixfix switch vd_env
2011-05-10 17:22:24 +02:00
Gwenal Delaval
da648254d8
Added type string to pervasives, with string constants in AST
2011-05-10 17:07:17 +02:00
Gwenaël Delaval
a1be8130ce
Inline pass re-activated
2011-05-10 17:07:16 +02:00
Cédric Pasteur
568dfc59fd
Fixed generation of includes in C
...
The module names must be uncapitalized in includes
2011-05-09 09:50:18 +02:00
Cédric Pasteur
2a9c72154c
Fixed renaming of var_dec in Switch
...
Instead of creating new var_decs for renamed variables,
just copy the one from the original var to
avoid losing other information
2011-05-05 17:57:57 +02:00
Cédric Pasteur
c8055cd1ff
Fixed bugs with static records in C generation
2011-05-03 13:21:27 +02:00
Cédric Pasteur
b47dc918ec
Fixed bug with loading modules
...
Do not forget to remember loaded modules
2011-05-02 14:27:42 +02:00
Cédric Pasteur
fd347cb4e4
Fix generation of bounds check expression
2011-05-02 11:24:12 +02:00
Cédric Pasteur
f110727568
Better fix for Normalize_mem
...
We have to modify the var_dec and arg as they may
have other fields that need to be kept
2011-05-02 11:20:37 +02:00
Léonard Gérard
d2eeeee73f
fix reset.
2011-04-29 16:24:08 +02:00
Cédric Pasteur
a533b0b3f4
Proper fix for init of outputs with last
2011-04-29 15:21:12 +02:00
Cédric Pasteur
29d3c75d55
Proper fix for the problem of scoping of Svar
2011-04-29 15:21:12 +02:00
Cédric Pasteur
59c8106e46
Also use idents for Ewhen in Heptagon
2011-04-29 15:21:12 +02:00
Cédric Pasteur
aae38a7844
Use idents for Emerge in Heptagon
2011-04-29 15:21:12 +02:00
Léonard Gérard
670d8962df
add useful files
2011-04-29 15:17:01 +02:00
Léonard Gérard
9fa8e7e6ff
mk_equation in hept computes the stateful field.
2011-04-29 15:04:47 +02:00
Léonard Gérard
219c4dbf8d
cosmetic
2011-04-29 15:04:47 +02:00
Adrien Guatto
10418197c8
Initial support for return-less external functions.
...
The compiler still does not support unsafe functions that well. For example, putting an assert()/exit() in an automaton's state does not work correctly.
2011-04-28 15:24:35 +02:00
Cédric Pasteur
bed729b448
Fixed typing of const def
...
Like values, the typed version should be put in
the environment.
2011-04-28 09:28:07 +02:00
Léonard Gérard
ba1ff2c06d
Fix qualify Svar
2011-04-27 16:37:45 +02:00
Adrien Guatto
aa1041319f
C backend: do not use memory structs for combinatorial main() functions.
2011-04-27 15:29:33 +02:00
Léonard Gérard
f532ccc84c
really fix unification
2011-04-27 15:16:17 +02:00
Léonard Gérard
b8ee46d58f
fix normalize_mem
2011-04-27 14:29:21 +02:00
Adrien Guatto
00cb203dd9
Revert "C generation: fixed struct field name in step() call."
...
This reverts commit fc920d88ea
.
2011-04-27 14:02:50 +02:00
Adrien Guatto
fc920d88ea
C generation: fixed struct field name in step() call.
2011-04-27 11:53:44 +02:00
Cédric Pasteur
014bc19ab2
Fixed bug in init analysis
2011-04-26 12:43:03 +02:00
Cédric Pasteur
401aaeeb89
Type declarations should also be typed
...
This is necessary so that the static expressions
appearing in those types are correctly typed.
2011-04-21 16:29:24 +02:00
Léonard Gérard
6b86b86e9d
really fix normalize_mem.
...
in the old fix was missing the renaming, and there was wrong equations
order :
f () returns x
[here rename x by mem_x]
mem_x = fby ...
x = mem_x
so the simplest was :
f () returns out_x
var x;
[ nothing to do]
out_x = x
x = fby ...
pay attention to the order of equations since we are after the
scheduling..
probably it should be done before the scheduling anyway ?
2011-04-20 20:47:06 +02:00
Léonard Gérard
5fb518d8ed
Java bugfix
2011-04-20 17:33:50 +02:00
Léonard Gérard
73abbad1f9
small java module fix
2011-04-20 17:24:09 +02:00
Cédric Pasteur
2757e7c1bf
Fixed normalized_mem
...
It inverted the order of equations
2011-04-20 16:23:44 +02:00
Léonard Gérard
d6240e1c67
100 and java scalarized
2011-04-19 18:45:56 +02:00
Cédric Pasteur
802178fb28
Added a pass to normalize memories
...
This adds a copy for outputs that are also
memories.
2011-04-19 17:19:40 +02:00
Cédric Pasteur
845d084658
Preserve the order of type and classes definitions
2011-04-19 13:08:35 +02:00
Cédric Pasteur
073ccc2603
Better handling of static arrays
2011-04-19 12:58:41 +02:00