101 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
Adrien Guatto 76ae2f4518 Loop unrolling. 12 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 54cde301f6 C code generation for printf 13 years ago
Cédric Pasteur f76667e042 Second part of the fix 13 years ago
Léonard Gérard d5f72c278c mls2obc bug fix
y = (if then else) when c
ou bien
y = f() when c
ne compilait pas.
13 years ago
Léonard Gérard fdab1ac55c Strict-SSA option to switch array encoding. 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 33bc0adff1 Type should be unaliased when expecting an array 13 years ago
Cédric Pasteur 8cc879be7a Generate code from interface (.epi) files
It includes the definition of types, constants
and prototypes defined in the interface.
13 years ago
Gwenaël Delaval c57b71b6aa Merge branch 'bzr' into decade
- Added Boolean module (enum types to boolean vectors)
- Added Hept_clocking analysis, called before Boolean
- Added z3z target from minils (sigali format)
- Bug corrections in Normalize, Normalize_mem

Conflicts:
	compiler/heptagon/analysis/typing.ml
	compiler/heptagon/heptagon.ml
	compiler/heptagon/parsing/hept_parser.mly
	compiler/heptagon/parsing/hept_parsetree.ml
	compiler/heptagon/parsing/hept_scoping.ml
	compiler/main/hept2mls.ml
	compiler/main/heptc.ml
	compiler/main/mls2seq.ml
	compiler/minils/minils.ml
	compiler/minils/transformations/normalize_mem.ml
	test/check
13 years ago
Gwenal Delaval 2c4be9d42c Correct scoping and typing with contracts 13 years ago
Cédric Pasteur 69a5ad8df8 Fixed code generation of n-dim static arrays
Also added some tests.
13 years ago
Cédric Pasteur 0a372672e0 Fixed bug with type alias
We should always unalias a type if we're expecting
an array type.
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
Léonard Gérard 250ccb8e23 Fix iterators obc pattern types 13 years ago
Adrien Guatto 7d9e31a83b Tomato checking in check.sh 13 years ago
Léonard Gérard 5837f3906f Multidimensional iterators in java. 13 years ago
Léonard Gérard c5fbcbe765 removing white spaces 13 years ago
Brice Gelineau c70d34ec06 Preliminary version of multidimensional iterators. 13 years ago
Léonard Gérard 83b0182874 Merge branch 'clocked_inputs' into decade
Conflicts:
	compiler/heptagon/analysis/typing.ml
	compiler/heptagon/parsing/hept_scoping.ml
	compiler/heptagon/parsing/hept_static_scoping.ml
	compiler/main/mls2obc.ml
	compiler/obc/c/cmain.ml
13 years ago
Léonard Gérard 46ed39b7b3 Remove some warnings. 13 years ago
Adrien Guatto 4794045208 Reworked Obc AST: from right patterns to extvalues.
I introduced a notion of extended values in Obc expressions,
replacing the Epattern constructor. Patterns may now only
occur at their rightful place, on the left of an assignment.

This change allows to index global constant arrays.
13 years ago
Brice Gelineau 938e8897b2 n-ary Sarray_power Earray_fill 13 years ago
Léonard Gérard 2a2b363bf7 Real asynchronous resets. 13 years ago
Léonard Gérard fbfa6eda1a Add Ewhen to the minils ast, And clocking of iterators.
Ewhen is now the only case of possible recursion for minils exps.
This add was motivated by equations like :
(y,z) = f(x) when c
This equation to be correctly normalized in minils before needed :
y',z' = f(x)
y = y' when c
z = z' when c
But this new variables where needless since the final translation of when c
is the identity.
13 years ago
Leonard Gerard a8215c8083 compile ! nearly all tests passed. 13 years ago
Cédric Pasteur 2b2cba8e2d Added split operator 13 years ago
Cédric Pasteur db8c87ff07 Fix generation of bounds check expression 13 years ago
Cédric Pasteur 3f29e8623d Interaction between linear typing and memalloc 13 years ago
Cédric Pasteur 3f9918b570 Added memory alloc application pass 13 years ago
Cédric Pasteur fd347cb4e4 Fix generation of bounds check expression 13 years ago
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.
13 years ago
Gwenal Delaval 8c4217ab83 Rebase bzr branch on old decade 13 years ago
Gwenaël Delaval 85bbe21d6c Sigali pass into compiler + added a_id field to applications
- Added "z3z" target language, calling sigali code generation

- a_id is application id, so as to identify node applications; added
to Minils AST. a_id is given on hept2mls pass.

This is needed for the controller execution from controller synthesis.
13 years ago
Léonard Gérard d6240e1c67 100 and java scalarized 13 years ago
Cédric Pasteur 073ccc2603 Better handling of static arrays 13 years ago
Cédric Pasteur a2303ec7e1 Other compile fixes
The java backend is disabled temporarily
13 years ago
Leonard Gerard 8da5ce4648 no order in declarations 13 years ago
Leonard Gerard c0602c6df6 etuple removed 13 years ago
Cédric Pasteur c6aa63b444 Heptc compiles again
AFor now expects expressions instead of static exps
13 years ago
Léonard Gérard 5d2f7dfa85 jeudi soir. still on mls2obc. 13 years ago
Cédric Pasteur f57d7f1589 Correct translation for Eupdate and Eupdate_field
As the language is SSA, we should assign each 
element only once.
13 years ago
Cédric Pasteur 975418ffff Missing part from last commit 13 years ago
Cédric Pasteur 2f346f873c Control optimization as a pass on Obc
There is now a obc_compiler.ml file, as in hept
and minils.
13 years ago
Cédric Pasteur 6f0c9af006 First port of mls2obc
Does not compile yet
13 years ago
Léonard Gérard 0aef6fcb5b pattern_of_idx in right order.
Probably array_elt_of_exp is also wrong.
13 years ago
Cédric Pasteur 2fdf2855d3 Added a new truncated select operator
a[>e<] returns the element in the array at index
e, a[0] if e < 0 and a[n-1] if e >= n
13 years ago
Cédric Pasteur 99eeacbceb Added mapi iterator
The last argument of the iterated function is the
index of the element in the array.
13 years ago
Léonard Gérard b913edcd5e Decade alpha1
On the road to beta is the new Minils AST, for now :

* Heptagon and Obc AST changes,
* Java code generation,
* Recursives Qualnames,
* Various bug fixes,

* Added partial application for iterators,
For instance:
  ... = map<<n>> (f<<se>>)((t1, t1'))(t2, t3)
is translated to:
  for(int i =...)
    ... = f(t1, t1', t2[i], t3[i])
13 years ago