public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH v2 0/5] Updates for PRU backend
@ 2020-05-03 16:11 Dimitar Dimitrov
  2020-05-03 16:12 ` [PATCH v2 1/5] PRU: Fix comment to avoid fall through warning Dimitar Dimitrov
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Dimitar Dimitrov @ 2020-05-03 16:11 UTC (permalink / raw)
  To: gcc-patches

One of the changes frees a previously fixed register, per
ABI clarification from TI, for local usage from function.
The change is backwards compatible.

Rest of changes are cleanups.

Testsuite did not reveal any regressions.

Dimitar Dimitrov (5):
  PRU: Fix comment to avoid fall through warning
  PRU: Simplify machine description
  PRU: Fix R3.w0 register class
  testsuite: pru: Add clobber test
  PRU: Remove TARGET_HARD_REGNO_CALL_PART_CLOBBERED

 gcc/config/pru/pru.c                          | 80 ++++---------------
 gcc/config/pru/pru.h                          | 11 ++-
 gcc/config/pru/pru.md                         |  6 +-
 gcc/testsuite/gcc.target/pru/clobber-sp.c     | 24 ++++++
 .../pru/lra-framepointer-fragmentation-1.c    |  5 +-
 .../pru/lra-framepointer-fragmentation-2.c    | 10 ++-
 6 files changed, 58 insertions(+), 78 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/pru/clobber-sp.c

-- 
2.20.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 1/5] PRU: Fix comment to avoid fall through warning
  2020-05-03 16:11 [PATCH v2 0/5] Updates for PRU backend Dimitar Dimitrov
@ 2020-05-03 16:12 ` Dimitar Dimitrov
  2020-05-03 16:12 ` [PATCH v2 2/5] PRU: Simplify machine description Dimitar Dimitrov
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Dimitar Dimitrov @ 2020-05-03 16:12 UTC (permalink / raw)
  To: gcc-patches

gcc/ChangeLog:

2020-05-03  Dimitar Dimitrov  <dimitar@dinux.eu>

	* config/pru/pru.c (pru_print_operand): Fix fall through comment.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
---
 gcc/config/pru/pru.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/pru/pru.c b/gcc/config/pru/pru.c
index 37394c5e3b9..e20b41c6d1f 100644
--- a/gcc/config/pru/pru.c
+++ b/gcc/config/pru/pru.c
@@ -1650,7 +1650,7 @@ pru_print_operand (FILE *file, rtx op, int letter)
 	  return;
 	case 'Q':
 	  cond = swap_condition (cond);
-	  /* Fall through to reverse.  */
+	  /* Fall through.  */
 	case 'R':
 	  fprintf (file, "%s", pru_comparison_str (reverse_condition (cond)));
 	  return;
-- 
2.20.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 2/5] PRU: Simplify machine description
  2020-05-03 16:11 [PATCH v2 0/5] Updates for PRU backend Dimitar Dimitrov
  2020-05-03 16:12 ` [PATCH v2 1/5] PRU: Fix comment to avoid fall through warning Dimitar Dimitrov
@ 2020-05-03 16:12 ` Dimitar Dimitrov
  2020-05-03 16:12 ` [PATCH v2 3/5] PRU: Fix R3.w0 register class Dimitar Dimitrov
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Dimitar Dimitrov @ 2020-05-03 16:12 UTC (permalink / raw)
  To: gcc-patches

Use the new @insn syntax for simpler gen_* invocation.

gcc/ChangeLog:

2020-05-03  Dimitar Dimitrov  <dimitar@dinux.eu>

	* config/pru/pru.c (pru_emit_doloop): Use new gen_doloop_end_internal
	and gen_doloop_begin_internal.
	(pru_reorg_loop): Use gen_pruloop with mode.
	* config/pru/pru.md: Use new @insn syntax.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
---
 gcc/config/pru/pru.c  | 44 +++++++++++++------------------------------
 gcc/config/pru/pru.md |  6 +++---
 2 files changed, 16 insertions(+), 34 deletions(-)

diff --git a/gcc/config/pru/pru.c b/gcc/config/pru/pru.c
index e20b41c6d1f..45b18ed6fe4 100644
--- a/gcc/config/pru/pru.c
+++ b/gcc/config/pru/pru.c
@@ -2345,26 +2345,14 @@ pru_emit_doloop (rtx *operands, int is_end)
 
   tag = GEN_INT (cfun->machine->doloop_tags - 1);
   machine_mode opmode = GET_MODE (operands[0]);
+  gcc_assert (opmode == HImode || opmode == SImode);
+
   if (is_end)
-    {
-      if (opmode == HImode)
-	emit_jump_insn (gen_doloop_end_internalhi (operands[0],
-						   operands[1], tag));
-      else if (opmode == SImode)
-	emit_jump_insn (gen_doloop_end_internalsi (operands[0],
-						   operands[1], tag));
-      else
-	gcc_unreachable ();
-    }
+    emit_jump_insn (gen_doloop_end_internal (opmode, operands[0],
+					     operands[1], tag));
   else
-    {
-      if (opmode == HImode)
-	emit_insn (gen_doloop_begin_internalhi (operands[0], operands[0], tag));
-      else if (opmode == SImode)
-	emit_insn (gen_doloop_begin_internalsi (operands[0], operands[0], tag));
-      else
-	gcc_unreachable ();
-    }
+    emit_insn (gen_doloop_begin_internal (opmode, operands[0],
+					  operands[0], tag));
 }
 
 
@@ -2607,6 +2595,7 @@ pru_reorg_loop (rtx_insn *insns)
 	/* Case (1) or (2).  */
 	rtx_code_label *repeat_label;
 	rtx label_ref;
+	rtx loop_rtx;
 
 	/* Create a new label for the repeat insn.  */
 	repeat_label = gen_label_rtx ();
@@ -2616,23 +2605,16 @@ pru_reorg_loop (rtx_insn *insns)
 	   will utilize an internal for the PRU core LOOP register.  */
 	label_ref = gen_rtx_LABEL_REF (VOIDmode, repeat_label);
 	machine_mode loop_mode = GET_MODE (loop->begin->loop_count);
-	if (loop_mode == HImode)
-	  emit_insn_before (gen_pruloophi (loop->begin->loop_count, label_ref),
-			    loop->begin->insn);
-	else if (loop_mode == SImode)
-	  {
-	    rtx loop_rtx = gen_pruloopsi (loop->begin->loop_count, label_ref);
-	    emit_insn_before (loop_rtx, loop->begin->insn);
-	  }
-	else if (loop_mode == VOIDmode)
+	if (loop_mode == VOIDmode)
 	  {
 	    gcc_assert (CONST_INT_P (loop->begin->loop_count));
 	    gcc_assert (UBYTE_INT ( INTVAL (loop->begin->loop_count)));
-	    rtx loop_rtx = gen_pruloopsi (loop->begin->loop_count, label_ref);
-	    emit_insn_before (loop_rtx, loop->begin->insn);
+	    loop_mode = SImode;
 	  }
-	else
-	  gcc_unreachable ();
+	gcc_assert (loop_mode == HImode || loop_mode == SImode);
+	loop_rtx = gen_pruloop (loop_mode, loop->begin->loop_count, label_ref);
+	emit_insn_before (loop_rtx, loop->begin->insn);
+
 	delete_insn (loop->begin->insn);
 
 	/* Insert the repeat label before the first doloop_end.
diff --git a/gcc/config/pru/pru.md b/gcc/config/pru/pru.md
index 67624e2aac0..2f1bc21f025 100644
--- a/gcc/config/pru/pru.md
+++ b/gcc/config/pru/pru.md
@@ -887,7 +887,7 @@ (define_insn "cbranch_qbbx_<BIT_TEST:code><EQS0:mode><EQS1:mode><EQD:mode>4"
 ;; This insn is volatile because we'd like it to stay in its original
 ;; position, just before the loop header.  If it stays there, we might
 ;; be able to convert it into a "loop" insn.
-(define_insn "doloop_begin_internal<mode>"
+(define_insn "@doloop_begin_internal<mode>"
   [(set (match_operand:HISI 0 "register_operand" "=r")
 	(unspec_volatile:HISI
 	 [(match_operand:HISI 1 "reg_or_ubyte_operand" "rI")
@@ -909,7 +909,7 @@ (define_expand "doloop_begin"
 ; Note: "JUMP_INSNs and CALL_INSNs are not allowed to have any output
 ; reloads;".  Hence this insn must be prepared for a counter that is
 ; not a register.
-(define_insn "doloop_end_internal<mode>"
+(define_insn "@doloop_end_internal<mode>"
   [(set (pc)
 	(if_then_else (ne (match_operand:HISI 0 "nonimmediate_operand" "+r,*m")
 			  (const_int 1))
@@ -951,7 +951,7 @@ (define_expand "doloop_end"
   DONE;
 })
 
-(define_insn "pruloop<mode>"
+(define_insn "@pruloop<mode>"
   [(set (reg:HISI LOOPCNTR_REGNUM)
 	(unspec:HISI [(match_operand:HISI 0 "reg_or_ubyte_operand" "rI")
 		    (label_ref (match_operand 1))]
-- 
2.20.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 3/5] PRU: Fix R3.w0 register class
  2020-05-03 16:11 [PATCH v2 0/5] Updates for PRU backend Dimitar Dimitrov
  2020-05-03 16:12 ` [PATCH v2 1/5] PRU: Fix comment to avoid fall through warning Dimitar Dimitrov
  2020-05-03 16:12 ` [PATCH v2 2/5] PRU: Simplify machine description Dimitar Dimitrov
@ 2020-05-03 16:12 ` Dimitar Dimitrov
  2020-05-03 16:12 ` [PATCH v2 4/5] testsuite: pru: Add clobber test Dimitar Dimitrov
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Dimitar Dimitrov @ 2020-05-03 16:12 UTC (permalink / raw)
  To: gcc-patches

TI has clarified [1] that R3.w0 is caller saved, so allow compiler to
use it. This is safe change because older GCC versions treat R3.w0 as
fixed register and never use it.

[1] https://e2e.ti.com/support/tools/ccs/f/81/t/849993

gcc/ChangeLog:

2020-05-03  Dimitar Dimitrov  <dimitar@dinux.eu>

	* config/pru/pru.h: Mark R3.w0 as caller saved.

gcc/testsuite/ChangeLog:

2020-05-03  Dimitar Dimitrov  <dimitar@dinux.eu>

	* gcc.target/pru/lra-framepointer-fragmentation-1.c: Update test to
	  take into account additional available registers.
	* gcc.target/pru/lra-framepointer-fragmentation-2.c: Ditto.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
---
 gcc/config/pru/pru.h                                  | 11 ++++++++---
 .../gcc.target/pru/lra-framepointer-fragmentation-1.c |  5 +++--
 .../gcc.target/pru/lra-framepointer-fragmentation-2.c | 10 ++++++----
 3 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/gcc/config/pru/pru.h b/gcc/config/pru/pru.h
index ea6ee109184..314e877a5f9 100644
--- a/gcc/config/pru/pru.h
+++ b/gcc/config/pru/pru.h
@@ -125,7 +125,8 @@
    1      r1		  Caller Saved.  Also used as a temporary by function.
 			  profiler and function prologue/epilogue.
    2      r2       sp	  Stack Pointer.
-   3*     r3.w0    ra	  Return Address (16-bit).
+   3*     r3.w0		  Caller saved.
+   3*     r3.w2    ra	  Return Address (16-bit).
    4      r4       fp	  Frame Pointer, also called Argument Pointer in ABI.
    5-13   r5-r13	  Callee Saved Registers.
    14-29  r14-r29	  Register Arguments.  Caller Saved Registers.
@@ -152,7 +153,7 @@
 
 #define FIXED_REGISTERS				\
   {						\
-/*   0 */  0,0,0,0, 0,0,0,0, 1,1,1,1, 1,1,1,1,	\
+/*   0 */  0,0,0,0, 0,0,0,0, 1,1,1,1, 0,0,1,1,	\
 /*   4 */  0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,	\
 /*   8 */  0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,	\
 /*  12 */  0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,	\
@@ -178,10 +179,13 @@
   }
 
 #define PRU_SEQ_R(X)  (X) * 4 + 0, (X) * 4 + 1, (X) * 4 + 2, (X) * 4 + 3
+#define PRU_SEQ_R_W0(X)  (X) * 4 + 0, (X) * 4 + 1
+#define PRU_SEQ_R_W2(X)  (X) * 4 + 2, (X) * 4 + 3
 #define REG_ALLOC_ORDER							    \
   {									    \
     /* Call-clobbered, yet not used for parameters.  */			    \
     PRU_SEQ_R (0),  PRU_SEQ_R ( 1),					    \
+    PRU_SEQ_R_W0 (3),							    \
 									    \
     PRU_SEQ_R (14), PRU_SEQ_R (15), PRU_SEQ_R (16), PRU_SEQ_R (17),	    \
     PRU_SEQ_R (18), PRU_SEQ_R (19), PRU_SEQ_R (20), PRU_SEQ_R (21),	    \
@@ -193,7 +197,8 @@
     PRU_SEQ_R (13),							    \
 									    \
     PRU_SEQ_R ( 4),							    \
-    PRU_SEQ_R ( 2), PRU_SEQ_R ( 3),					    \
+    PRU_SEQ_R ( 2),							    \
+    PRU_SEQ_R_W2 (3),							    \
 									    \
     /* I/O and virtual registers.  */					    \
     PRU_SEQ_R (30), PRU_SEQ_R (31), PRU_SEQ_R (32), PRU_SEQ_R (33),	    \
diff --git a/gcc/testsuite/gcc.target/pru/lra-framepointer-fragmentation-1.c b/gcc/testsuite/gcc.target/pru/lra-framepointer-fragmentation-1.c
index ee1288fc2ae..b2a49e3a9e1 100644
--- a/gcc/testsuite/gcc.target/pru/lra-framepointer-fragmentation-1.c
+++ b/gcc/testsuite/gcc.target/pru/lra-framepointer-fragmentation-1.c
@@ -12,6 +12,7 @@ uint64_t __attribute__((noinline)) test(uint64_t a, uint64_t b,
   uint64_t l1 = 0x12345678, l2 = 0x87654321, l3 = 1001, l4 = 1002;
   uint64_t l5 = 1004;
   uint32_t l6 = 2005;
+  uint16_t s1 = 4321;
   uint8_t c1 = 101, c2 = 102;
 
   /* The numerous dummy asm input operands create just
@@ -24,10 +25,10 @@ uint64_t __attribute__((noinline)) test(uint64_t a, uint64_t b,
        : "0" (l1), "r" (a), "r"(b),
        "r"(c), "r"(d), "r"(e), "r"(f),
        "r"(g), "r"(h), "r"(l2),
-       "r"(c1), "r"(c2),
+       "r"(c1), "r"(c2), "r"(s1),
        "r"(l3), "r"(l4), "r"(l5), "r"(l6));
 
-  global = a+b+c+d+e+f+g+h + c1+c2 + l2;
+  global = a+b+c+d+e+f+g+h + s1 + c1+c2 + l2;
 
   return l1;
 }
diff --git a/gcc/testsuite/gcc.target/pru/lra-framepointer-fragmentation-2.c b/gcc/testsuite/gcc.target/pru/lra-framepointer-fragmentation-2.c
index 6c98e9bf13b..2f910295f2a 100644
--- a/gcc/testsuite/gcc.target/pru/lra-framepointer-fragmentation-2.c
+++ b/gcc/testsuite/gcc.target/pru/lra-framepointer-fragmentation-2.c
@@ -14,6 +14,7 @@ uint64_t __attribute__((noinline)) test(uint64_t a, uint64_t b,
   uint64_t l1 = 0x12345678, l2 = 0x87654321, l3 = 1001, l4 = 1002;
   uint64_t l5 = 1004;
   uint32_t l6 = 2005;
+  uint16_t s1 = 4321;
   uint8_t c1 = 101, c2 = 102;
 
   /* The numerous dummy asm input operands create just
@@ -36,13 +37,14 @@ uint64_t __attribute__((noinline)) test(uint64_t a, uint64_t b,
        "add %0, %0, %14\n\t"
        "add %0, %0, %15\n\t"
        "add %0, %0, %16\n\t"
+       "add %0, %0, %17\n\t"
        : "=r" (l1)
        : "0" (l1), "r" (a), "r"(b),
        "r"(c), "r"(d), "r"(e), "r"(f),
-       "r"(g), "r"(h), "r"(c1), "r"(c2),
+       "r"(g), "r"(h), "r"(c1), "r"(c2), "r"(s1),
        "r"(l2), "r"(l3), "r"(l4), "r"(l5), "r"(l6));
 
-  global = a+b+c+d+e+f+g+h + c1+c2 + l2+l3+l4+l5+l6;
+  global = a+b+c+d+e+f+g+h + s1 + c1+c2 + l2+l3+l4+l5+l6;
 
   return l1;
 }
@@ -51,10 +53,10 @@ int main()
 {
   uint64_t a = test(1, 2, 3, 4, 5, 6, 7, 8);
 
-  if (a != 0x98878ae8) {
+  if (a != 0x98879bc9) {
     abort();
   }
-  if (global != 0x876557a4) {
+  if (global != 0x87656885) {
     abort();
   }
   return 0;
-- 
2.20.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 4/5] testsuite: pru: Add clobber test
  2020-05-03 16:11 [PATCH v2 0/5] Updates for PRU backend Dimitar Dimitrov
                   ` (2 preceding siblings ...)
  2020-05-03 16:12 ` [PATCH v2 3/5] PRU: Fix R3.w0 register class Dimitar Dimitrov
@ 2020-05-03 16:12 ` Dimitar Dimitrov
  2020-05-03 16:12 ` [PATCH v2 5/5] PRU: Remove TARGET_HARD_REGNO_CALL_PART_CLOBBERED Dimitar Dimitrov
  2020-05-05 16:00 ` [PATCH v2 0/5] Updates for PRU backend Jeff Law
  5 siblings, 0 replies; 8+ messages in thread
From: Dimitar Dimitrov @ 2020-05-03 16:12 UTC (permalink / raw)
  To: gcc-patches

gcc/testsuite/ChangeLog:

2020-05-03  Dimitar Dimitrov  <dimitar@dinux.eu>

	* gcc.target/pru/clobber-sp.c: New test.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
---
 gcc/testsuite/gcc.target/pru/clobber-sp.c | 24 +++++++++++++++++++++++
 1 file changed, 24 insertions(+)
 create mode 100644 gcc/testsuite/gcc.target/pru/clobber-sp.c

diff --git a/gcc/testsuite/gcc.target/pru/clobber-sp.c b/gcc/testsuite/gcc.target/pru/clobber-sp.c
new file mode 100644
index 00000000000..3cc0a60bfc9
--- /dev/null
+++ b/gcc/testsuite/gcc.target/pru/clobber-sp.c
@@ -0,0 +1,24 @@
+/* Test inline ASM clobber for SP register */
+
+/* { dg-do compile } */
+/* { dg-options "-O1" } */
+
+/* -O1 in the options is significant.  */
+
+extern void abort (void);
+
+int
+test1 (void)
+{
+  int res;
+
+  /* { dg-warning "listing the stack pointer register 'sp' in a clobber list is deprecated" "" { target pru-*-* } .+2 } */
+  /* { dg-message "note: the value of the stack pointer after an 'asm' statement must be the same as it was before the statement" "" { target pru-*-* } .+1 } */
+  asm volatile(
+	       "ldi	%[res], 101		\n\t"
+	       : [res] "=r" (res)
+	       :
+	       : "sp");
+
+  return res;
+}
-- 
2.20.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 5/5] PRU: Remove TARGET_HARD_REGNO_CALL_PART_CLOBBERED
  2020-05-03 16:11 [PATCH v2 0/5] Updates for PRU backend Dimitar Dimitrov
                   ` (3 preceding siblings ...)
  2020-05-03 16:12 ` [PATCH v2 4/5] testsuite: pru: Add clobber test Dimitar Dimitrov
@ 2020-05-03 16:12 ` Dimitar Dimitrov
  2020-05-05 16:00 ` [PATCH v2 0/5] Updates for PRU backend Jeff Law
  5 siblings, 0 replies; 8+ messages in thread
From: Dimitar Dimitrov @ 2020-05-03 16:12 UTC (permalink / raw)
  To: gcc-patches

Per clarification in [1], macro is supposed to check for partial
clobbering of single HW registers. Since PRU declares only 8-bit
HW registers, and ABI does not define individual bit clobbering,
it is safe to remove the implementation.

[1] https://gcc.gnu.org/ml/gcc-patches/2019-09/msg00778.html

gcc/ChangeLog:

2020-05-03  Dimitar Dimitrov  <dimitar@dinux.eu>

	* config/pru/pru.c (pru_hard_regno_call_part_clobbered): Remove.
	(TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Remove.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
---
 gcc/config/pru/pru.c | 34 ----------------------------------
 1 file changed, 34 deletions(-)

diff --git a/gcc/config/pru/pru.c b/gcc/config/pru/pru.c
index 45b18ed6fe4..a715f6b07ce 100644
--- a/gcc/config/pru/pru.c
+++ b/gcc/config/pru/pru.c
@@ -556,37 +556,6 @@ pru_hard_regno_scratch_ok (unsigned int regno)
 }
 
 
-/* Implement TARGET_HARD_REGNO_CALL_PART_CLOBBERED.  */
-
-static bool
-pru_hard_regno_call_part_clobbered (unsigned, unsigned regno,
-				    machine_mode mode)
-{
-  HARD_REG_SET caller_saved_set;
-  HARD_REG_SET callee_saved_set;
-
-  CLEAR_HARD_REG_SET (caller_saved_set);
-  CLEAR_HARD_REG_SET (callee_saved_set);
-
-  /* r0 and r1 are caller saved.  */
-  add_range_to_hard_reg_set (&caller_saved_set, 0, 2 * 4);
-
-  add_range_to_hard_reg_set (&caller_saved_set, FIRST_ARG_REGNUM,
-			     LAST_ARG_REGNUM + 1 - FIRST_ARG_REGNUM);
-
-  /* Treat SP as callee saved.  */
-  add_range_to_hard_reg_set (&callee_saved_set, STACK_POINTER_REGNUM, 4);
-
-  /* r3 to r13 are callee saved.  */
-  add_range_to_hard_reg_set (&callee_saved_set, FIRST_CALLEE_SAVED_REGNUM,
-			     LAST_CALEE_SAVED_REGNUM + 1
-			     - FIRST_CALLEE_SAVED_REGNUM);
-
-  return overlaps_hard_reg_set_p (caller_saved_set, mode, regno)
-	 && overlaps_hard_reg_set_p (callee_saved_set, mode, regno);
-}
-
-
 /* Worker function for `HARD_REGNO_RENAME_OK'.
    Return nonzero if register OLD_REG can be renamed to register NEW_REG.  */
 
@@ -2935,9 +2904,6 @@ pru_unwind_word_mode (void)
 
 #undef  TARGET_HARD_REGNO_SCRATCH_OK
 #define TARGET_HARD_REGNO_SCRATCH_OK pru_hard_regno_scratch_ok
-#undef  TARGET_HARD_REGNO_CALL_PART_CLOBBERED
-#define TARGET_HARD_REGNO_CALL_PART_CLOBBERED \
-  pru_hard_regno_call_part_clobbered
 
 #undef TARGET_FUNCTION_ARG
 #define TARGET_FUNCTION_ARG pru_function_arg
-- 
2.20.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 0/5] Updates for PRU backend
  2020-05-03 16:11 [PATCH v2 0/5] Updates for PRU backend Dimitar Dimitrov
                   ` (4 preceding siblings ...)
  2020-05-03 16:12 ` [PATCH v2 5/5] PRU: Remove TARGET_HARD_REGNO_CALL_PART_CLOBBERED Dimitar Dimitrov
@ 2020-05-05 16:00 ` Jeff Law
  2020-05-05 17:57   ` Dimitar Dimitrov
  5 siblings, 1 reply; 8+ messages in thread
From: Jeff Law @ 2020-05-05 16:00 UTC (permalink / raw)
  To: Dimitar Dimitrov, gcc-patches

On Sun, 2020-05-03 at 19:11 +0300, Dimitar Dimitrov wrote:
> One of the changes frees a previously fixed register, per
> ABI clarification from TI, for local usage from function.
> The change is backwards compatible.
> 
> Rest of changes are cleanups.
> 
> Testsuite did not reveal any regressions.
> 
> Dimitar Dimitrov (5):
>   PRU: Fix comment to avoid fall through warning
>   PRU: Simplify machine description
>   PRU: Fix R3.w0 register class
>   testsuite: pru: Add clobber test
>   PRU: Remove TARGET_HARD_REGNO_CALL_PART_CLOBBERED
These are all OK for the trunk.  Your call if you want to backport any of these
changes.

jeff
> 


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 0/5] Updates for PRU backend
  2020-05-05 16:00 ` [PATCH v2 0/5] Updates for PRU backend Jeff Law
@ 2020-05-05 17:57   ` Dimitar Dimitrov
  0 siblings, 0 replies; 8+ messages in thread
From: Dimitar Dimitrov @ 2020-05-05 17:57 UTC (permalink / raw)
  To: law; +Cc: gcc-patches

On вторник, 5 май 2020 г. 19:00:29 EEST Jeff Law wrote:
> On Sun, 2020-05-03 at 19:11 +0300, Dimitar Dimitrov wrote:
> > One of the changes frees a previously fixed register, per
> > ABI clarification from TI, for local usage from function.
> > The change is backwards compatible.
> > 
> > Rest of changes are cleanups.
> > 
> > Testsuite did not reveal any regressions.
> > 
> > Dimitar Dimitrov (5):
> >   PRU: Fix comment to avoid fall through warning
> >   PRU: Simplify machine description
> >   PRU: Fix R3.w0 register class
> >   testsuite: pru: Add clobber test
> >   PRU: Remove TARGET_HARD_REGNO_CALL_PART_CLOBBERED
> 
> These are all OK for the trunk.  Your call if you want to backport any of
> these changes.

Committed to master.

I don't think it's worth bothering the release team with those cleanups.

Thanks,
Dimitar




^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2020-05-05 17:57 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-03 16:11 [PATCH v2 0/5] Updates for PRU backend Dimitar Dimitrov
2020-05-03 16:12 ` [PATCH v2 1/5] PRU: Fix comment to avoid fall through warning Dimitar Dimitrov
2020-05-03 16:12 ` [PATCH v2 2/5] PRU: Simplify machine description Dimitar Dimitrov
2020-05-03 16:12 ` [PATCH v2 3/5] PRU: Fix R3.w0 register class Dimitar Dimitrov
2020-05-03 16:12 ` [PATCH v2 4/5] testsuite: pru: Add clobber test Dimitar Dimitrov
2020-05-03 16:12 ` [PATCH v2 5/5] PRU: Remove TARGET_HARD_REGNO_CALL_PART_CLOBBERED Dimitar Dimitrov
2020-05-05 16:00 ` [PATCH v2 0/5] Updates for PRU backend Jeff Law
2020-05-05 17:57   ` Dimitar Dimitrov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).