This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Teach IPA-CP to make calls direct based on contents of aggregates

> The reason why ipa_get_indirect_edge_target is split into two is that
> unlike in the inlining case, this one has to understand the
> description of known aggregate values in clones which are different
> from aggregate jump functions (they are quite simpler).  Otherwise the
> patch is hopefully quite straightforward.

Hmm, perhaps we can commonize it a bit more?
> Bootstrapped and tested on x86_64-linux, OK for trunk?

I would also suggest adding code translating calls to known constant (NULL or integer_cst) into
__builtin_trap / __bulitin_unreachable (based on Richi's preferences).  It should help code quality
(since relatively few calls are like that on Mozilla) and also it will make us to notice where
we propagate complette garbage - I still do not know of those obviously bogus calls come from
impossible type conversions (so we read past vtable) or because of some bug.
> 2013-03-19  Martin Jambor  <>
> 	* ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
> 	ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
> 	process it.
> 	(ipa_get_indirect_edge_target): New function.
> 	(devirtualization_time_bonus): New parameter known_aggs, pass it to
> 	ipa_get_indirect_edge_target.  Update all callers.
> 	(ipcp_discover_new_direct_edges): New parameter aggvals.  Pass it to
> 	ipa_get_indirect_edge_target_1 instead of calling
> 	ipa_get_indirect_edge_target.
> 	(create_specialized_node): Pass aggvlas to
> 	ipcp_discover_new_direct_edges.
> testsuite/
> 	* gcc.dg/ipa/ipcp-agg-9.c: New test.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]