This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[Ping][PATCH, GCC/THUMB1] New define_insn_and_split pattern to enable optimizing out certain unnecessary uxtb instruction
- From: "Terry Guo" <terry dot guo at arm dot com>
- To: <gcc-patches at gcc dot gnu dot org>
- Cc: "Ramana Radhakrishnan" <Ramana dot Radhakrishnan at arm dot com>, "Richard Earnshaw" <Richard dot Earnshaw at arm dot com>
- Date: Fri, 11 Apr 2014 15:59:12 +0800
- Subject: [Ping][PATCH, GCC/THUMB1] New define_insn_and_split pattern to enable optimizing out certain unnecessary uxtb instruction
- Authentication-results: sourceware.org; auth=none
Hi there,
Could you please review patch at
http://gcc.gnu.org/ml/gcc-patches/2014-03/msg00790.html? Thanks.
BR,
Terry
> -----Original Message-----
> From: gcc-patches-owner@gcc.gnu.org [mailto:gcc-patches-
> owner@gcc.gnu.org] On Behalf Of Terry Guo
> Sent: Monday, March 17, 2014 11:36 AM
> To: gcc-patches@gcc.gnu.org
> Cc: Ramana Radhakrishnan; Richard Earnshaw
> Subject: [PATCH, GCC/THUMB1] New define_insn_and_split pattern to
> enable optimizing out certain unnecessary uxtb instruction
>
> Hi
>
> The existing test case gcc.target/arm/unsigned-extend-1.c fails for Thumb1
> target like cortex-m0 because the thumb1_addsi3_addgeu insn pattern isn't
> friendly to gcc combine pass. Before combine pass, we have such insn for
> this test case:
>
> (insn 10 9 12 2 (set (reg:SI 118)
> (plus:SI (plus:SI (reg:SI 120)
> (reg:SI 120))
> (geu:SI (reg:SI 119)
> (reg:SI 117))))
>
> When the operand (reg:SI 120) is zero and operand (reg:SI 119) is constant
> 9, combine pass will turn this insn into:
>
> (insn 10 9 12 2 (set (reg:SI 118)
> (leu:SI (reg:SI 116) (const_int 9))))
>
> Unfortunately this new insn doesn't match any existing patterns, this
causes
> combine pass to undo all attempts and results in sub-optimal code. The
> attached patch intends to legitimize the new insn.
>
> Tested with gcc regression test and no new regression.
>
> Is it OK to trunk?
>
> BR,
> Terry
>
> 2014-03-17 Terry Guo <terry.guo@arm.com>
>
> * config/arm/arm.md (cstoresi_leu_thumb1): New
> define_insn_and_split
> pattern.
> (cstoresi4): Use above new pattern.