This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/41081] redundant ZERO_EXTENDs
- From: "amodra at bigpond dot net dot au" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Aug 2009 03:05:09 -0000
- Subject: [Bug target/41081] redundant ZERO_EXTENDs
- References: <bug-41081-1057@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #3 from amodra at bigpond dot net dot au 2009-08-16 03:05 -------
Created an attachment (id=18374)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18374&action=view)
aims to teach gcc that rotate/shift insn input register's high bits are ignored
This patch is aimed at the "79 other redundant clrldi", removing 59 cases on
rotate/shift input. I'm not particularly happy with it due to hack for
LOAD_EXTEND_OP zero_extends. Before I discovered that particular problem,
fwprop seemed a natural place to teach gcc about insn inputs. If we don't
leave those zero_extends alone, some rotate insns will take their input
directly from the load, while other insns still need the zero_extend. This
prevents combine from removing the zero_extend on loads.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41081