diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-04-27 17:28:51 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-04-27 17:28:51 +0000 |
commit | 6a18c0bec499ece5851b032108131fc39c6f06d9 (patch) | |
tree | 9697add388cfd4243871035ff391fcd84fd2bf18 /gcc/ipa-inline.h | |
parent | b392ee8b6b4b87ea7c4e49b19a88d137d0812dc9 (diff) | |
download | gcc-6a18c0bec499ece5851b032108131fc39c6f06d9.tar.gz |
* testsuite/gcc.dg/tree-ssa/inline-9.c: New testcase.
* ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
* ipa-inline-analysis.c: Include alloc-pool.h.
(edge_predicate_pool): New.
(trye_predicate_p): New function
(false_predicate_p): New function.
(add_clause): Sanity check that false clauses are "optimized";
never add clauses to predicate that is already known to be false.
(and_predicate): Use flase_predicate_p.
(evaulate_predicate): Rename to ...
(evaluate_predicate): ... this one; update all callers; assert
that false is not listed among possible truths.
(dump_predicate): Use true_predicate_p.
(account_size_time): Use false_predicate_p.
(evaulate_conditions_for_edge): Rename to ...
(evaluate_conditions_for_edge) ... this one.
(edge_set_predicate): New function.
(inline_edge_duplication_hook): Duplicate edge predicates.
(inline_edge_removal_hook): Free edge predicates.
(dump_inline_edge_summary): Add INFO parameter; dump
edge predicates.
(dump_inline_summary): Update.
(estimate_function_body_sizes): Set edge predicates.
(estimate_calls_size_and_time): Handle predicates.
(estimate_callee_size_and_time): Update.
(remap_predicate): Add toplev_predicate; update comment.
(remap_edge_predicates): New function.
(inline_merge_summary): Compute toplev predicate; update.
(read_predicate): New function.
(read_inline_edge_summary): Use it.
(inline_read_section): Likewise.
(write_predicate): New function.
(write_inline_edge_summary): Use it.
(inline_write_summary): Likewise.
(inline_free_summary): Free alloc pool and edge summary vec.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173042 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ipa-inline.h')
-rw-r--r-- | gcc/ipa-inline.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/ipa-inline.h b/gcc/ipa-inline.h index d27fa46b7b8..8281d07ae50 100644 --- a/gcc/ipa-inline.h +++ b/gcc/ipa-inline.h @@ -120,6 +120,7 @@ struct inline_edge_summary int call_stmt_time; /* Depth of loop nest, 0 means no nesting. */ unsigned short int loop_depth; + struct predicate *predicate; }; typedef struct inline_edge_summary inline_edge_summary_t; |