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: [PATCH] Fix var-tracking ICE (PR debug/46387)


On Fri, Nov 12, 2010 at 12:15 PM, Alexander Monakov <amonakov@ispras.ru> wrote:
>
>
> On Fri, 12 Nov 2010, Jakub Jelinek wrote:
>
>> I must say I don't understand why the patch sets it to NULL_RTX instead of
>> copying there VEC_index (rtx, reg_base_value, src_regno), by making both
>> have the same value they are handled like they might alias each other,
>> but still not considered to alias unrelated bases.
>
> If dest_regno already has a reg_base_value, it may have a SET somewhere else
> in the function. ?In selective scheduler, we are creating a new SET, and if we
> just copy reg_base_value from src_regno, we would be changing alias
> information for the existing SET of the same register. ?It would be wrong: the
> existing SET may alias some bases that the new would not. ?Therefore, we have
> to drop it to NULL.

Yep, you'd need to unify the base values, thus, loop over all reg_base_values
and change each occurance of either to the other.  That would work
I think.  Don't you need something similar for the cfa_base_reg?

Richard.


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