value profiling transformation does not kick in for the following simple program. Looks like it requires power of 2 values to dominate. It is probably not due to design but simply lack of unit testing for feature.
#include <string.h> void mycpy (char* s1, char *s2, int n) __attribute__((noinline)); void mycpy (char* s1, char *s2, int n) { memcpy(s1,s2,n); } int main() { char *s1 = malloc(100000); char *s2 = malloc(100000); int i; for ( i = 0 ; i < 100000; i ++) { mycpy(s1,s2, 129); } } -- Summary: Value profiling: string op -- requires power of 2 value?? Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: xinliangli at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35590