Commit graph

631 commits

Author SHA1 Message Date
Cédric Pasteur
bb6b9868b0 Use the variable type to add or not an indirection 2011-07-05 17:46:43 +02:00
Cédric Pasteur
f45e30d207 Yet another special case for iterators 2011-06-07 10:49:36 +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
caa149ac39 Tests for memory allocation and linear typing 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