From: jamborm Date: Tue, 1 Dec 2009 10:51:07 +0000 (+0000) Subject: 2009-12-01 Martin Jambor X-Git-Url: http://git.sourceforge.jp/view?a=commitdiff_plain;h=3e9948255201e27fdaadb981200b449c9faf842d;p=pf3gnuchains%2Fgcc-fork.git 2009-12-01 Martin Jambor * cgraph.h (struct cgraph_edge): Reorder fields. Make loop_nest unsigned short int. * ipa-prop.h (struct ipa_param_call_note): Likewise. * ipa-prop.c (ipa_note_param_call): Initialize note->loop_nest. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154872 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f68d7583f73..f4cd2813c32 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2009-12-01 Martin Jambor + + * cgraph.h (struct cgraph_edge): Reorder fields. Make loop_nest + unsigned short int. + * ipa-prop.h (struct ipa_param_call_note): Likewise. + * ipa-prop.c (ipa_note_param_call): Initialize note->loop_nest. + 2009-12-01 Richard Guenther * final.c (rest_of_clean_state): If -fcompare-debug is diff --git a/gcc/cgraph.h b/gcc/cgraph.h index 1017176ff3f..d79d3e4d86b 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -310,6 +310,8 @@ typedef enum { } cgraph_inline_failed_t; struct GTY((chain_next ("%h.next_caller"), chain_prev ("%h.prev_caller"))) cgraph_edge { + /* Expected number of executions: calculated in profile.c. */ + gcov_type count; struct cgraph_node *caller; struct cgraph_node *callee; struct cgraph_edge *prev_caller; @@ -317,29 +319,27 @@ struct GTY((chain_next ("%h.next_caller"), chain_prev ("%h.prev_caller"))) cgrap struct cgraph_edge *prev_callee; struct cgraph_edge *next_callee; gimple call_stmt; - /* The stmt_uid of this call stmt. This is used by LTO to recover - the call_stmt when the function is serialized in. */ - unsigned int lto_stmt_uid; PTR GTY ((skip (""))) aux; /* When equal to CIF_OK, inline this call. Otherwise, points to the explanation why function was not inlined. */ cgraph_inline_failed_t inline_failed; - /* Expected number of executions: calculated in profile.c. */ - gcov_type count; + /* The stmt_uid of call_stmt. This is used by LTO to recover the call_stmt + when the function is serialized in. */ + unsigned int lto_stmt_uid; /* Expected frequency of executions within the function. When set to CGRAPH_FREQ_BASE, the edge is expected to be called once per function call. The range is 0 to CGRAPH_FREQ_MAX. */ int frequency; + /* Unique id of the edge. */ + int uid; /* Depth of loop nest, 1 means no loop nest. */ - unsigned int loop_nest : 30; + unsigned short int loop_nest; /* Whether this edge describes a call that was originally indirect. */ unsigned int indirect_call : 1; /* True if the corresponding CALL stmt cannot be inlined. */ unsigned int call_stmt_cannot_inline_p : 1; /* Can this call throw externally? */ unsigned int can_throw_external : 1; - /* Unique id of the edge. */ - int uid; }; #define CGRAPH_FREQ_BASE 1000 diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c index 78269d82537..9387f0e0779 100644 --- a/gcc/ipa-prop.c +++ b/gcc/ipa-prop.c @@ -754,6 +754,7 @@ ipa_note_param_call (struct ipa_node_params *info, int formal_id, note->lto_stmt_uid = gimple_uid (stmt); note->count = bb->count; note->frequency = compute_call_stmt_bb_frequency (current_function_decl, bb); + note->loop_nest = bb->loop_depth; note->next = info->param_calls; info->param_calls = note; diff --git a/gcc/ipa-prop.h b/gcc/ipa-prop.h index 4dc87d78503..90055e124bc 100644 --- a/gcc/ipa-prop.h +++ b/gcc/ipa-prop.h @@ -139,6 +139,8 @@ struct ipcp_lattice are linked in a list. */ struct ipa_param_call_note { + /* Expected number of executions: calculated in profile.c. */ + gcov_type count; /* Linked list's next */ struct ipa_param_call_note *next; /* Statement that contains the call to the parameter above. */ @@ -147,13 +149,11 @@ struct ipa_param_call_note unsigned int lto_stmt_uid; /* Index of the parameter that is called. */ int formal_id; - /* Expected number of executions: calculated in profile.c. */ - gcov_type count; /* Expected frequency of executions within the function. see cgraph_edge in cgraph.h for more on this. */ int frequency; /* Depth of loop nest, 1 means no loop nest. */ - int loop_nest; + unsigned short int loop_nest; /* Set when we have already found the target to be a compile time constant and turned this into an edge or when the note was found unusable for some reason. */