This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/61301] missed optimization of move if vector passed by reference
- From: "thomas.preudhomme at arm dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 09 Jun 2014 02:21:06 +0000
- Subject: [Bug tree-optimization/61301] missed optimization of move if vector passed by reference
- Auto-submitted: auto-generated
- References: <bug-61301-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61301
--- Comment #4 from Thomas Preud'homme <thomas.preudhomme at arm dot com> ---
(In reply to Richard Biener from comment #3)
> _3 = MEM[(const float *)this_1(D) + 4B];
> _4 = MEM[(const float *)this_1(D)];
> _5 = MEM[(const float *)this_1(D) + 12B];
> _6 = MEM[(const float *)this_1(D) + 8B];
> _7 = {_3, _4, _5, _6};
> return _7;
>
> does look like an opportunity for a bswap pass improvement. Basically
> handle CONSTRUCTOR as supported composition operation (and then support
> vector loads and shuffle, of course).
I had started working on shuffle support in bswap but I realized this would
probably not help ARM as move between floating point register and general
purpose register are quite slow. I then moved on to higher priority tasks This
doesn't mean I'm finished with the bswap task, as several improvement were
suggested to me during the review of the first patch to improve bswap.
So I wouldn't hold my breath for me doing work for now, feel free to beat me to
it.