// David Li

In some programs (not so rare), local arrays/aggregates are used to hold some
program parameters that never change. Such local arrays are candidates for
being promoted into readonly static data, in order to 1) reducing stack size;
2) avoid paying the overhead of the initializing the array each time the
routine is entered.

Such optimization can be extended to cases when the local array is defined once
on entry of a single entry routine, read within the region, but not live out of
it (such cases can be created due to inlining).

Example:

int foo(...)
{
   int coeff_array[30] = {1,2,3.......};

   ..... = coeff_array[i];
   ..
}


-- 
           Summary: Promote written once local aggregates to static
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: xinliangli at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35561

Reply via email to