Léonard Gérard
25ce5edbd0
debugger_script_gen
2011-11-21 03:26:25 +01:00
Léonard Gérard
442f38b196
stronger heptc and clean_heptc
...
It may be symlinked.
Moreover, when heptc is called with java as first param, it will set the
right target and call javac right after
2011-11-21 03:26:13 +01:00
Léonard Gérard
7b281317f4
fix scalarize
2011-11-20 22:37:00 +01:00
Léonard Gérard
9d8a0be512
Improve scalarize
2011-11-18 12:33:37 +01:00
Léonard Gérard
ca711274c0
Remove infusion from the default optima options.
2011-11-18 12:33:37 +01:00
Léonard Gérard
8ebb75f8bf
New debugger script with a partial generator.
2011-11-18 12:33:37 +01:00
Léonard Gérard
efa6b5cf70
Correct scalarize and java load_conf
2011-11-18 12:32:37 +01:00
Léonard Gérard
be28156de9
Add a simplify pass to Obc
2011-11-18 12:32:37 +01:00
Léonard Gérard
9274ef24aa
Java support type alias.
2011-11-18 12:32:37 +01:00
Léonard Gérard
35a9a24467
Correct obc_mapfold
2011-11-18 12:32:37 +01:00
Léonard Gérard
2a6dab836a
Add alias to obc vd.
2011-11-18 12:32:37 +01:00
Léonard Gérard
fa956a00ad
Remarques pour Control
2011-11-18 12:32:37 +01:00
Léonard Gérard
5a263b0cbd
Fix signature printing.
2011-11-18 12:32:37 +01:00
Léonard Gérard
4e3c58bb40
Allow symbolic static_exp eval.
2011-11-18 12:32:36 +01:00
Léonard Gérard
bdd85f5f81
mapfold over var_ident.
2011-11-18 12:32:36 +01:00
Léonard Gérard
d5858d6dd2
Optimize static evaluation
...
It greatly reduce the amount of constraints kept.
Indeed, all the constraints : x = x, x /y = x/y, etc
were kept when x and y were local params.
2011-11-18 12:32:36 +01:00
Cédric Pasteur
cf1e79efc8
Type signature of all nodes
2011-11-18 10:03:54 +01:00
Cédric Pasteur
1a28ed96e8
Improvement for normalize memories
...
Only create necessary copies (for outputs
and recursive registers).
2011-11-16 16:07:36 +01:00
Cédric Pasteur
8644982593
Fixed some bugs in the configure
...
Check that ocamlc and ocamlfind point to the
same stdlib dir.
2011-11-14 10:52:28 +01:00
Adrien Guatto
1a9dc17618
Fixed clocking annotations.
...
1. Transmit annotations to extvaluese in Hept2mls.
2. Handle a pre-existing w_ck when clocking extvalues.
2011-11-10 15:36:54 +01:00
Léonard Gérard
0222d11b2d
Do not introduce useless variable in [reset every]
2011-11-03 00:46:13 +01:00
Léonard Gérard
dfc0077859
permits to use = instead of returns
2011-11-03 00:46:04 +01:00
Léonard Gérard
abdf93c8c2
inlining corrected
2011-11-03 00:45:43 +01:00
Léonard Gérard
3e64635f95
optimize the control at the end to maximize profit
...
Indeed, some examples showed that memory allocation could trigger a profit-full deadcode removal for the control. See Downscaler.down avec -flatten.
2011-11-03 00:43:36 +01:00
Léonard Gérard
17598a3206
Correct inlining, which was aliasing clocks.
2011-11-03 00:41:29 +01:00
Léonard Gérard
76109b553a
Add -O option to enable optims.
2011-11-02 17:23:23 +01:00
Léonard Gérard
919eaa72e1
Fix floating point printing.
2011-11-02 16:08:51 +01:00
Léonard Gérard
50487f9296
Fix java main to deal with unit return type.
2011-11-02 16:07:19 +01:00
Léonard Gérard
04263a126b
Correct small bug in java initialized arrays.
2011-11-02 16:04:47 +01:00
Léonard Gérard
33021aaa90
Print stateful in heptagon.
...
Conflicts:
compiler/heptagon/hept_printer.ml
2011-11-02 13:15:33 +01:00
Cédric Pasteur
6ba0e7b2b3
Don't remove local variables in causality
...
A dependency between two variables can be caused
by a local variable
2011-10-26 16:14:02 +02:00
Léonard Gérard
ffe2b23a82
new sheduler by default
2011-10-23 17:42:26 +02:00
Cédric Pasteur
f4aafa10d6
Added a build system for Heptagon
...
./configure
make
make install
2011-10-20 18:06:41 +02:00
Léonard Gérard
81ad14ab7b
changed interf_schedule to use clocks correctly
2011-10-20 16:52:50 +02:00
Cédric Pasteur
21433f6416
Only do one copy for two recursive registers
2011-10-20 09:16:51 +02:00
Cédric Pasteur
72cac326a8
Fixed normalization of fby
...
We should normalize not only outputs but also
other fbys to generate correct code. The test shows
a program that was compiled incorrectly.
2011-10-19 16:31:40 +02:00
Cédric Pasteur
a31715ecde
Proper fix for causality
...
This time it should work in all cases
2011-10-18 09:51:35 +02:00
Cédric Pasteur
85be1252b0
Another try to fix causality of linear ifs
2011-10-17 18:10:38 +02:00
Adrien Guatto
1ec97d187b
Adapted minimization to reinit.
2011-10-17 15:43:55 +02: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
4f9a91eebd
Fixed dependency issue with linear splits
2011-10-17 15:25:52 +02:00
Cédric Pasteur
e2d4d33d97
Fixed linear typing with args that are tuples
2011-10-17 11:52:36 +02:00
Cédric Pasteur
c2ab607195
Fix for causality when using linear types
2011-10-17 11:47:45 +02:00
Cédric Pasteur
6fefd551b1
Fixed typing of iterators in some cases
...
If a variable is already used linearly before,
do not reuse it linearly
2011-10-17 11:46:47 +02:00
Cédric Pasteur
0f403e3694
Fix for wrong number of expected args
2011-10-17 10:17:18 +02:00
Léonard Gérard
ef4478e37e
removed some stupid warnings.
2011-10-14 13:33:34 +02:00
Adrien Guatto
ee2f5ca443
Tomato: simplification + update signature via modules.
...
test/good/linear_init.ept now compiles.
2011-10-10 17:01:08 +02:00
Cédric Pasteur
1aac6f7be4
Fixed bug in unicity check in linear typing
...
Test case included
2011-10-07 11:59:13 +02:00
Adrien Guatto
3269a04052
Do not inline linear extended values.
2011-10-06 16:18:48 +02:00
Adrien Guatto
30089e7d0f
Fixed extvalue inlining w.r.t. linear copy
2011-10-05 17:44:01 +02:00
Cédric Pasteur
175c8e34ff
Fixed control fusion
2011-10-05 10:49:51 +02:00
Adrien Guatto
d0ed09c3e5
Ext-value inlining pass.
2011-10-04 15:14:02 +02:00
Cédric Pasteur
902cbaf7a1
Fixed error with memalloc and const value with when
2011-10-04 14:34:44 +02:00
Adrien Guatto
2fb27770b8
Fixed iterator minimization bug.
2011-10-03 10:54:50 +02:00
Cédric Pasteur
80f24b747c
Updated comments
2011-09-26 10:19:48 +02:00
Cédric Pasteur
36c1c7252e
Fixed memalloc application with fields
2011-09-15 16:55:17 +02:00
Cédric Pasteur
1231afdbb1
Fixed inlining
...
Inlining is now recursive.
2011-09-15 13:28:41 +02:00
Cédric Pasteur
26ad2739dd
Inlined version of mission control
2011-09-15 11:23:16 +02:00
Cédric Pasteur
da3660c08c
Tweaked the printer to generate correct code
...
There is still a big problem with priority
of operators
2011-09-15 11:10:39 +02:00
Cédric Pasteur
339feaa747
Ignore unknown nodes (instead of crashing)
2011-09-14 15:55:29 +02:00
Cédric Pasteur
1c43a8b1ac
Fixed code generation for constant arrays
2011-09-14 09:08:28 +02:00
Cédric Pasteur
3a9dc1c34d
Small fixes in Inline
...
Also inline function calls, not only nodes.
2011-09-12 18:11:00 +02:00
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
9427117fe1
Fixed linear typing of accumulators
2011-09-09 11:29:24 +02:00
Cédric Pasteur
eb0a19926c
Erase all linearities if memalloc is not activated
2011-09-09 10:11:44 +02:00
Cédric Pasteur
08437bf448
Fixed linear typing of nested calls
2011-09-08 14:27:24 +02:00
Cédric Pasteur
7bf5f3f323
Fixed typing of iterator
2011-09-08 14:10:55 +02:00
Cédric Pasteur
09afb3aca4
Fixed invalid types in static expressions
2011-09-08 13:05:17 +02:00
Cédric Pasteur
70787757aa
Fixed normalization of fby
...
The incorrect behaviour was introduced in commit
6b86b86e9d
.
We should have:
o = v fby e
becomes
mem_o = v fby e;
o = mem_o
The old way would break with:
v = true fby false fby v
that would generate unschedulable code.
2011-09-08 11:45:43 +02:00
Cédric Pasteur
2105d7ad18
Fix for linear types and automata
2011-09-08 10:45:19 +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
29a6721121
Fix for dep when using linear types and automata
2011-09-07 17:27:58 +02:00
Cédric Pasteur
9d1702587a
Fix interaction between tomato and memalloc
...
Take linearity into account when comparing exps
2011-09-07 14:15:33 +02:00
Cédric Pasteur
caa43f163f
Added dependency from a read to a linear read
...
This got lost along the way when porting memalloc
to the new branch
2011-09-07 14:14:59 +02:00
Cédric Pasteur
53043b403c
Small fixes in the C backend
2011-09-07 13:24:33 +02:00
Cédric Pasteur
7119ca1050
Made the argument non optional
2011-09-07 11:34:11 +02:00
Cédric Pasteur
7ac567cc35
Update the signature instead of recreating it
...
This avoids losing additional info in the
signature (such as linearity)
2011-09-07 11:32:16 +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
e7e81f2637
Added some missing operators
2011-09-06 14:19:45 +02:00
Cédric Pasteur
33bc0adff1
Type should be unaliased when expecting an array
2011-09-06 13:39:44 +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
5843869adb
Load module before trying to unalias
2011-09-05 16:00:57 +02:00
Cédric Pasteur
78fe2d2fce
Open modules _before_ static scoping
2011-09-05 15:33:31 +02:00
Cédric Pasteur
379f509dfc
Added typing of signatures
...
This fixes a bug where mapfold would insert
untyped constants in the code.
2011-09-05 15:33:31 +02:00
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
2011-08-04 13:37:33 +02:00
Gwenal Delaval
2c4be9d42c
Correct scoping and typing with contracts
2011-07-27 16:13:45 +02:00
Gwenal Delaval
c77386d517
Active Boolean pass and Sigali backend
2011-07-27 11:21:34 +02:00
Cédric Pasteur
134ab83b05
Fix the Makefile
...
It simply calls ocamlbuild. We still need a way
to configure and install necessary files.
2011-07-27 09:12:09 +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
de71831b2c
Idents and params should not have the same name
...
Raise an error if an ident has the same name as
a static parameter
2011-07-21 14:16:35 +02:00
Cédric Pasteur
a52e80bcad
Fixed some TODOs
2011-07-21 11:54:52 +02:00
Cédric Pasteur
69a5ad8df8
Fixed code generation of n-dim static arrays
...
Also added some tests.
2011-07-21 11:19:07 +02:00