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

SCM Repository

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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4021 - (download) (annotate)
Wed Jun 22 13:51:17 2016 UTC (3 years, 2 months ago) by jhr
File size: 6876 byte(s)
  Update FIXME/TODO lists
# FIXME issues
Organized by source directory.  We use the following command to find the FIXMEs:

````
bbfind --gui --name-pattern "*.in" --name-pattern "*.sml" FIXME .
````

### `ast`

No issues.

### `basis`

* more reductions: min/max on integers, sum on integers and tensors. (`basis-vars.sml`)

#### `cfg-ir`

* add additional checking (`check-ir-fn.sml`)
  - redundant bindings
  - check the types of `SEQ` elements
  - check `EINAPP` bodies
  - check types for `MASSIGN`

* handle `EINAPP` nodes in `toString` function (`expr-fn.sml`)

* filter out unused constant variables (`rewrite-fn.sml`)

* add command-line flag to control compactness of IR printing (`ssa-pp-fn.sml`)

* avoid redundancy of setting bindings for variables (`translate-fn.sml` and `census-fn.sml`)

#### `codegen`

* precedence checking for `mkApply`; handle types in `expToString` (`clang.sml`)

* generalize handling of the `bool` type for targets that are pre C99 (`codegen-env.sml`)

* Printing "const" types (`print-as-c.sml`)

#### `common`

No issues.

#### `cxx-util`

* fix the function names for loading dynamic sequences (`cxx-names.sml`)

* handle strings in `copy` function (`gen-inputs-util.sml`)

* generate code to check that loaded image has expected element type, etc. (`gen-load-nrrd.sml`)

* printing support for tuples (`gen-tys-and-ops.sml`)

* support for fixed-size sequences in `infoOf` (`output-util.sml`)

* Generate error-handling code that puts the error message in the error buffer and returns
  and error status (`output-util.sml`)

* printing types needs to be overhauled to correctly handle C++ type syntax (`print-as-cxx.sml`)

* printing support for classes that include protected or private members (`print-as-cxx.sml`)

* many issues in translating Tree IR to C++ (`tree-to-cxx.sml`)
  - type translation for tuples
  - support for `EigenVals2x2` and `EigenVals3x3`
  - support for `Select` operation on tuples
  - dynamic array operations: `MkDynamic`, `Append`, `Prepend`, `Concat`, `Range`, and `Length`
    **[FIXED: JHR]**
  - liveness analysis to enable *in situ* dynamic sequence operations
  - support for `SphereQuery`
  - add `vload_aligned` and `vpack_aligned` operations
  - refactor common code out of `trAssign` and `trDecl` functions

#### `driver`

No issues.

#### `ein`
 * add documentation for various ID types (`ein.sml`) **[FIXED; CC]**

 * use the `BorderCtl.ctl` type instead of defining a new type (`ein.sml`)

 * fix the type of `Delta` (`ein.sml`) **[FIXED; CC]**

 * fix the definition of the `sumrage` type (`ein.sml`) **[FIXED; CC]**

#### `fields`

No issues.

#### `global-env`

No issues.

#### `high-ir`

No issues.

#### `high-opt`

  * handle `PowReal` operator **[FIXED; CC]**

  * code clean up (`eps-util.sml`)
    - documentation
    - avoid use of append to build lists
    - rewrite `matchEps` function **[FIXED; CC]**

#### `high-to-mid`

  * Switch to `maxItem` function once SML/NJ 110.80 is released (`clean-index.sml`)

  * Expand integer powers into multiplications (`high-to-mid.sml`)

  * Need documentation for `arrangeBody` function (`probe-ein.sml`) **[FIXED; CC]**

  * error in tshape(`/clean-index.sml`) **[FIXED; CC]**

#### `inputs`

No issues.

#### `low-ir`

No issues.

#### `low-opt`

No issues.

#### `low-to-tree`

  * many issues in translating Low IR to Tree IR (`low-to-tree.sml`)
    - output globals in `mkGlobalVar`
    - `RealToInt` tranlation when the argument has multiple pieces
    - reduction operators
    - defer copying tensor refs into tensors
    - handle `x = y` assignments

#### `mid-ir`

No issues.

#### `mid-opt`

No issues.

#### `mid-to-low`

  * Handle `PowReal`, `PowEmb` operators in `expand` (`ein-to-scalar.sml`) **[FIXED; CC]**

  * Handle `Exp`, `PowInt`,  operators in `expand` (`ein-to-scalar.sml`) **[FIXED; CC]**

  * Generalize `imgToArgs` to handle arbitrary dimension images (`field-to-low.sml`)

  * Support IR operators `Clamp`, `MapClamp`, and `Lerp` on higher-order tensor types.

#### `mlton`

No issues.

#### `nrrd`

No issues.

#### `options`

No issues.

#### `parse-tree`

No issues.

#### `parser`

No issues.

#### `simple`

  * Invariant checking for Simple AST representation (`check-simple.sml`)

  * Pretty print reduction expressions (`simple-pp.sml`)

  * Support fusion of reductions; this change will require IR changes (`simple.sml`)

#### `simplify`

  * Handle `E_ParallelMap` expressions (`simplify.sml`)

  * Support for `mean` and `variance` reductions (`util.sml`)

#### `target-cpu`

  * generate a default stabilize method for the dual-state case (`gen-strand.sml`)

  * handle create iterations over sequences (`gen-world.sml`)

  * what should we do about residual constants during code generation? (`gen.sml`)

  * generate global initialization code? (`gen.sml`)

  * code generation for libraries (`gen.sml`)

#### `translate`

  * Translation of `fn_normalize_t` is incorrect for scalars (`translate-basis.sml`)

  * Use Ein operators to implement tensor/field slicing and indexing (`translate.sml`)  **[FIXED; CC]**

  * Check possible issues with global initialization and conditionals (`translate.sml`)

  * Support for `S_MapReduce` (`translate.sml`)

  * Check possible issues with strand methods that do reach the exit node (`translate.sml`)

  * `division` and `cross product` between a tensor and field **[FIXED; CC]**

#### `tree-ir`

  * Parameterize the `check` function by the target's vector layout rules and
    check for valid layouts (`check-tree.sml`)

  * Checking for `S_MAssign` statements (`check-tree.sml`)

  * Checking for `S_LoadNrrd` statements (`check-tree.sml`)

  * Printing for inputs (`tree-pp.sml`) **[FIXED; JHR]**

#### `tree-opt`

No issues.

#### `typechecker`

  * Evaluation of constant tensor slice (`check-const.sml`)

  * Many issues in typechecking expressions (`check-expr.sml`)
    - improved overload resolution
    - resulting differentiation for inner, outer, and colon products
    - check index against shape of tensor
    - check for sequences of non-concrete types (*e.g.*, sequences of fields)
    - constant string expressions

  * Handle command-line definitions of constants (`check-globals.sml`)

  * Allow strands without outputs, once we have global outputs (`check-strand.sml`)

  * Check for situation where `initially` method has call to `stabilize` (`check-var-uses.sml`)

  * Check for globals and state variables that are not initialized in
    their respective initialization sections (`check-var-uses.sml`)

  * Unification of differentiation bounds (`unify.sml`)

# Questions

#### `ein`

  * QUESTION: should the int be IntInf.int?  (`ein.sml`)
    - Not sure CC

  * QUESTION: why is this index_kind list and not index_id list?(`ein.sml`)
    - They are both ints, but one is a variable index
      and the other binds the ranges of the variable indices.

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