changed make run
[libfirm] / Changes
diff --git a/Changes b/Changes
index 7070690..b133a22 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,295 @@
+  17.4.2001 Boris
+  Changed Makefile/MakeTargets to install headers and libraries
+  seperately.
+
+  28.3.2001 Boris
+  Changed Makefile and Configure scripts to produce a proper tar file
+  for distribution (libfirm-VERSION.tar)
+  Use 'make distrib' instead of 'make dist'
+
+  14.3.2001 Goetz
+  Changed implementation of tr module.  With this I also changed the
+  interface!!  Type casts are unnecessary now, but some access funcions
+  differ.
+
+
+======================================================================
+==================== New version: 0.3.0 ==============================
+======================================================================
+
+  14.3.2001 Boris
+  added file TODO
+
+  14.3.2001 Boris
+  added creation of a tar archive for distribution
+  replaced ir/.dummy.in by ir/Makefile.in
+
+  13.3.2001 Goetz
+  Changed equivalent_node() and copy_preds() so that the end block
+  is not optimized away if it has no real predecessors.  This fixes
+  the problem with the while examples.
+  Added while_example in Makefile
+
+  12.3.2001 Goetz
+  Fooled around with if_while_example: Why does cse make it abort?
+  Cse removes path to End node, Bad remains as pred of Endblock.
+  The block walker can't deal with this.
+  Made new example with only loop:  while_example.
+
+  12.3.2001 Boris
+  added auto documentation in Makefiles, configure, etc
+  example in ir/ir/ircons.c - much must be added
+  creation of documentation by 'make autodoc' in architecture directory
+
+  5.3.2001 Boris
+  added lots of #ifdef HAVE_CONFIG_G #include "config.h" #endif
+  replaced some C++ style comments (//) by standard C comments /**/
+  added autoconf stuff
+  worked this night:
+       - configure (with some features, see --help for more)
+       - make [depend | tags | install]
+       - make [run] in testprograms
+  did not work:
+       - compilation on SunOS
+       - make dist
+       - automatic call of autoconf if required
+
+  5.3.2001 Goetz
+  More colours in vcg output.
+  Fixed bug:  cse found that start block equals it's
+  first successor as both have the Start block as predecessor.
+  This only happens for local_optimize_graph() as during construction
+  the Start block is not entered in the value table.
+  Changed implementation:  irgmod:  local_optimize_graph() did not
+  empty the hash table with the irnodes for cse.  This might cause that
+  cse turns up with a node that seems better but was removed from the
+  graph in an earlier optimization phase.
+  Removed old #if 1 from ircons.c
+  Commented in call of optimization for Block nodes in irgopt.c, copy_preds():
+  Optimizes blocks that had bad predecessors.
+  Same for Phi nodes.
+
+
+  27.2.2001 Goetz
+  Moved struct from irprog.h to irprog_t.h, same for irmode.h.
+  Added a module deb_info in debug.h.  Adapted makefile.  Added example
+  use in iropt.h.
+  Removed use of debug.h in ident.c. Now debug.c|h can be moved to
+  /adt/.
+  Removed inabled code for dead node elimination in irgopt.h.
+  Renamed some missnamed access routines (_of_).  Macros with old names
+  are in old_fctnames.h.
+  Edited makefiles to remove #* and *.flc.
+
+  ??.2.2001 Goetz
+  Some minor bugfixes...
+
+  25.1.2001 Goetz
+  After compacting of in arrays in dead_node_elimination
+  merge blocks and remove Phis with one pred.
+
+  24.1.2001 Goetz
+  Freeing of obstack in dead_node_elimination commented in.
+  Compacting in arrays of Block and Phi nodes in dead_node_
+  elimination.
+  Some more changes...
+
+  15.01.2001 Goetz
+  added set/get_SymConst_type_or_id in irnode.h
+  added field offset to entity in entity.h
+  added field size to type_class in type.h
+  include "gmp.h" in tv.h with "" instead <>
+
+  12.01.2001 Goetz
+  Some changes to make the lib better portable
+
+  29.12.2000 Goetz
+  Initialize max_node_nr in irprog.
+
+  27.12.2000 Goetz
+  Now outputs warning if faulty type in irdump, dump_type_info.
+  Explicit string termination in irdump, vcg_open.
+
+  20.12.2000 Goetz
+  Added external to declaration of irp.
+  Added typedef before pns and pnc_number.
+  irmode.c, init_mode(): We need to memset all new modes as
+  tarval_vrfy reads fields before they are initialized: It
+  compares to min/max when tarvals for min/max are allocated!
+
+  18.12.2000 Goetz
+  Changed parameter of Methods in type.h and type.c from
+  class to clss.  Class is a C++ keyword.
+
+  10.12.2000 Goetz
+  Changed some testprograms to accomodate Uebprakt.
+
+  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 dependences and usage are checked.
+  Removed some files from the archive, after dependencies and usage are
+  checked:
   - 'ir/common/strerror.c'
   was nowhere used;
   - 'ir/ident/xx_ident.h'
   - 'ir/tv/label.c' and
   - 'ir/tv/label.h'
   contained a numeric counter;
-  The files were included in 'tv.h' and implemented in the 'tarval struct'.
-  but this attribute was never used. 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.
+  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.
 
-*** Goetz has to complete this lines - several changes are not annotated
+  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.
 
   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