doxygen comment updated
[libfirm] / ir / ir / irprog.c
index 09e3226..42d23d7 100644 (file)
@@ -6,7 +6,7 @@
  * Modified by:
  * Created:     2000
  * CVS-ID:      $Id$
- * Copyright:   (c) 2000-2003 Universität Karlsruhe
+ * Copyright:   (c) 2000-2007 Universität Karlsruhe
  * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
  */
 
@@ -25,6 +25,7 @@
 #include "obst.h"
 #include "typegmod.h"
 #include "irop_t.h"
+#include "irmemory.h"
 
 /** The name of the Global Type. */
 #define GLOBAL_TYPE_NAME "GlobalType"
@@ -73,10 +74,14 @@ static ir_prog *complete_ir_prog(ir_prog *irp) {
   remove_irp_type(irp->glob_type);
   remove_irp_type(irp->tls_type);
 
-  /* set these flags for debugging */
+  /* Set these flags for debugging. */
   irp->glob_type->flags |= tf_global_type;
   irp->tls_type->flags  |= tf_tls_type;
 
+  /* The global type is a class, but we cannot derive from it, so set
+     the final property to assist optimizations that checks for it. */
+  set_class_final(irp->glob_type, 1);
+
   irp->const_code_irg   = new_const_code_irg();
 
   irp->phase_state      = phase_building;
@@ -84,6 +89,7 @@ static ir_prog *complete_ir_prog(ir_prog *irp) {
   irp->ip_outedges      = NULL;
   irp->trouts_state     = outs_none;
   irp->class_cast_state = ir_class_casts_transitive;
+  irp->globals_adr_taken_state = ir_address_taken_not_computed;
 
   return irp;
 }