[patch] combine ICE fix
Jeff Law
law@redhat.com
Tue Dec 3 19:38:00 GMT 2013
On 12/03/13 12:25, Kenneth Zadeck wrote:
> On 12/03/2013 01:52 PM, Mike Stump wrote:
>> On Dec 2, 2013, at 10:26 PM, Jeff Law <law@redhat.com> wrote:
>>> On 11/27/13 17:13, Cesar Philippidis wrote:
>>>> I looked into adding support for incremental DF scanning from df*.[ch]
>>>> in combine but there are a couple of problems. First of all, combine
>>>> does its own DF analysis. It does so because its usage falls under this
>>>> category (df-core.c):
>>>>
>>>> c) If the pass modifies insns several times, this incremental
>>>> updating may be expensive.
>>>>
>>>> Furthermore, combine's DF relies on the DF scanning to be deferred, so
>>>> the DF_REF_DEF_COUNT values would be off. Eg, calls to SET_INSN_DELETED
>>>> take place before it updates the notes for those insns. Also, combine
>>>> has a tendency to undo its changes occasionally.
>>> I think at this stage of the release cycle, converting combine to
>>> incremental DF is probably a no-go. However, we should keep it in
>>> mind for the future -- while hairy I'd really like to see that happen
>>> in the long term.
>> I think Kenny has some thoughts in this area. I'll cc him to ensure
>> he sees it.
> it is the tendency to undo things (i would use the word "frequently"
> rather than) occasionally that kept me from doing this years ago.
Shove a bunch of things together, simplify, then try to recognize the
result. If that fails, undo everything.
In theory, this could be replaced by making a copy of the original,
doing the combination/simplification, then recognition. If successful,
then update DF and remove the original I3, if not successful, drop the
copy. That avoids the undo nonsense.
jeff
More information about the Gcc-patches
mailing list