http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53049
--- Comment #5 from Richard Guenther 2012-04-20
09:20:44 UTC ---
It's not easy to restrict movement in this case (and no other tree transform
would bother). Consider sinking and
void test2 (unsigned val, bool flag)
{
val = 65535U / val;
__
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53049
--- Comment #4 from Georg-Johann Lay 2012-04-19
19:31:12 UTC ---
In tree-ssa-ter.c:is_replaceable_p() there is:
/* Leave any stmt with volatile operands alone as well. */
if (gimple_has_volatile_ops (stmt))
return false;
and in tree-
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53049
--- Comment #3 from Andrew Pinski 2012-04-19
19:18:37 UTC ---
I think there is an already closed bug about this issue and we decided last
time, it is not something which we want to implement an unspec volatile or an
volatile inline-asm as a full
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53049
Georg-Johann Lay changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last reconfirmed|
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53049
--- Comment #2 from Georg-Johann Lay 2012-04-19
18:34:38 UTC ---
Created attachment 27195
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27195
.150r.expand dump
Notice the
Replacing Expressions
val_2 replace with --> val_2 = 65535 / val_1(
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53049
--- Comment #1 from Georg-Johann Lay 2012-04-19
18:32:37 UTC ---
Created attachment 27194
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27194
C source code