44 Commits (58086190eb03163873ce007fdce0441f6af0acb7)

Author SHA1 Message Date
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