doxygen comments extended
[libfirm] / ir / ana / rta.c
index fc1673e..bcee4f3 100644 (file)
@@ -7,7 +7,7 @@
  * Author:      Florian
  * Modified by:
  * Created:     09.06.2002
- * CVS-ID:      $$
+ * CVS-ID:      $Id$
  * Copyright:   (c) 1999-2004 Universität Karlsruhe
  * Licence:     This file is protected by GPL -  GNU GENERAL PUBLIC LICENSE.
  */
 #include "irvrfy.h"
 #include "trvrfy.h"
 
-# define TRUE 1
-# define FALSE 0
+# ifndef TRUE
+#  define TRUE 1
+#  define FALSE 0
+# endif /* not defined TRUE */
 
 /* flags */
 static int verbose     = 0;
@@ -78,7 +80,7 @@ static ir_graph *get_implementing_graph (entity *method)
 
   /* GL   this is not valid in our remove irg algorithm ... which we removed by now ...  */
   assert(get_entity_peculiarity(method) == peculiarity_description
-        || graph == get_entity_irg(get_SymConst_entity(get_atomic_ent_value(method))));
+     || graph == get_entity_irg(get_SymConst_entity(get_atomic_ent_value(method))));
 
   /* we *must* always return a graph != NULL, *except* when we're used
      inside remove_irg or force_description */
@@ -184,21 +186,21 @@ static void rta_act (ir_node *node, void *env)
     /* CALL SYMCONST */
     } else if (iro_SymConst == get_irn_opcode (ptr)) {
       if (get_SymConst_kind(ptr) == symconst_addr_ent) {
-       ent = get_SymConst_entity (ptr);
-       ir_graph *graph = get_entity_irg (ent);
-       if (graph) {
-         *change |= add_graph (graph);
-       } else {
-         /* it's an external allocated thing. */
-       }
+    ent = get_SymConst_entity (ptr);
+    ir_graph *graph = get_entity_irg (ent);
+    if (graph) {
+      *change |= add_graph (graph);
+    } else {
+      /* it's an external allocated thing. */
+    }
       } else if (get_SymConst_kind(ptr) == symconst_addr_name) {
-       /* If this SymConst refers to a method the method is external_visible
-          and therefore must be considered live anyways. */
-       if (get_SymConst_name(ptr) != new_id_from_str("iro_Catch"))
-         assert (ent && "couldn't determine entity of call to symConst");
+    /* If this SymConst refers to a method the method is external_visible
+       and therefore must be considered live anyways. */
+    if (get_SymConst_name(ptr) != new_id_from_str("iro_Catch"))
+      assert (ent && "couldn't determine entity of call to symConst");
       } else {
-       /* other symconst. */
-       assert(0 && "This SymConst can not be an address for a method call.");
+    /* other symconst. */
+    assert(0 && "This SymConst can not be an address for a method call.");
       }
 
     /* STRANGE */
@@ -360,8 +362,7 @@ static void init_tables (void)
   int i, n_globs = get_class_n_members(get_glob_type());
 
   _live_classes = eset_create ();
-
-  _live_graphs = eset_create ();
+  _live_graphs  = eset_create ();
 
   if (get_irp_main_irg ()) {
     eset_insert (_live_graphs, get_irp_main_irg ());
@@ -375,9 +376,10 @@ static void init_tables (void)
   }
 }
 
-/* Initialise the RTA data structures, and perform RTA.
-   @param   do_verbose If == 1, print statistics, if > 1, chatter about every detail
-*/
+/*
+ * Initialise the RTA data structures, and perform RTA.
+ * do_verbose If == 1, print statistics, if > 1, chatter about every detail
+ */
 void rta_init (int do_verbose)
 {
   int n_runs = 0;
@@ -412,19 +414,23 @@ void rta_init (int do_verbose)
 # endif /* defined DEBUG_libfirm */
 }
 
-
-void make_entity_to_description(type_or_ent *tore, void *env) {
+/**
+ * walker for all types and entities
+ *
+ * Changes the peculiarity of entities that represents
+ * dead graphs to peculiarity_description.
+ */
+static void make_entity_to_description(type_or_ent *tore, void *env) {
   if (get_kind(tore) == k_entity) {
     entity *ent = (entity *)tore;
 
     if ((is_method_type(get_entity_type(ent)))                        &&
-       (get_entity_peculiarity(ent) != peculiarity_description)      &&
-       (get_entity_visibility(ent)  != visibility_external_allocated)   ) {
+    (get_entity_peculiarity(ent) != peculiarity_description)      &&
+    (get_entity_visibility(ent)  != visibility_external_allocated)   ) {
       ir_graph *irg = get_entity_irg(get_SymConst_entity(get_atomic_ent_value(ent)));
       if (!eset_contains (_live_graphs, irg)) {
-       set_entity_peculiarity(ent, peculiarity_description);
-       set_entity_irg(ent, NULL);
-       set_atomic_ent_value(ent, new_Const(mode_P, get_tarval_null(mode_P)));
+    set_entity_peculiarity(ent, peculiarity_description);
+    set_entity_irg(ent, NULL);
       }
     }
   }
@@ -460,7 +466,6 @@ void rta_delete_dead_graphs (void)
     }
   }
 
-  current_ir_graph = get_const_code_irg();
   type_walk(make_entity_to_description, NULL, NULL);
   for (i = 0; i < n_dead_graphs; ++i) {
     remove_irp_irg (dead_graphs[i]);
@@ -502,11 +507,7 @@ int  rta_is_alive_class  (type   *clazz)
 /* Say whether this graph might be run at any time in the program: */
 int  rta_is_alive_graph (ir_graph *graph)
 {
-  if (eset_contains (_live_graphs, graph)) {
-    return (TRUE);
-  }
-
-  return (FALSE);
+  return eset_contains (_live_graphs, graph);
 }
 
 /* dump our opinion */
@@ -532,6 +533,12 @@ void rta_report (void)
 
 /*
  * $Log$
+ * Revision 1.25  2004/10/18 12:47:08  liekweg
+ * avoid warning
+ *
+ * Revision 1.24  2004/09/24 13:59:04  beck
+ * fixed doxygen comments, removed initialization for description entities
+ *
  * Revision 1.23  2004/08/19 16:51:02  goetz
  * fixed some errors, pushed closer to inteded firm semantics
  *