Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Annotation of /branches/vis15/src/compiler/FIXME.md
ViewVC logotype

Annotation of /branches/vis15/src/compiler/FIXME.md

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5584 - (view) (download)

1 : jhr 3937 # FIXME issues
2 :     Organized by source directory. We use the following command to find the FIXMEs:
3 :    
4 :     ````
5 :     bbfind --gui --name-pattern "*.in" --name-pattern "*.sml" FIXME .
6 :     ````
7 :    
8 : jhr 4364 High priority items are marked with a "🔥" symbol.
9 :    
10 : jhr 4427 ## Compiler issues
11 :    
12 : jhr 3937 ### `ast`
13 :    
14 : jhr 5269 * handle UTF-8 multi-byte-character sequences when parsing command-line string
15 :     constants
16 :    
17 : jhr 4522 * be consistent about terminology for the various kinds of types (concrete, value, etc.)
18 : jhr 3937
19 :     ### `basis`
20 :    
21 : jhr 4589 * additional basis operations:
22 : jhr 5269 - overload "^" on integer/integer arguments (`basis-vars.sml`)
23 : jhr 4589 - sum reduction on arbitrary tensors. (`basis-vars.sml`)
24 : jhr 4974 - variance reduction (`basis.sml`)
25 : jhr 4310
26 : jhr 4427 ### `cfg-ir`
27 : jhr 3937
28 : jhr 4522 * add additional checking (`check-ir-fn.sml`)
29 :     - check the types of `SEQ` elements
30 :     - check `EINAPP` bodies
31 :     - check application of user-defined functions
32 : jhr 3937
33 : jhr 4522 * handle fused `MAPREDUCE` in global-variable promotion (`promote-fn.sml`)
34 : jhr 3937
35 : jhr 5269 * avoid redundancy of setting bindings for variables (`translate-fn.sml` and
36 :     `census-fn.sml`)
37 : jhr 3937
38 : jhr 4522 * delete `APPLY` when function is pure and the result is unused (`unused-elim-fn.sml`)
39 : jhr 4364
40 : jhr 4522 * delete `MAPREDUCE` when body is pure and the result is unused (`unused-elim-fn.sml`)
41 : jhr 4364
42 : jhr 4427 ### `codegen`
43 : jhr 3937
44 : jhr 4974 * factor out common type-translation code between `GenLibraryInterface` and
45 :     `GenLibraryJSON` (`gen-library-interface.sml` and `gen-library-json.sml`)
46 :    
47 :     * set `strandConstr` field to `false` for strands that do not need C++ initialization
48 :     of their state
49 :    
50 : jhr 4427 ### `common`
51 : jhr 3937
52 : jhr 4530 * determine kernel continuity from kernel definitions (`kernel.sml`)
53 : jhr 3937
54 : jhr 4427 ### `cxx-util`
55 : jhr 3937
56 : jhr 4522 * various issues when synthesizing types and operations (`gen-tys-and-ops.sml`)
57 : jhr 5134 - generating types and printing code for tuple
58 : jhr 3937
59 : jhr 4522 * many issues in translating Tree IR to C++ (`tree-to-cxx.sml`)
60 :     - liveness analysis to enable *in situ* dynamic sequence operations
61 :     - add `vload_aligned` and `vpack_aligned` operations
62 :     - refactor common code out of `trAssign` and `trDecl` functions
63 : jhr 3937
64 : jhr 4522 * handle tuple types in `trQType` and `trType` (`type-to-cxx.sml`)
65 : jhr 4101
66 : jhr 4427 ### `driver`
67 : jhr 3937
68 : jhr 5269 * check AST for consistency (`main.sml` and `../ast`)
69 : jhr 3937
70 : jhr 4427 ### `ein`
71 : jhr 3937
72 : jhr 5317 No issues.
73 : jhr 4522
74 : jhr 4427 ### `fields`
75 : jhr 3937
76 :     No issues.
77 :    
78 : jhr 4427 ### `global-env`
79 : jhr 3937
80 :     No issues.
81 :    
82 : jhr 4427 ### `high-ir`
83 : jhr 3937
84 :     No issues.
85 :    
86 : jhr 4427 ### `high-opt`
87 : jhr 3937
88 : jhr 4310 * improve efficiency of doRHS by doing one pass of substitutions (`normalize.sml`)
89 :    
90 : jhr 4427 ### `high-to-mid`
91 : jhr 3937
92 : jhr 3966 * Expand integer powers into multiplications (`high-to-mid.sml`)
93 :    
94 : jhr 4427 ### `inputs`
95 : jhr 3937
96 :     No issues.
97 :    
98 : jhr 4427 ### `low-ir`
99 : jhr 3937
100 :     No issues.
101 :    
102 : jhr 4427 ### `low-opt`
103 : jhr 3937
104 :     No issues.
105 :    
106 : jhr 4427 ### `low-to-tree`
107 : jhr 3937
108 : jhr 3966 * many issues in translating Low IR to Tree IR (`low-to-tree.sml`)
109 : jhr 4364 - add support for output globals in `mkGlobalVar`
110 : jhr 3937
111 : jhr 4427 ### `mid-ir`
112 : jhr 3937
113 : jhr 3966 No issues.
114 : jhr 3937
115 : jhr 4427 ### `mid-opt`
116 : jhr 3937
117 :     No issues.
118 :    
119 : jhr 4427 ### `mid-to-low`
120 : jhr 3937
121 : jhr 5258 No issues.
122 : jhr 3966
123 : jhr 4427 ### `mlton`
124 : jhr 3937
125 :     No issues.
126 :    
127 : jhr 4427 ### `nrrd`
128 : jhr 3937
129 :     No issues.
130 :    
131 : jhr 4427 ### `options`
132 : jhr 3937
133 : jhr 4522 No issues.
134 : jhr 3937
135 : jhr 4427 ### `parse-tree`
136 : jhr 3937
137 :     No issues.
138 :    
139 : jhr 4427 ### `parser`
140 : jhr 3937
141 : jhr 4974 * Need better support for tuning error messages (this problem is really a weakness in
142 :     the **ml-antlr** tool) (`parser.sml`)
143 : jhr 3937
144 : jhr 4427 ### `simple`
145 : jhr 3937
146 : jhr 3995 * Invariant checking for Simple AST representation (`check-simple.sml`)
147 :    
148 : jhr 4438 * Pretty-printing for fused map-reduce (`simple-pp.sml`)
149 :    
150 : jhr 4522 ### `simple-opt`
151 : jhr 4114
152 : jhr 4522 * Support fusion of reductions (`map-reduce-opt.sml`)
153 :    
154 : jhr 4974 * Analyze user-defined functions for purity (`simple-contract.sml`)
155 :    
156 : jhr 4427 ### `simplify`
157 : jhr 3937
158 : jhr 4310 * Add a logical negate operation on AST expressions to support better if-then-else
159 : jhr 4349 translations (`simplify.sml`)
160 : jhr 4310
161 : jhr 5199 * Handle `AST.E_ParallelMap` expressions outside of reductions (`simplify.sml`)
162 : jhr 4330
163 : jhr 4974 * Support for `variance` reductions over strand sets and sequences (`simplify.sml` and `util.sml`)
164 : jhr 4364
165 : jhr 4427 ### `target-cpu`
166 : jhr 3937
167 : jhr 4522 * switch to building an AST once CLang supports `const` functions (`gen-strand.sml`)
168 : jhr 3937
169 : jhr 4974 #### `fragments`
170 : jhr 3937
171 : jhr 5072 * invoke new on allocated strands when necessary (`par-sarr-indirect.in` and
172 :     `par-sarr-dual-indirect.in`)
173 : jhr 4522
174 : jhr 5269 * dead strand compaction in `finish_step` (`par-sarr-*.in`)
175 : jhr 5072
176 : jhr 4974 * parallel kd-tree construction (`par-worker.in`)
177 :    
178 : jhr 5072 * parallel reductions in `world::global_update()` (`par-worker.in`)
179 :    
180 : jhr 4427 ### `translate`
181 : jhr 4564
182 : jhr 4364 * Support for `E_Tuple` and `E_Project` (`translate.sml`)
183 :    
184 : jhr 3966 * Check possible issues with global initialization and conditionals (`translate.sml`)
185 :    
186 : jhr 4427 ### `tree-ir`
187 : jhr 3937
188 : jhr 4438 * Many issues in checking the Tree IR (`check-tree.sml`)
189 :     - Parameterize the `check` function by the target's vector layout rules and
190 :     check for valid layouts
191 :     - Finish checking for `S_MAssign` statements
192 :     - Check body of map-reduce
193 :     - Checking for `S_LoadNrrd` statements
194 : jhr 5164 - Check return type of user-defined functions
195 : jhr 3937
196 : jhr 4427 ### `tree-opt`
197 : jhr 3937
198 :     No issues.
199 :    
200 : jhr 4427 ### `typechecker`
201 : jhr 3937
202 : jhr 3966 * Evaluation of constant tensor slice (`check-const.sml`)
203 :    
204 : jhr 4522 * Check optional frame argument to `create_array` (once feature is enabled)
205 :    
206 : jhr 3966 * Many issues in typechecking expressions (`check-expr.sml`)
207 : jhr 4974 - improved efficiency of overload resolution
208 : jhr 3966 - resulting differentiation for inner, outer, and colon products
209 : jhr 4364 - check index against shape of tensor for subscripting/slicing
210 : jhr 3966 - check for sequences of non-concrete types (*e.g.*, sequences of fields)
211 : jhr 4101 - non-literal constant string expressions
212 : jhr 3966
213 : jhr 5089 * Support numeric escape sequences and UTF-8 characters in command-line
214 :     string constants (`check-globals.sml`)
215 : jhr 3966
216 :     * Allow strands without outputs, once we have global outputs (`check-strand.sml`)
217 :    
218 : jhr 4021 * Check for globals and state variables that are not initialized in
219 :     their respective initialization sections (`check-var-uses.sml`)
220 : cchiw 3978
221 : jhr 5151 * If a variable is assigned to, but never read, then the unused message
222 :     should reflect that fact (`check-var-uses.sml`)
223 :    
224 : jhr 4974 * don't report the `pos` state variable as unused when there are spatial
225 :     queries (`check-var-uses.sml`)
226 : jhr 4371
227 : jhr 4310 * Check for situation where `initially` method has call to `stabilize` (`check-var-uses.sml`)
228 :    
229 : jhr 4522 * Constants that are solely used to initialize other constants are reported
230 :     unused (`check-var-uses.sml`)
231 :    
232 : jhr 4021 * Unification of differentiation bounds (`unify.sml`)
233 :    
234 : jhr 4427 ## Runtime system issues
235 :    
236 : jhr 4430 ### `common`
237 :    
238 :     * figure out a mechanism to pass warnings back up the call chain, instead of printing
239 :     them from library code (`world.cxx`)
240 :    
241 : jhr 4427 ### `include/diderot`
242 :    
243 :     * For programs that do not use `new` or `die`, we can allocate less space for the
244 :     KD-tree partitions (`kdtree-inst.hxx`)
245 :    
246 : cchiw 3978 # Questions
247 : jhr 3980
248 : jhr 5072 We use the following command to find the FIXMEs:
249 :    
250 :     ````
251 :     bbfind --gui --name-pattern "*.in" --name-pattern "*.sml" QUESTION .
252 :     ````
253 :    
254 : cchiw 3978 #### `ein`
255 :    
256 : jhr 5269 * should the `int` be `IntInf.int`? (`ein/ein.sml`)
257 : jhr 3980 - Not sure CC
258 : cchiw 3978
259 : jhr 5269 * why is this `index_kind` list and not `index_id` list? (`ein/ein.sml`)
260 : jhr 3980 - They are both ints, but one is a variable index
261 :     and the other binds the ranges of the variable indices.
262 : jhr 5269
263 :     * should we move the `init_consts` code into a constructor for the
264 :     `globals` struct and make `init_globals` a member of the `world` struct?
265 :     (`target-cpu/gen-globals.sml` and `target-cpu/gen.sml`)

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0