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: [PATCH, ifcvt] Fix PR63917


On Thu, Nov 20, 2014 at 1:48 AM, Zhenqiang Chen <zhenqiang.chen@arm.com> wrote:
> Hi,
>
> r217646 enhances ifcvt to handle cbranchcc4 instruction. But ifcvt does not
> strictly check the dependence before moving instructions before IF. Then
> some instructions, which clobber CC, are inserted before the cbranchcc4
> instruction.
>
> For the case in the patch, ifcvt transfers code from
>
>    5: r87:SI=r117:SI
>    22: pc={(flags:CCGOC>=0)?L26:pc}
>    25: {r87:SI=-r117:SI;clobber flags:CC;}
>
> to
>    5: r87:SI=r117:SI
>   136: {r145:SI=-r117:SI;clobber flags:CC;} // CC is clobbered
>   137: r87:SI={(flags:CCGOC<0)?r145:SI:r117:SI}
>
> The patch skips moving insns, which clobber CC, before cbranchcc4.
>
> Bootstrap and no make check regression on X86-64 and i686.
> All the failed cases in PR63917 PASS.
>
> OK for trunk?
> Thanks!
> -Zhenqiang
>
> ChangeLog:
> 2014-11-20  Zhenqiang Chen  <zhenqiang.chen@arm.com>
>
>         PR rtl-optimization/63917
>         * ifcvt.c (clobber_cc_p, use_cc_p): New functions.
>         (noce_process_if_block, check_cond_move_block): Check CC references.
>
> testsuite/ChangeLog:
> 2014-11-20  Zhenqiang Chen  <zhenqiang.chen@arm.com>
>
>         * gcc.target/i386/floatsitf.c: New test.
>

Why do you need a new testcase?  There are many failures with the
existing testcases.

-- 
H.J.


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