This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH 0/4] MIPS16/GCC: `casesi_internal_mips16_<mode>' insn fixes and improvements
- From: "Maciej W. Rozycki" <macro at imgtec dot com>
- To: <gcc-patches at gcc dot gnu dot org>
- Cc: Catherine Moore <clm at codesourcery dot com>, Matthew Fortune <Matthew dot Fortune at imgtec dot com>
- Date: Mon, 14 Nov 2016 03:42:07 +0000
- Subject: [PATCH 0/4] MIPS16/GCC: `casesi_internal_mips16_<mode>' insn fixes and improvements
- Authentication-results: sourceware.org; auth=none
Hi,
This small patch series addresses a small number of issues around the
`casesi_internal_mips16_<mode>' insn discovered in the course of recent
development.
I have also made an attempt to factor the preparatory comparison and
branch out as proper RTL operations from this insn, which is a relatively
large assembly block. That however turned out to trigger an apparent bug
elsewhere if the default case calls `__builtin_unreachable', causing both
the branch and all the following instructions starting from the table jump
to be optimized away, as if both legs of the branch were unreachable
rather than just one. So I have backed out that fifth change until the
nature of the problem has been investigated, however I do think we want to
have it eventually as it should improve code scheduling in some cases.
These changes have been successfully regression-tested all at once with
the `mips-mti-linux-gnu' target and the little-endian MIPS16 o32 multilib
only. Since the pattern is only ever used with MIPS16 code generation the
changes do not apply to non-MIPS16 multilibs.
See individual patch descriptions for details.
Maciej