This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Remove fold_obj_type_ref hook, update OBJ_TYPE_REF comment


Hi,

this is a short followup to my OBJ_TYPE_REF folding patch.  It removes
the now unused fold_obj_type_ref langhook and updates the comment on
OBJ_TYPE_REF in tree.def to document what operands the middle-end now
expects in the reference.

Bootstrapped and tested on x86-64-linux.  OK for trunk?

Thanks,

Martin


2010-05-13  Martin Jambor  <mjambor@suse.cz>

	* cp/cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove both its undef
	and define.

	* langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
	(LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
	* langhooks.h (struct lang_hooks_for_decls): Removed field
	fold_obj_type_ref.
	* tree.c (free_lang_data): Remove assignment to
	lang_hooks.fold_obj_type_ref.
	* tree.def (OBJ_TYPE_REF): Update comment.

Index: icln/gcc/cp/cp-lang.c
===================================================================
--- icln.orig/gcc/cp/cp-lang.c
+++ icln/gcc/cp/cp-lang.c
@@ -77,8 +77,6 @@ static tree cp_eh_personality (void);
 #define LANG_HOOKS_DECL_PRINTABLE_NAME	cxx_printable_name
 #undef LANG_HOOKS_DWARF_NAME
 #define LANG_HOOKS_DWARF_NAME cxx_dwarf_name
-#undef LANG_HOOKS_FOLD_OBJ_TYPE_REF
-#define LANG_HOOKS_FOLD_OBJ_TYPE_REF cp_fold_obj_type_ref
 #undef LANG_HOOKS_INIT_TS
 #define LANG_HOOKS_INIT_TS cp_init_ts
 #undef LANG_HOOKS_EH_PERSONALITY
Index: icln/gcc/langhooks-def.h
===================================================================
--- icln.orig/gcc/langhooks-def.h
+++ icln/gcc/langhooks-def.h
@@ -133,7 +133,6 @@ extern void lhd_omp_firstprivatize_type_
 
 /* Hooks for tree gimplification.  */
 #define LANG_HOOKS_GIMPLIFY_EXPR lhd_gimplify_expr
-#define LANG_HOOKS_FOLD_OBJ_TYPE_REF NULL
 
 /* Tree dump hooks.  */
 extern bool lhd_tree_dump_dump_tree (void *, tree);
@@ -291,7 +290,6 @@ extern void lhd_end_section (void);
   LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS, \
   LANG_HOOKS_FUNCTION_PARAMETER_PACK_P, \
   LANG_HOOKS_GIMPLIFY_EXPR, \
-  LANG_HOOKS_FOLD_OBJ_TYPE_REF, \
   LANG_HOOKS_BUILTIN_FUNCTION, \
   LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE, \
   LANG_HOOKS_INIT_TS,          \
Index: icln/gcc/langhooks.h
===================================================================
--- icln.orig/gcc/langhooks.h
+++ icln/gcc/langhooks.h
@@ -417,10 +417,6 @@ struct lang_hooks
      enum gimplify_status, though we can't see that type here.  */
   int (*gimplify_expr) (tree *, gimple_seq *, gimple_seq *);
 
-  /* Fold an OBJ_TYPE_REF expression to the address of a function.
-     KNOWN_TYPE carries the true type of the OBJ_TYPE_REF_OBJECT.  */
-  tree (*fold_obj_type_ref) (tree, tree);
-
   /* Do language specific processing in the builtin function DECL  */
   tree (*builtin_function) (tree decl);
 
Index: icln/gcc/tree.c
===================================================================
--- icln.orig/gcc/tree.c
+++ icln/gcc/tree.c
@@ -5038,7 +5038,6 @@ free_lang_data (void)
   lang_hooks.dwarf_name = lhd_dwarf_name;
   lang_hooks.decl_printable_name = gimple_decl_printable_name;
   lang_hooks.set_decl_assembler_name = lhd_set_decl_assembler_name;
-  lang_hooks.fold_obj_type_ref = gimple_fold_obj_type_ref;
 
   /* Reset diagnostic machinery.  */
   diagnostic_starter (global_dc) = default_diagnostic_starter;
Index: icln/gcc/tree.def
===================================================================
--- icln.orig/gcc/tree.def
+++ icln/gcc/tree.def
@@ -432,16 +432,13 @@ DEFTREECODE (ALIGN_INDIRECT_REF, "align_
    or 0 if the alignment is unknown.  */
 DEFTREECODE (MISALIGNED_INDIRECT_REF, "misaligned_indirect_ref", tcc_reference, 2)
 
-/* Used to represent lookup of runtime type dependent data.  Often this is
-   a reference to a vtable, but it needn't be.  Operands are:
+/* Used to represent lookup in a virtual method table which is dependent on
+   the runtime type of an object.  Operands are:
    OBJ_TYPE_REF_EXPR: An expression that evaluates the value to use.
    OBJ_TYPE_REF_OBJECT: Is the object on whose behalf the lookup is
    being performed.  Through this the optimizers may be able to statically
    determine the dynamic type of the object.
-   OBJ_TYPE_REF_TOKEN: Something front-end specific used to resolve the
-   reference to something simpler, usually to the address of a DECL.
-   Never touched by the middle-end.  Good choices would be either an
-   identifier or a vtable index.  */
+   OBJ_TYPE_REF_TOKEN: An integer index to the virtual method table.  */
 DEFTREECODE (OBJ_TYPE_REF, "obj_type_ref", tcc_expression, 3)
 
 /* Constructor: return an aggregate value made from specified components.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]