[Bug target/63447] New: merge consecutive stw to std
carrot at google dot com
gcc-bugzilla@gcc.gnu.org
Fri Oct 3 06:21:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63447
Bug ID: 63447
Summary: merge consecutive stw to std
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: carrot at google dot com
Target: powerpc64le
In bzip2 there are code segment like:
if (s->state == BZ_X_MAGIC_1) {
/*initialise the save area*/
s->save_i = 0;
s->save_j = 0;
s->save_t = 0;
s->save_alphaSize = 0;
s->save_nGroups = 0;
s->save_nSelectors = 0;
s->save_EOB = 0;
s->save_groupNo = 0;
s->save_groupPos = 0;
s->save_nextSym = 0;
s->save_nblockMAX = 0;
s->save_nblock = 0;
s->save_es = 0;
s->save_N = 0;
s->save_curr = 0;
s->save_zt = 0;
s->save_zn = 0;
s->save_zvec = 0;
s->save_zj = 0;
s->save_gSel = 0;
s->save_gMinlen = 0;
s->save_gLimit = NULL;
s->save_gBase = NULL;
s->save_gPerm = NULL;
}
trunk gcc generates:
li 9,0
li 10,0
li 28,0
li 17,0
stw 9,-1500(30)
stw 9,-1496(30)
li 26,0
li 16,0
stw 9,-1492(30)
stw 9,-1488(30)
li 0,0
li 15,0
stw 9,-1484(30)
stw 9,-1480(30)
li 27,0
li 29,0
stw 9,-1476(30)
stw 9,-1472(30)
li 20,0
li 22,0
stw 9,-1468(30)
stw 9,-1464(30)
li 24,0
li 8,0
stw 9,-1460(30)
stw 9,-1456(30)
li 21,0
li 19,0
stw 9,-1452(30)
stw 9,-1448(30)
li 18,0
li 14,0
stw 9,-1444(30)
stw 9,-1440(30)
li 23,0
li 11,0
stw 9,-1436(30)
stw 9,-1432(30)
li 7,0
li 25,0
stw 9,-1428(30)
stw 9,-1424(30)
stw 9,-1420(30)
Consecutive 2 stw instructions can be merged into one std instruction.
My command line options are: -m64 -mvsx -mcpu=power8 -O2 -fno-strict-aliasing
More information about the Gcc-bugs
mailing list