added flags for ip outs state
[libfirm] / TODO
diff --git a/TODO b/TODO
index 6a2b89b..92e17da 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,9 +1,57 @@
+    Add flag whether mode is associative, float modes are not!!
+
+  * 25.2.04 Goetz
+    Fix memory leak in irprog: free_ir_prog.
+    Fix memory leak in entity: free_entity_attrs
+
+  * 19.12.03 Goetz
+    Add state management for loops (consistent, inconsistent, invalid).
+
+  * 18.12.03 Goetz
+    It sucks that Call and CallBegin are different nodes. Change this!!!!
+    (as for Filter: Phi/Proj).
+
+  * 8.12. Goetz
+    Vorgaengernummern am Looptree auf Kanten ausgeben.
+
+  * 8.12.03 Goetz und Till
+    Alloc Semantik:  Der Alloc Knoten koennte wissen, ob der
+    allozierte Speicher zu Null initialisiert ist.  Dies nehmen
+    wir im Jack Java Compiler an, im CRS C Compiler jedoch nicht.
+    Ist das nicht explizit im Allok Knoten vermerkt, kann eine
+    Optimierung nur in Abhaengigkeit vom Frontend darauf aufbauen.
+    (z.B. heapanal nimmt any an, statt null.)
+
+  * 8.9.03 Boris
+    Wenn man in Arrays.java in der Methode ArrObject.f() die
+    ersten zwei prints auskommentiert und pass_array_test die
+    for-Schleife durch ein i = 0, while(true).. ersetzt, stürzt der
+    Compiler in get_Block_idom ab; der übergebene Zeiger ist ein
+    NULL-Zeiger.
+
+  * 15.9.03 Goetz
+    Wir haben ev. einen Fehler in scc gefunden:  Matthias hat eine
+    Enlosrekursion a() { b(); }, b() { a(); } in Java implementiert.
+    Darauf ist in is_head die Assertion
+       assert(get_irn_uplink(pred) >= get_irn_uplink(root));
+    geflogen.
+
+  * 29.8.03 Goetz
+    Cast: irsimpletype: implement type analyses for one node.  Test the
+    effort of that analyses.  Add optimization to iropt that removes
+    Cast nodes.
+
+  * 22.8.2003 Goetz
+    Firm const nodes should have a type.
+    In jack all nodes are typed now, except the Const nodes. Only const from
+    tarval is typed.
+
   * 14.8.2003 Goetz
     Diverse dynamische arrays haben ein erstes, unverwendetes element. Z.B.
     class members.  Entfernen um Speicher zu sparen.
     Ev. auch attribute an firm Knoten optimieren, per bitfield.
 
-  * 24.3.2003 Goetz
+  + 24.3.2003 Goetz
     tarval requirements:
     zu register_mode:
     Ich haette ganz gerne
       (is this standard C??)
     - add routine that outputs the position of the largest set bit.
 
-  * 29.10.2002 Goetz
+  + 29.10.2002 Goetz
     Representation of value compounds is not good, especially with
     calls.
 
-  * 29.10.2002 Goetz
+  + 29.10.2002 Goetz
     We can not represent bitfield members of structs in C.
-    A struct can have fields with n bits, n e.g. set to 3...
+    Decision: generate explicit code for it, using shifts etc.
+    No special support.
 
   * 29.10.2002 Goetz
     If parameter variables are dereferenced they must be represented
     Extend dead node elimination to update and compact this list.
     Extend inlining to inline this list.)
 
-  * 7.11.2001 Goetz
+  + 7.11.2001 Goetz
     Implement checking whether layout is fixed when setting corresponding
     flag.  See firmtut, 3.1.4.
     Maybe write a checker for the type information.
 
-  * 19.6.2001 Goetz
+  + 19.6.2001 Goetz
     What happens if undefined values are allowed?  See ircons.c,
     grep for get_irg_start_block.
 
    These nodes can be derived from Cmp nodes in conjunction with dataflow
    information.
 
- * think again about implementation of boolean expressions  (0<1) && (2<3)
+ + think again about implementation of boolean expressions  (0<1) && (2<3)
+   Cast now possible
 
* Add evaluation routines for Rotate, Not, Minus, ShrA to target value,
+ Add evaluation routines for Rotate, Not, Minus, ShrA to target value,
    extend optimization to cover these nodes.
 
  * do we need remainder (Rem) operator?