summaryrefslogtreecommitdiff
path: root/gcc/ipa-inline.h
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2012-08-21 06:54:01 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2012-08-21 06:54:01 +0000
commit7c07aa3d93eaaa678e5df2caf9750a692587fc76 (patch)
treeea6cdcf31028e9bf0f6d2317cb87f6e7a3668c5b /gcc/ipa-inline.h
parent7982f4b50bf0b40dd7e31cc870310b2bfdc36c4c (diff)
downloadgcc-7c07aa3d93eaaa678e5df2caf9750a692587fc76.tar.gz
PR fortran/48636
* ipa-inline.c (want_inline_small_function_p): Take loop_iterations hint. (edge_badness): Likewise. * ipa-inline.h (inline_hints_vals): Add INLINE_HINT_loop_iterations. (inline_summary): Add loop_iterations. * ipa-inline-analysis.c: Include tree-scalar-evolution.h. (dump_inline_hints): Dump loop_iterations. (reset_inline_summary): Free loop_iterations. (inline_node_duplication_hook): Update loop_iterations. (dump_inline_summary): Dump loop_iterations. (will_be_nonconstant_expr_predicate): New function. (estimate_function_body_sizes): Analyze loops. (estimate_node_size_and_time): Set hint loop_iterations. (inline_merge_summary): Merge loop iterations. (inline_read_section): Stream in loop_iterations. (inline_write_summary): Stream out loop_iterations. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190556 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ipa-inline.h')
-rw-r--r--gcc/ipa-inline.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ipa-inline.h b/gcc/ipa-inline.h
index fca99e629b0..839bc237f2a 100644
--- a/gcc/ipa-inline.h
+++ b/gcc/ipa-inline.h
@@ -45,7 +45,8 @@ typedef struct GTY(()) condition
/* Inline hints are reasons why inline heuristics should preffer inlining given function.
They are represtented as bitmap of the following values. */
enum inline_hints_vals {
- INLINE_HINT_indirect_call = 1
+ INLINE_HINT_indirect_call = 1,
+ INLINE_HINT_loop_iterations = 2
};
typedef int inline_hints;
@@ -118,6 +119,10 @@ struct GTY(()) inline_summary
merged during inlining. */
conditions conds;
VEC(size_time_entry,gc) *entry;
+
+ /* Predicate on when some loop in the function sbecomes to have known
+ bounds. */
+ struct predicate * GTY((skip)) loop_iterations;
};