// 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