This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PATCH: Memory allocation
- To: gcc-patches at gcc dot gnu dot org
- Subject: PATCH: Memory allocation
- From: Mark Mitchell <mark at codesourcery dot com>
- Date: Wed, 05 Apr 2000 17:50:19 -0700
- Organization: CodeSourcery, LLC
This patch avoids deep recursion during the GC-marking of trees. I
was loathe to give up the easy GC debuggability of the current scheme,
but it really doesn't scale for large programs.
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com
2000-04-05 Mark Mitchell <mark@codesourcery.com>
* ggc.h: Include varray.h.
(ggc_pending_trees): Declare.
(ggc_mark_tree_children): Remove declaration.
(ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
* ggc-common.c (ggc_pending_trees): New variable.
(ggc_mark_roots): Call ggc_mark_trees.
(ggc_mark_tree_children): Rename to ggc_mark_trees. Process all
the ggc_pending_trees.
* Makefile.in (GGC_H): New variable. Use it throughout in place
of ggc.h.
C++:
2000-04-05 Mark Mitchell <mark@codesourcery.com>
* Makefile.in (GGC_H): New variable. Use it throughout in place
of ggc.h.
Fortran:
Wed Apr 5 17:46:39 2000 Mark Mitchell <mark@codesourcery.com>
* Makefile.in (GGC_H): Add varray.h.
Index: Makefile.in
===================================================================
RCS file: /cvs/gcc/egcs/gcc/Makefile.in,v
retrieving revision 1.415
diff -c -p -r1.415 Makefile.in
*** Makefile.in 2000/04/05 00:32:45 1.415
--- Makefile.in 2000/04/06 00:36:44
*************** REGS_H = regs.h varray.h $(MACHMODE_H)
*** 762,767 ****
--- 762,768 ----
INTEGRATE_H = integrate.h varray.h
LOOP_H = loop.h varray.h basic-block.h
GCC_H = gcc.h version.h
+ GGC_H = ggc.h varray.h
#
# Language makefile fragments.
*************** s-crt0: $(CRT0_S) $(MCRT0_S) $(GCC_PASSE
*** 1338,1344 ****
# C language specific files.
! c-parse.o : $(srcdir)/c-parse.c $(CONFIG_H) $(TREE_H) c-lex.h ggc.h \
$(srcdir)/c-parse.h c-tree.h c-common.h input.h flags.h system.h toplev.h
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c $(srcdir)/c-parse.c
$(srcdir)/c-parse.h: $(srcdir)/c-parse.c
--- 1339,1345 ----
# C language specific files.
! c-parse.o : $(srcdir)/c-parse.c $(CONFIG_H) $(TREE_H) c-lex.h $(GGC_H) \
$(srcdir)/c-parse.h c-tree.h c-common.h input.h flags.h system.h toplev.h
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c $(srcdir)/c-parse.c
$(srcdir)/c-parse.h: $(srcdir)/c-parse.c
*************** $(srcdir)/c-gperf.h: c-parse.gperf
*** 1358,1377 ****
exit 1 )
$(SHELL) $(srcdir)/move-if-change tmp-gperf.h $(srcdir)/c-gperf.h
! c-decl.o : c-decl.c $(CONFIG_H) system.h $(TREE_H) c-tree.h c-common.h ggc.h \
c-lex.h flags.h function.h output.h toplev.h defaults.h
c-typeck.o : c-typeck.c $(CONFIG_H) system.h $(TREE_H) c-tree.h c-common.h \
flags.h intl.h output.h $(EXPR_H) $(RTL_H) toplev.h
! c-lang.o : c-lang.c $(CONFIG_H) system.h $(TREE_H) c-tree.h c-common.h ggc.h \
c-lex.h toplev.h output.h function.h
c-lex.o : c-lex.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) c-lex.h c-tree.h \
c-common.h $(srcdir)/c-parse.h $(srcdir)/c-gperf.h c-pragma.h input.h \
! intl.h flags.h toplev.h output.h mbchar.h ggc.h
c-aux-info.o : c-aux-info.c $(CONFIG_H) system.h $(TREE_H) c-tree.h \
c-common.h flags.h toplev.h
c-convert.o : c-convert.c $(CONFIG_H) system.h $(TREE_H) flags.h toplev.h
c-pragma.o: c-pragma.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) function.h \
! defaults.h c-pragma.h toplev.h ggc.h
c-iterate.o: c-iterate.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) c-tree.h \
c-common.h flags.h toplev.h $(EXPR_H)
mbchar.o: mbchar.c $(CONFIG_H) system.h mbchar.h
--- 1359,1378 ----
exit 1 )
$(SHELL) $(srcdir)/move-if-change tmp-gperf.h $(srcdir)/c-gperf.h
! c-decl.o : c-decl.c $(CONFIG_H) system.h $(TREE_H) c-tree.h c-common.h $(GGC_H) \
c-lex.h flags.h function.h output.h toplev.h defaults.h
c-typeck.o : c-typeck.c $(CONFIG_H) system.h $(TREE_H) c-tree.h c-common.h \
flags.h intl.h output.h $(EXPR_H) $(RTL_H) toplev.h
! c-lang.o : c-lang.c $(CONFIG_H) system.h $(TREE_H) c-tree.h c-common.h $(GGC_H) \
c-lex.h toplev.h output.h function.h
c-lex.o : c-lex.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) c-lex.h c-tree.h \
c-common.h $(srcdir)/c-parse.h $(srcdir)/c-gperf.h c-pragma.h input.h \
! intl.h flags.h toplev.h output.h mbchar.h $(GGC_H)
c-aux-info.o : c-aux-info.c $(CONFIG_H) system.h $(TREE_H) c-tree.h \
c-common.h flags.h toplev.h
c-convert.o : c-convert.c $(CONFIG_H) system.h $(TREE_H) flags.h toplev.h
c-pragma.o: c-pragma.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) function.h \
! defaults.h c-pragma.h toplev.h $(GGC_H)
c-iterate.o: c-iterate.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) c-tree.h \
c-common.h flags.h toplev.h $(EXPR_H)
mbchar.o: mbchar.c $(CONFIG_H) system.h mbchar.h
*************** s-under: $(GCC_PASSES)
*** 1423,1429 ****
# A file used by all variants of C.
c-common.o : c-common.c $(CONFIG_H) system.h $(TREE_H) c-tree.h c-lex.h \
! c-common.h flags.h toplev.h output.h c-pragma.h $(RTL_H) ggc.h \
$(EXPR_H)
# Language-independent files.
--- 1424,1430 ----
# A file used by all variants of C.
c-common.o : c-common.c $(CONFIG_H) system.h $(TREE_H) c-tree.h c-lex.h \
! c-common.h flags.h toplev.h output.h c-pragma.h $(RTL_H) $(GGC_H) \
$(EXPR_H)
# Language-independent files.
*************** dumpvers: dumpvers.c
*** 1464,1480 ****
version.o: version.c version.h
ggc-common.o: ggc-common.c $(CONFIG_H) $(RTL_H) $(TREE_H) \
! flags.h ggc.h varray.h hash.h
ggc-simple.o: ggc-simple.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \
! ggc.h varray.h
ggc-page.o: ggc-page.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \
! ggc.h varray.h
! ggc-none.o: ggc-none.c $(CONFIG_H) $(RTL_H) ggc.h
! ggc-callbacks.o: ggc-callbacks.c $(CONFIG_H) $(RTL_H) $(TREE_H) ggc.h
obstack.o: $(srcdir)/../libiberty/obstack.c $(CONFIG_H)
rm -f obstack.c
--- 1465,1481 ----
version.o: version.c version.h
ggc-common.o: ggc-common.c $(CONFIG_H) $(RTL_H) $(TREE_H) \
! flags.h $(GGC_H) varray.h hash.h
ggc-simple.o: ggc-simple.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \
! $(GGC_H) varray.h
ggc-page.o: ggc-page.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \
! $(GGC_H) varray.h
! ggc-none.o: ggc-none.c $(CONFIG_H) $(RTL_H) $(GGC_H)
! ggc-callbacks.o: ggc-callbacks.c $(CONFIG_H) $(RTL_H) $(TREE_H) $(GGC_H)
obstack.o: $(srcdir)/../libiberty/obstack.c $(CONFIG_H)
rm -f obstack.c
*************** prefix.o: prefix.c $(CONFIG_H) system.h
*** 1489,1500 ****
convert.o: convert.c $(CONFIG_H) system.h $(TREE_H) flags.h convert.h toplev.h
tree.o : tree.c $(CONFIG_H) system.h $(TREE_H) flags.h function.h toplev.h \
! ggc.h $(HASHTAB_H)
! print-tree.o : print-tree.c $(CONFIG_H) system.h $(TREE_H) ggc.h
stor-layout.o : stor-layout.c $(CONFIG_H) system.h $(TREE_H) flags.h \
! function.h $(EXPR_H) $(RTL_H) toplev.h ggc.h
fold-const.o : fold-const.c $(CONFIG_H) system.h $(TREE_H) flags.h toplev.h \
! $(RTL_H) ggc.h
diagnostic.o : diagnostic.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) tm_p.h flags.h \
input.h insn-attr.h insn-codes.h insn-config.h toplev.h intl.h
toplev.o : toplev.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) function.h \
--- 1490,1501 ----
convert.o: convert.c $(CONFIG_H) system.h $(TREE_H) flags.h convert.h toplev.h
tree.o : tree.c $(CONFIG_H) system.h $(TREE_H) flags.h function.h toplev.h \
! $(GGC_H) $(HASHTAB_H)
! print-tree.o : print-tree.c $(CONFIG_H) system.h $(TREE_H) $(GGC_H)
stor-layout.o : stor-layout.c $(CONFIG_H) system.h $(TREE_H) flags.h \
! function.h $(EXPR_H) $(RTL_H) toplev.h $(GGC_H)
fold-const.o : fold-const.c $(CONFIG_H) system.h $(TREE_H) flags.h toplev.h \
! $(RTL_H) $(GGC_H)
diagnostic.o : diagnostic.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) tm_p.h flags.h \
input.h insn-attr.h insn-codes.h insn-config.h toplev.h intl.h
toplev.o : toplev.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) function.h \
*************** toplev.o : toplev.c $(CONFIG_H) system.h
*** 1506,1512 ****
-DTARGET_NAME=\"$(target_alias)\" \
-c `echo $(srcdir)/toplev.c | sed 's,^\./,,'`
! rtl.o : rtl.c $(CONFIG_H) system.h $(RTL_H) bitmap.h ggc.h toplev.h
print-rtl.o : print-rtl.c $(CONFIG_H) system.h $(RTL_H) $(BASIC_BLOCK_H)
rtlanal.o : rtlanal.c $(CONFIG_H) system.h $(RTL_H)
--- 1507,1513 ----
-DTARGET_NAME=\"$(target_alias)\" \
-c `echo $(srcdir)/toplev.c | sed 's,^\./,,'`
! rtl.o : rtl.c $(CONFIG_H) system.h $(RTL_H) bitmap.h $(GGC_H) toplev.h
print-rtl.o : print-rtl.c $(CONFIG_H) system.h $(RTL_H) $(BASIC_BLOCK_H)
rtlanal.o : rtlanal.c $(CONFIG_H) system.h $(RTL_H)
*************** errors.o : errors.c $(CONFIG_H) system.h
*** 1514,1533 ****
varasm.o : varasm.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) flags.h \
function.h defaults.h $(EXPR_H) hard-reg-set.h $(REGS_H) \
! xcoffout.h output.h c-pragma.h toplev.h dbxout.h sdbout.h ggc.h
function.o : function.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
function.h insn-flags.h insn-codes.h $(EXPR_H) $(REGS_H) hard-reg-set.h \
! insn-config.h $(RECOG_H) output.h toplev.h except.h hash.h ggc.h
stmt.o : stmt.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h function.h \
insn-flags.h insn-config.h insn-codes.h hard-reg-set.h $(EXPR_H) except.h \
! $(LOOP_H) $(RECOG_H) toplev.h output.h varray.h ggc.h
except.o : except.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
function.h insn-flags.h $(EXPR_H) $(REGS_H) hard-reg-set.h \
! insn-config.h $(RECOG_H) output.h except.h toplev.h intl.h ggc.h
expr.o : expr.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h function.h \
$(REGS_H) insn-flags.h insn-codes.h $(EXPR_H) insn-config.h $(RECOG_H) \
output.h typeclass.h hard-reg-set.h toplev.h hard-reg-set.h except.h \
! ggc.h intl.h
builtins.o : builtins.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
function.h $(REGS_H) insn-flags.h insn-codes.h $(EXPR_H) insn-config.h \
$(RECOG_H) output.h typeclass.h hard-reg-set.h toplev.h hard-reg-set.h \
--- 1515,1534 ----
varasm.o : varasm.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) flags.h \
function.h defaults.h $(EXPR_H) hard-reg-set.h $(REGS_H) \
! xcoffout.h output.h c-pragma.h toplev.h dbxout.h sdbout.h $(GGC_H)
function.o : function.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
function.h insn-flags.h insn-codes.h $(EXPR_H) $(REGS_H) hard-reg-set.h \
! insn-config.h $(RECOG_H) output.h toplev.h except.h hash.h $(GGC_H)
stmt.o : stmt.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h function.h \
insn-flags.h insn-config.h insn-codes.h hard-reg-set.h $(EXPR_H) except.h \
! $(LOOP_H) $(RECOG_H) toplev.h output.h varray.h $(GGC_H)
except.o : except.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
function.h insn-flags.h $(EXPR_H) $(REGS_H) hard-reg-set.h \
! insn-config.h $(RECOG_H) output.h except.h toplev.h intl.h $(GGC_H)
expr.o : expr.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h function.h \
$(REGS_H) insn-flags.h insn-codes.h $(EXPR_H) insn-config.h $(RECOG_H) \
output.h typeclass.h hard-reg-set.h toplev.h hard-reg-set.h except.h \
! $(GGC_H) intl.h
builtins.o : builtins.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
function.h $(REGS_H) insn-flags.h insn-codes.h $(EXPR_H) insn-config.h \
$(RECOG_H) output.h typeclass.h hard-reg-set.h toplev.h hard-reg-set.h \
*************** explow.o : explow.c $(CONFIG_H) system.h
*** 1541,1547 ****
insn-codes.h toplev.h function.h
optabs.o : optabs.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
insn-flags.h insn-config.h insn-codes.h $(EXPR_H) $(RECOG_H) reload.h \
! toplev.h ggc.h real.h
dbxout.o : dbxout.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) flags.h $(REGS_H) \
insn-config.h reload.h gstab.h xcoffout.h defaults.h output.h dbxout.h \
toplev.h
--- 1542,1548 ----
insn-codes.h toplev.h function.h
optabs.o : optabs.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
insn-flags.h insn-config.h insn-codes.h $(EXPR_H) $(RECOG_H) reload.h \
! toplev.h $(GGC_H) real.h
dbxout.o : dbxout.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) flags.h $(REGS_H) \
insn-config.h reload.h gstab.h xcoffout.h defaults.h output.h dbxout.h \
toplev.h
*************** dwarfout.o : dwarfout.c $(CONFIG_H) syst
*** 1554,1564 ****
dwarf2out.o : dwarf2out.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) dwarf2.h \
flags.h insn-config.h reload.h output.h defaults.h \
hard-reg-set.h $(REGS_H) $(EXPR_H) toplev.h dwarf2out.h varray.h \
! ggc.h except.h
xcoffout.o : xcoffout.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) xcoffout.h \
! flags.h toplev.h output.h dbxout.h ggc.h
emit-rtl.o : emit-rtl.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
! function.h $(REGS_H) insn-config.h $(RECOG_H) real.h ggc.h \
$(EXPR_H) $(srcdir)/../include/obstack.h hard-reg-set.h bitmap.h toplev.h \
$(HASHTAB_H)
real.o : real.c $(CONFIG_H) system.h $(TREE_H) toplev.h
--- 1555,1565 ----
dwarf2out.o : dwarf2out.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) dwarf2.h \
flags.h insn-config.h reload.h output.h defaults.h \
hard-reg-set.h $(REGS_H) $(EXPR_H) toplev.h dwarf2out.h varray.h \
! $(GGC_H) except.h
xcoffout.o : xcoffout.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) xcoffout.h \
! flags.h toplev.h output.h dbxout.h $(GGC_H)
emit-rtl.o : emit-rtl.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
! function.h $(REGS_H) insn-config.h $(RECOG_H) real.h $(GGC_H) \
$(EXPR_H) $(srcdir)/../include/obstack.h hard-reg-set.h bitmap.h toplev.h \
$(HASHTAB_H)
real.o : real.c $(CONFIG_H) system.h $(TREE_H) toplev.h
*************** jump.o : jump.c $(CONFIG_H) system.h $(R
*** 1571,1579 ****
simplify-rtx.o : simplify-rtx.c $(CONFIG_H) system.h $(RTL_H) $(REGS_H) \
hard-reg-set.h flags.h real.h insn-config.h $(RECOG_H) $(EXPR_H) toplev.h \
! output.h function.h cselib.h ggc.h $(srcdir)/../include/obstack.h
cse.o : cse.c $(CONFIG_H) system.h $(RTL_H) $(REGS_H) hard-reg-set.h flags.h \
! real.h insn-config.h $(RECOG_H) $(EXPR_H) toplev.h output.h function.h ggc.h
gcse.o : gcse.c $(CONFIG_H) system.h $(RTL_H) $(REGS_H) hard-reg-set.h \
flags.h real.h insn-config.h $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) \
function.h output.h toplev.h
--- 1572,1580 ----
simplify-rtx.o : simplify-rtx.c $(CONFIG_H) system.h $(RTL_H) $(REGS_H) \
hard-reg-set.h flags.h real.h insn-config.h $(RECOG_H) $(EXPR_H) toplev.h \
! output.h function.h cselib.h $(GGC_H) $(srcdir)/../include/obstack.h
cse.o : cse.c $(CONFIG_H) system.h $(RTL_H) $(REGS_H) hard-reg-set.h flags.h \
! real.h insn-config.h $(RECOG_H) $(EXPR_H) toplev.h output.h function.h $(GGC_H)
gcse.o : gcse.c $(CONFIG_H) system.h $(RTL_H) $(REGS_H) hard-reg-set.h \
flags.h real.h insn-config.h $(RECOG_H) $(EXPR_H) $(BASIC_BLOCK_H) \
function.h output.h toplev.h
*************** ssa.o : ssa.c $(CONFIG_H) system.h $(RTL
*** 1588,1594 ****
output.h insn-config.h
profile.o : profile.c $(CONFIG_H) system.h $(RTL_H) flags.h insn-flags.h \
gcov-io.h $(TREE_H) output.h $(REGS_H) toplev.h function.h insn-config.h \
! ggc.h
loop.o : loop.c $(CONFIG_H) system.h $(RTL_H) flags.h $(LOOP_H) insn-config.h \
insn-flags.h $(REGS_H) hard-reg-set.h $(RECOG_H) $(EXPR_H) real.h \
$(BASIC_BLOCK_H) function.h toplev.h varray.h except.h cselib.h
--- 1589,1595 ----
output.h insn-config.h
profile.o : profile.c $(CONFIG_H) system.h $(RTL_H) flags.h insn-flags.h \
gcov-io.h $(TREE_H) output.h $(REGS_H) toplev.h function.h insn-config.h \
! $(GGC_H)
loop.o : loop.c $(CONFIG_H) system.h $(RTL_H) flags.h $(LOOP_H) insn-config.h \
insn-flags.h $(REGS_H) hard-reg-set.h $(RECOG_H) $(EXPR_H) real.h \
$(BASIC_BLOCK_H) function.h toplev.h varray.h except.h cselib.h
*************** combine.o : combine.c $(CONFIG_H) system
*** 1603,1609 ****
$(BASIC_BLOCK_H) $(RECOG_H) real.h hard-reg-set.h toplev.h
regclass.o : regclass.c $(CONFIG_H) system.h $(RTL_H) hard-reg-set.h flags.h \
$(BASIC_BLOCK_H) $(REGS_H) insn-config.h $(RECOG_H) reload.h real.h \
! toplev.h function.h output.h ggc.h
local-alloc.o : local-alloc.c $(CONFIG_H) system.h $(RTL_H) flags.h \
$(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h insn-config.h $(RECOG_H) \
output.h function.h insn-attr.h toplev.h
--- 1604,1610 ----
$(BASIC_BLOCK_H) $(RECOG_H) real.h hard-reg-set.h toplev.h
regclass.o : regclass.c $(CONFIG_H) system.h $(RTL_H) hard-reg-set.h flags.h \
$(BASIC_BLOCK_H) $(REGS_H) insn-config.h $(RECOG_H) reload.h real.h \
! toplev.h function.h output.h $(GGC_H)
local-alloc.o : local-alloc.c $(CONFIG_H) system.h $(RTL_H) flags.h \
$(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h insn-config.h $(RECOG_H) \
output.h function.h insn-attr.h toplev.h
*************** reorg.o : reorg.c $(CONFIG_H) system.h $
*** 1625,1631 ****
$(BASIC_BLOCK_H) $(REGS_H) insn-config.h insn-attr.h insn-flags.h \
$(RECOG_H) function.h flags.h output.h $(EXPR_H) toplev.h
alias.o : alias.c $(CONFIG_H) system.h $(RTL_H) flags.h hard-reg-set.h \
! $(REGS_H) toplev.h output.h $(EXPR_H) insn-flags.h ggc.h function.h \
cselib.h $(TREE_H)
regmove.o : regmove.c $(CONFIG_H) system.h $(RTL_H) insn-config.h \
$(RECOG_H) output.h reload.h $(REGS_H) hard-reg-set.h flags.h function.h \
--- 1626,1632 ----
$(BASIC_BLOCK_H) $(REGS_H) insn-config.h insn-attr.h insn-flags.h \
$(RECOG_H) function.h flags.h output.h $(EXPR_H) toplev.h
alias.o : alias.c $(CONFIG_H) system.h $(RTL_H) flags.h hard-reg-set.h \
! $(REGS_H) toplev.h output.h $(EXPR_H) insn-flags.h $(GGC_H) function.h \
cselib.h $(TREE_H)
regmove.o : regmove.c $(CONFIG_H) system.h $(RTL_H) insn-config.h \
$(RECOG_H) output.h reload.h $(REGS_H) hard-reg-set.h flags.h function.h \
*************** dyn-string.o: dyn-string.c dyn-string.h
*** 1648,1654 ****
predict.o: predict.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
insn-config.h $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h toplev.h \
$(RECOG_H) insn-flags.h function.h except.h $(EXPR_H)
! lists.o: lists.c $(CONFIG_H) system.h toplev.h $(RTL_H) ggc.h
bb-reorder.o : bb-reorder.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
insn-config.h $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h toplev.h \
$(RECOG_H) insn-flags.h function.h except.h $(EXPR_H)
--- 1649,1655 ----
predict.o: predict.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
insn-config.h $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h toplev.h \
$(RECOG_H) insn-flags.h function.h except.h $(EXPR_H)
! lists.o: lists.c $(CONFIG_H) system.h toplev.h $(RTL_H) $(GGC_H)
bb-reorder.o : bb-reorder.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
insn-config.h $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h toplev.h \
$(RECOG_H) insn-flags.h function.h except.h $(EXPR_H)
*************** regrename.o : regrename.c $(CONFIG_H) sy
*** 1657,1663 ****
insn-config.h $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h \
$(RECOG_H) function.h resource.h
! $(out_object_file): $(out_file) $(CONFIG_H) $(TREE_H) ggc.h \
$(RTL_H) $(REGS_H) hard-reg-set.h real.h insn-config.h conditions.h \
insn-flags.h output.h insn-attr.h insn-codes.h system.h toplev.h function.h
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(out_file)
--- 1658,1664 ----
insn-config.h $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h \
$(RECOG_H) function.h resource.h
! $(out_object_file): $(out_file) $(CONFIG_H) $(TREE_H) $(GGC_H) \
$(RTL_H) $(REGS_H) hard-reg-set.h real.h insn-config.h conditions.h \
insn-flags.h output.h insn-attr.h insn-codes.h system.h toplev.h function.h
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(out_file)
*************** s-attrtab : $(md_file) genattrtab $(srcd
*** 1797,1803 ****
$(SHELL) $(srcdir)/move-if-change tmp-attrtab.c insn-attrtab.c
touch s-attrtab
! insn-output.o : insn-output.c $(CONFIG_H) $(RTL_H) ggc.h $(REGS_H) real.h \
conditions.h hard-reg-set.h insn-config.h insn-flags.h insn-attr.h \
output.h $(RECOG_H) function.h insn-codes.h system.h toplev.h flags.h
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-output.c
--- 1798,1804 ----
$(SHELL) $(srcdir)/move-if-change tmp-attrtab.c insn-attrtab.c
touch s-attrtab
! insn-output.o : insn-output.c $(CONFIG_H) $(RTL_H) $(GGC_H) $(REGS_H) real.h \
conditions.h hard-reg-set.h insn-config.h insn-flags.h insn-attr.h \
output.h $(RECOG_H) function.h insn-codes.h system.h toplev.h flags.h
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-output.c
*************** s-output : $(md_file) genoutput $(srcdir
*** 1808,1814 ****
$(SHELL) $(srcdir)/move-if-change tmp-output.c insn-output.c
touch s-output
! genrtl.o : genrtl.c $(CONFIG_H) $(RTL_H) system.h ggc.h
genrtl.c genrtl.h : s-genrtl
@true # force gnu make to recheck modification times.
--- 1809,1815 ----
$(SHELL) $(srcdir)/move-if-change tmp-output.c insn-output.c
touch s-output
! genrtl.o : genrtl.c $(CONFIG_H) $(RTL_H) system.h $(GGC_H)
genrtl.c genrtl.h : s-genrtl
@true # force gnu make to recheck modification times.
*************** genattrtab : genattrtab.o $(HOST_RTL) $(
*** 1902,1908 ****
$(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \
genattrtab.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBS)
! genattrtab.o : genattrtab.c $(RTL_H) $(build_xm_file) system.h errors.h ggc.h
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genattrtab.c
genoutput : genoutput.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS)
--- 1903,1909 ----
$(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \
genattrtab.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBS)
! genattrtab.o : genattrtab.c $(RTL_H) $(build_xm_file) system.h errors.h $(GGC_H)
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genattrtab.c
genoutput : genoutput.o $(HOST_RTL) $(HOST_PRINT) $(HOST_ERRORS) $(HOST_LIBDEPS)
*************** gengenrtl.o : gengenrtl.c $(RTL_BASE_H)
*** 1924,1930 ****
# and HOST_PREFIX_1 is `foobar', just to ensure these rules don't conflict
# with the rules for rtl.o, alloca.o, etc.
$(HOST_PREFIX_1)rtl.o: $(srcdir)/rtl.c $(CONFIG_H) system.h $(RTL_H) \
! bitmap.h ggc.h toplev.h
rm -f $(HOST_PREFIX)rtl.c
sed -e 's/config[.]h/hconfig.h/' $(srcdir)/rtl.c > $(HOST_PREFIX)rtl.c
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)rtl.c
--- 1925,1931 ----
# and HOST_PREFIX_1 is `foobar', just to ensure these rules don't conflict
# with the rules for rtl.o, alloca.o, etc.
$(HOST_PREFIX_1)rtl.o: $(srcdir)/rtl.c $(CONFIG_H) system.h $(RTL_H) \
! bitmap.h $(GGC_H) toplev.h
rm -f $(HOST_PREFIX)rtl.c
sed -e 's/config[.]h/hconfig.h/' $(srcdir)/rtl.c > $(HOST_PREFIX)rtl.c
$(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)rtl.c
Index: ggc-common.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/ggc-common.c,v
retrieving revision 1.23
diff -c -p -r1.23 ggc-common.c
*** ggc-common.c 2000/03/27 01:26:16 1.23
--- ggc-common.c 2000/04/06 00:36:52
*************** Software Foundation, 59 Temple Place - S
*** 33,44 ****
--- 33,48 ----
/* Statistics about the allocation. */
static ggc_statistics *ggc_stats;
+ /* Trees that have been marked, but whose children still need marking. */
+ varray_type ggc_pending_trees;
+
static void ggc_mark_rtx_ptr PARAMS ((void *));
static void ggc_mark_tree_ptr PARAMS ((void *));
static void ggc_mark_rtx_varray_ptr PARAMS ((void *));
static void ggc_mark_tree_varray_ptr PARAMS ((void *));
static void ggc_mark_tree_hash_table_ptr PARAMS ((void *));
static void ggc_mark_string_ptr PARAMS ((void *));
+ static void ggc_mark_trees PARAMS ((void));
static boolean ggc_mark_tree_hash_table_entry PARAMS ((struct hash_entry *,
hash_table_key));
*************** ggc_mark_roots ()
*** 174,179 ****
--- 178,185 ----
{
struct ggc_root* x;
+ VARRAY_TREE_INIT (ggc_pending_trees, 4096, "ggc_pending_trees");
+
for (x = roots; x != NULL; x = x->next)
{
char *elt = x->base;
*************** ggc_mark_roots ()
*** 184,189 ****
--- 190,199 ----
for (i = 0; i < n; ++i, elt += s)
(*cb)(elt);
}
+
+ /* Mark all the queued up trees, and their children. */
+ ggc_mark_trees ();
+ VARRAY_FREE (ggc_pending_trees);
}
/* R had not been previously marked, but has now been marked via
*************** ggc_mark_rtvec_children (v)
*** 297,444 ****
ggc_mark_rtx (RTVEC_ELT (v, i));
}
! /* T had not been previously marked, but has now been marked via
! ggc_set_mark. Now recurse and process the children. */
! void
! ggc_mark_tree_children (t)
! tree t;
{
! enum tree_code code = TREE_CODE (t);
!
! /* Collect statistics, if appropriate. */
! if (ggc_stats)
{
! ++ggc_stats->num_trees[(int) code];
! ggc_stats->size_trees[(int) code] += ggc_get_size (t);
! }
! /* Bits from common. */
! ggc_mark_tree (TREE_TYPE (t));
! ggc_mark_tree (TREE_CHAIN (t));
! /* Some nodes require special handling. */
! switch (code)
! {
! case TREE_LIST:
! ggc_mark_tree (TREE_PURPOSE (t));
! ggc_mark_tree (TREE_VALUE (t));
! return;
!
! case TREE_VEC:
! {
! int i = TREE_VEC_LENGTH (t);
! while (--i >= 0)
! ggc_mark_tree (TREE_VEC_ELT (t, i));
! return;
! }
!
! case SAVE_EXPR:
! ggc_mark_tree (TREE_OPERAND (t, 0));
! ggc_mark_tree (SAVE_EXPR_CONTEXT (t));
! ggc_mark_rtx (SAVE_EXPR_RTL (t));
! return;
!
! case RTL_EXPR:
! ggc_mark_rtx (RTL_EXPR_SEQUENCE (t));
! ggc_mark_rtx (RTL_EXPR_RTL (t));
! return;
!
! case CALL_EXPR:
! ggc_mark_tree (TREE_OPERAND (t, 0));
! ggc_mark_tree (TREE_OPERAND (t, 1));
! ggc_mark_rtx (CALL_EXPR_RTL (t));
! return;
!
! case COMPLEX_CST:
! ggc_mark_tree (TREE_REALPART (t));
! ggc_mark_tree (TREE_IMAGPART (t));
! break;
!
! case STRING_CST:
! ggc_mark_string (TREE_STRING_POINTER (t));
! break;
!
! case PARM_DECL:
! ggc_mark_rtx (DECL_INCOMING_RTL (t));
! break;
!
! case FIELD_DECL:
! ggc_mark_tree (DECL_FIELD_BIT_OFFSET (t));
! break;
!
! case IDENTIFIER_NODE:
! ggc_mark_string (IDENTIFIER_POINTER (t));
! lang_mark_tree (t);
! return;
! default:
! break;
! }
! /* But in general we can handle them by class. */
! switch (TREE_CODE_CLASS (code))
! {
! case 'd': /* A decl node. */
! ggc_mark_string (DECL_SOURCE_FILE (t));
! ggc_mark_tree (DECL_SIZE (t));
! ggc_mark_tree (DECL_SIZE_UNIT (t));
! ggc_mark_tree (DECL_NAME (t));
! ggc_mark_tree (DECL_CONTEXT (t));
! ggc_mark_tree (DECL_ARGUMENTS (t));
! ggc_mark_tree (DECL_RESULT_FLD (t));
! ggc_mark_tree (DECL_INITIAL (t));
! ggc_mark_tree (DECL_ABSTRACT_ORIGIN (t));
! ggc_mark_tree (DECL_ASSEMBLER_NAME (t));
! ggc_mark_tree (DECL_SECTION_NAME (t));
! ggc_mark_tree (DECL_MACHINE_ATTRIBUTES (t));
! ggc_mark_rtx (DECL_RTL (t));
! ggc_mark_rtx (DECL_LIVE_RANGE_RTL (t));
! ggc_mark_tree (DECL_VINDEX (t));
! lang_mark_tree (t);
! break;
!
! case 't': /* A type node. */
! ggc_mark_tree (TYPE_SIZE (t));
! ggc_mark_tree (TYPE_SIZE_UNIT (t));
! ggc_mark_tree (TYPE_ATTRIBUTES (t));
! ggc_mark_tree (TYPE_VALUES (t));
! ggc_mark_tree (TYPE_POINTER_TO (t));
! ggc_mark_tree (TYPE_REFERENCE_TO (t));
! ggc_mark_tree (TYPE_NAME (t));
! ggc_mark_tree (TYPE_MIN_VALUE (t));
! ggc_mark_tree (TYPE_MAX_VALUE (t));
! ggc_mark_tree (TYPE_NEXT_VARIANT (t));
! ggc_mark_tree (TYPE_MAIN_VARIANT (t));
! ggc_mark_tree (TYPE_BINFO (t));
! ggc_mark_tree (TYPE_NONCOPIED_PARTS (t));
! ggc_mark_tree (TYPE_CONTEXT (t));
! lang_mark_tree (t);
! break;
!
! case 'b': /* A lexical block. */
! ggc_mark_tree (BLOCK_VARS (t));
! ggc_mark_tree (BLOCK_SUBBLOCKS (t));
! ggc_mark_tree (BLOCK_SUPERCONTEXT (t));
! ggc_mark_tree (BLOCK_ABSTRACT_ORIGIN (t));
! break;
!
! case 'c': /* A constant. */
! ggc_mark_rtx (TREE_CST_RTL (t));
! break;
!
! case 'r': case '<': case '1':
! case '2': case 'e': case 's': /* Expressions. */
! {
! int i = tree_code_length[TREE_CODE (t)];
! while (--i >= 0)
! ggc_mark_tree (TREE_OPERAND (t, i));
! break;
! }
!
! case 'x':
! lang_mark_tree (t);
! break;
}
}
--- 307,461 ----
ggc_mark_rtx (RTVEC_ELT (v, i));
}
! /* Recursively set marks on all of the children of the
! GCC_PENDING_TREES. */
! static void
! ggc_mark_trees ()
{
! while (ggc_pending_trees->elements_used)
{
! tree t;
! enum tree_code code;
! t = VARRAY_TOP_TREE (ggc_pending_trees);
! VARRAY_POP (ggc_pending_trees);
! code = TREE_CODE (t);
! /* Collect statistics, if appropriate. */
! if (ggc_stats)
! {
! ++ggc_stats->num_trees[(int) code];
! ggc_stats->size_trees[(int) code] += ggc_get_size (t);
! }
! /* Bits from common. */
! ggc_mark_tree (TREE_TYPE (t));
! ggc_mark_tree (TREE_CHAIN (t));
!
! /* Some nodes require special handling. */
! switch (code)
! {
! case TREE_LIST:
! ggc_mark_tree (TREE_PURPOSE (t));
! ggc_mark_tree (TREE_VALUE (t));
! continue;
!
! case TREE_VEC:
! {
! int i = TREE_VEC_LENGTH (t);
! while (--i >= 0)
! ggc_mark_tree (TREE_VEC_ELT (t, i));
! continue;
! }
!
! case SAVE_EXPR:
! ggc_mark_tree (TREE_OPERAND (t, 0));
! ggc_mark_tree (SAVE_EXPR_CONTEXT (t));
! ggc_mark_rtx (SAVE_EXPR_RTL (t));
! continue;
!
! case RTL_EXPR:
! ggc_mark_rtx (RTL_EXPR_SEQUENCE (t));
! ggc_mark_rtx (RTL_EXPR_RTL (t));
! continue;
!
! case CALL_EXPR:
! ggc_mark_tree (TREE_OPERAND (t, 0));
! ggc_mark_tree (TREE_OPERAND (t, 1));
! ggc_mark_rtx (CALL_EXPR_RTL (t));
! continue;
!
! case COMPLEX_CST:
! ggc_mark_tree (TREE_REALPART (t));
! ggc_mark_tree (TREE_IMAGPART (t));
! break;
!
! case STRING_CST:
! ggc_mark_string (TREE_STRING_POINTER (t));
! break;
!
! case PARM_DECL:
! ggc_mark_rtx (DECL_INCOMING_RTL (t));
! break;
!
! case FIELD_DECL:
! ggc_mark_tree (DECL_FIELD_BIT_OFFSET (t));
! break;
!
! case IDENTIFIER_NODE:
! ggc_mark_string (IDENTIFIER_POINTER (t));
! lang_mark_tree (t);
! continue;
!
! default:
! break;
! }
! /* But in general we can handle them by class. */
! switch (TREE_CODE_CLASS (code))
! {
! case 'd': /* A decl node. */
! ggc_mark_string (DECL_SOURCE_FILE (t));
! ggc_mark_tree (DECL_SIZE (t));
! ggc_mark_tree (DECL_SIZE_UNIT (t));
! ggc_mark_tree (DECL_NAME (t));
! ggc_mark_tree (DECL_CONTEXT (t));
! ggc_mark_tree (DECL_ARGUMENTS (t));
! ggc_mark_tree (DECL_RESULT_FLD (t));
! ggc_mark_tree (DECL_INITIAL (t));
! ggc_mark_tree (DECL_ABSTRACT_ORIGIN (t));
! ggc_mark_tree (DECL_ASSEMBLER_NAME (t));
! ggc_mark_tree (DECL_SECTION_NAME (t));
! ggc_mark_tree (DECL_MACHINE_ATTRIBUTES (t));
! ggc_mark_rtx (DECL_RTL (t));
! ggc_mark_rtx (DECL_LIVE_RANGE_RTL (t));
! ggc_mark_tree (DECL_VINDEX (t));
! lang_mark_tree (t);
! break;
!
! case 't': /* A type node. */
! ggc_mark_tree (TYPE_SIZE (t));
! ggc_mark_tree (TYPE_SIZE_UNIT (t));
! ggc_mark_tree (TYPE_ATTRIBUTES (t));
! ggc_mark_tree (TYPE_VALUES (t));
! ggc_mark_tree (TYPE_POINTER_TO (t));
! ggc_mark_tree (TYPE_REFERENCE_TO (t));
! ggc_mark_tree (TYPE_NAME (t));
! ggc_mark_tree (TYPE_MIN_VALUE (t));
! ggc_mark_tree (TYPE_MAX_VALUE (t));
! ggc_mark_tree (TYPE_NEXT_VARIANT (t));
! ggc_mark_tree (TYPE_MAIN_VARIANT (t));
! ggc_mark_tree (TYPE_BINFO (t));
! ggc_mark_tree (TYPE_NONCOPIED_PARTS (t));
! ggc_mark_tree (TYPE_CONTEXT (t));
! lang_mark_tree (t);
! break;
!
! case 'b': /* A lexical block. */
! ggc_mark_tree (BLOCK_VARS (t));
! ggc_mark_tree (BLOCK_SUBBLOCKS (t));
! ggc_mark_tree (BLOCK_SUPERCONTEXT (t));
! ggc_mark_tree (BLOCK_ABSTRACT_ORIGIN (t));
! break;
!
! case 'c': /* A constant. */
! ggc_mark_rtx (TREE_CST_RTL (t));
! break;
!
! case 'r': case '<': case '1':
! case '2': case 'e': case 's': /* Expressions. */
! {
! int i = tree_code_length[TREE_CODE (t)];
! while (--i >= 0)
! ggc_mark_tree (TREE_OPERAND (t, i));
! break;
! }
!
! case 'x':
! lang_mark_tree (t);
! break;
! }
}
}
Index: ggc.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/ggc.h,v
retrieving revision 1.25
diff -c -p -r1.25 ggc.h
*** ggc.h 2000/03/25 18:34:02 1.25
--- ggc.h 2000/04/06 00:36:52
*************** Software Foundation, 59 Temple Place - S
*** 19,24 ****
--- 19,25 ----
02111-1307, USA. */
#include "gansidecl.h"
+ #include "varray.h"
/* Symbols are marked with `ggc' for `gcc gc' so as not to interfere with
an external gc library that might be linked in. */
*************** struct rtvec_def;
*** 40,50 ****
struct stmt_status;
union tree_node;
struct varasm_status;
- struct varray_head_tag;
/* Constants for general use. */
extern char *empty_string;
/* Manipulate global roots that are needed between calls to gc. */
void ggc_add_root PARAMS ((void *base, int nelt, int size, void (*)(void *)));
void ggc_add_rtx_root PARAMS ((struct rtx_def **, int nelt));
--- 41,53 ----
struct stmt_status;
union tree_node;
struct varasm_status;
/* Constants for general use. */
extern char *empty_string;
+ /* Trees that have been marked, but whose children still need marking. */
+ extern varray_type ggc_pending_trees;
+
/* Manipulate global roots that are needed between calls to gc. */
void ggc_add_root PARAMS ((void *base, int nelt, int size, void (*)(void *)));
void ggc_add_rtx_root PARAMS ((struct rtx_def **, int nelt));
*************** extern void ggc_mark_roots PARAMS ((void
*** 64,70 ****
extern void ggc_mark_rtx_children PARAMS ((struct rtx_def *));
extern void ggc_mark_rtvec_children PARAMS ((struct rtvec_def *));
- extern void ggc_mark_tree_children PARAMS ((union tree_node *));
/* If EXPR is not NULL and previously unmarked, mark it and evaluate
to true. Otherwise evaluate to false. */
--- 67,72 ----
*************** extern void ggc_mark_tree_children PARAM
*** 78,88 ****
ggc_mark_rtx_children (r__); \
} while (0)
! #define ggc_mark_tree(EXPR) \
! do { \
! tree t__ = (EXPR); \
! if (ggc_test_and_set_mark (t__)) \
! ggc_mark_tree_children (t__); \
} while (0)
#define ggc_mark_rtvec(EXPR) \
--- 80,90 ----
ggc_mark_rtx_children (r__); \
} while (0)
! #define ggc_mark_tree(EXPR) \
! do { \
! tree t__ = (EXPR); \
! if (ggc_test_and_set_mark (t__)) \
! VARRAY_PUSH_TREE (ggc_pending_trees, t__); \
} while (0)
#define ggc_mark_rtvec(EXPR) \
Index: cp/Makefile.in
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/Makefile.in,v
retrieving revision 1.82
diff -c -p -r1.82 Makefile.in
*** Makefile.in 2000/03/10 11:55:59 1.82
--- Makefile.in 2000/04/06 00:37:15
*************** CXX_TREE_H = $(TREE_H) cp-tree.h $(srcdi
*** 209,218 ****
PARSE_H = $(srcdir)/parse.h
PARSE_C = $(srcdir)/parse.c
EXPR_H = $(srcdir)/../expr.h ../insn-codes.h
parse.o : $(PARSE_C) $(CXX_TREE_H) $(srcdir)/../flags.h lex.h \
$(srcdir)/../except.h $(srcdir)/../output.h $(srcdir)/../system.h \
! $(srcdir)/../toplev.h $(srcdir)/../ggc.h
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(BIG_SWITCHFLAG) \
`echo $(PARSE_C) | sed 's,^\./,,'`
--- 209,219 ----
PARSE_H = $(srcdir)/parse.h
PARSE_C = $(srcdir)/parse.c
EXPR_H = $(srcdir)/../expr.h ../insn-codes.h
+ GGC_H = $(srcdir)/../ggc.h $(srcdir)/../varray.h
parse.o : $(PARSE_C) $(CXX_TREE_H) $(srcdir)/../flags.h lex.h \
$(srcdir)/../except.h $(srcdir)/../output.h $(srcdir)/../system.h \
! $(srcdir)/../toplev.h $(GGC_H)
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(BIG_SWITCHFLAG) \
`echo $(PARSE_C) | sed 's,^\./,,'`
*************** spew.o : spew.c $(CXX_TREE_H) $(PARSE_H)
*** 251,266 ****
lex.o : lex.c $(CXX_TREE_H) \
$(PARSE_H) input.c $(srcdir)/../flags.h hash.h lex.h \
$(srcdir)/../c-pragma.h $(srcdir)/../toplev.h \
! $(srcdir)/../output.h $(srcdir)/../mbchar.h $(srcdir)/../ggc.h \
$(srcdir)/../input.h
decl.o : decl.c $(CXX_TREE_H) $(srcdir)/../flags.h \
lex.h decl.h $(srcdir)/../stack.h $(srcdir)/../output.h \
$(srcdir)/../except.h $(srcdir)/../toplev.h \
! $(srcdir)/../hash.h $(srcdir)/../ggc.h $(RTL_H)
decl2.o : decl2.c $(CXX_TREE_H) $(srcdir)/../flags.h \
lex.h decl.h $(EXPR_H) $(srcdir)/../output.h $(srcdir)/../except.h \
$(srcdir)/../toplev.h $(srcdir)/../dwarf2out.h $(srcdir)/../dwarfout.h \
! $(srcdir)/../ggc.h $(RTL_H)
typeck2.o : typeck2.c $(CXX_TREE_H) $(srcdir)/../flags.h \
$(srcdir)/../toplev.h $(srcdir)/../output.h
typeck.o : typeck.c $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H) \
--- 252,267 ----
lex.o : lex.c $(CXX_TREE_H) \
$(PARSE_H) input.c $(srcdir)/../flags.h hash.h lex.h \
$(srcdir)/../c-pragma.h $(srcdir)/../toplev.h \
! $(srcdir)/../output.h $(srcdir)/../mbchar.h $(GGC_H) \
$(srcdir)/../input.h
decl.o : decl.c $(CXX_TREE_H) $(srcdir)/../flags.h \
lex.h decl.h $(srcdir)/../stack.h $(srcdir)/../output.h \
$(srcdir)/../except.h $(srcdir)/../toplev.h \
! $(srcdir)/../hash.h $(GGC_H) $(RTL_H)
decl2.o : decl2.c $(CXX_TREE_H) $(srcdir)/../flags.h \
lex.h decl.h $(EXPR_H) $(srcdir)/../output.h $(srcdir)/../except.h \
$(srcdir)/../toplev.h $(srcdir)/../dwarf2out.h $(srcdir)/../dwarfout.h \
! $(GGC_H) $(RTL_H)
typeck2.o : typeck2.c $(CXX_TREE_H) $(srcdir)/../flags.h \
$(srcdir)/../toplev.h $(srcdir)/../output.h
typeck.o : typeck.c $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H) \
*************** typeck.o : typeck.c $(CXX_TREE_H) $(srcd
*** 268,287 ****
class.o : class.c $(CXX_TREE_H) $(srcdir)/../flags.h \
$(srcdir)/../toplev.h $(RTL_H)
call.o : call.c $(CXX_TREE_H) $(srcdir)/../flags.h \
! $(srcdir)/../toplev.h $(RTL_H) $(EXPR_H)
friend.o : friend.c $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H) \
$(srcdir)/../toplev.h
init.o : init.c $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H) \
! $(EXPR_H) $(srcdir)/../toplev.h $(srcdir)/../ggc.h \
$(srcdir)/../except.h
method.o : method.c $(CXX_TREE_H) \
! $(srcdir)/../toplev.h $(srcdir)/../ggc.h $(RTL_H)
cvt.o : cvt.c $(CXX_TREE_H) decl.h \
$(srcdir)/../flags.h $(srcdir)/../toplev.h $(srcdir)/../convert.h
search.o : search.c $(CXX_TREE_H) $(srcdir)/../stack.h \
$(srcdir)/../flags.h $(srcdir)/../toplev.h $(RTL_H)
tree.o : tree.c $(CXX_TREE_H) $(srcdir)/../flags.h \
! $(srcdir)/../toplev.h $(srcdir)/../ggc.h $(RTL_H) \
../insn-config.h $(srcdir)/../integrate.h
ptree.o : ptree.c $(CXX_TREE_H) $(srcdir)/../system.h
rtti.o : rtti.c $(CXX_TREE_H) $(srcdir)/../flags.h \
--- 269,288 ----
class.o : class.c $(CXX_TREE_H) $(srcdir)/../flags.h \
$(srcdir)/../toplev.h $(RTL_H)
call.o : call.c $(CXX_TREE_H) $(srcdir)/../flags.h \
! $(srcdir)/../toplev.h $(RTL_H) $(EXPR_H) $(GGC_H)
friend.o : friend.c $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H) \
$(srcdir)/../toplev.h
init.o : init.c $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H) \
! $(EXPR_H) $(srcdir)/../toplev.h $(GGC_H) \
$(srcdir)/../except.h
method.o : method.c $(CXX_TREE_H) \
! $(srcdir)/../toplev.h $(GGC_H) $(RTL_H)
cvt.o : cvt.c $(CXX_TREE_H) decl.h \
$(srcdir)/../flags.h $(srcdir)/../toplev.h $(srcdir)/../convert.h
search.o : search.c $(CXX_TREE_H) $(srcdir)/../stack.h \
$(srcdir)/../flags.h $(srcdir)/../toplev.h $(RTL_H)
tree.o : tree.c $(CXX_TREE_H) $(srcdir)/../flags.h \
! $(srcdir)/../toplev.h $(GGC_H) $(RTL_H) \
../insn-config.h $(srcdir)/../integrate.h
ptree.o : ptree.c $(CXX_TREE_H) $(srcdir)/../system.h
rtti.o : rtti.c $(CXX_TREE_H) $(srcdir)/../flags.h \
*************** expr.o : expr.c $(CXX_TREE_H) $(RTL_H) $
*** 293,309 ****
xref.o : xref.c $(CXX_TREE_H) $(srcdir)/../input.h \
$(srcdir)/../toplev.h
pt.o : pt.c $(CXX_TREE_H) decl.h $(PARSE_H) lex.h \
! $(srcdir)/../toplev.h $(srcdir)/../ggc.h $(RTL_H) \
$(srcdir)/../except.h
error.o : error.c $(CXX_TREE_H) \
$(srcdir)/../toplev.h
errfn.o : errfn.c $(CXX_TREE_H) \
$(srcdir)/../toplev.h
repo.o : repo.c $(CXX_TREE_H) \
! $(srcdir)/../toplev.h $(srcdir)/../ggc.h
semantics.o: semantics.c $(CXX_TREE_H) lex.h \
$(srcdir)/../except.h $(srcdir)/../toplev.h \
! $(srcdir)/../flags.h $(srcdir)/../ggc.h \
$(srcdir)/../output.h $(RTL_H)
dump.o: dump.c $(CXX_TREE_H)
optimize.o: optimize.c $(CXX_TREE_H) \
--- 294,310 ----
xref.o : xref.c $(CXX_TREE_H) $(srcdir)/../input.h \
$(srcdir)/../toplev.h
pt.o : pt.c $(CXX_TREE_H) decl.h $(PARSE_H) lex.h \
! $(srcdir)/../toplev.h $(GGC_H) $(RTL_H) \
$(srcdir)/../except.h
error.o : error.c $(CXX_TREE_H) \
$(srcdir)/../toplev.h
errfn.o : errfn.c $(CXX_TREE_H) \
$(srcdir)/../toplev.h
repo.o : repo.c $(CXX_TREE_H) \
! $(srcdir)/../toplev.h $(GGC_H)
semantics.o: semantics.c $(CXX_TREE_H) lex.h \
$(srcdir)/../except.h $(srcdir)/../toplev.h \
! $(srcdir)/../flags.h $(GGC_H) \
$(srcdir)/../output.h $(RTL_H)
dump.o: dump.c $(CXX_TREE_H)
optimize.o: optimize.c $(CXX_TREE_H) \
Index: f/Makefile.in
===================================================================
RCS file: /cvs/gcc/egcs/gcc/f/Makefile.in,v
retrieving revision 1.20
diff -c -p -r1.20 Makefile.in
*** Makefile.in 2000/02/26 20:02:00 1.20
--- Makefile.in 2000/04/06 00:37:41
***************
*** 1,5 ****
# Makefile for GNU F77 compiler.
! # Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
#This file is part of GNU Fortran.
--- 1,5 ----
# Makefile for GNU F77 compiler.
! # Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
#This file is part of GNU Fortran.
*************** ASSERT_H = $(srcdir)/assert.j $(srcdir)/
*** 225,231 ****
CONFIG_H = $(srcdir)/config.j ../config.h
CONVERT_H = $(srcdir)/convert.j $(srcdir)/../convert.h
FLAGS_H = $(srcdir)/flags.j $(srcdir)/../flags.h
! GGC_H = $(srcdir)/ggc.j $(srcdir)/../ggc.h
GLIMITS_H = $(srcdir)/glimits.j $(srcdir)/../glimits.h
HCONFIG_H = $(srcdir)/hconfig.j ../hconfig.h
INPUT_H = $(srcdir)/input.j $(srcdir)/../input.h
--- 225,231 ----
CONFIG_H = $(srcdir)/config.j ../config.h
CONVERT_H = $(srcdir)/convert.j $(srcdir)/../convert.h
FLAGS_H = $(srcdir)/flags.j $(srcdir)/../flags.h
! GGC_H = $(srcdir)/ggc.j $(srcdir)/../ggc.h $(srcdir)/../varray.h
GLIMITS_H = $(srcdir)/glimits.j $(srcdir)/../glimits.h
HCONFIG_H = $(srcdir)/hconfig.j ../hconfig.h
INPUT_H = $(srcdir)/input.j $(srcdir)/../input.h