Thank you very much. It turns out that the FPU register is renamed. After configuring HARD_REGNO_RENAME_OK, now one FPU register is used for those three instructions.
David ----- Original Message ----- > From: "Joern Rennecke" <joern.renne...@embecosm.com> > To: "David Kang" <dk...@isi.edu> > Cc: "Jeff Law" <l...@redhat.com>, "GCC" <gcc@gcc.gnu.org> > Sent: Monday, November 3, 2014 5:05:21 PM > Subject: Re: how to keep a hard register across multiple instrutions? > On 3 November 2014 21:51, David Kang <dk...@isi.edu> wrote: > > > > Thank you for the tips. > > I tried the following condition for split. > > > > "reload_completed && FP_REG_P (operands[0])" > > > > But, the registers are still changed. > > How can I specify "after register allocation" in the split > > condition? > > Are you sure that your problem is that the split is too early, or > could you suffering > from later register renumbering? > You can get a set of dump files for all rtl passes by adding the -da > option to gcc / cc1, > so that you can see exactly when things go wrong. > I would suspect the register renaming pass causing you trouble. > You might have to define HARD_REGNO_RENAME_OK suitably for your > target. -- ---------------------- Dr. Dong-In "David" Kang Computer Scientist USC/ISI