[PATCH] more PR33928: DIY dataflow in fwprop, to enable it at -O1 and speed it up at -O2

Kenneth Zadeck zadeck@naturalbridge.com
Fri May 8 13:07:00 GMT 2009


Paolo Bonzini wrote:
>>> +static inline df_ref
>>> +get_def_for_use (df_ref use)
>>>       
>> Missing comment before function.
>>     
>
> /* Return the only def in USE's use-def chain, or NULL if there is
>    more than one def in the chain.  */
>
>   
>>> +static inline int
>>> +bitmap_only_bit_between (const_bitmap b, unsigned first, unsigned last)
>>>       
>> Missing comment before function.
>>     
>
> /* Return the only bit between FIRST and LAST that is set in B,
>    or -1 if there are zero or more than one such bits.  */
>
>   
>>> +static void
>>> +process_uses (bitmap local_rd, df_ref *use_rec, int top_flag)
>>>       
>> Missing comment before function.
>>     
>
> /* Fill the use_def_ref vector with values for the uses in USE_REC,
>    taking reaching definitions info from LOCAL_RD.  TOP_FLAG says
>    which artificials uses should be used, when USE_REC is an
>    artificial use vector.  */
>
>   
>>> +static void
>>> +build_single_def_use_links (void)
>>>       
>> Missing comment before function.
>>     
>
> /* Do dataflow analysis and use reaching definitions to build
>    a vector holding the reaching definitions of uses that have a
>    single RD.  */
>
>   
>> I think Bernd will not be pleased (added to CC:), but I think this
>> approach is the best thing we can do for the moment.
>>     
>
> Yes, on the other hand with SSA expand probably we're better off marking
> those things are TER-even-if-not-single-use, thus providing also a
> better fix for PR39543.
>
> Paolo
>   
I only have packaging comments on this patch:

1) I think that this should have been packaged as a new dataflow problem
so that it could have been used by others.
2) The function bitmap_only_bit_between should be in bitmap.c

However, it seems to have been completely discussed, accepted and even
committed by europeans while the usa was asleep.

(sorry for the duplicate mail, the first version got bounced by gnu
because it was in html.)

kenny



More information about the Gcc-patches mailing list