This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/49695] conditional moves for stores
- From: "revital.eres at linaro dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 10 Jul 2011 12:50:36 +0000
- Subject: [Bug tree-optimization/49695] conditional moves for stores
- Auto-submitted: auto-generated
- References: <bug-49695-4@http.gcc.gnu.org/bugzilla/>
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.