Follow up to PR 43205
subroutine test()
integer, SAVE :: hugeArray(1000,1000) = 42
generates a huge initializer of the type:
static integer(kind=4) hugeArray = {42, 42, 42, ...., 42};
It would be possible to reduce the compile time and object size by initializing
it a run time:
static integer(kind=4) hugeArray;
static logical initialized = false
if (!initialized)
{
initialized = true
for(i=0, i < size; i++) hugeArray = 42;
}
The question is only how big the array should be. I think one common case of
this could also be -finit-integer=42.
--
Summary: Initializer of huge static arrays should be improved
Product: gcc
Version: 4.5.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43210