https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79266
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Depends on|12245 |
Ever confirmed|0 |1
Last reconfirmed| |2025-09-18
Status|UNCONFIRMED |NEW
Summary|excessive compile time for |excessive compile time for
|large static array (-O1) |large array (-O1)
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Looks unrelated to PR 12245.
The gimplifier from:
char * array[250001] = {(char *) "1", (char *) "2", (char *) "3", (char *) "4",
(char *) "5", (char *) "6", (char *) "7", (char *) "8", (char *) "9", (char *)
"10", (char *) "11", (char *) "12", (char *) "13", (char *) "14", (char *)
"15", (char *) "16", (char *) "17", (char *) "18", (char *) "19", (char *)
"20", (char *) "21", (char *) "22", (char *) "23", (char *) "24", (char *)
"25", (char *) "26", (char *) "27", (char *) "28", (char *) "29", (char *)
"30", (char *) "31", (char *) "32", (char *) "33", (char *) "34", (char *)
"35", (char *) "36", (char *) "37", (char *) "38", (char *) "39", (char *)
"40", (char *) "41", (char *) "42", (char *) "43", (char *) "44", (char *)
"45", (char *) "46", (char *) "47", (char *) "48", (char *) "49", (char *)
"50", (char *) "51", (char *) "52", (char *) "53", (char *) "54", (char *)
"55", (char *) "56", (char *) "57", (char *) "58", (char *) "59", (char *)
"60", (char *) "61", (char *) "62", (char *) "63", (char *) "64", (char *)
"65", (char *) "66", (char *) "67", (char *) "68",
produces:
try
{
array[0] = "1";
array[1] = "2";
array[2] = "3";
array[3] = "4";
array[4] = "5";
...
Instead of one big array which it copies from originally.
And then aliasing analysis goes down hill.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=12245
[Bug 12245] [13/14/15/16 regression] Uses lots of memory when compiling large
initialized arrays