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]

Fw: [PATCH] Permanent Fix for PR46886


> + 
> +  /* if the latch contains more than the one statemnt of control 
variable 
> +     increment then it contains the body.  */
> +  if (exit_1->dest == loop->latch && last_and_only_stmt (loop->latch))
>      new_rhs = gimple_cond_rhs (cond_stmt);
> 
> please check what the comment suggests, thus,
> 
>        && last_and_only_stmt (loop->latch) == cond_stmt
> 


Richard,
There's no simple way to do such a check,
as the control variable increment stmt is explicitly created in 
canonicalize_loop_ivs and not in tree-parloops.
What we do know is that it is put in the latch because we ask for it when 
we call canonicalize_loop_ivs from parloops.

One way to get the control variable increment stmt is to use 
canonicalize_loop_ivs() return value and look for the stmts that use it.

Do you think I should add all this functionality to the code in order to 
assert
the stmt that is in the latch? or can I skip it ?

Thanks,
Razya


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