This is the mail archive of the gcc-patches@gcc.gnu.org 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: Bug in ra-colorize.c:merge_moves?



On Tuesday, March 4, 2003, at 03:22 PM, Denis Chertykov wrote:


Michael Matz <matz at suse dot de> writes:

Hi,

On Mon, 3 Mar 2003, Daniel Berlin wrote:

First of all. Michael ! Thank you for your answer.


I've got a tree
with everything but your stack slots changes merged (including
pre-reload), and the number of coloring passes is about the same.
However, with your stack slots changes , it takes 3-5x as many
passes
in those functions that spill (some functions went from 3 passes to
15
passes).

Ugh, that's much. I wouldn't have expected this. The only thing which _should_ have changed is, that now sometimes there are stack-accesses while coloring, where formerly there were simply only accesses to SPILL_SLOT_P() pseudos. I believe Denis also makes some local optimizations while creating the code for the stack accesses early.

Yes it is. IE: We have a web to spill:

i2  use web1
...
i3  use web1
...
i4  use web1

We generate spill insns:

i21 def web11 web1-pseudo-spill-slot
i2  use web11
...
i31 def web12 web1-pseudo-spill-slot
i3  use web12
...
i41 def web13 web1-pseudo-spill-slot
i4  use web13

My code substitute web1-pseudo-spill-slot to real stack slot and
trying to incorporate real stack slot to original insns (i2,i3,i4).

i2  use web1-real-stack-slot
...
i3  use web1-real-stack-slot
...
i4  use web1-real-stack-slot

So, number of webs reduced and possibility of graph colorization increased.


Um, look again.
You've *decreased* the possibility of graph colorization in this example.
The colorability of a graph is *not* related to the number of webs, it's related to the number of conflicts.
web1 is now live *longer*, and thus, conflicts with more webs than it did before.


It now conflicts with everything in the ...'s, *decreasing* colorability.


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