projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
doxygen comment updated
[libfirm]
/
ir
/
ir
/
irprog.c
diff --git
a/ir/ir/irprog.c
b/ir/ir/irprog.c
index
09e3226
..
42d23d7
100644
(file)
--- a/
ir/ir/irprog.c
+++ b/
ir/ir/irprog.c
@@
-6,7
+6,7
@@
* Modified by:
* Created: 2000
* CVS-ID: $Id$
* Modified by:
* Created: 2000
* CVS-ID: $Id$
- * Copyright: (c) 2000-200
3
Universität Karlsruhe
+ * Copyright: (c) 2000-200
7
Universität Karlsruhe
* Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
*/
* 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 "obst.h"
#include "typegmod.h"
#include "irop_t.h"
+#include "irmemory.h"
/** The name of the Global Type. */
#define GLOBAL_TYPE_NAME "GlobalType"
/** 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);
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;
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;
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->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;
}
return irp;
}