This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/37916] [4.2/4.3/4.4 Regression] SSA names causing register pressure; unnecessarily many simultaneously "live" names.
- From: "rguenther at suse dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Oct 2008 16:21:03 -0000
- Subject: [Bug tree-optimization/37916] [4.2/4.3/4.4 Regression] SSA names causing register pressure; unnecessarily many simultaneously "live" names.
- References: <bug-37916-507@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #13 from rguenther at suse dot de 2008-10-27 16:21 -------
Subject: Re: [4.2/4.3/4.4 Regression] SSA names
causing register pressure; unnecessarily many simultaneously "live" names.
On Mon, 27 Oct 2008, hp at gcc dot gnu dot org wrote:
> ------- Comment #12 from hp at gcc dot gnu dot org 2008-10-27 16:09 -------
> I had an "old" native x86_64-unknown-linux-gnu tree around from
> [trunk revision 139963], and I see the corresponding effect there.
>
> Of all four combinations of {,-fno-tree-reassoc} {,-fschedule-insns
> -fschedule-insns2}, together with -fno-ivopts -fno-reorder-blocks -fno-gcse, it
> was plain -fno-tree-reassoc (no scheduling) that produces the smallest
> stack-frame and *at a glance* smaller, faster code. (FWIW, I'm a bit surprised
> to see that -fschedule-insns -fschedule-insns2 is not the default for this
> arch.)
Because scheduling before register allocation tends to increase register
pressure. Of course this is not a necessary thing - in fact scheduling
could reduce register pressure, just this would probably be called
re-materialization during register allocation.
tree reassociation is not aware of register pressure as a simple matter
of fact. TER usually reduces the effect somewhat, but of course in
the end we want to get rid of TER ...
Richard.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37916