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

--- Comment #2 from revital.eres at linaro dot org 2011-07-10 12:50:31 UTC ---
(In reply to comment #0)
> for (i = 0; i < point1->len; i++)
>     {
>       if (point1->arr[i].val)
>         {
>           point1->arr[i].val ^= (unsigned long long) res;
>         }
>     }
> For the above loop if-conversion is not been done in the tree level (compiled
> with trunk -r176116). Seemingly this case is similar to the one in PR27313.
> When using -ftree-loop-if-convert-stores I get 'tree could trap...' message
> although I'm not sure why as there is a read in every iteration of the loop to
> the memory location we write to.

hmmm... after reading Sebastian Pop's paper from the last summit ("Improving
GCC’s auto-vectorization with if-conversion and loop
flattening for AMD’s Bulldozer processors") it's seems that we need to grantee
that point1->arr[i].val is writable when the condition is false which we can
not prove in this case.  So that's not a bug, I apologize for the noise.

Reply via email to