RE: [PATCH 5/5][Arm] New pattern for CSEL, CSET and CSETM instructions

2020-09-17 Thread Omar Tahir
Hi Kyrill, > It's been a while, but I believe you had the following comment about > implementing CSEL: > >> (define_insn_and_split "*thumb2_movsicc_insn" >>[(set (match_operand:SI 0 "s_register_operand" "=l,l,r,r,r,r,r,r,r,r,r,r") >> (if_then_else:SI >> @@ -449,17 +473,14 @@ >>

RE: [PATCH 5/5][Arm] New pattern for CSEL, CSET and CSETM instructions

2020-09-16 Thread Omar Tahir
Hi Kyrill, It's been a while, but I believe you had the following comment about implementing CSEL: > (define_insn_and_split "*thumb2_movsicc_insn" >[(set (match_operand:SI 0 "s_register_operand" "=l,l,r,r,r,r,r,r,r,r,r,r") > (if_then_else:SI > @@ -449,17 +473,14 @@ > it\\t%d3

RE: [PATCH 3/5][Arm] New pattern for CSINC instructions

2020-08-06 Thread Omar Tahir
> Hi Omar, > > diff --git a/gcc/config/arm/thumb2.md b/gcc/config/arm/thumb2.md > index 0b00aef7ef7..79cf684e5cb 100644 > --- a/gcc/config/arm/thumb2.md > +++ b/gcc/config/arm/thumb2.md > @@ -743,6 +743,9 @@ > if (GET_CODE (operands[4]) == LT && operands[3] == const0_rtx) >return \"%i

RE: [PATCH 2/5][Arm] New pattern for CSINV instructions

2020-08-05 Thread Omar Tahir
Hi Kyrill, > -/* Only thumb1 can't support conditional execution, so return true if > - the target is not thumb1. */ > static bool > > > Functions should have comments in GCC. Can you please write something > describing the new logic of the function. > > arm_have_conditional_execution (void

[PATCH 5/5][Arm] New pattern for CSEL, CSET and CSETM instructions

2020-08-04 Thread Omar Tahir
y use CSEL it falls back to using IT blocks. Regression tested on arm-none-eabi. The entire patch set was regression tested on arm-linux-gnueabi also. That's all folks! Thanks, Omar 2020-07-30: Sudakshina Das Omar Tahir * config/arm/thumb2.md (*cmovsi_

[PATCH 4/5][Arm] New pattern for CSNEG instructions

2020-08-04 Thread Omar Tahir
Omar Tahir * config/arm/thumb2.md (*thumb2_csneg): New. (*thumb2_negscc): Don't match if TARGET_COND_ARITH. * config/arm/arm.md (*if_neg_move): Don't match if TARGET_COND_ARITH. gcc/testsuite/ChangeLog: 2020-07-30: Sudakshina Das

[PATCH 3/5][Arm] New pattern for CSINC instructions

2020-08-04 Thread Omar Tahir
Omar Tahir * config/arm/thumb2.md (*thumb2_csinc): New. (*thumb2_cond_arith): Generate CINC where possible. gcc/testsuite/ChangeLog: 2020-07-30: Sudakshina Das Omar Tahir * gcc.target/arm/csinc-1.c: New test. diff --git a/gcc

[PATCH 2/5][Arm] New pattern for CSINV instructions

2020-08-04 Thread Omar Tahir
y match if !TARGET_COND_ARITH, otherwise it triggers undesirable combines. 2020-07-30: Sudakshina Das Omar Tahir * config/arm/arm.h (TARGET_COND_ARITH): New macro. * config/arm/arm.c (arm_have_conditional_execution): Return

[PATCH 1/5][Arm] Modify default tuning of armv8.1-m.main to use Cortex-M55

2020-08-04 Thread Omar Tahir
be necessary to correctly prioritise conditional instructions over branches in the rest of this patch series. Regression tested on arm-none-eabi. gcc/ChangeLog: 2020-07-30: Omar Tahir * config/arm/arm-cpus.in (armv8.1-m.main): Tune for Cortex-M55. diff --git a/gcc/config/arm

[PATCH 0/5][Arm] Add support for conditional instructions (CSEL, CSINC etc.) for Armv8.1-M Mainline

2020-08-04 Thread Omar Tahir
Hi all, This patch series provides support for the following instructions that were added in Armv8.1-M Mainline [1]: - CSEL - CSET - CSETM - CSNEG - CSINV - CSINC - CINC The patch serie

RE: [PATCH] Fix unnecessary register spill that depends on function ordering

2020-07-02 Thread Omar Tahir
> Omar Tahir writes: > > Hi Richard, > > > > From: Richard Sandiford > >> > @@ -3719,6 +3722,7 @@ static unsigned int rest_of_handle_sched (void) > >> > { #ifdef INSN_SCHEDULING > >> > + first_moveable_pseudo = last

RE: [PATCH] Fix unnecessary register spill that depends on function ordering

2020-07-01 Thread Omar Tahir
Hi Richard, From: Richard Sandiford > > @@ -3719,6 +3722,7 @@ static unsigned int rest_of_handle_sched (void) > > { #ifdef INSN_SCHEDULING > > + first_moveable_pseudo = last_moveable_pseudo; > >if (flag_selective_scheduling > >&& ! maybe_skip_selective_scheduling ()) > > run_se

[PATCH] Fix unnecessary register spill that depends on function ordering

2020-06-30 Thread Omar Tahir
her, deeper bug? Bootstrapped and regression tested on aarch64-none-linux-gnu. I don't have write privileges, so if it's fine could someone push for me? Thanks, Omar gcc/ChangeLog: 2020-06-30: Omar Tahir * sched-rgn.c: Include ira-int.h, ira.h, regs.h.

[PATCH] aarch64: Fix missing BTI instruction in trampolines

2020-06-29 Thread Omar Tahir
s BTI instructions are ignored on unsupported architecture versions. I don't have write access, so could someone commit for me? Bootstrapped and tested on aarch64 with no regressions. gcc/ChangeLog: 2020-06-29 Omar Tahir omar.ta...@arm.com * config/aarch64/aarch64.c (aarch64_asm_trampolin