diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-01-14 22:54:50 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-01-14 22:54:50 +0000 |
commit | 69435b7ff5e5a474296bf13e72507f00d97a6eb9 (patch) | |
tree | 8b1b7c30c31af7eeaa57d8ea5898e75bae608347 /gcc/cgraph.h | |
parent | d69affc26ace1de66e37f03bc9d9afabc1bfd1a6 (diff) | |
download | gcc-69435b7ff5e5a474296bf13e72507f00d97a6eb9.tar.gz |
* cgraph.c (create_edge): Use local.redefined_extern_inline.
* cgraph.h (cgraph_local_info): Sort fields by size; add
redefined_extern_inline
(cgraph_global_info): Sort fields by size.
(cgraph_node): Likewise.
* cgraphunit.c (cgraph_finalize_function): Se
local.redefined_extern_inline on redefinition.
(cgraph_analyze_function): Use it; fix formating.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75890 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cgraph.h')
-rw-r--r-- | gcc/cgraph.h | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/gcc/cgraph.h b/gcc/cgraph.h index 5cf31d7afae..ee4372ee91b 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -27,6 +27,9 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA struct cgraph_local_info GTY(()) { + /* Size of the function before inlining. */ + int self_insns; + /* Set when function function is visible in current compilation unit only and it's address is never taken. */ bool local; @@ -37,8 +40,9 @@ struct cgraph_local_info GTY(()) bool inlinable; /* True when function should be inlined independently on it's size. */ bool disregard_inline_limits; - /* Size of the function before inlining. */ - int self_insns; + /* True when the function has been originally extern inline, but it is + redefined now. */ + bool redefined_extern_inline; }; /* Information about the function that needs to be computed globally @@ -46,15 +50,15 @@ struct cgraph_local_info GTY(()) struct cgraph_global_info GTY(()) { - /* Set when the function will be inlined exactly once. */ - bool inline_once; - /* Estimated size of the function after inlining. */ int insns; /* Number of times given function will be cloned during output. */ int cloned_times; + /* Set when the function will be inlined exactly once. */ + bool inline_once; + /* Set to true for all reachable functions before inlining is decided. Once we inline all calls to the function and the function is local, it is set to false. */ @@ -93,10 +97,13 @@ struct cgraph_node GTY((chain_next ("%h.next"), chain_prev ("%h.previous"))) struct cgraph_node *next_nested; /* Pointer to the next function in cgraph_nodes_queue. */ struct cgraph_node *next_needed; - /* Unique id of the node. */ - int uid; PTR GTY ((skip (""))) aux; + struct cgraph_local_info local; + struct cgraph_global_info global; + struct cgraph_rtl_info rtl; + /* Unique id of the node. */ + int uid; /* Set when function must be output - it is externally visible or it's address is taken. */ bool needed; @@ -108,9 +115,6 @@ struct cgraph_node GTY((chain_next ("%h.next"), chain_prev ("%h.previous"))) bool analyzed; /* Set when function is scheduled to be assembled. */ bool output; - struct cgraph_local_info local; - struct cgraph_global_info global; - struct cgraph_rtl_info rtl; }; struct cgraph_edge GTY(()) |