http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55940
--- Comment #12 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-01-15 18:28:31 UTC --- I think: --- gcc/function.c.jj 2013-01-11 09:02:55.000000000 +0100 +++ gcc/function.c 2013-01-15 19:23:20.648826011 +0100 @@ -6029,7 +6029,7 @@ thread_prologue_and_epilogue_insns (void if (pic_offset_table_rtx) add_to_hard_reg_set (&set_up_by_prologue.set, Pmode, PIC_OFFSET_TABLE_REGNUM); - if (stack_realign_drap && crtl->drap_reg) + if (crtl->drap_reg) add_to_hard_reg_set (&set_up_by_prologue.set, GET_MODE (crtl->drap_reg), REGNO (crtl->drap_reg)); should fix it, in this case we pessimistically assume we might need to realign the stack and because of -Os we create vDRAP, but then find out we don't actually need to realign anything.