This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: IA64 inline division question


Steve Ellcey wrote:
Currently I am looking at two issues that seem suspicious to me, one is
that *recip_approx (and *sqrt_approx) are defined as the itanium_class
fmisc.  I am wondering if this is correct or if they should be fmac
instead.  Or perhaps they need their own type.  The other issue is with
the attribute itanium_requires_unit0.  This treats fmac and fmisc
differently but I don't see where it is used.  Is itanium_requires_unit0
obsolete?

Wrong itanium_class attributes can't cause miscompilation, they can only cause unoptimal code to be generated.


I see that the itanium1 docs put frcpa/frsqrta in class fmisc, and the Itanium2 docs put them in class fmac, so this certainly could be improved for Itanium2. Creating a separate class for them to solve this problem would be reasonable.

Yes, the itanium_requires_unit0 attribute is obsolete. It was used in gcc-3.3, but not in current sources. The code using it disappeared 2003-01-09 when Vlad merged the itanium-sched-branch to mainline.

I am going to try and create a small test case but in the mean time I
thought I would see if anyone has any ideas on what the problem might be
or had any suggestions on what else I should be looking at.

You can try playing with optimization options to narrow down the problem. If it is a scheduler problem, then it should disappear if you use -fno-schedule-insns -fno-schedule-insns2. Alternatively, try compiling with -O and then adding -fschedule-insns -fschedule-insns2 to see if that creates the problem.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]