summaryrefslogtreecommitdiff
path: root/gcc/cgraph.h
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2003-03-05 01:33:27 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2003-03-05 01:33:27 +0000
commit80a85d8a0476d7921ab8a4f04c38a24c60ca159d (patch)
treec65a7c71518b86c824939e78d633204bce6006c7 /gcc/cgraph.h
parentf3672f9947359a3d452bed56c957e7ed418fabe5 (diff)
downloadgcc-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.h26
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));