Cédric Pasteur
1d6b68cef6
Fix syntax for ocaml < 3.12
2011-09-09 17:03:54 +02:00
Cédric Pasteur
4d912e9349
Added more options for memalloc
...
There is now three options for memory allocation:
- -only-linear activates only the linear
annotations (with typing and code generation)
- -only-memalloc does only memory allocation
- -memalloc does both
When linear typing is not activated, linearity
annotations are ignored (the signature in the .epi
does not contain the annotations)
2011-09-09 16:05:44 +02:00
Cédric Pasteur
eb18342c33
Do not forget to also traverse local linear vars
2011-09-09 16:00:21 +02:00
Cédric Pasteur
b0bb7ad39f
Fixed problem with application of memalloc
2011-09-09 15:53:15 +02:00
Cédric Pasteur
c550b09805
Fixed code generated for alias types to arrays
2011-09-09 13:54:29 +02:00
Cédric Pasteur
53043b403c
Small fixes in the C backend
2011-09-07 13:24:33 +02:00
Cédric Pasteur
732a956855
Adapt to the (not so) new extvalues
2011-09-06 15:56:07 +02:00
Cédric Pasteur
eec957cc6a
Use underscores for generated variables
2011-09-06 14:42:34 +02:00
Cédric Pasteur
2147402a20
Const should be declared static
...
Otherwise the C compiler complains about multiple
definitions of the same symbol
2011-09-06 14:31:14 +02:00
Cédric Pasteur
4cd506f3db
Added c ast for constant
...
Also print only short names for struct fields
2011-09-06 14:20:57 +02:00
Cédric Pasteur
8cc879be7a
Generate code from interface (.epi) files
...
It includes the definition of types, constants
and prototypes defined in the interface.
2011-09-06 11:55:06 +02:00
Cédric Pasteur
da8956e247
Revert changes
...
Bring back cvarlist_of_ovarlist with a more
explicit name to show its specificity
2011-07-22 10:52:31 +02:00
Brice Gelineau
9fb42a5feb
Removed unused functions in C generation
2011-07-21 18:01:32 +02:00
Cédric Pasteur
a52e80bcad
Fixed some TODOs
2011-07-21 11:54:52 +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
Léonard Gérard
13955147ca
patch java wrong merge.
2011-07-08 15:25:00 +02:00
Léonard Gérard
0518ecafe6
Merge branch 'multidimensional' into decade
...
Conflicts:
compiler/obc/c/cgen.ml
compiler/obc/java/java_main.ml
2011-07-08 11:36:46 +02:00
Léonard Gérard
ab3823874c
Feature: Java main will give bin args as static params to the main.
...
consider having a main node like this one:
node main<<i : int; b : bool>> () returns...
Then if to call the generated program, you'll need ot give an int and a bool.
Furthermore, if you give an additional arg, it'll be used as the wanted
iteration number.
Conflicts:
compiler/obc/java/java_main.ml
2011-07-08 11:26:05 +02:00
Léonard Gérard
4ac4347dc8
Add an error (in java main) when the specified main node is incorrect.
...
Conflicts:
compiler/obc/java/java_main.ml
2011-07-08 11:18:39 +02:00
Brice Gelineau
10115684d9
bugfix for reset calls in C
2011-07-08 10:51:10 +02:00
Brice Gelineau
b6aecf9869
Bugfix for reset calls in C
2011-07-07 16:18:25 +02:00
Cédric Pasteur
34b65c1234
Do not generate for loops
...
These loops are already present in the Obc code.
2011-07-05 18:08:21 +02:00
Cédric Pasteur
bb6b9868b0
Use the variable type to add or not an indirection
2011-07-05 17:46:43 +02:00
Léonard Gérard
5837f3906f
Multidimensional iterators in java.
2011-06-28 17:50:42 +02:00
Léonard Gérard
c5fbcbe765
removing white spaces
2011-06-28 17:50:42 +02:00
Brice Gelineau
c70d34ec06
Preliminary version of multidimensional iterators.
2011-06-28 17:50:42 +02:00
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
2011-06-28 14:46:43 +02:00
Léonard Gérard
46ed39b7b3
Remove some warnings.
2011-06-09 14:40:31 +02:00
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.
2011-05-30 16:25:00 +02:00
Brice Gelineau
938e8897b2
n-ary Sarray_power Earray_fill
2011-05-26 18:43:30 +02:00
Léonard Gérard
2a2b363bf7
Real asynchronous resets.
2011-05-26 15:56:59 +02:00
Léonard Gérard
87dc76f113
Code formating fixes (typos, tabs, spaces at endofline,...)
2011-05-26 15:56:59 +02:00
Léonard Gérard
4c2a5121e4
remove useless ml folder.
2011-05-26 15:56:59 +02:00
Cédric Pasteur
a48981f72c
Fix memalloc_apply
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
75b4fa9ddc
Fixed bug in the interference of fold
2011-05-25 09:12:15 +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
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
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
66386ddca2
Fixed some bugs
2011-05-25 09:12:12 +02:00
Cédric Pasteur
032fe693ef
Deadcode removal pass
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
96054a67b6
Correct order for indices in array declaration
...
In C, the order in the declaration of variables
is the same as for access
2011-05-24 11:16:27 +02:00
Cédric Pasteur
72892a9d82
Fixed missing case in Obc_mapfold
2011-05-16 17:30:48 +02:00
Adrien Guatto
36d93a411d
Fix generated C code calling between().
2011-05-12 16:32:52 +02:00
Gwenal Delaval
acad16b98a
Graphical simulator hepts
...
Added graphical simulator hepts
Added option -hepts to the compiler: this option formats the output of the simulation loop
to fit with hepts (currently working only on C target code). Typically, suppresses all
"decoration" output, like input or output names, and prints output on single lines.
Currently not implemented in hepts: array types.
Usage: to simulate the node Modulename.f:
heptc -target c -s f -hepts modulename.ept
gcc modulename_c/*.c -o ./f_sim
hepts -mod Modulename -node f -exec ./f_sim
2011-05-12 10:08:13 +02:00
Gwenal Delaval
da648254d8
Added type string to pervasives, with string constants in AST
2011-05-10 17:07:17 +02:00
Cédric Pasteur
568dfc59fd
Fixed generation of includes in C
...
The module names must be uncapitalized in includes
2011-05-09 09:50:18 +02:00
Cédric Pasteur
c8055cd1ff
Fixed bugs with static records in C generation
2011-05-03 13:21:27 +02:00
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.
2011-04-28 15:24:35 +02:00
Adrien Guatto
aa1041319f
C backend: do not use memory structs for combinatorial main() functions.
2011-04-27 15:29:33 +02:00
Adrien Guatto
00cb203dd9
Revert "C generation: fixed struct field name in step() call."
...
This reverts commit fc920d88ea
.
2011-04-27 14:02:50 +02:00
Adrien Guatto
fc920d88ea
C generation: fixed struct field name in step() call.
2011-04-27 11:53:44 +02:00
Léonard Gérard
5fb518d8ed
Java bugfix
2011-04-20 17:33:50 +02:00
Léonard Gérard
73abbad1f9
small java module fix
2011-04-20 17:24:09 +02:00
Léonard Gérard
d6240e1c67
100 and java scalarized
2011-04-19 18:45:56 +02:00
Cédric Pasteur
845d084658
Preserve the order of type and classes definitions
2011-04-19 13:08:35 +02:00
Leonard Gerard
220db42076
java readded
2011-04-19 11:39:37 +02:00
Cédric Pasteur
a2303ec7e1
Other compile fixes
...
The java backend is disabled temporarily
2011-04-19 09:49:00 +02:00
Cédric Pasteur
3c8fc39745
Fix C backend with new obc ast
2011-04-19 09:23:52 +02:00
Leonard Gerard
8da5ce4648
no order in declarations
2011-04-18 19:20:35 +02:00
Cédric Pasteur
c6aa63b444
Heptc compiles again
...
AFor now expects expressions instead of static exps
2011-04-18 15:38:42 +02:00
Léonard Gérard
5d2f7dfa85
jeudi soir. still on mls2obc.
2011-04-14 20:14:21 +02:00
Cédric Pasteur
f57d7f1589
Correct translation for Eupdate and Eupdate_field
...
As the language is SSA, we should assign each
element only once.
2011-04-14 15:14:41 +02:00
Cédric Pasteur
c23b9256f0
Also forgot to re-enable scalarize
2011-04-14 14:18:24 +02:00
Cédric Pasteur
57bc9f210b
Added a generic onfiguration for backends
...
Each backend gives a function used to
enable/disable passes, executed before the
beginning of the compilation
2011-04-14 13:53:30 +02:00
Cédric Pasteur
2f346f873c
Control optimization as a pass on Obc
...
There is now a obc_compiler.ml file, as in hept
and minils.
2011-04-14 11:53:39 +02:00
Cédric Pasteur
2c7b609d2e
Forme normale Minils
2011-04-12 14:07:05 +02:00
Léonard Gérard
0fc0c3ba5b
Java main pretty print
2011-03-23 20:31:26 +01:00
Léonard Gérard
9714cf0be9
Java fix, initialization order
2011-03-23 18:24:25 +01:00
Léonard Gérard
46ed02416b
Convolutions and pip working.
2011-03-23 16:53:01 +01:00
Léonard Gérard
b8b16a7355
blop
2011-03-21 17:41:00 +01:00
Léonard Gérard
c602eca062
cgen todo.
2011-03-21 17:41:00 +01:00
Léonard Gérard
ecc79c3a53
bug fix n-dimension arrays.
2011-03-21 17:40:59 +01:00
Cédric Pasteur
35775c4131
C backend ported to recent API changes in Obc
2011-03-09 09:46:00 +01:00
Léonard Gérard
cab8bb706e
backport from async.
2011-03-09 00:06:36 +01:00
Léonard Gérard
159bab2a55
async constants.
2011-03-08 13:41:28 +01:00
Léonard Gérard
86f743318b
Fixes and basic Java main.
2011-02-14 15:21:57 +01:00
Léonard Gérard
c677f76009
Fixes
2011-02-07 16:06:52 +01:00
Léonard Gérard
8f4411e145
Recursives Qualnames.
...
In order to have a correct handling of inner classes in Java, and to prepare for modules inside modules.
2011-02-07 14:24:17 +01:00
Léonard Gérard
09419a77a5
again
2011-01-24 16:09:28 +01:00
Léonard Gérard
df469db394
New Java backend closing
2011-01-24 16:09:28 +01:00
Léonard Gérard
fc08753bd9
tentative 1 de async dans C
2011-01-24 16:09:27 +01:00
Léonard Gérard
6c763f1eb8
tentative 1 de faire marcher java.
2011-01-24 16:09:27 +01:00
Léonard Gérard
e9e8ca382a
ml files imported from lucy v3
2011-01-24 16:09:27 +01:00
Léonard Gérard
315527231c
Async in Heptagon Minils Obc.
2011-01-24 16:09:27 +01:00
Cédric Pasteur
2b18fcab93
Generate C code for static records
...
This fixes the test t8.ept
2011-01-18 17:52:44 +01:00
Léonard Gérard
36ec30b3ff
Removed unused generic Mmethod in obc.
2011-01-12 13:41:14 +01:00
Léonard Gérard
d265d7a89b
Minimize created exps with invalid_type.
2011-01-12 13:39:21 +01:00
Léonard Gérard
f3584601f0
Refactoring and todo.txt update.
2011-01-05 15:47:53 +01:00
Léonard Gérard
e174151d37
Unclutter ident printing.
2010-12-15 11:27:19 +01:00
Léonard Gérard
7d3b6a4679
Bug fix Cgen
2010-12-15 11:26:29 +01:00
Léonard Gérard
2ae809c971
Fresh vars, and ident refactoring.
...
Idents.enter_node should be called when entering a node, it is done automagically by the mapfold unless you call directly Hept_mapfold.node_dec.
2010-12-15 11:26:29 +01:00
Léonard Gérard
9998d7ea39
Added a unit type. Tunit.
2010-12-10 00:39:25 +01:00
Léonard Gérard
3e2fb0b4b1
Rename [lhs] to [pattern] in obc
...
lhs was verrrry bad.
2010-11-05 16:27:44 +01:00
Léonard Gérard
7b4f34a521
Cgen only stdbool.h booleans no more TRUE and FALSE.
2010-11-04 18:06:11 +01:00
Léonard Gérard
c47e371a11
assigned a TODO in obc.
2010-10-07 20:19:02 +02:00