------- Comment #4 from changpeng dot fang at amd dot com  2010-06-14 22:22 
-------
There is nothing wrong in the prefetch itself. The problem is 
__builtin_prefetch call used for prefetch instruction. Whenever,
there is a non-local lable in the current function,  the __builtin_prefetch
inserted will be considered as a control flow statement:

is_ctrl_altering_stmt (gimple t)
{
   ....

    /* A non-pure/const call alters flow control if the current
       function has nonlocal labels.  */
    if (!(flags & (ECF_CONST | ECF_PURE)) && cfun->has_nonlocal_label) {
          return true;
    ...
}


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44503

Reply via email to