pseudo irgs
authorGötz Lindenmaier <goetz@ipd.info.uni-karlsruhe.de>
Thu, 11 Nov 2004 12:27:43 +0000 (12:27 +0000)
committerGötz Lindenmaier <goetz@ipd.info.uni-karlsruhe.de>
Thu, 11 Nov 2004 12:27:43 +0000 (12:27 +0000)
[r4377]

ir/tr/entity_t.h
ir/tr/trvrfy.c
ir/tv/Makefile.in

index 41309a7..64d3684 100644 (file)
@@ -43,6 +43,7 @@
 # include "entity.h"
 # include "typegmod.h"
 # include "mangle.h"
+# include "pseudo_irg.h"
 
 
 /** A path in a compund graph. */
@@ -284,6 +285,8 @@ static INLINE ir_graph *
 __get_entity_irg(const entity *ent) {
   assert(ent && ent->kind == k_entity);
   assert(ent == unknown_entity || is_method_type(ent->type));
+  if (!get_visit_pseudo_irgs() && ent->irg && is_pseudo_ir_graph(ent->irg))
+    return NULL;
   return ent->irg;
 }
 
index 9a8b8aa..3ca251c 100644 (file)
@@ -174,6 +174,8 @@ static int check_entity(entity *ent) {
     return error_const_on_wrong_irg;
   }
 
+  int rem_vpi = get_visit_pseudo_irgs();
+  set_visit_pseudo_irgs(1);
   if ((get_entity_peculiarity(ent) == peculiarity_existent) &&
       (get_entity_visibility(ent) != visibility_external_allocated) &&
       (is_method_type(get_entity_type(ent)))                &&
@@ -181,6 +183,7 @@ static int check_entity(entity *ent) {
     assert(0 && "Method ents with pec_exist must have an irg");
     return error_existent_entity_without_irg;
   }
+  set_visit_pseudo_irgs(rem_vpi);
 
   if (get_entity_peculiarity(ent) == peculiarity_inherited) {
     entity *impl = get_SymConst_entity(get_atomic_ent_value(ent));
index cf9e679..f30f87d 100644 (file)
@@ -23,9 +23,9 @@ SOURCES += Makefile.in tv.c tv_t.h strcalc.c strcalc.h fltcalc.c fltcalc.h
 
 include $(topdir)/MakeRules
 
-CPPFLAGS += -I$(top_srcdir)/ir/common -I$(top_srcdir)/ir/tr -I$(top_srcdir)/ir/adt   \
-           -I$(top_srcdir)/ir/ident  -I$(top_srcdir)/ir/ir -I$(top_srcdir)/ir/debug \
-           -I$(top_srcdir)/ir/st     -I$(top_srcdir)/ir/ana
+CPPFLAGS += -I$(top_srcdir)/ir/common -I$(top_srcdir)/ir/tr  -I$(top_srcdir)/ir/adt   \
+           -I$(top_srcdir)/ir/ident  -I$(top_srcdir)/ir/ir  -I$(top_srcdir)/ir/debug \
+           -I$(top_srcdir)/ir/st     -I$(top_srcdir)/ir/ana -I$(top_srcdir)/ir/external
 
 tv.o: tv.h tv.c fltcalc.h fltcalc.c strcalc.h strcalc.c