This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: fix execute/comp-goto-2.c


> The problem here is that we have
> 
> (jump_insn 40 39 41 (set (pc)
>         (mem:SI (plus:SI (reg:SI 2 ecx [59])
>                 (const_int -4 [0xfffffffc])) [0 S4 A32]))
> 	503 {*indirect_jump} (nil)
>     (expr_list:REG_DEAD (reg:SI 2 ecx [59])
>         (expr_list:REG_NON_LOCAL_GOTO (const_int 0 [0x0])
>             (nil))))
> 
> being matched with
>  
> (jump_insn 77 76 78 (return) -1 (nil)
>     (nil))
> 
> because they both have an edge to EXIT.  Unfortunately the former
This will rule out cases where one BB ends by jump and other by normal insn
resulting in same case.  This is very common scenario, so this patch de-facto
disables the "usual" corssjumping.
I guess it is better to rule out fake and abnormal edges I will do shortly.
The code later will care them properly.

Honza


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]