+ 18.12.2000 Goetz
+ Changed parameter of Methods in type.h and type.c from
+ class to clss. Class is a C++ keyword.
+
+ 7.9.2000 Goetz
+ Finished implementation of dump_all_types.
+ Added new testprogram inheritance_example.
+
+ 6.9.2000 Chris
+ Added seven access routines in type.[hc]:
+ get_class_n_member, get_class_n_subtype, get_class_n_supertype,
+ get_strct_n_member, add_strct_member, get_strct_member and set_strct_member.
+ Fixed the type_walk_2 for those seven routines.
+
+ 6.9.2000 Goetz
+ Added irdump routine dump_all_types.
+ Did changes to irprog, type, typewalk to achieve this.
+ typewalk needs to walk along members, sub and supertypes, this
+ is still missing! irdump then needs to output these edges.
+
+======================================================================
+==================== New version: 0.2.5 ==============================
+======================================================================
+
+ 3.9.2000 Goetz
+ Made new Version: 0.2.5
+
+ 15.8.2000 Goetz until 3.9.00
+ Separated irnode.h and many others into two files: one public
+ one private.
+ Added funcionality to extract headers for lib.
+
+ 23.8.2000 Goetz
+ type_dump also dumps irg->ent
+ if_example: corrected nr of locals
+
+ 16.8.2000 Goetz
+ irgopt: Correct copy of self pointer in start block.
+ irgopt: Correct treatment of loops: pre function in walker
+ breaks all possible loops in Phi and Block nodes.
+ irr_loop_example: wrong Return statement
+ Now I fixed all but one error: in memory_example.
+ This error showed a conceptual problem, so I wrote
+ a slightly different algorithm. This now runs for
+ all testprograms.
+ dead_node_example: cse is buggy!! merges start and the
+ following block!
+
+ 15.8.2000 Goetz
+ looking at bug in dead_node_elimination.
+ Following fixes:
+ irnode: all get_..._arr functions changed
+ ircons: new_r_Block: set matured flag.
+ ircons: new_r_SymConst: needs mode_p for linkage_ptr_info.
+ adapted call_str_example to new concepts.
+
+ 2.8.2000 Goetz
+ Implemented simpler Phi construction algorithm that constructs
+ correct code for three_cfpred_example in ircons. This algorithm
+ generates more Id nodes than the original algorithm and therefore
+ is less effective.
+ Also made some changes to optimizations of Not.
+
+ 31.7.2000 Chris
+ Fixed a bug, caused by the recursive use in type.h and entity.h.
+ Deleted the _TYPE_TYPEDEF_ and inserted the _ENTITY_TYPEDEF_ instead.
+ Fixed a problem in if_while testprogram, so it now works.
+
+ 20.7.2000 Goetz
+ Fixed bug in optimize(). Returned Null instead n if
+ get_optimize() == false.
+
+ 19.7.2000 Christian
+ Added some access routines in type.[hc]. Solved a recursive definition
+ of type_class struct, entity struct and type union.
+
+ 18.7.2000 Goetz
+ Separated entity header into pure functional header and header
+ with data types.
+
+ Goetz
+ ... a bunch small changes not documented
+
+ 12.7.2000 Goetz
+ Changed output of oo_prog_example: now uses the internal list
+ of all irgs. Had to implement some of the access routines for
+ that. Also fixed a bug in irdump. Main routines did not use
+ current_ir_graph properly.
+
+ 12.7.2000 Goetz
+ Implemented some missing parts in irgopt.
+ Added field irg to entity. Only valid if entity is a method.
+ Had to resove a cyclic de[endency between irgraph.h and entity.h
+ for this.
+ Added fields sub and super to type_class for inheritance.
+ Added field main_irg to irprog.
+
+ 7.7.2000 Chris
+ Fixed some bugs in irgopt.c
+ Added some missing 'get_new_node' methods, so the new obstack contains
+ the correct nodes.
+
+ 6.7.2000 Chris
+ Renamed ir_vrfy to irn_vrfy and vrfy_graphg to irg_vrfy.
+ Solved some copy'n'paste problems. Deleted most debug-code!
+ Added comments to several files.
+
+ 6.7.2000 Goetz
+ Fixed bug in _r_ constructors for all four Div operations.
+ Fixed bug in turn_into_tuple: didn't remember the block.
+ Tested transform_node.
+
+ 5.7.2000 Goetz
+ Fixed some testprograms to new semantics of firm.
+ Added testprogram global_var_example.
+ Fixed a bug in irop: Size of Sel node was (entity *) instead of
+ sel_attr. Therefor array_heap_example aborted.
+ Also found a missing break in typewalk, case iro_Alloc.
+ Added a construct that unifies all things constructed by the lib
+ and needed to represent a program: irprog.ch
+ This contains a list of all types as well as a list of all ir graphs.
+ I added calls to initialization and constructors so that this is constructed
+ automatically. I changed firm.c, type.c, irgraph.c and ev. more.
+ Removed strange block struct and constructor from ircons.c.
+ Moved routines for automatic Phi construction from irgmod to ircons.
+ Sorted functions in ircons to reflect the different interfaces.
+ Renamed dataseg to globals to be conformant with documentation.
+ Added conservation of current_ir_graph to irgopt.c.
+ Corrected bug in Makefiles: wrong path to directory ./inlude.
+
+ 4.7.2000 Goetz
+ Commented a whole bunch of stuff, e.g. in ircons.h (Procedure to construct)
+ We should change the naming of the Block constructor.
+ Removed acces routines to attr. "closed" of Block.
+ Removed second implementation of new_ir_node from ircons and some comments
+ concerned with the now resolved cyclic dependency.
+ Fixed some bugs in irgopt so that the compilation goes through.
+
+ 29.6.2000 Chris
+ Changed the irnode attribut 'visit' into 'visited'.
+ Added some access functions, like get/set_irn_visit etc.
+
+ 28.6.2000 Chris
+ Renamed some access funtion in irgraph.*.
+ Deleted two global flags (ir_visited and block_visited) from irgraph.*.
+ Added two attributes to the irgraph struct. The visited flags belongs
+ to a ir graph, not to a whole program.
+
+ 26.6.2000 Chris
+ A new optimization has been finished. The dead-node-elimination copies
+ the existing ir graph from one opstack to another. While walking the
+ graph, only the reachable nodes will be copied, so the "dead-nodes"
+ (unreachable in the controlflow) are removed.
+
+ 19.6.2000 Chris
+ Solved some problems in the 'copy_node' function. The in array was not
+ as easy as it seamed.
+
+ 16.6.2000 Chris
+ Wrote a new 'post' funtion, for future use in 'dead-node-elimination'
+ optimization, which is needed in the paramter list of 'irg_walk'.
+
+ 14.6.2000 Chris
+ Moved 'optimze_in_place_wrapper' from iropt.* tothe new files irgopt.*.
+ New functions 'local_optimze_graph' and 'dead_node_elimination' are added,
+ but not finished.
+
+ 31.5.2000 Chris
+ Removed some files from the archive, after dependencies and usage are
+ checked:
+ - 'ir/common/strerror.c'
+ was nowhere used;
+ - 'ir/ident/xx_ident.h'
+ an empty file, only included by 'ident.c', but never used;
+ - 'ir/tv/label.c' and
+ - 'ir/tv/label.h'
+ contained a numeric counter;
+ The files were included in 'tv.h' and implemented in 'tarval.c'. The two
+ functions 'tarval_label' and 'tarval_forall_labeled' were also never used.
+ In the old fiasco compiler, the label thing is used in the backend.
+ Search for 'babil' to see the usage.
+ Also removed the two attributes 'lab' and 'used' in the tarval struct.
+
+ 26.5.2000 Chris
+ Moved the 'new_ir_node' constructor from ircons.* to irnode.* and fixed
+ afterwards some recursive includes, so libfirm works again.
+
+ 2+3.2000 Goetz
+ Did a lot of changes, which I never commented until now (4.7.00).
+
+ * Added new result to Start node: Pointer to global data segment.
+ * Extended Semantics of SymConst node to represent information for the
+ linker.
+ * Added arithmeitc nodes (Shrs, Minus ...)
+
+ Rearranged the directory structure and adjusted the makefiles.
+ The directories contain:
+ ir: everything for the intermediate representation (better: src?)
+ /ir: the ir itself, and standard optimizations.
+ /tv: the target value module
+ /tr: the type and entity representation
+ /adt: abstract data types
+ /common: stuff needed by all other dirs
+ /debug: debugging Unterstuetzung
+ /ident:
+ include: external files needen as includes
+ testprograms: examples to test the lib.
+
+ The makefiles generate files with extension .d that contain the dependencies
+ between the files.
+
15.2.2000 Goetz
Added access routine to attribute link of irnode in irnode.ch.
Added get_negated_pnc to irnode.ch.
10.2.2000 Goetz
Changed tests from comparing enums to comparing pointers. This is more
- efficient and reads better. e.g., instead get_irn_opcode == irm_And
+ efficient (is it?) and reads better. e.g., instead get_irn_opcode == irm_And
now get_irn_op == op_And
10.2.2000 Goetz