Gwenaël Delaval
ef00823cf7
Added Marc as co-author
2012-06-29 01:43:15 +02:00
Gwenaël Delaval
58086190eb
Headers and license file for GPL
...
Headers for every source file (excluding examples), mentioning
authors, copyright and license (GPL)
COPYING file with GPLv3 content.
2012-06-27 18:14:29 +02:00
Cédric Pasteur
7a10ba028a
Fixed disjoint clock computation
2012-06-20 17:09:17 +02:00
Cédric Pasteur
8815a2cd03
Better handling of clocks in memalloc
...
- We can do a better allocation if we take into
account 'when' in extvalues
(test/good/memalloc_clocks.ept shows the
improvement)
- Fixed a bug with memalloc on records: if we
translate:
o = { a with .f = u }
to
o = a; o.f = u
then we cannot share u and o.f
2012-06-20 09:17:13 +02:00
Cédric Pasteur
ed2c08315b
Should be affinity, not copy
2012-06-19 09:33:27 +02:00
Gwenal Delaval
2bd31db883
Causality and scheduling with contracts
...
Correction of the causality analysis and scheduling (with interference)
to take contracts into account.
2012-06-07 15:27:07 +02:00
Adrien Guatto
8153bc4eb5
Fixed Tomato: did not reconstruct internal clocks of extvalues
2012-03-30 14:47:47 +02: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
3aeb499cc2
Re-enable interference for enums
2012-02-08 11:13:02 +01:00
Adrien Guatto
1cb4b1154b
Memory allocation: do not share enums (and thus clocks).
2012-01-30 17:48:47 +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
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
b49c37f7bf
Add ways to declare unsafe functions + unsafe fix
2011-11-21 03:26:26 +01: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
0f403e3694
Fix for wrong number of expected args
2011-10-17 10:17:18 +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
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
Cédric Pasteur
7d95b95ed7
Merge branch 'memalloc' into decade
...
Conflicts:
compiler/global/signature.ml
compiler/heptagon/analysis/typing.ml
compiler/heptagon/hept_printer.ml
compiler/heptagon/hept_utils.ml
compiler/heptagon/heptagon.ml
compiler/heptagon/parsing/hept_parser.mly
compiler/heptagon/parsing/hept_parsetree.ml
compiler/heptagon/parsing/hept_scoping.ml
compiler/heptagon/transformations/switch.ml
compiler/main/hept2mls.ml
compiler/minils/minils.ml
compiler/minils/mls_printer.ml
compiler/obc/c/cgen.ml
compiler/obc/control.ml
compiler/utilities/misc.mli
2011-07-21 08:50:45 +02:00
Cédric Pasteur
f45e30d207
Yet another special case for iterators
2011-06-07 10:49:36 +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
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
75b4fa9ddc
Fixed bug in the interference of fold
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
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
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
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
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
1059329c0e
Interference compiles
2011-05-25 09:12:11 +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