This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: attribute((leafify)) for 3.4
- From: Richard Guenther <rguenth at tat dot physik dot uni-tuebingen dot de>
- To: Jan Hubicka <jh at suse dot cz>
- Cc: gcc at gcc dot gnu dot org
- Date: Tue, 4 Nov 2003 17:18:13 +0100 (CET)
- Subject: Re: attribute((leafify)) for 3.4
Hi!
I have some problems left in that inlining seems to cause new cgraph edges
be created but I miss to update some of them with maybe_inline_call even
though the patch chunk related to record_call_1().
adding a warning to cgraph_inline_p() to check if maybe_inline_call is
checked if leafify is on reveals non-marked edges coming from inlining of
something like
template<int Dim>
inline Interval<Dim>
cellDomainToCenteringDomain(const Interval<Dim> &cellDom,
const Centering<Dim> ¢ering, int i)
{
return shrinkRight(growRight(cellDom, 1), centering.orientation(i));
}
where at inlining calls inside growRight() it moans it doesnt have seen
the edge to
template<int Dim>
inline Interval<Dim>
growRight(const Interval<Dim> &dom, int s)
{
Interval<Dim> ret = Pooma::NoInit();
^^^^^^^^^^^^^^^^ here
for (int d = 0; d < Dim; ++d)
{
so maybe the call to cgraph_create_edges in tree-inline.c:expand_call_inline() doesnt
create all neccessary edges? (but somehow they appear...)
Any idea? For reference, I put the patch with the warnings added at
http://www.tat.physik.uni-tuebingen.de/~rguenth/gcc/leafify-3.4-debug
and a preprocessed testcase at
http://www.tat.physik.uni-tuebingen.de/~rguenth/gcc/tramp3d2.ii.gz
Thanks,
Richard.
--
Richard Guenther <richard dot guenther at uni-tuebingen dot de>
WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/