[PATCH] Fix regno_in_use_p for RTL checking bootstrap (PR rtl-optimization/72821)

Vladimir N Makarov vmakarov@redhat.com
Mon Aug 8 13:42:00 GMT 2016



On 08/06/2016 03:11 PM, Jakub Jelinek wrote:
> On Wed, Aug 03, 2016 at 02:59:30PM -0400, Vladimir N Makarov wrote:
>> --- lra-spills.c	(revision 239000)
>> +++ lra-spills.c	(working copy)
>> @@ -686,16 +686,40 @@ return_regno_p (unsigned int regno)
>>     return false;
>>   }
>>   
>> -/* Return true if REGNO is one of subsequent USE after INSN.  */
>> +/* Return true if REGNO is in one of subsequent USE after INSN in the
>> +   same BB.  */
>>   static bool
>>   regno_in_use_p (rtx_insn *insn, unsigned int regno)
>>   {
>> +  static lra_insn_recog_data_t id;
>> +  static struct lra_static_insn_data *static_id;
>> +  struct lra_insn_reg *reg;
>> +  int i, arg_regno;
>> +  basic_block bb = BLOCK_FOR_INSN (insn);
>> +
>>     while ((insn = next_nondebug_insn (insn)) != NULL_RTX
>> -	 && INSN_P (insn) && GET_CODE (PATTERN (insn)) == USE)
>> +	 && bb == BLOCK_FOR_INSN (insn))
> This broke rtl checking bootstrap, because BLOCK_FOR_INSN can't be used on
> BARRIERs.
>
> Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux, ok for
> trunk?
>
>
Sure, Jakub.  Thank you fixing it.



More information about the Gcc-patches mailing list