Mainline bootstrap failure (revision 110017)
Kenneth Zadeck
zadeck@naturalbridge.com
Fri Jan 20 15:17:00 GMT 2006
Zdenek Dvorak wrote:
> Hello,
>
>
>>>>> The attached fixes *that*, but this just causes a crash deeper in trying
>>>>> to free some chains.
>>>>>
>>>>>
>>>> [...]
>>>> Sorry for the problems and thanks for looking into them.
>>>>
>>>>
>>> Ken, please reread the email. The issue is *not* fixed according to
>>> Daniel, there's still another problem. Could you look into it,
>>> please?
>>>
>>>
>> I would like permission to revert zdenek's patch for a few days. There
>> is nothing wrong with zdenek's patch, pe se, but it excercises a part of
>> df that should work but does not.
>>
>
> I don't quite like this idea; as you yourself say, the problem is not in
> that patch (in fact, mainline bootstraps and passes regtesting with it
> without your patch); so I think that if we indeed want to go into
> reverting patches, it should be the one causing the problem (and I have
> a followup patch that I would like to be able to test).
>
> Btw.: of course it may happen that some patch sometimes breaks
> bootstrap, it happened to everyone of us. But, with your patch, not
> even libgcc builds. This means that you did not even try to build gcc
> before commiting your patch. Please do that next time. In fact,
> running at least a partial bootstrap till gengtype is run helped me
> avoid introducing bootstrap failures (caused by unexpected interaction
> with patches commited since I tested the patch fully the last time)
> several times, so it is a good idea even if you are quite sure that no
> such problem may occur.
>
>
Zdenek,
There are several problems here. If I fix the immediate problem, you
only hit the next one.
The underlying problem is that when you change the blocks in the program
and you have def-use or use-def chains built, these have to be cleaned
out in a way that was not being done.
If I revert my patch, it will fix the immediate problem that
df_set_blocks crashes but will most likely happen in other places. It
is because of the other places that it is not sufficient to just revert
my patch.
Yours is currently the only place that plays with blocks when the
use-def chain problem has been built. This is something that I
advertised could be done and I blew it. But removing my last patch is
not going to fix that, it will still be broken, it will just fail less
often.
Kenny
>> We could revert my storage patch, but the problem is much deeper than
>> that. The storage patch only causes this problem to happen when
>> bootstrapping. The problem will still be there and may cause random
>> ices when running zdeneks code.
>>
>> The problem is that when ever you delete any basic blocks, you need to
>> get rid of the def use and use def chains that either start or end in
>> the deleted block, furthermore, this has to be done before the
>> instructions are deleted for those blocks. This will take me a day to
>> get correct.
>> Zdenek's patch is the only code that manipulates the blocks after
>> use-def or def-use chains are built.
>>
>
> This analysis seems wrong to me -- the crash occurs when called from
> estimate_probability, and we do not change CFG in branch prediction.
>
> Zdenek
>
More information about the Gcc
mailing list