*** empty log message ***
[libfirm] / Changes
diff --git a/Changes b/Changes
index 1fcba10..0c0191c 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,3 +1,194 @@
+  8.3. Goetz
+  Implemented cf optimizations.
+  Checked compiler flags -- sorted better to fit optimizations.
+
+  4.3. Goetz
+  Bugfix in irdom.
+  Implemented code placement.
+
+  28.2 Goetz
+  block walk in irouts.
+  irdom implemented: dominator information.
+
+  25.2. Goetz
+  Bugfix Optmierung Binops mit mode Tupel.
+
+  22.2. Goetz
+  irgopt: inline_small_irgs implemented
+
+  30.1. - 20.2. Goetz
+  Bugfixes, some access functions ...
+
+  29.1.2002 Goetz
+  New directory: ana for analyses.  Adapted configure/makefiles
+  implemented irout: backedges.  Added one field to ir_graph, one to ir_node.
+  Implemented state management for irgraphs:  see irgraph.h.
+  Must now call finalize_cons() after graph construction!!
+
+  24.1.2002 Goetz
+  Procedure global cse.
+  Flag pinned in irop, irgraph.
+  Global cse in irop, setting the irgraph flag.
+  Example programs: Endless_loop.c. global_cse.c.
+  Adapted irdump.
+
+  23.1.2002 Goetz
+  Implemented support for endless loops:
+  Adapted End node.
+  Adapted Phi constructors so that memory phis are added.
+  Adapted Cond optimization: add block to End.
+  Adapted dead node elimination: compation of Ends predecessors
+  Adapted inlineing:  remember keepalives of inlined graph.
+  Added informative strings to asserts in irvrfy.
+
+  21.1.2002 Goetz
+  Added volatile flag to entity, order flag to array.
+  Added a set of assertions.
+
+  17.1.2002 Goetz
+  Added access function set_class_members()
+
+  21.12.2001 Goetz
+  Asserts in irvrfy that verify the mode of Proj nodes.  For Start,
+  Call, Return they check the corresponding function type!  Corrected
+  bugs in testprograms.
+  Some asserts for legal values of 'pos' arguments in type/entity
+  access routines.
+
+  20.12.2001 Goetz
+  Some access routines for visited flags in entity.h, irnode.h,
+  bug in oo_program_example.
+
+  17.12.2001 Boris
+  Removed all obsolete Makefiles
+
+  10.12.2001 Goetz
+  Added support for constant entities.  A new example program illustrates
+  their use.  Extended dumper routines to dump constant values.
+
+  30.11.2001 Goetz
+  Extendend "comfortable" construction interface by some methods
+  serving as simple shortcuts.
+
+  30.11.2001 Goetz
+  Added a class type to irgs.  This class type is to be used as owner
+  for local entities of the procedure. This are all entities allocated
+  for each execution of the procedure.
+  The class type is allocated automatically by new_ir_graph().  Access
+  routines to get this type are in irgraph.h.
+  We chose a class type as this allows to represent "inner" procedures
+  as, e.g., in Pascal.
+  Adapted array-stack-example.
+
+  29.11.2001 Goetz
+  irdump outputs nodeids instead of pointers for labels of nodes.
+  With a preprocessor flag in common.h this can be turned off.
+
+  28.11.2001 Boris
+  Added an Id tag to every .c and .h file
+
+  20.11.2001 Goetz
+  Changed SSA constuction for exception control flow.
+  If PRECISE_EXC_CONTEXT is used Phi nodes will use the values
+  valid when the execption operation was allocated.  This increases
+  the memory consuption of the construction algorithm by
+  n_loc * #fragile_ops.
+
+  19.11.2001 Goetz
+  Added method to replace in array of a node in irnode.c/h
+  Added functionality to irgmod:
+   * collect all Phi nodes as link-list in the Blocks link field
+   * collect all Proj nodes as link-list in node producing the tuple.
+   * Seperate a Block into two
+  Added inlining transformation in irgopt.h
+  Improved output of dump_ir_block_graph.  Now also dumps nodes that
+  don't belong to a block.
+  Added flag opt_unreachable_code, opt_inline.
+  Changed irvrfy so that it accepts nodes with Bad predecessors.
+
+  19.10.2001 Boris
+  renamed get_type_nameid to get_type_ident
+
+  10.9.2001 Goetz
+  Bugfix: dead node elimination did not replace the hash table
+  for cse.
+
+  29.8.2001 Goetz
+  Added routine remove_irp_irg.
+  Changed comment to free_ir_graph.
+
+  29.8.2001 Goetz
+  Added routine to free irgraphs.
+
+  17.7.2001 Goetz
+  Improved add routines to sub, supertype in type.c
+
+  12.7.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: