Compile this at -O1, and you get tree PTA : 12.25 (36%) usr 0.08 ( 5%) sys 12.35 (35%) wall 44137 kB (16%) ggc ======================================================================= int *a; #define C1(A) \ a[A##1] = A; a[A##2] = A; a[A##3] = A; a[A##4] = A; a[A##5] = A; \ a[A##6] = A; a[A##7] = A; a[A##8] = A; a[A##9] = A; a[A##0] = A #define C2(A) \ C1(A##1); C1(A##2); C1(A##3); C1(A##4); C1(A##5); \ C1(A##6); C1(A##7); C1(A##8); C1(A##9); C1(A##0) #define C3(A) \ C2(A##1); C2(A##2); C2(A##3); C2(A##4); C2(A##5); \ C2(A##6); C2(A##7); C2(A##8); C2(A##9); C2(A##0) #define C4(A) \ C3(A##1); C3(A##2); C3(A##3); C3(A##4); C3(A##5); // C3(A##6); C3(A##7); C3(A##8); C3(A##9); C3(A##0) #define C5() \ C4(1); C4(2); C4(3); C4(4); C4(5); \ C4(6); C4(7); C4(8); C4(9) void foo (void) { C5 (); } =======================================================================
-- Summary: PTA is slow on a silly unrealistic test case Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: steven at gcc dot gnu dot org CC: dberlin at gcc dot gnu dot org,gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22376