diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-03-05 01:33:27 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-03-05 01:33:27 +0000 |
commit | 80a85d8a0476d7921ab8a4f04c38a24c60ca159d (patch) | |
tree | c65a7c71518b86c824939e78d633204bce6006c7 /gcc/cgraph.h | |
parent | f3672f9947359a3d452bed56c957e7ed418fabe5 (diff) | |
download | gcc-80a85d8a0476d7921ab8a4f04c38a24c60ca159d.tar.gz |
* gcc.dg/i386-local.c: New.
* toplev.c (rest_of_compilation): Deffer RTL compilation only when
RTL inlining is done.
* cgraphunit.c (cgraph_mark_local_functions): New local function.
(cgraph_optimize): Mark local functions.
* i386-protos.h (init_cumulative_args): Update prototype.
* i386.c (init_cumulative_args): Use register passing convention for
local functions.
* cgraph.c (cgraph_global_info_ready): New global variable
(cgraph_local_info, cgraph_global_info): New functions.
* cgraph.h (struct cgraph_local_info, cgraph_global_info): New
structures.
(cgraph_local_info, cgraph_global_info, cgraph_global_info_ready):
Declare.
* cgraphunit.c (cgraph_finalize_function): Set inline_many.
(cgraph_mark_functions_to_output): Use inline_many.
(cgraph_expand_function): Free DECL_SAVED_TREE uncondtionally.
(cgraph_expand_functions): Expand inline functions last.
(cgraph_optimize): Do not emit uneeded functions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@63822 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cgraph.h')
-rw-r--r-- | gcc/cgraph.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/cgraph.h b/gcc/cgraph.h index 8dd37ed9e32..4404fb8b838 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -22,6 +22,27 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #ifndef GCC_CGRAPH_H #define GCC_CGRAPH_H +/* Information about the function collected locally. + Available after function is lowered */ + +struct cgraph_local_info +{ + /* Set when function function is visiable in current compilation unit only + and it's address is never taken. */ + bool local; + bool inline_many; +}; + +/* Information about the function that needs to be computed globally + once compilation is finished. Available only with -funit-at-time. */ + +struct cgraph_global_info +{ + /* Empty for the moment. */ + int dummy; +}; + + /* The cgraph data strutcture. Each function decl has assigned cgraph_node listing calees and callers. */ @@ -51,6 +72,8 @@ struct cgraph_node bool lowered; /* Set when function is scheduled to be assembled. */ bool output; + struct cgraph_local_info local; + struct cgraph_global_info global; }; struct cgraph_edge @@ -62,6 +85,7 @@ struct cgraph_edge extern struct cgraph_node *cgraph_nodes; extern int cgraph_n_nodes; +extern bool cgraph_global_info_ready; /* In cgraph.c */ void dump_cgraph PARAMS ((FILE *)); @@ -69,6 +93,8 @@ void cgraph_remove_call PARAMS ((tree, tree)); struct cgraph_edge *cgraph_record_call PARAMS ((tree, tree)); struct cgraph_node *cgraph_node PARAMS ((tree decl)); bool cgraph_calls_p PARAMS ((tree, tree)); +struct cgraph_local_info *cgraph_local_info PARAMS ((tree)); +struct cgraph_global_info *cgraph_global_info PARAMS ((tree)); /* In cgraphunit.c */ void cgraph_finalize_function PARAMS ((tree, tree)); |