https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
Jakub Jelinek changed:
What|Removed |Added
Status|NEW |RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
Richard Biener changed:
What|Removed |Added
Target Milestone|5.4 |5.5
--- Comment #16 from Richard
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
Richard Biener changed:
What|Removed |Added
Priority|P3 |P2
Known to work|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
--- Comment #15 from Patrick Palka ---
Author: ppalka
Date: Fri Apr 8 20:17:10 2016
New Revision: 234837
URL: https://gcc.gnu.org/viewcvs?rev=234837=gcc=rev
Log:
Fix PR c++/70590 (error: location references block not in block tree)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
--- Comment #14 from Patrick Palka ---
trunk is now at
Execution times (seconds)
phase setup : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 1%) wall
1287 kB ( 1%) ggc
phase parsing : 1.28 (100%) usr 0.20 (100%) sys
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
--- Comment #13 from Patrick Palka ---
Author: ppalka
Date: Thu Apr 7 16:12:05 2016
New Revision: 234810
URL: https://gcc.gnu.org/viewcvs?rev=234810=gcc=rev
Log:
Avoid needless unsharing during constexpr evaluation (PR c++/70452)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
--- Comment #12 from Patrick Palka ---
Turns out that a single line of code is responsible for the 50MB increase in
memory usage relative to 4.9, and that's the call to unshare_expr in
cxx_eval_call_expression:
/* Associate the
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
--- Comment #11 from Patrick Palka ---
gcc 5 shows:
Execution times (seconds)
phase setup : 0.00 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall
1311 kB ( 0%) ggc
phase parsing : 2.10 (100%) usr 0.28 (100%) sys
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
--- Comment #10 from Patrick Palka ---
Author: ppalka
Date: Tue Apr 5 16:40:00 2016
New Revision: 234753
URL: https://gcc.gnu.org/viewcvs?rev=234753=gcc=rev
Log:
Fix PR c++/70452 (regression in C++ parsing performance)
gcc/cp/ChangeLog:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
--- Comment #9 from Patrick Palka ---
Author: ppalka
Date: Tue Apr 5 01:20:00 2016
New Revision: 234732
URL: https://gcc.gnu.org/viewcvs?rev=234732=gcc=rev
Log:
Remove class cache_map and use ggc hash_maps instead (PR c++/70452)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
--- Comment #8 from Patrick Palka ---
So with the patch instead of making ~200k total copies of the same fn (one for
each recursive call) we only make ~15 total copies (the maximum recursion depth
of the function).
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
--- Comment #7 from Patrick Palka ---
Created attachment 38155
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38155=edit
patch that reuses the function copies
I attached a small patch (not commented yet) that reduces the runtime (of a
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
Patrick Palka changed:
What|Removed |Added
CC||ppalka at gcc dot gnu.org
--- Comment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
--- Comment #5 from Jakub Jelinek ---
Indeed, started with r217664.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
Jakub Jelinek changed:
What|Removed |Added
CC||jakub at gcc dot gnu.org
--- Comment #4
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
Richard Biener changed:
What|Removed |Added
CC||jason at gcc dot gnu.org
--- Comment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
Richard Biener changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last reconfirmed|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
--- Comment #2 from Richard Biener ---
Hashtable lookups are from location/block remapping done. I _think_ that if
all the copy_body stuff we do for constexpr evaluation would just "drop"
locations for the copy we'd still be fine constexpr wise
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
Richard Biener changed:
What|Removed |Added
Keywords||compile-time-hog
Target
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70452
Bug ID: 70452
Summary: regression in C++ parsing performance between 4.9.3
and 5.3.1
Product: gcc
Version: 5.3.1
Status: UNCONFIRMED
Severity: normal
> There is a significant slow down and increase in ram usage
Please report it to Bugzilla rather than this list, thanks.
The attached shell script will generate a larger version
of the following:
constexpr bool static_str_equal(const char* x, const char* y) {
return (*x == 0 || *y == 0) ?
(*x == *y) :
((*x == *y) && static_str_equal(x + 1, y + 1));
}
int main(void)
{
static_assert(
22 matches
Mail list logo