Project

General

Profile

Revision a703ed0c TODO.org

View differences:

TODO.org
69 69
else {}
70 70

  
71 71
x = if c then expr else x
72
* Seal
73

  
74
The Seal library should be available from LustreV
75

  
76
lustrev -seal -node foo bar.lus 
77

  
78
shall inline completely the node foo in bar.lus and compile it as a
79
piecewise system: 
80
- Memories have to be identified and one needs to separate the update
81
  of the memories and the production of the output.
82
- The update block should be normalized so that any ite occuring in
83
  the definition of a memory should not define a local flow used in
84
  basic operations.  In other words, the definitions should look like
85
  mem_x = if g then e1 else e2 where e1 and e2 are either ite
86
  expression or expressions without ite. As soon as a not-ite
87
  expression is selected it cannot depend on the output of an ite.
88

  
89
In a first step this normalized update shall be printed in
90
stdout. Later it will associated to a SEAL datastructure through SEAL
91
API.
92

  
93
** Algorithm
94

  
95
*** 1. Computation of update block
96
- First we inline the node
97
- After normalization the memories are the variables defined by a pre
98
- Do we have to deal with arrows and reset?
99
- Develop a function to perform slicing. Restrict the node eqs to the ones used in these pre defs.
100
- one can also slice the expressions on the output variables
101

  
102
*** 2. Normalization: piecewise system
103
 ie. all ite pushed at the beginning
104

  
105
- use the scheduling to obtain the dependencies amongs eqs
106
- one can then iterate through eqs from the bottom to the top
107
  if the eq looks like x = if g then e1 else e2
108
  then tag x as ite(g,e1,e2)
109
  if the parent expr y = if g2 then x else ... make 
110
** More general use
111
Some ideas
112
- One could request multiple nodes: how to deal with these? Acting as
113
  as many calls to the basic procedure?
114
- Shall we keep the flatten update structure to the node? Another
115
  property on input could be propagated.
116
- The analysis will depend on bounds on input flows. Can we specialize
117
  the update blocks based on input values, ie. disabling some branches
118
  of the ite-tree?
119
- 
120

  
121
** TODO list
122

  
123
* Salsa
124
* 

Also available in: Unified diff