Yes, unconditionally. If pic_reg is unused, RA will allocate a hard register for it and treat it as free, DCE after reload will delete SET_GOT.
On Fri, Oct 17, 2014 at 6:20 PM, Jakub Jelinek <ja...@redhat.com> wrote: > On Fri, Oct 17, 2014 at 06:16:41PM +0400, Evgeny Stupachenko wrote: >> Hi, >> >> Some instructions (like one in PR63534) could have hidden use of PIC >> register. >> Therefore we need to leave SET_GOT not deleted till reload completed. >> The patch prevents SET_GOT from deleting while PIC register is pseudo. > > Just curious, do you emit the init_pic_reg unconditionally at the start of > the function in -fpic mode? What does IRA do in that case, if it sees > a dead setter of something that doesn't seem to be used at that point? > Doesn't it penalize generated code, even if we don't end up with any PIC > references during/after reload? > > Jakub