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 4309, Sat Jul 30 01:23:12 2016 UTC revision 4310, Sat Jul 30 02:16:22 2016 UTC
# Line 11  Line 11 
11    
12  ### `basis`  ### `basis`
13    
14    * add clerp3 and clerp5 operators (`basis-vars.sml`)
15    
16  * more reductions: min/max on integers, sum on integers and tensors. (`basis-vars.sml`)  * more reductions: min/max on integers, sum on integers and tensors. (`basis-vars.sml`)
17    
18  #### `cfg-ir`  #### `cfg-ir`
# Line 19  Line 21 
21    - redundant bindings in the presence of loops    - redundant bindings in the presence of loops
22    - check the types of `SEQ` elements    - check the types of `SEQ` elements
23    - check `EINAPP` bodies    - check `EINAPP` bodies
24    - check types for `MASSIGN`    - check application of user-defined functions
25    
26  * handle `EINAPP` nodes in `toString` function (`expr-fn.sml`)  * handle `EINAPP` nodes in `toString` function (`expr-fn.sml`)
27    
28  * filter out unused constant variables (`rewrite-fn.sml`)  * filter out unused constant variables (`rewrite-fn.sml`)
29    
 * add command-line flag to control compactness of IR printing (`ssa-pp-fn.sml`) **[FIXED: JHR]**  
   
30  * 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`)
31    
32  #### `codegen`  #### `codegen`
33    
34  * precedence checking for `mkApply`; handle types in `expToString` (`clang.sml`)  * precedence checking for `mkApply` (`clang.sml`)
   
 * generalize handling of the `bool` type for targets that are pre C99 (`codegen-env.sml`)  
35    
36  * `apiTypeToC` does not handle dynamic sequences (`gen-library-interface.sml`)  * `apiTypeToC` does not handle dynamic sequences (`gen-library-interface.sml`)
37    
# Line 47  Line 45 
45    
46  #### `cxx-util`  #### `cxx-util`
47    
 * fix the function names for loading dynamic sequences (`cxx-names.sml`) **[FIXED: JHR]**  
   
 * use assignment to copy small tensor types (`gen-inputs-util.sml`)  
   
48  * handle strings in `copy` function (`gen-inputs-util.sml`)  * handle strings in `copy` function (`gen-inputs-util.sml`)
49    
50  * 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
# Line 66  Line 60 
60  * 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`)
61    
62  * many issues in translating Tree IR to C++ (`tree-to-cxx.sml`)  * many issues in translating Tree IR to C++ (`tree-to-cxx.sml`)
   - type translation for tuples  
   - support for `EigenVals2x2` and `EigenVals3x3`  
63    - support for `Select` operation on tuples    - support for `Select` operation on tuples
64    - dynamic array operations: `MkDynamic`, `Append`, `Prepend`, `Concat`, `Range`, and `Length`    - Subscript on sequences of tensors
     **[FIXED: JHR]**  
65    - liveness analysis to enable *in situ* dynamic sequence operations    - liveness analysis to enable *in situ* dynamic sequence operations
66    - support for `SphereQuery`    - support for `SphereQuery`
67    - add `vload_aligned` and `vpack_aligned` operations    - add `vload_aligned` and `vpack_aligned` operations
# Line 83  Line 74 
74  No issues.  No issues.
75    
76  #### `ein`  #### `ein`
  * add documentation for various ID types (`ein.sml`) **[FIXED; CC]**  
   
77   * use the `BorderCtl.ctl` type instead of defining a new type (`ein.sml`)   * use the `BorderCtl.ctl` type instead of defining a new type (`ein.sml`)
78    
  * fix the type of `Delta` (`ein.sml`) **[FIXED; CC]**  
   
  * fix the definition of the `sumrage` type (`ein.sml`) **[FIXED; CC]**  
   
79  #### `fields`  #### `fields`
80    
81  No issues.  No issues.
# Line 105  Line 90 
90    
91  #### `high-opt`  #### `high-opt`
92    
   * handle `PowReal` operator **[FIXED; CC]**  
   
93    * code clean up (`eps-util.sml`)    * code clean up (`eps-util.sml`)
94      - documentation      - documentation
95      - avoid use of append to build lists      - avoid use of append to build lists
96      - rewrite `matchEps` function **[FIXED; CC]**  
97    * issue with summation binding around eps rewrite **[FIXED; CC]**    * improve efficiency of doRHS by doing one pass of substitutions (`normalize.sml`)
98    
99  #### `high-to-mid`  #### `high-to-mid`
100    
101    * Switch to `maxItem` function once SML/NJ 110.80 is released (`clean-index.sml`)    * Switch to `maxItem` function once SML/NJ 110.80 is released (`clean-index.sml`)
102    
   * The `cut` function is specialized to 3D (`float-ein.sml`) **[FIXED; CC]**  
   
103    * Expand integer powers into multiplications (`high-to-mid.sml`)    * Expand integer powers into multiplications (`high-to-mid.sml`)
104    
105    * Need documentation for the `mkLdVoxel` function (`probe-ein.sml`)    * Need documentation for the `mkLdVoxel` function (`probe-ein.sml`)
106    
107    * Need documentation for the `arrangeBody` function (`probe-ein.sml`) **[FIXED; CC]**    * Improve documentation for the `arrangeBody` function (`probe-ein.sml`)
   
   * error in tshape(`/clean-index.sml`) **[FIXED; CC]**  
108    
109  #### `inputs`  #### `inputs`
110    
# Line 145  Line 124 
124      - output globals in `mkGlobalVar`      - output globals in `mkGlobalVar`
125      - `RealToInt` tranlation when the argument has multiple pieces      - `RealToInt` tranlation when the argument has multiple pieces
126      - reduction operators      - reduction operators
     - defer copying tensor refs into tensors  
     - handle `x = y` assignments  
127    
128  #### `mid-ir`  #### `mid-ir`
129    
# Line 158  Line 135 
135    
136  #### `mid-to-low`  #### `mid-to-low`
137    
   * Handle `PowReal`, `PowEmb` operators in `expand` (`ein-to-scalar.sml`) **[FIXED; CC]**  
   
   * Handle `Exp`, `PowInt`,  operators in `expand` (`ein-to-scalar.sml`) **[FIXED; CC]**  
   
138    * Generalize `imgToArgs` to handle arbitrary dimension images (`field-to-low.sml`)    * Generalize `imgToArgs` to handle arbitrary dimension images (`field-to-low.sml`)
139    
140    * Support IR operators `Clamp`, `MapClamp`, and `Lerp` on higher-order tensor types    * Support IR operators `Clamp`, `MapClamp`, and `Lerp` on higher-order tensor types
# Line 170  Line 143 
143    * Generate vector operations instead of scalar operations in more places (`ein-to-low.sml`,    * Generate vector operations instead of scalar operations in more places (`ein-to-low.sml`,
144      `ein-to-scalar.sml`, and `ein-to-vector.sml`)      `ein-to-scalar.sml`, and `ein-to-vector.sml`)
145    
   
146  #### `mlton`  #### `mlton`
147    
148  No issues.  No issues.
# Line 181  Line 153 
153    
154  #### `options`  #### `options`
155    
156  No issues.    * Bug in `GetOpt` library workaround can be removed once SML/NJ 110.80 is released
157    
158  #### `parse-tree`  #### `parse-tree`
159    
# Line 207  Line 179 
179    * The inliner cannot correctly handle functions that have deep returns on some code    * The inliner cannot correctly handle functions that have deep returns on some code
180      paths (`inliner.sml`) **[FIXED; JHR]**      paths (`inliner.sml`) **[FIXED; JHR]**
181    
182    * Handle `S_MapReduce` and `AST.E_ParallelMap` expressions (`simplify.sml`,    * Handle `S_MapReduce` statements (`dead-code.sml`, `inliner.sml`,
183      `simplify-fields.sml`, and `simplify-vars.sml`).      `simplify-fields.sml`, and `simplify-vars.sml`).
184    
185      * Handle `AST.E_ParallelMap` expressions (`simplify.sml`)
186    
187      * Add a logical negate operation on AST expressions to support better if-then-else
188        translations.
189    
190    * Support for `mean` and `variance` reductions (`util.sml`)    * Support for `mean` and `variance` reductions (`util.sml`)
191    
192  #### `target-cpu`  #### `target-cpu`
# Line 222  Line 199 
199    
200  #### `translate`  #### `translate`
201    
   * Translation of `fn_normalize_t` is incorrect for scalars (`translate-basis.sml`) **[FIXED; JHR]**  
   
202    * Implement zero-tensor in Ein (`translate-basis.sml`)    * Implement zero-tensor in Ein (`translate-basis.sml`)
203    
   * Use Ein operators to implement tensor/field slicing and indexing (`translate.sml`)  **[FIXED; CC]**  
   
204    * Check possible issues with global initialization and conditionals (`translate.sml`)    * Check possible issues with global initialization and conditionals (`translate.sml`)
205    
206    * Support for `S_MapReduce` (`translate.sml`)    * Support for `S_MapReduce` (`translate.sml`)
207    
208    * Check possible issues with strand methods that do reach the exit node (`translate.sml`)    * Check possible issues with strand methods that do not reach the exit node (`translate.sml`)
   
   * `division` and `cross product` between a tensor and field **[FIXED; CC]**  
209    
210  #### `tree-ir`  #### `tree-ir`
211    
212    * Parameterize the `check` function by the target's vector layout rules and    * Parameterize the `check` function by the target's vector layout rules and
213      check for valid layouts (`check-tree.sml`)      check for valid layouts (`check-tree.sml`)
214    
215    * Checking for `S_MAssign` statements (`check-tree.sml`)    * Finish checking for `S_MAssign` statements (`check-tree.sml`)
216    
217    * Checking for `S_LoadNrrd` statements (`check-tree.sml`)    * Checking for `S_LoadNrrd` statements (`check-tree.sml`)
218    
219    * Printing for inputs (`tree-pp.sml`) **[FIXED; JHR]**    * Check user-defined functions (`check-tree.sml`)
220    
221  #### `tree-opt`  #### `tree-opt`
222    
# Line 266  Line 237 
237    
238    * Allow strands without outputs, once we have global outputs (`check-strand.sml`)    * Allow strands without outputs, once we have global outputs (`check-strand.sml`)
239    
   * Check for situation where `initially` method has call to `stabilize` (`check-var-uses.sml`)  
   
240    * Check for globals and state variables that are not initialized in    * Check for globals and state variables that are not initialized in
241      their respective initialization sections (`check-var-uses.sml`)      their respective initialization sections (`check-var-uses.sml`)
242    
243      * Check for situation where `initially` method has call to `stabilize` (`check-var-uses.sml`)
244    
245    * Unification of differentiation bounds (`unify.sml`)    * Unification of differentiation bounds (`unify.sml`)
246    
247  # Questions  # Questions
248    
249  #### `ein`  #### `ein`
250    
251    * QUESTION: should the int be IntInf.int?  (`ein.sml`)    * QUESTION: should the `int` be `IntInf.int`?  (`ein.sml`)
252      - Not sure CC      - Not sure CC
253    
254    * QUESTION: why is this index_kind list and not index_id list?(`ein.sml`)    * QUESTION: why is this `index_kind` list and not `index_id` list? (`ein.sml`)
255      - They are both ints, but one is a variable index      - They are both ints, but one is a variable index
256        and the other binds the ranges of the variable indices.        and the other binds the ranges of the variable indices.

Legend:
Removed from v.4309  
changed lines
  Added in v.4310

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