Fixed prototypes to compile with -Wstrict-prototypes.
[libfirm] / TODO
diff --git a/TODO b/TODO
index 2361369..8dade47 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,3 +1,82 @@
+  * 29.10.2002 Goetz
+    Representation of value compounds is not good, especially with
+    calls.
+
+  * 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...
+
+  * 29.10.2002 Goetz
+    If parameter variables are dereferenced they must be represented
+    by an entity in the stack frame type.  We need a mechanism to
+    find out which fields were parameters so that the parameter
+    passing space on the frame can be used for the parameters.
+
+  + 19.11.2001 Goetz
+    SymConst mit ident taugt nicht:  Wenn man z.B. die Prozedur kennt
+    sollte man die entitaet der Prozedur angeben koennen.  Ermoeglicht
+    einfachere Navigation im Callgraphen.
+    --> Verwende Const mit entity.
+
+  + 13.11.2001 Goetz
+    Aufbau Exceptions tut nicht:
+    1) mache exception handle block
+    2) baue code auf, verzweige von fragile ops zu dem Handler
+    3) mature exception block
+    --> Dann werden natuerlich die Werte am Ende der Bloecke mit den
+       fragile ops verwendet!  Diese sind ev. nicht berechnet.  Trifft
+       insbesondere auf memory zu ...
+    Loesung z.B.:
+    immExcBlock konstruktor.  Neuer "mature" status.  immExcBlocks duerfen
+    keine zyklen bilden.  In immExcBlocks werden PhiKnoten sofort eingesetzt,
+    aber wie immBlock mit flexibler vorgaenger liste.  add_in_edge ergaenzt
+    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
+    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
+    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
+    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
+    What happens if undefined values are allowed?  See ircons.c,
+    grep for get_irg_start_block.
+
+  + 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.
+
+  * 23.5.2005 Goetz
+    All compound types need a flag saying whether the order of the members
+    must be conserved.
+
+  + 23.5.2001 Goetz
+    Add element_type to array constructor
+
+  + 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
+    haben keinen mode.  Reicht daher intern ein Feld?  Muss man
+    in get_type_mode die typen asserten, und set_mode verbieten,
+    dafuer im enum konstruktor mode mitgeben?
+
+  + 14.3.2001 Boris
+    make dist should create an archive which has the directory libfirm/
+    as top-level
+=======
   14.3.2001 Boris
   - make dist should create an archive which has the directory libfirm/
     as top-level [DONE:28.3.2001 Boris]
 
 *********** old stuff ***********
 
-
- * Problem mit endlosen Schleifen loesen.
-
- + if_while_example ergibt Segmentation Fault da Bad Vorgaenger von Endblock.
-   Optimierung des end blocks geaendert.
+ + 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.
 
  * think again about implementation of boolean expressions  (0<1) && (2<3)
 
- * Adapt tv to operate on the new modes, adapt libfirm, e.g., remove
-   strange constructors.
-
- * define Nodes for Rotate, Not, Minus, ShrA (Done.)
-   Add evaluation routines to target value, extend optimization,
-   verification to cover these nodes, extend irdump to cover them.
+ * Add evaluation routines for Rotate, Not, Minus, ShrA to target value,
+   extend optimization to cover these nodes.
 
  * do we need remainder (Rem) operator?
    different sign handling than Mod.  How much processors???
@@ -69,6 +140,11 @@ Propositions by Boris, 5.3.2001:
      ==> viel Arbeit, nur Namenskonvention.  Ev wenn target value modul
          ausgetauscht.
 
+ + if_while_example ergibt Segmentation Fault da Bad Vorgaenger von Endblock.
+   Optimierung des end blocks geaendert.
+
+ + define Nodes for Rotate, Not, Minus, ShrA.  Extend irdump, verification.
+
  + change impelmentation of type to use concept as in irnode.
    Three common fields: kind, ident, mode !!! fill mode with
    mode_none if applicable.