Patch to extend the fix PR53676 to unsigned char

Laurent Alfonsi laurent.alfonsi@st.com
Mon Apr 22 16:24:00 GMT 2013


The patch well fix the adobe_cpp performance regression on the int8_t 
type. But the same degradation exists on uint8_t type, which is not 
fixed by the patch referenced in PR53676.

With the signed version, the code:
    result_5 = (signed char) ((int) result_2 + 2)
is now well narrowed to:
    result_5 = (signed char) ((unsigned char) result_2 + 2)

But with the unsigned version:
    result_5 = (unsigned char) ((int) result_2 + 2)
is not narrowed to:
    result_5 = (unsigned char) ((unsigned char) result_2 + 2)

As a consequence, result_5 is not detected as polynomial, and the loop 
is not removed.
Tested on SH target. bootstrap + regression tests on 
x86_64-unknown-linux-gnu in progress.

Regards,
Laurent

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 53676-extension.patch
Type: text/x-patch
Size: 1361 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20130422/8db569ee/attachment.bin>


More information about the Gcc-patches mailing list