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.
12 years ago
Cédric Pasteur
7a10ba028a
Fixed disjoint clock computation
12 years ago
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
12 years ago
Cédric Pasteur
ed2c08315b
Should be affinity, not copy
12 years ago
Gwenal Delaval
2bd31db883
Causality and scheduling with contracts
...
Correction of the causality analysis and scheduling (with interference)
to take contracts into account.
12 years ago
Adrien Guatto
8153bc4eb5
Fixed Tomato: did not reconstruct internal clocks of extvalues
12 years ago
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.
12 years ago
Cédric Pasteur
7866321089
Fixed bug in interference
12 years ago
Adrien Guatto
3aeb499cc2
Re-enable interference for enums
12 years ago
Adrien Guatto
1cb4b1154b
Memory allocation: do not share enums (and thus clocks).
13 years ago
Cédric Pasteur
2f993a602c
Fixed base clock in code generation
...
Put the base clock inside the equation where it
belongs.
13 years ago
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.
13 years ago
Cédric Pasteur
b1bd6dbd57
Compare clock repr
...
Not sure this is necessary but it doesn't hurt to
check twice.
13 years ago
Cédric Pasteur
2b59ec754a
Fix for memories with no uses
...
Add a fake use to make sure they interfere with
other memories and outputs
13 years ago
Adrien Guatto
cad8a0149f
Option to perform type inference on all types
13 years ago
Léonard Gérard
b49c37f7bf
Add ways to declare unsafe functions + unsafe fix
13 years ago
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.
13 years ago
Cédric Pasteur
0f403e3694
Fix for wrong number of expected args
13 years ago
Cédric Pasteur
902cbaf7a1
Fixed error with memalloc and const value with when
13 years ago
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.
13 years ago
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
13 years ago
Cédric Pasteur
f45e30d207
Yet another special case for iterators
13 years ago
Cédric Pasteur
de3a61557b
Improvements on Schedule_Interf
...
Only take into account optimized types.
Reuse code from Interference to compute uses.
13 years ago
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
13 years ago
Cédric Pasteur
75b4fa9ddc
Fixed bug in the interference of fold
13 years ago
Cédric Pasteur
2b2cba8e2d
Added split operator
13 years ago
Cédric Pasteur
28b9eaa203
Fixed problems with types
13 years ago
Cédric Pasteur
c3d47f4d4b
Fixed error in computation of targeting
13 years ago
Cédric Pasteur
6f32564ad5
Added a sepecial case to deal with iterators
13 years ago
Cédric Pasteur
0728f3dae7
More work on code generation
13 years ago
Cédric Pasteur
822e87605b
One step closer to code generation with memalloc
13 years ago
Cédric Pasteur
3f29e8623d
Interaction between linear typing and memalloc
13 years ago
Cédric Pasteur
0b9dc1fc01
Correct fix
13 years ago
Cédric Pasteur
7d2b1e5865
Fixed bug in disjoint clock
13 years ago
Cédric Pasteur
285abc48bf
Fixed some bugs
13 years ago
Cédric Pasteur
dec8cb69c8
Fixed bug in computation of live vars
13 years ago
Cédric Pasteur
68e1fe1ee8
Always check if a var should be optimized
13 years ago
Cédric Pasteur
66386ddca2
Fixed some bugs
13 years ago
Cédric Pasteur
448c163181
Dsatur coloring algorithm
...
It is not completely generic, as we need to know
the difference between affinity and interference
edges.
13 years ago
Cédric Pasteur
3f9918b570
Added memory alloc application pass
13 years ago
Cédric Pasteur
a7015a9bf4
Fix for interference
...
Works on a simple program
13 years ago
Cédric Pasteur
1059329c0e
Interference compiles
13 years ago
Cédric Pasteur
7787428f34
Compile fixes
13 years ago
Cédric Pasteur
3ee0e5e7b4
First version of interference.ml
13 years ago