http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58459
Richard Biener changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Resolution|---
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58459
--- Comment #7 from Richard Biener ---
Author: rguenth
Date: Fri Sep 27 08:14:53 2013
New Revision: 202966
URL: http://gcc.gnu.org/viewcvs?rev=202966&root=gcc&view=rev
Log:
2013-09-27 Richard Biener
PR tree-optimization/58459
* tree-s
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58459
--- Comment #6 from Richard Biener ---
LIM does not move the invariant because it does not see that _7 in _7->key
is always dereferenced in the innermost loop. This is because LIM computes
this property as a basic-block property, not as a referen
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58459
--- Comment #5 from Richard Biener ---
Value-numbering it is (-good +bad):
-Value numbering _29 stmt = _29 = _7->key;
+Value numbering _29 stmt = _29 = MEM[(struct S *)&a][j_40].key;
Setting value number of _29 to _29
...
Value numbering _18 st
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58459
Marek Polacek changed:
What|Removed |Added
CC||mpolacek at gcc dot gnu.org
--- Comment #
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58459
--- Comment #3 from Richard Biener ---
It is actually different behavior of PRE and not LIM doing the invariant
motion.
So it should reproduce with -O2 already (maybe you can double-check that).
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58459
Richard Biener changed:
What|Removed |Added
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed|
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58459
--- Comment #1 from Yuri Rumyantsev ---
Created attachment 30850
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30850&action=edit
test-case to reproduce
Test must be compiled on x86 with options -Ofast -m332 -march=atom -mtune=atom