libgcc is currently contains pure C functions with simple (i.e. non-optimal implementations). Allowing individual targets to provide their own versions of the functions could boost performance.
i.e. comparing the libgcc C implementation of __popcountdi2 to the assembly version provided in the Opteron optimization manual, we find that the AMD supplied version is half the instructions, branchless, uses no data tables (and thus causes no cache misses), and runs in about 1/3 to 1/2 less time. -- Summary: libgcc could use some target specific optimizations Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P2 Component: other AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: nmiell at comcast dot net CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21812