[PATCH] Fix ifcvt (PR rtl-optimization/58668)

Uros Bizjak ubizjak@gmail.com
Wed Jan 8 16:54:00 GMT 2014


Hello!

>> So like this instead?  Bootstrapped/regtested on x86_64-linux and
>> i686-linux.  For 4.8 I'd still prefer the earlier patch though.
>>
>> 2013-12-18  Jakub Jelinek  <jakub@redhat.com>
>>
>> PR rtl-optimization/58668
>> * cfgcleanup.c (flow_find_cross_jump): Don't count
>> any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
>> to determine what is counted.
>> (flow_find_head_matching_sequence): Use active_insn_p to determine
>> what is counted.
>> (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
>> counting change.
>> * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
>> determine what is counted.
>>
>> * gcc.dg/pr58668.c: New test.
>
> This is fine for the trunk. Release manager's call for what they'd prefer on the 4.8 branch.

This caused PR59724 on alpha:

20021116-1.c: In function ‘foo’:
20021116-1.c:31:1: error: NOTE_INSN_BASIC_BLOCK is missing for block 9
 }
 ^
20021116-1.c:31:1: error: insn outside basic block
(jump_insn 94 52 93 9 (return) 20021116-1.c:31 -1
     (nil)
 -> return)

Uros.



More information about the Gcc-patches mailing list