This is the mail archive of the gcc-bugs@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]

c/4017: IA-64 scheduler Bug?. Ia-64 only schedules at most one Floating Point operation per cycle.



>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:
 


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