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