On Jul 9, 2012, at 12:54 PM, Dimitrios Apostolou wrote: > Since output_addr_const() shows pretty hot in the compiler, I reinstated the > fprint_w() call in place of fprintf().
My review bits... First there is no guarantee that HOST_WIDE_INT_BITSIZE is 64 or less, so [20] is unsafe longer term. You can add an assert that it is 64 or less, that way it will be fixed when people bump things up. long != HOST_WIDE_INT, so, that's a type violation, an assert for it would make it safer. For performance, can't help but wonder if it would be faster to process the numbers in blocks of 9 digits, so that the wide divisions are fewer are farther between and for each one, you could then have 9 32-bit divisions which should be a bit cheaper; but, that's an issue for sprint_ul_rev, not your code.