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 4043 - (download) (annotate)
Sun Jun 26 14:00:38 2016 UTC (3 years, 2 months ago) by jhr
File size: 6934 byte(s)
  Working on merge: changed the way that we handle kernels in the AST and SimpleAST IRs (treat
  them like literals, instead of like variables).  Added code to rewrite Inside tests in Simple
  IR to use the image instead of the field, which fixes a problem with trying to do inside tests
  on Ein fields.  Added code to promote locals to globals as part of the simplify-vars phase.
# 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`

* Determine kernel continuity from kernel definitions (`kernel.sml`)

#### `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