This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][RTL-ifcvt] Make non-conditional execution if-conversion more aggressive


On 09/02/2015 09:18 AM, Zamyatin, Igor wrote:


On 19/08/15 17:57, Jeff Law wrote:
On 08/12/2015 08:31 AM, Kyrill Tkachov wrote:
2015-08-10  Kyrylo Tkachov <kyrylo.tkachov@arm.com>

       * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
       then_cost, else_cost fields.  Change branch_cost field to
unsigned int.
       (end_ifcvt_sequence): Call set_used_flags on each insn in the
       sequence.
       Include rtl-iter.h.
       (noce_simple_bbs): New function.
       (noce_try_move): Bail if basic blocks are not simple.
       (noce_try_store_flag): Likewise.
       (noce_try_store_flag_constants): Likewise.
       (noce_try_addcc): Likewise.
       (noce_try_store_flag_mask): Likewise.
       (noce_try_cmove): Likewise.
       (noce_try_minmax): Likewise.
       (noce_try_abs): Likewise.
       (noce_try_sign_mask): Likewise.
       (noce_try_bitop): Likewise.
       (bbs_ok_for_cmove_arith): New function.
       (noce_emit_all_but_last): Likewise.
       (noce_emit_insn): Likewise.
       (noce_emit_bb): Likewise.
       (noce_try_cmove_arith): Handle non-simple basic blocks.
       (insn_valid_noce_process_p): New function.
       (contains_mem_rtx_p): Likewise.
       (bb_valid_for_noce_process_p): Likewise.
       (noce_process_if_block): Allow non-simple basic blocks
       where appropriate.

2015-08-11  Kyrylo Tkachov <kyrylo.tkachov@arm.com>

       * gcc.dg/ifcvt-1.c: New test.
       * gcc.dg/ifcvt-2.c: Likewise.
       * gcc.dg/ifcvt-3.c: Likewise.

Looks like ifcvt-3.c fails on x86_64. I see

New failures:
FAIL: gcc.dg/ifcvt-3.c scan-rtl-dump ce1 "3 true changes made"

Could you please take a look?
Hmm, FWIW, these are passing in my builds/tests:
[law@localhost c-family]$ grep ifcvt-3 /tmp/gcc.sum
PASS: gcc.dg/ifcvt-3.c (test for excess errors)
PASS: gcc.dg/ifcvt-3.c scan-rtl-dump ce1 "3 true changes made"
PASS: gcc.dg/vect/vect-ifcvt-3.c (test for excess errors)
PASS: gcc.dg/vect/vect-ifcvt-3.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorized 1 loops" 1 PASS: gcc.dg/vect/vect-ifcvt-3.c -flto -ffat-lto-objects (test for excess errors)
PASS: gcc.dg/vect/vect-ifcvt-3.c -flto -ffat-lto-objects execution test
PASS: gcc.dg/vect/vect-ifcvt-3.c execution test
PASS: gcc.dg/vect/vect-ifcvt-3.c scan-tree-dump-times vect "vectorized 1 loops" 1
Jeff



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]