From: Aldy Hernandez <aldyh@redhat.com>
To: gcc-patches <gcc-patches@gcc.gnu.org>
Subject: [patch 1/10] debug-early merge: Ada front-end
Date: Fri, 08 May 2015 00:32:00 -0000 [thread overview]
Message-ID: <554C0417.8020300@redhat.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 1 bytes --]
[-- Attachment #2: dearly-ada.patch --]
[-- Type: text/x-patch, Size: 4165 bytes --]
gcc/ada/
* gcc-interface/gigi.h (note_types_used_by_globals): New prototype.
* gcc-interface/misc.c (gnat_parse_file): Call
note_types_used_by_globals.
* gcc-interface/utils.c: Remove global_decls.
(gnat_pushdecl): Remove use of global_decls.
(gnat_write_global_declarations): Rename to
note_types_used_by_globals.
Remove call to finalize_compilation_unit.
Remove explicit call to debug_hooks.
diff --git a/gcc/ada/gcc-interface/gigi.h b/gcc/ada/gcc-interface/gigi.h
index 6d65fc5..fead2be 100644
--- a/gcc/ada/gcc-interface/gigi.h
+++ b/gcc/ada/gcc-interface/gigi.h
@@ -535,8 +535,7 @@ extern tree gnat_type_for_size (unsigned precision, int unsignedp);
an unsigned type; otherwise a signed type is returned. */
extern tree gnat_type_for_mode (machine_mode mode, int unsignedp);
-/* Emit debug info for all global variable declarations. */
-extern void gnat_write_global_declarations (void);
+extern void note_types_used_by_globals (void);
/* Return the unsigned version of a TYPE_NODE, a scalar type. */
extern tree gnat_unsigned_type (tree type_node);
diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c
index edaab97..2056a61 100644
--- a/gcc/ada/gcc-interface/misc.c
+++ b/gcc/ada/gcc-interface/misc.c
@@ -122,6 +122,8 @@ gnat_parse_file (void)
/* Call the front end. */
_ada_gnat1drv ();
+
+ note_types_used_by_globals ();
}
/* Return language mask for option processing. */
@@ -972,8 +974,6 @@ gnat_init_ts (void)
#define LANG_HOOKS_GETDECLS lhd_return_null_tree_v
#undef LANG_HOOKS_PUSHDECL
#define LANG_HOOKS_PUSHDECL gnat_return_tree
-#undef LANG_HOOKS_WRITE_GLOBALS
-#define LANG_HOOKS_WRITE_GLOBALS gnat_write_global_declarations
#undef LANG_HOOKS_GET_ALIAS_SET
#define LANG_HOOKS_GET_ALIAS_SET gnat_get_alias_set
#undef LANG_HOOKS_PRINT_DECL
diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c
index 170aa4a..647b427 100644
--- a/gcc/ada/gcc-interface/utils.c
+++ b/gcc/ada/gcc-interface/utils.c
@@ -227,9 +227,6 @@ static GTY((deletable)) struct gnat_binding_level *free_binding_level;
/* The context to be used for global declarations. */
static GTY(()) tree global_context;
-/* An array of global declarations. */
-static GTY(()) vec<tree, va_gc> *global_decls;
-
/* An array of builtin function declarations. */
static GTY(()) vec<tree, va_gc> *builtin_decls;
@@ -764,9 +761,7 @@ gnat_pushdecl (tree decl, Node_Id gnat_node)
if (TREE_CODE (decl) == FUNCTION_DECL && DECL_BUILT_IN (decl))
vec_safe_push (builtin_decls, decl);
}
- else if (global_bindings_p ())
- vec_safe_push (global_decls, decl);
- else
+ else if (!global_bindings_p ())
{
DECL_CHAIN (decl) = BLOCK_VARS (current_binding_level->block);
BLOCK_VARS (current_binding_level->block) = decl;
@@ -5176,7 +5171,7 @@ smaller_form_type_p (tree type, tree orig_type)
static GTY (()) tree dummy_global;
void
-gnat_write_global_declarations (void)
+note_types_used_by_globals (void)
{
unsigned int i;
tree iter;
@@ -5204,28 +5199,6 @@ gnat_write_global_declarations (void)
types_used_by_var_decl_insert (t, dummy_global);
}
}
-
- /* Output debug information for all global type declarations first. This
- ensures that global types whose compilation hasn't been finalized yet,
- for example pointers to Taft amendment types, have their compilation
- finalized in the right context. */
- FOR_EACH_VEC_SAFE_ELT (global_decls, i, iter)
- if (TREE_CODE (iter) == TYPE_DECL && !DECL_IGNORED_P (iter))
- debug_hooks->global_decl (iter);
-
- /* Proceed to optimize and emit assembly. */
- symtab->finalize_compilation_unit ();
-
- /* After cgraph has had a chance to emit everything that's going to
- be emitted, output debug information for the rest of globals. */
- if (!seen_error ())
- {
- timevar_push (TV_SYMOUT);
- FOR_EACH_VEC_SAFE_ELT (global_decls, i, iter)
- if (TREE_CODE (iter) != TYPE_DECL && !DECL_IGNORED_P (iter))
- debug_hooks->global_decl (iter);
- timevar_pop (TV_SYMOUT);
- }
}
/* ************************************************************************
next reply other threads:[~2015-05-08 0:32 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-08 0:32 Aldy Hernandez [this message]
2015-05-08 10:27 ` Eric Botcazou
2015-05-08 10:35 ` Richard Biener
2015-05-08 15:22 ` Aldy Hernandez
2015-05-09 11:31 ` Eric Botcazou
2015-05-08 16:23 ` Aldy Hernandez
2015-05-09 11:31 ` Eric Botcazou
2015-05-21 21:33 ` Aldy Hernandez
2015-05-22 8:52 ` Eric Botcazou
2015-05-22 12:33 ` Aldy Hernandez
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=554C0417.8020300@redhat.com \
--to=aldyh@redhat.com \
--cc=gcc-patches@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).