This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH]: update to df for mainline.
- From: Kenneth Zadeck <zadeck at naturalbridge dot com>
- To: Bernd Schmidt <bernds_cb1 at t-online dot de>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, "Berlin, Daniel" <dberlin at dberlin dot org>, Ian Lance Taylor <ian at airs dot com>, Vladimir Makarov <vmakarov at redhat dot com>, "F. Kenneth Zadeck" <kenneth dot zadeck at naturalbridge dot com>
- Date: Wed, 10 May 2006 14:29:31 -0400
- Subject: Re: [PATCH]: update to df for mainline.
- References: <44298EDB.5000804@naturalbridge.com> <4429BE69.5010307@t-online.de> <442AA1D3.4050007@naturalbridge.com> <446093C1.1090906@t-online.de>
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