On Mon, Feb 24, 2014 at 9:11 AM, Christian Bruel <christian.br...@st.com> wrote: > This patch improves the one sent previously, > (http://gcc.gnu.org/ml/gcc-patches/2014-02/msg01159.html), to fix a few > more failures in the testsuite that could arise with shrink-wrap and > -fexceptions. > > To recall, the problem that it fixes is that with -mapcs-frame : > > - the epilogue pops as > > sub sp, fp, #12 @ does not set FRAME_RELATED_P > ldmia sp, {fp, sp, lr} @ XXX assert def_cfa->reg is FP instead > of SP > > - with vrp this is worse, we have > > fldmfdd ip!, {d8} @ FRAME_RELATED_P > sub sp, fp, #20 ... > ldmfd sp, {r3, r4, fp, sp, pc} @ XXX assert def_cfa->reg is IP > instead of SP, > > Fixed by inserting a REG_CFA_DEF_CFA note, fixing the arm_unwind_emit > machinery and setting the FRAME_RELATED_P . The comment says : > > /* The INSN is generated in epilogue. It is set as RTX_FRAME_RELATED_P > to get correct dwarf information for shrink-wrap. We should not > emit unwind information for it because these are used either for > pretend arguments or notes to adjust sp and restore registers from > stack. */ > > the testsuite score improves without regression (improvements from -g > and -fexeptions tests) > > === gcc Summary for arm-sim//-mapcs-frame === > > # of expected passes 77545 > # of unexpected failures 31 > # of unexpected successes 2 > # of expected failures 172 > # of unsupported tests 1336 > > === g++ Summary for arm-sim//-mapcs-frame === > > # of expected passes 50116 > # of unexpected failures 9 > # of unexpected successes 3 > # of expected failures 280 > # of unsupported tests 1229 > > instead of > > === gcc Summary for arm-sim//-mapcs-frame === > > # of expected passes 77106 > # of unexpected failures 500 > # of unexpected successes 2 > # of expected failures 172 > # of unresolved testcases 111 > # of unsupported tests 1336 > > === g++ Summary for arm-sim//-mapcs-frame === > > # of expected passes 50021 > # of unexpected failures 136 > # of unexpected successes 3 > # of expected failures 280 > # of unsupported tests 1229 > > Comments ? OK for trunk ? > > Many thanks > >
Please respin using plus_constant instead of gen_addsi3. Otherwise this looks good to me. Please repost updated patch and I will look at it again. Ramana