[Bug middle-end/29256] [4.2 regression] loop unrolling performance regression
rakdver at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Thu Sep 28 14:15:00 GMT 2006
------- Comment #10 from rakdver at gcc dot gnu dot org 2006-09-28 14:15 -------
(In reply to comment #8)
> D.1563 = -&a;
> MEM[base: (int *) D.1563 + &c, index: D.1562] = MEM[base: D.1562];
>
> WTFFFFFFF
ivopts are having fun :-) On the other hand, this is (one of several possible)
cheapest ways how to express the code, and it should not affect creation of
offsetted modes on RTL, so although this is indeed somewhat curious (well, bug
in fact, from reasons unrelated to the problem covered by this PR), it is not
the cause of this problem.
On x86, tree optimizers seem to do just fine, producing
MEM[symbol: c, index: D.1569, step: 8B] = MEM[symbol: a, index: D.1569, step:
8B];
However, on RTL, we fail to create offsetted version of this addressing mode
after unrolling.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29256
More information about the Gcc-bugs
mailing list