http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53125
Bug #: 53125 Summary: Very slow register allocation on SPARC Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: i...@airs.com CC: r...@gcc.gnu.org, vmaka...@redhat.com Target: sparc-sun-solaris2.11 Created attachment 27244 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27244 Test case The attached test case is a conversion to C of a machine generated test case in Go (the machine generated Go source is in gcc/testsuite/go.test/test/cmpldivide1.go). When I compile this test case without optimization on an x86_64 GNU/Linux system, it takes 5.8 seconds. When I compile it without optimization on a SPARC Solaris 2.11 system, it takes 2 minutes 32.8 seconds. The SPARC machine is slower than the x86_64 machine. But it's not that much slower. According to -ftime-report on the SPARC system, 45% of the time is "register information" and 41% of the time is "integrated RA." Since the file is machine generated, I would be willing to accept a 2 1/2 minute compilation time with optimization. But without optimization it is just too slow. And the discrepancy with x86_64 is extreme.