------- Comment #8 from steven at gcc dot gnu dot org 2010-02-21 14:32 ------- I have played with CSiBE with this patch:
-------------------------------------------------- 8< ------------- --- ../../gcc/gcc/config/arm/arm.c 2010-02-12 21:45:29.000000000 +0100 +++ ../../combined/gcc/config/arm/arm.c 2010-02-21 14:54:23.000000000 +0100 @@ -7448,7 +7448,7 @@ arm_arm_address_cost (rtx x) { enum rtx_code c = GET_CODE (x); - +if (1) return 1; if (c == PRE_INC || c == PRE_DEC || c == POST_INC || c == POST_DEC) return 0; if (c == MEM || c == LABEL_REF || c == SYMBOL_REF) -------------------------------------------------- 8< ------------- I tried CSiBE on arm-eabi with "-Os -mabi=aapcs-linux" (latter flag is required for mpeg2dec-0.3.1), but I only looked at size because I have no ARM board to test speed on. Overall the patch results in smaller code: text data bss dec hex filename 3226845 316581 561788 4105214 3ea3fe (TOTALS) unpatched 3226269 316581 561788 4104638 3ea1be (TOTALS) patched For the individual files the results vary. A more detailed investigation is necessary to figure out when a patch like the above is a win, and when it is not. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27016