[Bug c/93102] New: [optimization] is it legal to avoid accessing const local array from stack ?
zhongyunde at huawei dot com
gcc-bugzilla@gcc.gnu.org
Mon Dec 30 11:03:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93102
Bug ID: 93102
Summary: [optimization] is it legal to avoid accessing const
local array from stack ?
Product: gcc
Version: 9.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: zhongyunde at huawei dot com
Target Milestone: ---
test code:
int foo (int m, int n)
{
const int C00002029[10] = {0,1,2,3,2,3,0,1,2,3};
int index, sum = 0;
for (index=m; index<n; index ++)
sum += C00002029[index];
return sum;
}
in general, we may store the const value {0,1,2,3,2,3,0,1,2,3} in rodata
section, then use memcpy to assign the local array C00002029.
But as we known, in above code, the array is only accessed one time, so can we
optimize it such as following logic? this can avoid initialization, and the
performance can be better.
const int C00002029_xxx[10] = {0,1,2,3,2,3,0,1,2,3};
int foo (int m, int n)
{
int index, sum = 0;
for (index=m; index<n; index ++)
sum += C00002029_xxx[index];
return sum;
}
More information about the Gcc-bugs
mailing list