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

SCM Repository

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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 4363, Thu Aug 4 22:42:10 2016 UTC revision 4364, Fri Aug 5 15:27:42 2016 UTC
# Line 5  Line 5 
5  bbfind --gui --name-pattern "*.in" --name-pattern "*.sml" FIXME .  bbfind --gui --name-pattern "*.in" --name-pattern "*.sml" FIXME .
6  ````  ````
7    
8    High priority items are marked with a "🔥" symbol.
9    
10  ### `ast`  ### `ast`
11    
12  No issues.  No issues.
# Line 19  Line 21 
21    
22  * add additional checking (`check-ir-fn.sml`)  * add additional checking (`check-ir-fn.sml`)
23    - redundant bindings in the presence of loops    - redundant bindings in the presence of loops
   - correct handling of PHI nodes for loops  
24    - check the types of `SEQ` elements    - check the types of `SEQ` elements
25    - check `EINAPP` bodies    - check `EINAPP` bodies
26    - check application of user-defined functions    - check application of user-defined functions
27      - check `MAPREDUCE` nodes
28      - fix check for rebinding in `FOREACH` nodes (currently disabled)
29    
30  * handle `EINAPP` nodes in `toString` function (`expr-fn.sml`)  * handle `EINAPP` nodes in `toString` function (`expr-fn.sml`)
31    
# Line 30  Line 33 
33    
34  * avoid redundancy of setting bindings for variables (`translate-fn.sml` and `census-fn.sml`)  * avoid redundancy of setting bindings for variables (`translate-fn.sml` and `census-fn.sml`)
35    
36    * delete `APPLY` when function is pure and the result is unused (`unused-elim-fn.sml`)
37    
38    * delete `MAPREDUCE` when body is pure and the result is unused (`unused-elim-fn.sml`)
39    
40  #### `codegen`  #### `codegen`
41    
42  * precedence checking for `mkApply` (`clang.sml`)  * precedence checking for `mkApply` (`clang.sml`)
43    
44  * `apiTypeToC` does not handle dynamic sequences (`gen-library-interface.sml`)  * 🔥 need to figure out the representation of dynamic sequences in the generated library API
45      (`codegen-util.sml`, `gen-library-interface.sml`, and `output-util.sml`)
 * `infoOf` does not handle fixed-size sequences (`output-util.sml`)  
46    
47  * Printing "const" types (`print-as-c.sml`)  * Printing "const" types (`print-as-c.sml`)
48    
# Line 46  Line 52 
52    
53  #### `cxx-util`  #### `cxx-util`
54    
55  * handle strings in `copy` function (`gen-inputs-util.sml`)  * 🔥 handle string-valued inputs in `copy` function (`gen-inputs-util.sml`)
56    
57  * Generate error-handling code that puts the error message in the error buffer and returns  * Generate error-handling code that puts the error message in the error buffer and returns
58    and error status (`gen-outputs-util.sml`)    and error status (`gen-outputs-util.sml`)
59    
60  * various issues when synthesizing types and operations (`gen-tys-and-ops.sml`)  * various issues when synthesizing types and operations (`gen-tys-and-ops.sml`)
61    - tuple types are not supported    - tuple types are not supported
62    - some dynamic sequence types are not supported (e.g., strands)    - 🔥 some dynamic sequence types are not supported (e.g., strands)
63    - printing for tuples, dynamic sequences, and fixed-size sequences    - 🔥 generating printing code for tuples, dynamic sequences, and fixed-size sequences
64    
65  * printing types needs to be overhauled to correctly handle C++ type syntax (`print-as-cxx.sml`)  * printing types needs to be overhauled to correctly handle C++ type syntax (`print-as-cxx.sml`)
66    
67  * printing support for classes that include protected or private members (`print-as-cxx.sml`)  * printing support for classes that include protected or private members (`print-as-cxx.sml`)
68    
69  * many issues in translating Tree IR to C++ (`tree-to-cxx.sml`)  * many issues in translating Tree IR to C++ (`tree-to-cxx.sml`)
70    - support for `Select` operation on tuples    - 🔥 subscript on sequences of tensors
   - Subscript on sequences of tensors  
71    - liveness analysis to enable *in situ* dynamic sequence operations    - liveness analysis to enable *in situ* dynamic sequence operations
72    - support for `SphereQuery`    - 🔥 support for `SphereQuery` operator
73    - support for `StrandStatus`    - 🔥 support for `Strands` operator
74      - 🔥 support for `StrandStatus` operator
75    - add `vload_aligned` and `vpack_aligned` operations    - add `vload_aligned` and `vpack_aligned` operations
76    - refactor common code out of `trAssign` and `trDecl` functions    - refactor common code out of `trAssign` and `trDecl` functions
77    
78  * handle tuples in `trQType` and `trType` (`type-to-cxx.sml`)  * 🔥 handle tuple types in `trQType` and `trType` (`type-to-cxx.sml`)
79    
80  #### `driver`  #### `driver`
81    
# Line 123  Line 129 
129  #### `low-to-tree`  #### `low-to-tree`
130    
131    * many issues in translating Low IR to Tree IR (`low-to-tree.sml`)    * many issues in translating Low IR to Tree IR (`low-to-tree.sml`)
132      - output globals in `mkGlobalVar`      - add support for output globals in `mkGlobalVar`
133      - `RealToInt` tranlation when the argument has multiple pieces      - 🔥 `RealToInt` translation when the argument has multiple pieces
134      - reduction operators      - 🔥 support for `MAPREDUCE`
135    
136  #### `mid-ir`  #### `mid-ir`
137    
# Line 174  Line 180 
180    
181  #### `simplify`  #### `simplify`
182    
183    * Handle `S_MapReduce` statements (`dead-code.sml`, `inliner.sml`,    * Support fusion of reductions (`map-reduce-opt.sml`)
     `simplify-fields.sml`, and `simplify-vars.sml`).  
   
   * Handle `AST.E_ParallelMap` expressions (`simplify.sml`)  
   
   * Support implicit spatial queries (`simplify.sml`)  
184    
185    * Add a logical negate operation on AST expressions to support better if-then-else    * Add a logical negate operation on AST expressions to support better if-then-else
186      translations (`simplify.sml`)      translations (`simplify.sml`)
187    
188    * Support for `mean` and `variance` reductions (`util.sml`)    * 🔥 Support implicit spatial queries (`simplify.sml`)
189    
190    * Support fusion of reductions (`map-reduce-opt.sml`)    * 🔥 Handle `AST.E_ParallelMap` expressions (`simplify.sml`)
191    
192      * 🔥 Support for `mean` and `variance` reductions over strand sets (`simplify.sml`)
193    
194      * 🔥 Support for `mean` and `variance` reductions over sequences (`util.sml`)
195    
196  #### `target-cpu`  #### `target-cpu`
197    
198    * generate a default stabilize method for the dual-state case (`gen-strand.sml`)    * 🔥 add support for global map-reduce computations (`gen-global-update.sml`)
199    
200    * handle create iterations over sequences (`gen-world.sml`)    * switch to building an AST once CLang supports `const` functions (`gen-strand.sml`)
201    
202      * 🔥 handle create iterations over sequences (`gen-world.sml`)
203    
204    * what should we do about residual constants during code generation? (`gen.sml`)    * what should we do about residual constants during code generation? (`gen.sml`)
205    
# Line 200  Line 207 
207    
208    * Implement zero-tensor in Ein (`translate-basis.sml`)    * Implement zero-tensor in Ein (`translate-basis.sml`)
209    
210    * Check possible issues with global initialization and conditionals (`translate.sml`)    * Support for `E_Tuple` and `E_Project` (`translate.sml`)
211    
212    * Support for `S_MapReduce` (`translate.sml`)    * Check possible issues with global initialization and conditionals (`translate.sml`)
213    
214    * Check possible issues with strand methods that do not reach the exit node (`translate.sml`)    * Check possible issues with strand methods that do not reach the exit node (`translate.sml`)
215    
   * Support for `E_Tuple` and `E_Project` (`translate.sml`)  
   
216  #### `tree-ir`  #### `tree-ir`
217    
218    * Parameterize the `check` function by the target's vector layout rules and    * Parameterize the `check` function by the target's vector layout rules and
# Line 230  Line 235 
235    * Many issues in typechecking expressions (`check-expr.sml`)    * Many issues in typechecking expressions (`check-expr.sml`)
236      - improved overload resolution      - improved overload resolution
237      - resulting differentiation for inner, outer, and colon products      - resulting differentiation for inner, outer, and colon products
238      - check index against shape of tensor      - check index against shape of tensor for subscripting/slicing
239      - check for sequences of non-concrete types (*e.g.*, sequences of fields)      - check for sequences of non-concrete types (*e.g.*, sequences of fields)
240      - non-literal constant string expressions      - non-literal constant string expressions
241    

Legend:
Removed from v.4363  
changed lines
  Added in v.4364

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