just to creste ir ir/ directory
[libfirm] / ir / tr / type.h
index 50a25b0..9c749ac 100644 (file)
@@ -191,11 +191,11 @@ typedef struct entity entity;
 #endif
 
 /* for recursive type definiton */
-//#ifndef _TYPE_TYPEDEF_
-//#define _TYPE_TYPEDEF_
+/*#ifndef _TYPE_TYPEDEF_ */
+/*#define _TYPE_TYPEDEF_ */
 /* to resolve recursion between entity.h and irgraph.h */
 typedef union type type;
-//#endif
+/*#endif */
 
 
 /* visited flag to traverse the type information */
@@ -217,6 +217,10 @@ struct type_class {
   type_class **supertypes; /* direct supertypes */
   unsigned long visit;     /* visited counter for walks of
                              the type information */
+  int size;                /* Size of an entity of this type.  This is determined
+                             when fixing the layout of this class.  Size must be
+                             given in bytes. */
+
 };
 
 
@@ -225,28 +229,32 @@ type_class *new_type_class (ident *name);
 
 /* manipulate fields of type_class */
 
-const char  *get_class_name  (type_class *class);
-ident       *get_class_ident (type_class *class);
+const char  *get_class_name  (type_class *clss);
+ident       *get_class_ident (type_class *clss);
 
 /* Not necessary now!
-void   set_class_name  (type_class *class, char *name);
-void   set_class_ident (type_class *class, ident* ident);
+void   set_class_name  (type_class *clss, char *name);
+void   set_class_ident (type_class *clss, ident* ident);
 */
 
-void    add_class_member (type_class *class, entity *member);
-int     get_class_n_member (type_class *class);
-entity *get_class_member (type_class *class, int pos);
-void    set_class_member (type_class *class, entity *member, int pos);
+void    add_class_member (type_class *clss, entity *member);
+int     get_class_n_member (type_class *clss);
+entity *get_class_member (type_class *clss, int pos);
+void    set_class_member (type_class *clss, entity *member, int pos);
+
+void        add_class_subtype (type_class *clss,type_class *subtype);
+int         get_class_n_subtype (type_class *clss);
+type_class *get_class_subtype (type_class *clss, int pos);
+void        set_class_subtype (type_class *clss, type_class *subtype, int pos);
+
+void        add_class_supertype (type_class *clss, type_class *supertype);
+int         get_class_n_supertype (type_class *clss);
+type_class *get_class_supertype (type_class *clss, int pos);
+void        set_class_supertype (type_class *clss, type_class *supertype, int pos);
 
-void        add_class_subtype (type_class *class,type_class *subtype);
-int         get_class_n_subtype (type_class *class);
-type_class *get_class_subtype (type_class *class, int pos);
-void        set_class_subtype (type_class *class, type_class *subtype, int pos);
+int         get_class_size (type_class *clss);
+void        set_class_size (type_class *clss, int size);
 
-void        add_class_supertype (type_class *class, type_class *supertype);
-int         get_class_n_supertype (type_class *class);
-type_class *get_class_supertype (type_class *class, int pos);
-void        set_class_supertype (type_class *class, type_class *supertype, int pos);
 
 /*******************************************************************/
 /** TYPE_STRCT                                                   **/
@@ -499,7 +507,15 @@ union type {
 };
 
 
-int is_type(void *thing);
+int is_type            (void *thing);
+int is_type_class      (void *thing);
+int is_type_strct      (void *thing);
+int is_type_method     (void *thing);
+int is_type_union      (void *thing);
+int is_type_array      (void *thing);
+int is_type_pointer    (void *thing);
+int is_type_enumeration(void *thing);
+int is_type_primitive  (void *thing);