This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/20969] unrolling does not take target register pressure into account.
- From: "joern dot rennecke at st dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 4 Aug 2005 12:13:58 -0000
- Subject: [Bug rtl-optimization/20969] unrolling does not take target register pressure into account.
- References: <20050412154215.20969.amylaar@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From joern dot rennecke at st dot com 2005-08-04 12:13 -------
Subject: Re: unrolling does not take target register pressure into account.
steven at gcc dot gnu dot org wrote:
>
>
>
>Could you give some specific examples of assesments that 3.4 can do and 4.1
>can not?
>
>
Of course, you could write special-case pattern matchers for specific loops,
but there is no infrastructure to do some assessments in a general way.
In particular,
there is no strength reduction information available during unrolling.
Increments of
address givs can be saved by doing unrolling, but the unroller can't
tell what they are.
Forthermore, from the giv information we can find array accesses, which
allow to
make an informed guess of the maximum iteration count without profile
information
or explicit loop bounds.
Look at sh.c:sh_adjust_unroll_max and try to figure out how to port all
the #if 0'ed
code to 4.1 .
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20969