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]

Better varpool patch


Hi,
my variable pool patch changed behaviour of wrapup_global_declarations.
I assumed that frontend will like to register the declarations himself
without deferring them, but now I notice that this mechanizm is used for
various funny semantics - like forward declarations and such, so I
prevent the behavious and simply replace test for TREE_ASM_WRITTEN by
test on whether the variable is already in the database.

I also cleaned up way the queue is managed and killed bogus
DECL_DEFER_OUTPUT checks like in the previous patch.

The code finds some positives (dead global variables) even during GCC
bootstrap so I will send a patch for warning and fix for these in
separate patch.

Regtested/bootstrapped i386 with the previous patch. OK?

Honza

Sun Jun 22 02:13:41 CEST 2003  Jan Hubicka  <jh@suse.cz>
	* Makefile.in (varpool.o): New object.
	(cgraphunit.o, toplev.o, varasm.o): Depend on varpool.h
	* cgraphunit.c: (cgraph_finalize_compilation_unit): Assemble pending
	decls.
	(record_call_1): Record needed variables.
	* toplev.c: Include varpool.h
	(wrapup_global_declarations): Do not rely on TREE_ASM_WRITEN in varpool
	mode.
	(compile_file): assemble pending decls.
	(rest_of_decl_copmilation): Add variable into varpool in unit-at-a-time
	mode.
	* varasm.c: Include varpool.h
	(assemble_name): Mark varpool node as needed.
	* varpool.c: New.
	* varpool.h: New.
diff -Nrc3p gcc.tmp/cgraphunit.c gcc/cgraphunit.c
*** gcc.tmp/cgraphunit.c	Sun Jun 22 02:08:31 2003
--- gcc/cgraphunit.c	Sun Jun 22 02:10:30 2003
*************** Software Foundation, 59 Temple Place - S
*** 33,38 ****
--- 33,39 ----
  #include "debug.h"
  #include "target.h"
  #include "cgraph.h"
+ #include "varpool.h"
  #include "diagnostic.h"
  
  static void cgraph_expand_functions PARAMS ((void));
*************** record_call_1 (tp, walk_subtrees, data)
*** 98,103 ****
--- 94,101 ----
       int *walk_subtrees;
       void *data;
  {
+   if (TREE_CODE (*tp) == VAR_DECL && (TREE_STATIC (*tp) || DECL_EXTERNAL (*tp)))
+     varpool_mark_needed_node (varpool_node (*tp));
    /* Record dereferences to the functions.  This makes the functions
       reachable unconditionally.  */
    if (TREE_CODE (*tp) == ADDR_EXPR)
*************** cgraph_finalize_compilation_unit ()
*** 147,152 ****
--- 147,154 ----
    struct cgraph_node *node;
    struct cgraph_edge *edge;
  
+   varpool_assemble_pending_decls ();
+ 
    if (!quiet_flag)
      {
        fprintf (stderr, "\n\nInitial entry points:");
*************** cgraph_finalize_compilation_unit ()
*** 191,196 ****
--- 193,199 ----
              cgraph_mark_needed_node (edge->callee, 0);
  	}
        node->lowered = true;
+       varpool_assemble_pending_decls ();
      }
    /* Collect entry points to the unit.  */
  
diff -Nrc3p gcc.tmp/toplev.c gcc/toplev.c
*** gcc.tmp/toplev.c	Sun Jun 22 01:50:24 2003
--- gcc/toplev.c	Sat Jun 21 19:32:56 2003
*************** Software Foundation, 59 Temple Place - S
*** 76,81 ****
--- 76,82 ----
  #include "cfgloop.h"
  #include "hosthooks.h"
  #include "cgraph.h"
+ #include "varpool.h"
  #include "opts.h"
  
  #if defined (DWARF2_UNWIND_INFO) || defined (DWARF2_DEBUGGING_INFO)
*************** wrapup_global_declarations (tree *vec, i
*** 2054,2060 ****
  	    {
  	      bool needed = 1;
  
! 	      if (TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)))
  		/* needed */;
  	      else if (DECL_COMDAT (decl))
  		needed = 0;
--- 2063,2073 ----
  	    {
  	      bool needed = 1;
  
! 	      if (flag_unit_at_a_time)
! 		needed = ((TREE_USED (decl)
! 			   || TREE_USED (DECL_ASSEMBLER_NAME (decl)))
! 			  && !varpool_node (decl)->finalized);
! 	      else if (TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)))
  		/* needed */;
  	      else if (DECL_COMDAT (decl))
  		needed = 0;
*************** compile_file (void)
*** 2226,2231 ****
--- 2259,2266 ----
  
    (*lang_hooks.decls.final_write_globals)();
  
+   varpool_assemble_pending_decls ();
+ 
    /* This must occur after the loop to output deferred functions.
       Else the coverage initializer would not be emitted if all the
       functions in this compilation unit were deferred.  */
*************** rest_of_decl_compilation (tree decl,
*** 2326,2332 ****
        /* Don't output anything when a tentative file-scope definition
  	 is seen.  But at end of compilation, do output code for them.  */
        if (at_end || !DECL_DEFER_OUTPUT (decl))
! 	assemble_variable (decl, top_level, at_end, 0);
  
  #ifdef ASM_FINISH_DECLARE_OBJECT
        if (decl == last_assemble_variable_decl)
--- 2361,2373 ----
        /* Don't output anything when a tentative file-scope definition
  	 is seen.  But at end of compilation, do output code for them.  */
        if (at_end || !DECL_DEFER_OUTPUT (decl))
! 	{
! 	  if (flag_unit_at_a_time && TREE_CODE (decl) != FUNCTION_DECL
! 	      && top_level)
! 	    varpool_finalize_decl (decl);
! 	  else
! 	    assemble_variable (decl, top_level, at_end, 0);
! 	}
  
  #ifdef ASM_FINISH_DECLARE_OBJECT
        if (decl == last_assemble_variable_decl)
diff -Nrc3p gcc.tmp/varasm.c gcc/varasm.c
*** gcc.tmp/varasm.c	Sun Jun 22 02:08:31 2003
--- gcc/varasm.c	Fri Jun 20 23:09:59 2003
*************** Software Foundation, 59 Temple Place - S
*** 50,55 ****
--- 50,56 ----
  #include "debug.h"
  #include "target.h"
  #include "cgraph.h"
+ #include "varpool.h"
  
  #ifdef XCOFF_DEBUGGING_INFO
  #include "xcoffout.h"		/* Needed for external data
*************** assemble_name (file, name)
*** 1746,1757 ****
    id = maybe_get_identifier (real_name);
    if (id)
      {
!       if (!TREE_SYMBOL_REFERENCED (id)
! 	  && !cgraph_global_info_ready)
  	{
! 	  struct cgraph_node *node = cgraph_node_for_identifier (id);
! 	  if (node)
! 	    cgraph_mark_needed_node (node, 1);
  	}
        TREE_SYMBOL_REFERENCED (id) = 1;
      }
--- 1750,1767 ----
    id = maybe_get_identifier (real_name);
    if (id)
      {
!       if (!TREE_SYMBOL_REFERENCED (id))
  	{
!           struct varpool_node *vnode = varpool_node_for_identifier (id);
! 	  if (vnode)
! 	    varpool_mark_needed_node (vnode);
! 
! 	  if (!cgraph_global_info_ready)
! 	    {
! 	      struct cgraph_node *node = cgraph_node_for_identifier (id);
! 	      if (node)
! 		cgraph_mark_needed_node (node, 1);
! 	    }
  	}
        TREE_SYMBOL_REFERENCED (id) = 1;
      }
diff -Nrc3p gcc.tmp/varpool.c gcc/varpool.c
*** gcc.tmp/varpool.c	Thu Jan  1 01:00:00 1970
--- gcc/varpool.c	Sat Jun 21 18:35:24 2003
***************
*** 0 ****
--- 1,213 ----
+ /* Variable management code.
+    Copyright (C) 2003 Free Software Foundation, Inc.
+    Contributed by Jan Hubicka
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2, or (at your option) any later
+ version.
+ 
+ GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING.  If not, write to the Free
+ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+ 02111-1307, USA.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ #include "tm.h"
+ #include "tree.h"
+ #include "tree-inline.h"
+ #include "langhooks.h"
+ #include "hashtab.h"
+ #include "toplev.h"
+ #include "flags.h"
+ #include "ggc.h"
+ #include "debug.h"
+ #include "target.h"
+ #include "varpool.h"
+ #include "varray.h"
+ #include "output.h"
+ 
+ /* The known declarations must not get garbage collected.  Value graph
+    datastructures should not get saved via PCH code since this would
+    make it difficult to extend into intra-module optimizer later.  So
+    we store only the references into the array to prevent gabrage
+    collector from deleting live data.  */
+ static GTY(()) varray_type known_decls;
+ 
+ /* Hash table used to convert declarations into nodes.  */
+ static htab_t varpool_hash = 0;
+ 
+ /* The linked list of cgraph nodes.  */
+ struct varpool_node *varpool_nodes;
+ 
+ /* Queue of cgraph nodes scheduled to be lowered and output.  */
+ struct varpool_node *varpool_nodes_queue;
+ 
+ /* Number of nodes in existence.  */
+ int varpool_n_nodes;
+ 
+ /* Returns a hash code for P.  */
+ 
+ static hashval_t
+ varpool_hash_node (const PTR p)
+ {
+   return (hashval_t)
+     htab_hash_pointer (DECL_ASSEMBLER_NAME
+ 		       (((struct varpool_node *) p)->decl));
+ }
+ 
+ /* Returns non-zero if P1 and P2 are equal.  */
+ 
+ static int
+ eq_varpool_node (const PTR p1, const PTR p2)
+ {
+   return ((DECL_ASSEMBLER_NAME (((struct varpool_node *) p1)->decl)) ==
+ 	  (tree) p2);
+ }
+ 
+ /* Return varpool node assigned to DECL.  Create new one when needed.  */
+ struct varpool_node *
+ varpool_node (tree decl)
+ {
+   struct varpool_node *node;
+   struct varpool_node **slot;
+ 
+   if (!DECL_P (decl) || TREE_CODE (decl) == FUNCTION_DECL)
+     abort ();
+ 
+   if (!varpool_hash)
+     {
+       varpool_hash = htab_create (10, varpool_hash_node, eq_varpool_node, NULL);
+       VARRAY_TREE_INIT (known_decls, 32, "known_decls");
+     }
+ 
+   slot =
+     (struct varpool_node **) htab_find_slot_with_hash (varpool_hash,
+ 						      DECL_ASSEMBLER_NAME (decl),
+ 						      htab_hash_pointer
+ 						      (DECL_ASSEMBLER_NAME
+ 						       (decl)), 1);
+   if (*slot)
+     return *slot;
+   node = xcalloc (sizeof (*node), 1);
+   node->decl = decl;
+   node->next = varpool_nodes;
+   if (varpool_nodes)
+     varpool_nodes->previous = node;
+   node->previous = NULL;
+   varpool_nodes = node;
+   varpool_n_nodes++;
+   *slot = node;
+   VARRAY_PUSH_TREE (known_decls, decl);
+   return node;
+ }
+ 
+ /* Try to find existing function for identifier ID.  */
+ struct varpool_node *
+ varpool_node_for_identifier (tree id)
+ {
+   struct varpool_node **slot;
+ 
+   if (TREE_CODE (id) != IDENTIFIER_NODE)
+     abort ();
+ 
+   if (!varpool_hash)
+     {
+       varpool_hash = htab_create (10, varpool_hash_node, eq_varpool_node, NULL);
+       VARRAY_TREE_INIT (known_decls, 32, "known_decls");
+     }
+ 
+   slot =
+     (struct varpool_node **) htab_find_slot_with_hash (varpool_hash, id,
+ 						      htab_hash_pointer (id), 0);
+   if (!slot)
+     return NULL;
+   return *slot;
+ }
+ 
+ /* Notify finalize_compilation_unit that given node is reachable
+    or needed.  */
+ void
+ varpool_mark_needed_node (struct varpool_node *node)
+ {
+   if (!node->needed && node->finalized)
+     {
+       node->aux = varpool_nodes_queue;
+       varpool_nodes_queue = node;
+     }
+   node->needed = 1;
+ }
+ 
+ void
+ varpool_finalize_decl (tree decl)
+ {
+   struct varpool_node *node = varpool_node (decl);
+ 
+   if (node->needed && !node->finalized)
+     {
+       node->aux = varpool_nodes_queue;
+       varpool_nodes_queue = node;
+     }
+   node->finalized = true;
+ 
+   if (/* Externally visible variables must be output.  The exception are
+ 	 COMDAT functions that must be output only when they are needed.  */
+       (TREE_PUBLIC (decl) && !DECL_COMDAT (decl))
+       /* Function whose name is output to the assembler file must be produced.
+ 	 It is possible to assemble the name later after finalizing the function
+ 	 and the fact is noticed in assemble_name then.  */
+       || (DECL_ASSEMBLER_NAME_SET_P (decl)
+ 	  && TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl))))
+     {
+       varpool_mark_needed_node (node);
+     }
+ }
+ 
+ bool
+ varpool_assemble_pending_decls ()
+ {
+   bool changed = false;
+ 
+   while (varpool_nodes_queue)
+     {
+       tree decl = varpool_nodes_queue->decl;
+       struct varpool_node *node = varpool_nodes_queue;
+ 
+       varpool_nodes_queue = varpool_nodes_queue->aux;
+       if (!TREE_ASM_WRITTEN (decl))
+ 	{
+ 	  assemble_variable (decl, 0, 1, 0);
+ 	  changed = true;
+ 	}
+       node->aux = NULL;
+     }
+   return changed;
+ }
+ 
+ /* Dump the callgraph.  */
+ 
+ void
+ dump_varpool (FILE *f)
+ {
+   struct varpool_node *node;
+ 
+   fprintf (f, "\nKnown values:\n\n");
+   for (node = varpool_nodes; node; node = node->next)
+     {
+       fprintf (f, "%s", IDENTIFIER_POINTER (DECL_NAME (node->decl)));
+       if (node->needed)
+ 	fprintf (f, " needed");
+       fprintf (f, "\n");
+     }
+ }
+ 
+ #include "gt-varpool.h"
diff -Nrc3p gcc.tmp/varpool.h gcc/varpool.h
*** gcc.tmp/varpool.h	Thu Jan  1 01:00:00 1970
--- gcc/varpool.h	Fri Jun 20 23:09:59 2003
***************
*** 0 ****
--- 1,57 ----
+ /* Variable management code.
+    Copyright (C) 2003 Free Software Foundation, Inc.
+    Contributed by Jan Hubicka
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2, or (at your option) any later
+ version.
+ 
+ GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING.  If not, write to the Free
+ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+ 02111-1307, USA.  */
+ 
+ #ifndef GCC_VGRAPH_H
+ #define GCC_VGRAPH_H
+ 
+ /* The varpool data strutcture.
+    Each function decl has assigned varpool_node listing calees and callers.  */
+ 
+ struct varpool_node
+ {
+   tree decl;
+   struct varpool_node *next, *previous;
+   void *aux;
+ 
+   /* Set when function must be output - it is externally visible
+      or it's address is taken.  */
+   bool needed;
+   /* Set once it has been finalized so we consider it to be output.  */
+   bool finalized;
+   /* Set when function is scheduled to be assembled.  */
+   bool output;
+ };
+ 
+ extern struct varpool_node *varpool_nodes;
+ extern int varpool_n_nodes;
+ extern bool varpool_global_info_ready;
+ extern struct varpool_node *varpool_nodes_queue;
+ 
+ /* In varpool.c  */
+ void dump_varpool (FILE *);
+ void varpool_remove_node (struct varpool_node *);
+ struct varpool_node *varpool_node (tree decl);
+ struct varpool_node *varpool_node_for_identifier (tree id);
+ void varpool_mark_needed_node (struct varpool_node *);
+ void varpool_finalize_decl (tree);
+ bool varpool_assemble_pending_decls (void);
+ 
+ #endif  /* GCC_VGRAPH_H  */
*** gcc.tmp/Makefile.in	Sun Jun 22 01:50:18 2003
--- gcc/Makefile.in	Sun Jun 22 02:31:10 2003
*************** OBJS = alias.o bb-reorder.o bitmap.o bui
*** 822,828 ****
   stor-layout.o stringpool.o timevar.o toplev.o tracer.o tree.o tree-dump.o \
   tree-inline.o unroll.o varasm.o varray.o version.o vmsdbgout.o xcoffout.o \
   alloc-pool.o et-forest.o cgraph.o cgraphunit.o cfghooks.o		   \
!  $(GGC) $(out_object_file) $(EXTRA_OBJS) $(host_hook_obj)
  
  BACKEND = main.o libbackend.a
  
--- 822,828 ----
   stor-layout.o stringpool.o timevar.o toplev.o tracer.o tree.o tree-dump.o \
   tree-inline.o unroll.o varasm.o varray.o version.o vmsdbgout.o xcoffout.o \
   alloc-pool.o et-forest.o cgraph.o cgraphunit.o cfghooks.o		   \
!  varpool.o $(GGC) $(out_object_file) $(EXTRA_OBJS) $(host_hook_obj)
  
  BACKEND = main.o libbackend.a
  
*************** toplev.o : toplev.c $(CONFIG_H) $(SYSTEM
*** 1489,1495 ****
     graph.h $(LOOP_H) except.h $(REGS_H) $(TIMEVAR_H) $(lang_options_files) \
     ssa.h $(PARAMS_H) $(TM_P_H) reload.h dwarf2asm.h $(TARGET_H) \
     langhooks.h insn-flags.h options_.h cfglayout.h real.h cfgloop.h \
!    hosthooks.h $(LANGHOOKS_DEF_H) cgraph.h
  	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
  	  -DTARGET_NAME=\"$(target_alias)\" \
  	  -c $(srcdir)/toplev.c $(OUTPUT_OPTION)
--- 1489,1495 ----
     graph.h $(LOOP_H) except.h $(REGS_H) $(TIMEVAR_H) $(lang_options_files) \
     ssa.h $(PARAMS_H) $(TM_P_H) reload.h dwarf2asm.h $(TARGET_H) \
     langhooks.h insn-flags.h options_.h cfglayout.h real.h cfgloop.h \
!    hosthooks.h $(LANGHOOKS_DEF_H) cgraph.h varpool.h
  	$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
  	  -DTARGET_NAME=\"$(target_alias)\" \
  	  -c $(srcdir)/toplev.c $(OUTPUT_OPTION)
*************** errors.o : errors.c $(CONFIG_H) $(SYSTEM
*** 1516,1522 ****
  varasm.o : varasm.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) \
     flags.h function.h $(EXPR_H) hard-reg-set.h $(REGS_H) \
     output.h c-pragma.h toplev.h xcoffout.h debug.h $(GGC_H) $(TM_P_H) \
!    $(HASHTAB_H) $(TARGET_H) langhooks.h gt-varasm.h real.h
  function.o : function.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
     flags.h function.h $(EXPR_H) $(OPTABS_H) libfuncs.h $(REGS_H) hard-reg-set.h \
     insn-config.h $(RECOG_H) output.h toplev.h except.h $(HASHTAB_H) $(GGC_H) \
--- 1516,1522 ----
  varasm.o : varasm.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) \
     flags.h function.h $(EXPR_H) hard-reg-set.h $(REGS_H) \
     output.h c-pragma.h toplev.h xcoffout.h debug.h $(GGC_H) $(TM_P_H) \
!    $(HASHTAB_H) $(TARGET_H) langhooks.h gt-varasm.h real.h varpool.h cgraph.h
  function.o : function.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(TREE_H) \
     flags.h function.h $(EXPR_H) $(OPTABS_H) libfuncs.h $(REGS_H) hard-reg-set.h \
     insn-config.h $(RECOG_H) output.h toplev.h except.h $(HASHTAB_H) $(GGC_H) \
*************** simplify-rtx.o : simplify-rtx.c $(CONFIG
*** 1595,1602 ****
     output.h function.h $(GGC_H) $(OBSTACK_H) $(TM_P_H) $(TREE_H) $(TARGET_H)
  cgraph.o : cgraph.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
     langhooks.h tree-inline.h toplev.h flags.h ggc.h  $(TARGET_H) cgraph.h gt-cgraph.h
  cgraphunit.o : cgraphunit.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
!    langhooks.h tree-inline.h toplev.h flags.h ggc.h  $(TARGET_H) cgraph.h
  coverage.o : coverage.c gcov-io.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
     $(TM_H) $(RTL_H) $(TREE_H) flags.h output.h $(REGS_H) $(EXPR_H) function.h \
     toplev.h $(GGC_H) $(TARGET_H) langhooks.h $(COVERAGE_H) libfuncs.h \
--- 1595,1604 ----
     output.h function.h $(GGC_H) $(OBSTACK_H) $(TM_P_H) $(TREE_H) $(TARGET_H)
  cgraph.o : cgraph.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
     langhooks.h tree-inline.h toplev.h flags.h ggc.h  $(TARGET_H) cgraph.h gt-cgraph.h
+ varpool.o : varpool.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
+    langhooks.h tree-inline.h toplev.h flags.h ggc.h  $(TARGET_H) varpool.h gt-varpool.h
  cgraphunit.o : cgraphunit.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
!    langhooks.h tree-inline.h toplev.h flags.h ggc.h  $(TARGET_H) cgraph.h varpool.h
  coverage.o : coverage.c gcov-io.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
     $(TM_H) $(RTL_H) $(TREE_H) flags.h output.h $(REGS_H) $(EXPR_H) function.h \
     toplev.h $(GGC_H) $(TARGET_H) langhooks.h $(COVERAGE_H) libfuncs.h \
*************** GTFILES = $(srcdir)/input.h $(srcdir)/co
*** 1997,2003 ****
    $(srcdir)/profile.c $(srcdir)/ra-build.c $(srcdir)/regclass.c \
    $(srcdir)/reg-stack.c \
    $(srcdir)/sdbout.c $(srcdir)/stmt.c $(srcdir)/stor-layout.c \
!   $(srcdir)/stringpool.c $(srcdir)/tree.c $(srcdir)/varasm.c \
    $(out_file) \
    @all_gtfiles@
  
--- 1999,2005 ----
    $(srcdir)/profile.c $(srcdir)/ra-build.c $(srcdir)/regclass.c \
    $(srcdir)/reg-stack.c \
    $(srcdir)/sdbout.c $(srcdir)/stmt.c $(srcdir)/stor-layout.c \
!   $(srcdir)/stringpool.c $(srcdir)/tree.c $(srcdir)/varasm.c $(srcdir)/varpool.c \
    $(out_file) \
    @all_gtfiles@
  
*************** gt-expr.h gt-sdbout.h gt-optabs.h gt-bit
*** 2014,2020 ****
  gt-dwarf2out.h gt-ra-build.h gt-reg-stack.h gt-dwarf2asm.h \
  gt-dbxout.h gt-c-common.h gt-c-decl.h gt-c-parse.h \
  gt-c-pragma.h gt-c-objc-common.h gtype-c.h gt-input.h \
! gt-stringpool.h : s-gtype ; @true
  
  gtyp-gen.h: Makefile
  	echo "/* This file is machine generated.  Do not edit.  */" > tmp-gtyp.h
--- 2016,2022 ----
  gt-dwarf2out.h gt-ra-build.h gt-reg-stack.h gt-dwarf2asm.h \
  gt-dbxout.h gt-c-common.h gt-c-decl.h gt-c-parse.h \
  gt-c-pragma.h gt-c-objc-common.h gtype-c.h gt-input.h \
! gt-stringpool.h gt-varpool.h : s-gtype ; @true
  
  gtyp-gen.h: Makefile
  	echo "/* This file is machine generated.  Do not edit.  */" > tmp-gtyp.h


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