Hello, > > Index: params.def > > =================================================================== > > --- params.def (revision 267882) > > +++ params.def (working copy) > > @@ -227,7 +227,7 @@ DEFPARAM(PARAM_LARGE_UNIT_INSNS, > > DEFPARAM(PARAM_INLINE_UNIT_GROWTH, > > "inline-unit-growth", > > "How much can given compilation unit grow because of the inlining > > (in percent).", > > - 20, 0, 0) > > + 40, 0, 0) > > DEFPARAM(PARAM_IPCP_UNIT_GROWTH, > > "ipcp-unit-growth", > > "How much can given compilation unit grow because of the > > interprocedural constant propagation (in percent).", > > This patch introduces a regression in libstdc++: > FAIL: ext/pb_ds/regression/list_update_map_rand.cc execution test > on a few arm targets. > > For instance: > arm-none-linux-gnueabihf > --with-mode arm > --with-cpu cortex-a5 > --with-fpu vfpv3-d16-fp16
Adjusting inliner heuiristics should not trigger correcness issues, so this seems like a bug that was previously latent. I guess it may legally break correct code only if stack usage gets too large. Do you have any idea what breaks in this testcase? Honza > > Using --with-mode thumb and the same other configure options makes the > test pass. > I'm seeing this with other configurations --with-mode arm and > --with-fpu vfp* (as opposed to neon*) > > The .log file has: > <?xml version = "1.0"?> > <test> > <sd value = "1547347280"> > </sd> > <n value = "50"> > </n> > <m value = "10"> > </m> > <tp value = "0.2"> > </tp> > <ip value = "0.6"> > </ip> > <ep value = "0.2"> > </ep> > <cp value = "0.001"> > </cp> > <mp value = "0.25"> > </mp> > </test> > <cntnr name = "lu_mtf_map"> > <desc> > <type value = "list_update"> > <Update_Policy value = "lu_move_to_front_policy"> > </Update_Policy> > </type> > </desc> > <progress> > ---------------------------------------- > ************qemu: uncaught target signal 11 (Segmentation fault) - core dumped > > The (incomplete?) qemu execution trace ends with: > ---------------- > IN: > 0x40ada6b8: e5910008 ldr r0, [r1, #8] > 0x40ada6bc: e1560000 cmp r6, r0 > 0x40ada6c0: 1a00004f bne #0x40ada804 > ---------------- > IN: > 0x40ada6c4: e5960004 ldr r0, [r6, #4] > 0x40ada6c8: e582100c str r1, [r2, #0xc] > 0x40ada6cc: e3500c02 cmp r0, #0x200 > 0x40ada6d0: e5812008 str r2, [r1, #8] > 0x40ada6d4: 3a000002 blo #0x40ada6e4 > ---------------- > IN: > 0x40adb880: eaffff3e b #0x40adb580 > ---------------- > IN: > _ZN10__gnu_pbds4test6detail30container_rand_regression_testINS_11list_updateINS0_10basic_typeES4_St8equal_toIS4_ENS0_26lu_move_to_front_policy_t_EN9__gnu_cxx22throw_allocator_randomIS4_EEEEE13subscript_impENSt3tr117integral_constantIiLi0EEE > 0x0001ffc4: e3a06000 mov r6, #0 > 0x0001ffc8: eaffff88 b #0x1fdf0 > ---------------- > IN: > _ZN10__gnu_pbds4test6detail30container_rand_regression_testINS_11list_updateINS0_10basic_typeES4_St8equal_toIS4_ENS0_26lu_move_to_front_policy_t_EN9__gnu_cxx22throw_allocator_randomIS4_EEEEE13subscript_impENSt3tr117integral_constantIiLi0EEE > 0x0001fdf0: ee180a10 vmov r0, s16 > 0x0001fdf4: ebffcd12 bl #0x13244 > > Christophe