diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2006-01-17 07:04:20 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2006-01-17 07:04:20 +0000 |
commit | 474eccc60315960b14fb0af4b7da9c6795ac4f0e (patch) | |
tree | 11320048997fd124915d16755d4d699f94cce278 /gcc/c-parser.c | |
parent | 2fbdae3614e1e34d29ca5ce2af89739e39e305bd (diff) | |
download | gcc-474eccc60315960b14fb0af4b7da9c6795ac4f0e.zip gcc-474eccc60315960b14fb0af4b7da9c6795ac4f0e.tar.gz gcc-474eccc60315960b14fb0af4b7da9c6795ac4f0e.tar.bz2 |
common.opt (ftoplevel-reorder): New option.
./: * common.opt (ftoplevel-reorder): New option.
* cgraph.c (cgraph_asm_nodes): New global variable.
(cgraph_asm_last_node): New static variable.
(cgraph_order): New global variable.
(cgraph_create_node): Set new order field.
(cgraph_varpool_node): Likewise.
(decide_is_variable_needed): Return true if not
flag_toplevel_reorder.
(cgraph_add_asm_node): New function.
* cgraph.h (struct cgraph_node): Add order field.
(struct cgraph_varpool_node): Add order field.
(struct cgraph_asm_node): Define.
(cgraph_asm_nodes, cgraph_order): Declare.
(cgraph_add_asm_node): Declare.
* cgraphunit.c (cgraph_varpool_assemble_decl): New static
function.
(cgraph_varpool_assemble_pending_decls): Call it.
(cgraph_output_pending_asms): New static function.
(cgraph_finalize_compilation_unit): Call it.
(struct cgraph_order_sort): Define.
(cgraph_output_in_order): New static function.
(cgraph_optimize): Call cgraph_output_pending_asms. Add code for
!flag_toplevel_reorder case.
* c-parser.c: Include "cgraph.h".
(c_parser_asm_definition): Call cgraph_add_asm_node rather than
assemble_asm.
* Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
than -fno-unit-at-a-time.
* doc/invoke.texi (Option Summary): Mention
-fno-toplevel-reorder.
(Optimize Options): Document -fno-toplevel-reorder. Mention it in
-funit-at-a-time documentation.
cp/:
* parser.c: Include "cgraph.h".
(cp_parser_asm_definition): Call cgraph_add_asm_node rather than
assemble_asm.
From-SVN: r109811
Diffstat (limited to 'gcc/c-parser.c')
-rw-r--r-- | gcc/c-parser.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/gcc/c-parser.c b/gcc/c-parser.c index 91a9d29..522f2d2 100644 --- a/gcc/c-parser.c +++ b/gcc/c-parser.c @@ -56,6 +56,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA #include "c-common.h" #include "vec.h" #include "target.h" +#include "cgraph.h" /* Miscellaneous data and functions needed for the parser. */ @@ -1387,12 +1388,8 @@ static void c_parser_asm_definition (c_parser *parser) { tree asm_str = c_parser_simple_asm_expr (parser); - /* ??? This only works sensibly in the presence of - -fno-unit-at-a-time; file-scope asms really need to be passed to - cgraph which needs to preserve the order of functions and - file-scope asms. */ if (asm_str) - assemble_asm (asm_str); + cgraph_add_asm_node (asm_str); c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>"); } |