Summary: | [3.4 regression] 20-30% compile-time regression with template-heavy code | ||
---|---|---|---|
Product: | gcc | Reporter: | Giovanni Bajo <giovannibajo> |
Component: | rtl-optimization | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | RESOLVED INVALID | ||
Severity: | normal | CC: | gcc-bugs |
Priority: | P2 | Keywords: | compile-time-hog |
Version: | 3.4.0 | ||
Target Milestone: | 3.4.0 | ||
Host: | Target: | ||
Build: | Known to work: | ||
Known to fail: | Last reconfirmed: | 2003-12-23 18:15:00 | |
Bug Depends on: | |||
Bug Blocks: | 8361 | ||
Attachments: |
Preprocessed source for G++ 3.2
Preprocessed source for G++ 3.3 Preprocessed source for G++ 3.4 |
Description
Giovanni Bajo
2003-12-23 14:50:58 UTC
Created attachment 5361 [details]
Preprocessed source for G++ 3.2
Created attachment 5362 [details]
Preprocessed source for G++ 3.3
Created attachment 5363 [details]
Preprocessed source for G++ 3.4
Steven B. says this is most likely the same (real) issue of 8361. You tested with checking disabled, right? What target are you on also. Seems to be related to templates. Test case: template<class type> class foo { private: int size; type *a; public: foo<type> (int max) { size = max; a = new type[size]; } type& foo<type>::operator[] (int index) { if (index > size) index = size; return a[index]; } }; int test (void) { foo<int> bar(2); bar[1] = 1; } gives, CPROP of ~PtO^HØ , pass 1: 2304 bytes needed, 0 const props, 0 copy props BYPASS of ~PtO^HØ : 3 basic blocks, 2304 bytes etc. Ignore my last comment, it has ended up in the wrong PR by accident :-/ Looks like checking was on :( Sorry everyone. Maybe someone wants to try this on tree-ssa. It's smaller than 8361, so if it shows the same regression there, it might be useful. |