This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c/4017: IA-64 scheduler Bug?. Ia-64 only schedules at most one Floating Point operation per cycle.
- To: gcc-gnats at gcc dot gnu dot org
- Subject: c/4017: IA-64 scheduler Bug?. Ia-64 only schedules at most one Floating Point operation per cycle.
- From: gbv at ctv dot es
- Date: Mon, 13 Aug 2001 23:58:14 +0200
>Number: 4017
>Category: c
>Synopsis: ia-64 only schedules at most one FP instruction per cycle. The other FP unit is bored.
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: unassigned
>State: open
>Class: pessimizes-code
>Submitter-Id: net
>Arrival-Date: Mon Aug 13 15:06:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: Guillermo Ballester Valor
>Release: 3.0
>Organization:
>Environment:
System: Red Hat Linux 7.1 2.4.3-12smp on a 4 processors ia64
Architecture: ia64
host: ia64-unknown-linux-gnu
build: ia64-unknown-linux-gnu
target: ia64-unknown-linux-gnu
configured with: ../gcc-3.0/configure
>Description:
I've compiled some code with heavy FP work. There is in all cases only at most one FP slot per cycle.
There is a lot of cases where the it should have scheduled two FP ins per cycle, there were no any reason to split. In fact, the processors actually issue two FP ops per cycle, but the sheduler routines don't think so. We then can get some unspected dependecy stalls and we are loosing big chances to improve the code.
This is related with a gcc bug posted by me (3917). I've been studying the problem and perhpas the routine itanium_issue_split() only allows a FP slot in a packet because of any reason I still don't known. Any suggestion?
>How-To-Repeat:
compile any heavy FP routine with -O3 optimization.
>Fix:
I don't know.
>Release-Note:
>Audit-Trail:
>Unformatted: