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]: update to df for mainline.


Bernd Schmidt wrote:
> Daniel Berlin wrote:
> 
>> Based on this discussion, I also have a hard time believing any part
>> outside of flow (or possibly including flow) actually gets subregs right
>> all the time, since nobody can seem to articulate the entire complete
>> set of dataflow distinctions that must be made for them. :)
> 
> Ian and I seem to be giving you the same set of rules.

But you aren't, AFAICT.

You said it's not a partial set if it's a subreg of a pseudo not inside
a strict low part, and it's a set of a smaller than the entire size of
the register.

He says: "if the value is *going to require multiple hard registers*,
then you can set a SUBREG and have it be only a partial store".

This is different that your rule that "The first store is dead if A is a
single register and the partial access is smaller and not using
strict_low_part.  The second store is documented to have undefined
effects on the rest of the register in that case."

His rule implies there can cases where your rule is not true, because
the values are "going to require multiple hard registers".

At least, that is my reading. If either of you want to correct me, feel
free!

In the meanwhile, Kenny, i'm going to implement the rule Bernd has stated.

--Dan


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