*** empty log message ***
[libfirm] / Changes
diff --git a/Changes b/Changes
index 889c786..34baf00 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,3 +1,227 @@
+  29.8.2001 Goetz
+  Added routine to free irgraphs.
+
+  17.7.2001 Goetz
+  Improved add routines to sub, supertype in type.c
+
+  12.r7.2001 Goetz
+  Added implementation of overwrites stuff.
+
+  11.7.2001 Goetz
+  Implemented stuff to change the type graph.  See
+  typegmod.h and tpop.h for basic documentation of the change.
+  There now exists a type of kind type_id.  If this appears
+  externally this is a bug.
+
+  9.7.2001 Goetz
+  Added some new access routines to types.
+  List of overwritten fields for entities.
+  Removed a bug in irnode.
+
+  4.7.2001 Goetz
+  Added a routine to set the mangled entity name.
+  Added two routines to copy entites.
+
+  3.7.2001 Goetz
+  Entities now have two more flags, for visibility and allocation mode.
+  Types that have a layout have a flag indicating whether the layout is
+  fixed.
+
+  25.6.2001 Goetz
+  We distinguish three kinds of Cond nodes.  These can be distinguished
+  by the mode of the selector operand and an internal flag of type cond_kind.
+  First we distinguish binary Conds and switch Conds.
+  A binary Cond has as selector a boolean value.  Proj(0) projects the control
+  flow for case "False", Proj(1) the control flow for "True".  A binary Cond
+  is recognized by the boolean selector.
+  The switch Cond has as selector an unsigned integer.  It produces as result
+  an n+1 Tuple (cf0, ... , cfn) of control flows.
+  We differ two flavours of this Cond.  The first, the dense Cond, passes
+  control along output i if the selector value is i, 0 <= i <= n.  If the
+  selector value is >n it passes control along output n.
+  The second Cond flavor differes in the treatment of cases not specified in
+  the source program.  It magically knows about the existence of Proj nodes.
+  It only passes control along output i, 0 <= i <= n, if a node Proj(Cond, i)
+  exists.  Else it passes control along output n (even if this Proj does not
+  exist.)  This Cond we call "fragmentary".  There is a special constructor
+  new_defaultProj that automatically sets the flavor.
+  The two switch flavors are distinguished by a flag of type cond_kind.
+  Default flavor is "dense"
+
+  20.6.2001 Goetz
+  Extended iropt, tv.
+  tv now implements Minus, Abs.
+  iropt now optimizes these and Div, Mod, Quot, DivMod.
+  Still missing: Shrs, Rot.
+  tarval_shr somtimes performs shrs, depending on the compiler/system!!
+  If the ArmRoq implementation is faulty there might appear errors.
+
+  20.6.2001 Goetz
+  Changed ircons: If undefined values are used the Phi construction
+  inserts a constant with value tarval_bad.
+
+  19.6.2001 Goetz
+  Changed array bounds in type.h to ir_node*.  This allows to
+  construct array bounds that are complex constant expressions
+  simpler.  Further dynamic array bounds can be displayed.
+  Comment in ircons.c extended: undefined values in start_block.
+
+  7.6.2001 Goetz
+  ifdef'ed all uses of gmp in tv.c away.  Optimizations for
+  mode_Z no more supported, as well as constants of that mode.
+
+  7.6.2001 Goetz
+  Dokumentation in ir_dump
+  Habe Routinen fuer einzelne Knoten/Kanten aus header entfernt:
+  Benutzen globale Variable die nicht oeffentlich zugaenglich ist.
+
+  28.5.2001 Goetz
+  We need an entity for the array elements for the Sel nodes.  This
+  entity should be stored in the array type.  Changed constructor
+  parameters: include array element type.  Entity for elements is built
+  automatically now.
+
+  28.5.2001 Goetz
+  Removed bug in tv.c.
+  Faulty use of va_arg, became visible with new, stricter gcc 2.96.
+
+  23.5.2001 Goetz
+  Added list of member entites to union.  unioned_types and delimiters
+  are superfluous now -- removed.
+  Rationale: we want to express selection of a union member as a Sel
+  node. for this we need to have entities.  The entities contain the
+  unioned type and have as name the delimiters...
+
+  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,