On Tue, Jan 28, 2014 at 3:37 AM, Zhenqiang Chen
<zhenqiang.c...@linaro.org> wrote:
> On 28 January 2014 01:07, Ramana Radhakrishnan
> <ramana....@googlemail.com> wrote:
>> On Thu, Jan 16, 2014 at 5:44 AM, Zhenqiang Chen
>> <zhenqiang.c...@linaro.org> wrote:
>>> Thanks for comments.
>>>
>>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59837
>>>
>>> The patch with a test case is attached.
>>
>>
>>> +/* { dg-options " -Os -fno-omit-frame-pointer -mapcs -mabi=aapcs-linux 
>>> -marm  -mfloat-abi=softfp  -g " } */
>>
>> Can you instead do ?
>>
>> { dg-options "-Os -fno-omit-frame-pointer -mapcs" }
>> { dg-add-options arm_neon }
>>
>> I don't like this as it as it stands because the test relies on the
>> compiler being configured for neon by default.
>
> Thanks. The test case is updated according to your comments.
>
> The patch is also updated to skip dwarf info in function
> arm_emit_multi_reg_pop when shrink-wrap is not enabled. A new test
> case (pr59837-1.c) is added to reproduce the issue. And I double check
> the arm_expand_epilogue_apcs_frame. There is no more function which
> adds REG_CFA_ADJUST_CFA NOTE.


This is OK if no regressions and an RM doesn't object in 24 hours.
maps-frame is used in the kernel so fixing this up for 4.9 would be
good.

Cheers,
Ramana

>
> Thanks!
> -Zhenqiang
>
>
>>> 2014-01-16  Zhenqiang Chen  <zhenqiang.c...@linaro.org>
>>>
>>>     PR target/59837
>>>     * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Do not add
>>>     REG_CFA_ADJUST_CFA NOTE if shrink-wrap is not enabled.
>>>
>>> testsuite/ChangeLog:
>>> 2014-01-16  Zhenqiang Chen  <zhenqiang.c...@linaro.org>
>>>
>>>     * gcc.target/arm/pr59837.c: New testcase.
>>>
>>> On 15 January 2014 19:56, Ramana Radhakrishnan
>>> <ramana.radhakrish...@arm.com> wrote:
>>>> Please also create a bugzilla entry for this and use the pr number here.
>>>>
>>>> Ramana
>>>>
>>>>
>>>> Sent from Samsung Mobile
>>>>
>>>>
>>>>
>>>> -------- Original message --------
>>>> From: Zhenqiang Chen <zhenqiang.c...@linaro.org>
>>>> Date:
>>>> To: gcc-patches@gcc.gnu.org
>>>> Cc: Richard Earnshaw <richard.earns...@arm.com>,Ramana Radhakrishnan
>>>> <ramana.radhakrish...@arm.com>
>>>> Subject: [PATCH, ARM] ICE when building kernel raid6 neon code
>>>>
>>>>
>>>> Hi,
>>>>
>>>> The patch fixes ICE when building kernel raid6 neon code.
>>>>
>>>> lib/raid6/neon4.c: In function 'raid6_
>>>>
>>>> neon4_gen_syndrome_real':
>>>> lib/raid6/neon4.c:113:1: internal compiler error: in
>>>> dwarf2out_frame_debug_adjust_cfa, at dwarf2cfi.c:1090
>>>>  }
>>>>
>>>> https://bugs.launchpad.net/gcc-linaro/+bug/1268893
>>>>
>>>> Root cause:
>>>> When expanding epilogue, REG_CFA_ADJUST_CFA NOTE is added to handle
>>>> dwarf info issue for shrink-wrap. But for TARGET_APCS_FRAME,
>>>> shrink-wrap is disabled. And not all dwarf info in
>>>> arm_expand_epilogue_apcs_frame are correctly updated.
>>>> arm_emit_vfp_multi_reg_pop is called by both
>>>> arm_expand_epilogue_apcs_frame and arm_expand_epilogue. So we should
>>>> not add the NOTE in arm_emit_vfp_multi_reg_pop if shrink-wrap is not
>>>> enabled.
>>>>
>>>> Boot strap and no make check regression on ARM Chromebook.
>>>>
>>>> OK for trunk?
>>>>
>>>> Thanks!
>>>> -Zhenqiang
>>>>
>>>> ChangeLog:
>>>> 2014-01-15  Zhenqiang Chen  <zhenqiang.c...@linaro.org>
>>>>
>>>>         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Do not add
>>>>         REG_CFA_ADJUST_CFA NOTE if shrink-wrap is not enabled.
>>>>
>>>> diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
>>>> index 18196b3..1ccb796 100644
>>>> --- a/gcc/config/arm/arm.c
>>>> +++ b/gcc/config/arm/arm.c
>>>> @@ -19890,8 +19890,12 @@ arm_emit_vfp_multi_reg_pop (int first_reg,
>>>> int num_regs, rtx base_reg)
>>>>    par = emit_insn (par);
>>>>    REG_NOTES (par) = dwarf;
>>>>
>>>> -  arm_add_cfa_adjust_cfa_note (par, 2 * UNITS_PER_WORD * num_regs,
>>>> -                              base_reg, base_reg);
>>>> +  /* REG_CFA_ADJUST_CFA NOTE is added to handle dwarf info issue when
>>>> +     shrink-wrap is enabled.  So when shrink-wrap is not enabled, we 
>>>> should
>>>> +     not add the note.  */
>>>> +  if (flag_shrink_wrap)
>>>> +    arm_add_cfa_adjust_cfa_note (par, 2 * UNITS_PER_WORD * num_regs,
>>>> +                                base_reg, base_reg);
>>>>  }
>>>>
>>>>  /* Generate and emit a pattern that will be recognized as LDRD
>>>> pattern.  If even
>>>>
>>>>
>>>> -- IMPORTANT NOTICE: The contents of this email and any attachments are
>>>> confidential and may also be privileged. If you are not the intended
>>>> recipient, please notify the sender immediately and do not disclose the
>>>> contents to any other person, use it for any purpose, or store or copy the
>>>> information in any medium. Thank you.
>>>>
>>>> ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ,
>>>> Registered in England & Wales, Company No: 2557590
>>>> ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ,
>>>> Registered in England & Wales, Company No: 2548782

Reply via email to