- * 24.3.2003 Goetz
+ * 27.8.2004 Goetz
+ Classes need a flag comparable to visibility of entities.
+ This flag must express whether these classes are accessed from
+ outside, i.e., the fields must have a specific layout.
+ Further it should express whether the outside can allocate classes
+ of the type. Then we can determine whether the class can be turned
+ into a description class by, e.g., rta.
+
+ *
+
+ * 5.7.04 Goetz
+ in free_type: check the types that there is no pointer type that points
+ to the freed type. If so report error.
+
+ + 28.6.04 MMB
+ Div/Mod optimization for constants produces a result that will be optimized
+ again and again :-( Add a flag or a clever encoding so thios does not happen
+
+ + Goetz 10.6.04
+ Error in removing dead code:
+ In an if condition is a loop. We optimized the if condition to Jmp/Bad,
+ the loop now is unreachable. It should be removed by gigo or the like.
+ It remains in the representation as all blocks in the loop have a
+ valid predecessor, i.e., walking from End we find a true loop. We need
+ a pass walking and marking starting at the Start node to remove this loop.
+ Currently scc causes an segmetation fault for this situation.
+
+ + Goetz 10.6.04
+ Error in irscc: If we have an unreachable loop, or a loop
+ resulting from an exiting endless recursion, irscc finds
+ no tail ==> issues an assertion.
+
+ * Goetz 10.6.04
+ Error in interprocedural view: Endless recursions are lost.
+
+ * print routines for all enums!
+
+ * 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
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?