Hi, For attached preprocessed file, dump file lib_a-s_frexp.E.021t.copyrename1 contains gimple sequences like:
<bb 4>:
x_41 = x_8(D);
goto <bb 8>;
<bb 5>:
if (ix_15 <= 1048575)
goto <bb 6>;
else
goto <bb 7>;
<bb 6>:
x_19 = x_8(D) * 1.8014398509481984e+16;
gh_u.value = x_19;
_21 = gh_u.parts.msw;
hx_22 = (__int32_t) _21;
gh_u ={v} {CLOBBER};
ix_24 = hx_22 & 2147483647;
*eptr_16(D) = -54;
<bb 7>:
# x_1 = PHI <x_8(D)(5), x_19(6)>
# hx_2 = PHI <hx_11(5), hx_22(6)>
# ix_3 = PHI <ix_15(5), ix_24(6)>
_26 = *eptr_16(D);
_27 = ix_3 >> 20;
_28 = _27 + -1022;
_29 = _26 + _28;
*eptr_16(D) = _29;
hx.0_31 = (unsigned int) hx_2;
_32 = hx.0_31 & 2148532223;
_33 = _32 | 1071644672;
hx_34 = (__int32_t) _33;
sh_u.value = x_1;
hx.1_36 = (unsigned int) hx_34;
sh_u.parts.msw = hx.1_36;
x_38 = sh_u.value;
sh_u ={v} {CLOBBER};
x_40 = x_38;
<bb 8>:
# _4 = PHI <x_41(4), x_40(7)>
return _4;
I am not sure if phi node (_4, x_41, x_40) in basic block 8 should be
rename/partitioned into one partition.
Trunk does not do this rename/partition, which causing big regression
in code size on Thumb1.
BTW, the command line is:
arm-none-eabi-gcc -mthumb -mcpu=cortex-m0 -Os/-O2 ...
I noticed the behavior is intended by PR54200, but not sure how the
issue should be handled. Any suggestions?
--
Best Regards.
lib_a-s_frexp.E
Description: Binary data
