*** empty log message ***
[libfirm] / TODO
diff --git a/TODO b/TODO
index 7e864bf..e643a31 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,10 +1,64 @@
-  * 29.10.2002 Goetz
+  * 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
+    tarval requirements:
+    zu register_mode:
+    Ich haette ganz gerne
+      new_ir_mode(ident* name, int size, int alignment, mode_sort sort);
+    modecode ist der naechste frei int > maxenum.
+    Und der konstruktor sollte auch nach den zwei inits aufgerufen werden koennen.
+    was spricht dagegen?  (die zwei inits stehen in init_firm(), ein benutzer kann
+    schwer dazwischen andere methoden aufrufen.)
+
+  * 24.3.2003 Goetz
+    tarval requirements:
+    - if overflow either return no tarval or return result of overflow
+      computation.  Offer to output a warning. (configurable)
+    - Div:  configure rounding (up/down) in init_firm, remark in each Div node
+      rounding sheme, default by initializations, pass rounding sheme
+      to tarval module
+    - impelement tarval_bitpattern
+    - make routine that outputs parts < 32 bits from any tarval
+      at given position in a C type that is exactly 32 bits.
+      For this test C types for their size or use int32 in integer.h
+      (is this standard C??)
+    - add routine that outputs the position of the largest set bit.
+
+  + 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
     bei allen Phi Knoten dann sofort die neu bekannten Werte.  Jetzt kann
     genau der Status zum Zeitpunkt der Exception abgebildet werden.
 
-  * 7.11.2001 Goetz
+  + 7.11.2001 Goetz
     Model Stack frame of a method as class type as for Global type?
     (Class so that methods defined within methods can be represented?)
     So far local entities are added to GlobalType.
 
-  * 7.11.2001 Goetz
+  + 7.11.2001 Goetz
     Implement support for endless loops.
     (Add Jump target block to a list if optimizing Cond nodes.
     Extend walker to start walking at this list.
     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.
 
-  * 23.5.2001 Goetz
+  + 23.5.2001 Goetz
     Does the array type contain a field with the array entity?
     This entity should be constructed automatically with the array type.
 
     All compound types need a flag saying whether the order of the members
     must be conserved.
 
-  * 23.5.2001 Goetz
+  + 23.5.2001 Goetz
     Add element_type to array constructor
 
-  * 15.3.2001 Goetz
+  + 15.3.2001 Goetz
     mode, size in type:  Wann gibt es einen mode, wann die size?
     Kann man den mode aendern?  Nicht bei prim, enum, pointer da
     schon irreversibel in Programmcode umgesetzt.  Die anderen
     in get_type_mode die typen asserten, und set_mode verbieten,
     dafuer im enum konstruktor mode mitgeben?
 
-  * 14.3.2001 Boris
+  + 14.3.2001 Boris
     make dist should create an archive which has the directory libfirm/
     as top-level
 =======
 
 *********** old stuff ***********
 
* Problem mit endlosen Schleifen loesen.
+ Problem mit endlosen Schleifen loesen.
 
  * Automatisches generieren und set_value der Argumente-projs in
    new_ir_graph
 
* Define and implement procedure-global extensions, e.g., the call graph.
+ Define and implement procedure-global extensions, e.g., the call graph.
 
  * Implement Confirm node: Added by optimization to annotate dataflow
    edge with information as (value > 0).  This improves dataflow analysis.
    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?