8sa1-gcc/gcc/f/ggc.j

30 lines
977 B
Plaintext
Raw Normal View History

Make the Fortran front-end use garbage collection: * com.c (ffecom_init_0): Make double_ftype_double, float_ftype_float, ldouble_ftype_ldouble, ffecom_tree_ptr_to_fun_type_void local. (tracker_head): New static variable. (mark_tracker_head): New, marker procedure for tracker_head. (ffecom_save_tree_forever): New procedure. (ffecom_init_zero_): Remove obstack use. (ffecom_make_gfrt_): Remove obstack use. (ffecom_sym_transform_): Remove obstack use, save appropriate trees. (ffecom_transform_common_): Remove obstack use, save appropriate trees. (ffecom_type_namelist_): Remove obstack use, save appropriate trees. (ffecom_type_vardesc_): Remove obstack use, save appropriate trees. (ffecom_lookup_label): Remove obstack use, save appropriate trees. (duplicate_decls): Remove obstack use. (finish_function): push & pop ggc context around rest_of_compilation when building nested function. (mark_binding_level): New function. (init_decl_processing): Mark all the GC roots. (ggc_p): Set to 1. (lang_mark_tree): New function. (lang_mark_false_label_stack): New trivial function. * com.h (ffecom_save_tree_forever): Declare as external. * lex.c (ffelex_hash_): Use GC to allocate the filename string even when ffelex_kludge_flag_. * ste.c (ffeste_io_ialist_): Register a static root. (ffeste_io_inlist_): Likewise. (ffeste_io_icilist_): Likewise. (ffeste_io_cllist_): Likewise. (ffeste_io_cilist_): Likewise. (ffeste_io_olist_): Likewise. * Makefile.in (OBJS): Don't use ggc-callbacks.o. (OBJDEPS): Likewise. (GGC_H): New variable. Update dependencies. * where.c (ffewhere_head): New global. (mark_ffewhere_head): New marker procedure for ffewhere_head. (ffewhere_file_kill): Use GC to do memory management. (ffewhere_file_new): Use GC to do memory management. * ggc.j: New file. From-SVN: r31142
1999-12-30 14:44:13 -05:00
/* rtl.j -- Wrapper for GCC's rtl.h
Copyright (C) 1995 Free Software Foundation, Inc.
Contributed by James Craig Burley.
This file is part of GNU Fortran.
GNU Fortran 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.
GNU Fortran 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 GNU Fortran; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
#ifndef MAKING_DEPENDENCIES
#ifndef _J_f_ggc
#define _J_f_ggc
#include "system.j"
#include "config.j"
#include "ggc.h"
#endif
#endif