------- Comment #20 from zadeck at naturalbridge dot com  2008-10-24 18:44 
-------
Subject: Re:  [4.4 Regression] Revision 139827 causes Divide_X

jakub at gcc dot gnu dot org wrote:
> ------- Comment #19 from jakub at gcc dot gnu dot org  2008-10-24 18:09 
> -------
> This hunk in df-scan.c confuses me:
>
>   /* These registers are live everywhere.  */
>   if (!reload_completed)
>     {
> #ifdef EH_USES
>       /* The ia-64, the only machine that uses this, does not define these 
>          until after reload.  */
>       for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
>         if (EH_USES (i))
>           {
>             bitmap_set_bit (entry_block_defs, i);
>           }
> #endif
>
> Indeed, ia64 is the only port that defines EH_USES ever to non-zero value, and
> only if reload_completed.  So this is a nice nop, but supposedly just changing
> the guarding condition to if (reload_completed) could fix this up.
>
>
>   
I cannot justify the existing code, either by looking at it or what used
to be in flow.c. 
I do agree that the existing code is a noop and should be either fixed
or deleted. 

I must admit, that i think that the proper solution is going to be have
to be one that adds the eh_uses onto the uses of instructions that can
trap because the block of code referenced here only effects the forwards
dataflow problem. 

However, this problem is really not so much about dataflow analysis as
it is about the meaning of these target specific macros.   What ever the
solution is, i think that it should be at least blessed by iant, or jim
wilson rather than just a dataflow maintainer. 

I would also point out that dealing with the EH_USES is not going to
make any difference to the "similar" problem that happens on the cris.

Kenny


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37378

Reply via email to