Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 30291

Summary: -fschedule-insns doesn't (always) work
Product: [Retired] Red Hat Linux Reporter: Ewald <ewald>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED NOTABUG QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2001-03-02 09:59:52 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Ewald 2001-03-02 09:59:45 UTC
From Bugzilla Helper:
User-Agent: Mozilla/4.73 [en] (X11; I; Linux 2.2.17 i686; Nav)


When compiling the KDE2.1 sources with "-fschedule-insns", the gcc compiler
fails to compile some of the packages (like kdebase) with an error :

Unable to spill in class AREG (or something like that)

After this error message, the compilation stops.

Reproducible: Always
Steps to Reproduce:
1.download the KDE2.1 tarballs
2.export CXXFLAGS and CFLAGS with the "-fschedule-insns" setting
3.run "configure" and "make"
	

Actual Results:  Compilation stops on some files with an error message
related to the instruction scheduling.

Expected Results:  It should've compiled KDE2.1, which it does if you don't
use "-fschedule-insns".

I have tried to compile the KDE2.1 sources gcc-2.96-69 and 2-96-75
(rawhide). Both versions produce the same error.

Comment 1 Jakub Jelinek 2001-03-02 10:07:59 UTC
-fschedule-insns does not work on targets with only few general registers, which
ia32 is (and never did and won't in the near future either).
You might try -fschedule-insns2 which should work (the latter is done after
machine registers are assigned while the former before that happens and scheduling
usually reshuffles code so that more registers are live at any time).