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

Reply via email to