Won't be able to look at it till later in the afternoon . got a few other things to finish up during the day.
Ramana > -----Original Message----- > From: Zhenqiang Chen [mailto:zhenqiang.c...@linaro.org] > Sent: 16 October 2012 08:44 > To: Ramana Radhakrishnan > Cc: linaro-toolchain > Subject: Re: Add dwarf/unwind info in epilogue > > On 16 October 2012 14:58, Ramana Radhakrishnan > <ramana.radhakrish...@arm.com> wrote: > > shrink-wrap.patch doesn't apply cleanly to the revision you suggest. > If you give a clean patch and some description of what happens I might > be able to take a look .. > > Please try the new one. With the patch, your build might fail when > build libraries. > > internal compiler error: in maybe_record_trace_start, at > dwarf2cfi.c:2224 > > To get a toolchain, just remove the line at dwarf2cfi.c:2224. > > gcc_checking_assert (cfi_row_equal_p (cur_row, ti->beg_row)); > > After build OK. Re add the line at dwarf2cfi.c:2224 and make install. > > > What do you expect to happen with the testcases ? ICE ? wrong-code , > wrong-debug info, what ? > > All cases will be ICE due to wrong debug info. > My option is: -mthumb -mcpu=cortex-m3 -O2 -g > For all cases, it will ICE. > > internal compiler error: in maybe_record_trace_start, at > dwarf2cfi.c:2224 > > The root cause: > Without shrink-wrap, the code is like > > push > ... > pop > return //The return has only one predecessor. No dwarf check for this > case, even if the dwarf info is wrong. > > With shrink-wrap, the basic code is like > > tst ... L1 > push > ... > pop > return // no dwarf check for it > L1: > simple_return // no dwarf check for it > > After some optimization the code is like > > tst ... L1 > push > ... > pop > // ************The return is optimized ********* > L1: > simple_return //Now the simple_return has two predecessors. dwarf > check fail at this block if the debug info is wrong. > > Thanks! > -Zhenqiang > > > > ________________________________________ > > From: Zhenqiang Chen [zhenqiang.c...@linaro.org] > > Sent: 16 October 2012 04:44 > > To: Ramana Radhakrishnan > > Cc: linaro-toolchain > > Subject: Re: Add dwarf/unwind info in epilogue > > > > On 16 October 2012 10:22, Ramana Radhakrishnan > > <ramana.radhakrish...@arm.com> wrote: > >> Zhenqiang, > >> > >> I've been spending sometime scratching my head around this one > tonight. Can you show me the original shrink-wrap patch as well the > test case that triggers this failure ? I have my suspicion on something > but need to run a few experiments before commenting further. > > > > p4.patch is from the mail-list discussion: > > http://old.nabble.com/Shrink-wrapping%3A-Introduction-to31220423.html > > > > shrink-wrap.patch is my patch against r192445. > > > > *.c are test cases: -O2 -g > > > > There is no fail in gcc-linaro-4.5 since "simple_return" and "normal > > return" can not be optimized as one common return. > > > > Thanks! > > -Zhenqiang > > > > > >> On 15 Oct 2012, at 10:57, Zhenqiang Chen <zhenqiang.c...@linaro.org> > wrote: > >> > >>> Hi Ramana, > >>> > >>> The attached file is a reference patch to add more dwarf/unwind > info > >>> in epilogue. Please help to review. > >>> > >>> Without the patch, dwarf check fail for the following cases when > >>> enabling shrink-wrap: > >>> > >>> tst ... L1 //simple_return > >>> push ... > >>> ... > >>> pop ... //.cfa_offset is not 0 > >>> L1: > >>> bx lr //common simple_return > >>> > >>> Thanks! > >>> - > Zhenqiang<dwarf.patch>_______________________________________________ > >>> linaro-toolchain mailing list > >>> linaro-toolchain@lists.linaro.org > >>> http://lists.linaro.org/mailman/listinfo/linaro-toolchain > >> > >> > > _______________________________________________ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain