[PATCH] Distribute inliner's size_time data across entries with similar predicates
Maxim Kuvyrkov
maxim@codesourcery.com
Mon Sep 19 21:18:00 GMT 2011
Jan,
The following patch started as a one-liner for ipa-inline-analysis.c: account_size_time() to merge predicates when we are adding data to entry[0] (i.e., when space for 32 size_time entries is exhausted):
@@ -537,6 +592,9 @@ account_size_time (struct inline_summary
}
else
{
+ e->predicate = or_predicates (summary->conds, &e->predicate, pred);
e->size += size;
e->time += time;
if (e->time > MAX_TIME * INLINE_TIME_SCALE)
The rationale was that since we are accounting size and time under the entry we also need to make entry's predicate a superset of the predicate we want to account the data under.
Then I thought that mushing all predicates into the single predicate of entry[0] will cause it to become true_predicate() very quickly, so I added logic to distribute incoming size_time information across all 32 entries by searching for entries with similar predicates.
OK for trunk assuming testing on x86_64-linux-gnu shows no regressions?
Thank you,
--
Maxim Kuvyrkov
CodeSourcery / Mentor Graphics
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Improve-ipa-inline-analysis.c-account_size_time-to-d.patch
Type: application/octet-stream
Size: 4316 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20110919/b3bf9798/attachment.obj>
More information about the Gcc-patches
mailing list