This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/54492] New: [4.8 Regression] SLSR takes ages
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 05 Sep 2012 13:29:15 +0000
- Subject: [Bug tree-optimization/54492] New: [4.8 Regression] SLSR takes ages
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54492
Bug #: 54492
Summary: [4.8 Regression] SLSR takes ages
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Keywords: compile-time-hog
Severity: normal
Priority: P3
Component: tree-optimization
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: rguenth@gcc.gnu.org
CC: wschmidt@gcc.gnu.org
For
int foo (int a, int b, int c)
{
int d;
switch (a)
{
#define X(N) \
case N ## 0: d = a + b; break; \
case N ## 1: d = a + b; break; \
case N ## 2: d = a + b; break; \
case N ## 3: d = a + b; break; \
case N ## 4: d = a + b; break; \
case N ## 5: d = a + b; break; \
case N ## 6: d = a + b; break; \
case N ## 7: d = a + b; break; \
case N ## 8: d = a + b; break; \
case N ## 9: d = a + b; break;
#define XX(N) \
X(N ## 0) X(N ## 1) X(N ## 2) X(N ## 3) X(N ## 4) X(N ## 5) X(N ## 6) X(N
## 7) X(N ## 8) X(N ## 9)
#define XXX(N) \
XX(N ## 0) XX(N ## 1) XX(N ## 2) XX(N ## 3) XX(N ## 4) XX(N ## 5) XX(N ##
6) XX(N ## 7) XX(N ## 8) XX(N ## 9)
#define XXXX(N) \
XXX(N ## 0) XXX(N ## 1) XXX(N ## 2) XXX(N ## 3) XXX(N ## 4) XXX(N ## 5)
XXX(N ## 6) XXX(N ## 7) XXX(N ## 8) XXX(N ## 9)
#define XXXXX(N) \
XXXX(N ## 0) XXXX(N ## 1) XXXX(N ## 2) XXXX(N ## 3) XXXX(N ## 4) XXXX(N ##
5) XXXX(N ## 6) XXXX(N ## 7) XXXX(N ## 8) XXXX(N ## 9)
XXXXX(1)
#if 0
XXXXX(2)
XXXXX(3)
XXXXX(4)
XXXXX(5)
XXXXX(6)
XXXXX(7)
XXXXX(8)
XXXXX(9)
#endif
}
return d;
}
I see SLSR taking all of the compile-time at -O1:
straight-line strength reduction: 195.66 (95%) usr 0.02 ( 2%) sys 196.32
(94%) wall 0 kB ( 0%) ggc
something must go wrong here (testcase for a FRE change I am doing ...)