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.


All of the little comments will be done as you ask.
>
>> +  /* Kill this register if it is not a subreg store.  */
>> +  if (!(DF_REF_FLAGS (def) & DF_REF_PARTIAL))
>> +    bitmap_clear_bit (live, dregno);
>
> Looks like this depends on another part.  I have to admit that I'm not
> convinced yet by the subreg handling in DF as a whole.  A normal
> (non-multiword non-strict-low) subreg store _does_ kill the whole reg.
>
I find this somewhat confusing.  Are there other cases of subregs that
cover the whole register?

However, the code in this patch is conservatively correct where it could
be argued that assuming that a partial word store does kill the entire
register is actually incorrect.  Consider the case of dead code:

a<- ...

(part of a) <- ...

use of a

If we assume that second store complete, the first store looks dead.

If there is a set of test that we can apply when setting the df_ref
_partial flag to ignore the cases where it really is to the entire word,
we will add this in the next flip of the patch.

>
> Do you think we need this patch in stage3, or can it wait until 4.3
> stage1?
>

As danny said this patch has been in for a long time and fixes or at
least partially fixes several bugs.

>
> Bernd


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