Hi!
On 2018-12-12T11:52:23+, Andrew Stubbs wrote:
> This patch contains the machine description portion of the GCN back-end.
> [...]
> --- /dev/null
> +++ b/gcc/config/gcn/gcn.md
> +;; {{{ Constants and enums
> +
> +; Named registers
> +(define_constants
> + [(FIRST_SGPR_REG0)
> + (LAST_SGPR_REG 101)
> + (FLAT_SCRATCH_REG 102)
> + (FLAT_SCRATCH_LO_REG 102)
> + (FLAT_SCRATCH_HI_REG 103)
> + (XNACK_MASK_REG104)
> + (XNACK_MASK_LO_REG 104)
> + (XNACK_MASK_HI_REG 105)
> + (VCC_REG 106)
> + (VCC_LO_REG106)
> + (VCC_HI_REG107)
> + (VCCZ_REG 108)
> + (TBA_REG 109)
> + (TBA_LO_REG109)
> + (TBA_HI_REG110)
> + (TMA_REG 111)
> + (TMA_LO_REG111)
> + (TMA_HI_REG112)
> + (TTMP0_REG 113)
> + (TTMP11_REG124)
> + (M0_REG125)
> + (EXEC_REG 126)
> + (EXEC_LO_REG 126)
> + (EXEC_HI_REG 127)
> + (EXECZ_REG 128)
> + (SCC_REG 129)
> + (FIRST_VGPR_REG160)
> + (LAST_VGPR_REG 415)])
> +
> +(define_constants
> + [(SP_REGNUM 16)
> + (LR_REGNUM 18)
> + (AP_REGNUM 416)
> + (FP_REGNUM 418)])
Generally, shouldn't there be a better way, that avoids duplication and
instead shares such definitions between 'gcn.h' and 'gcn.md'?
Until that's settled, OK to push the attached
"GCN: Remove 'FIRST_{SGPR,VGPR,AVGPR}_REG', 'LAST_{SGPR,VGPR,AVGPR}_REG' from
machine description"?
(I assume "still builds" is sufficient validation of this change.)
Grüße
Thomas
>From 6af4774b4574086f5d4925333406eab4fed7f9a5 Mon Sep 17 00:00:00 2001
From: Thomas Schwinge
Date: Wed, 31 Jan 2024 13:27:34 +0100
Subject: [PATCH] GCN: Remove 'FIRST_{SGPR,VGPR,AVGPR}_REG',
'LAST_{SGPR,VGPR,AVGPR}_REG' from machine description
They're not used there, and we avoid potentially out-of-sync definitions.
gcc/
* config/gcn/gcn.md (FIRST_SGPR_REG, LAST_SGPR_REG)
(FIRST_VGPR_REG, LAST_VGPR_REG, FIRST_AVGPR_REG, LAST_AVGPR_REG):
Don't 'define_constants'.
---
gcc/config/gcn/gcn.md | 10 ++
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/gcc/config/gcn/gcn.md b/gcc/config/gcn/gcn.md
index 1f3c692b7a67..b3235eeea1b6 100644
--- a/gcc/config/gcn/gcn.md
+++ b/gcc/config/gcn/gcn.md
@@ -23,9 +23,7 @@
; Named registers
(define_constants
- [(FIRST_SGPR_REG 0)
- (CC_SAVE_REG 22)
- (LAST_SGPR_REG 101)
+ [(CC_SAVE_REG 22)
(FLAT_SCRATCH_REG 102)
(FLAT_SCRATCH_LO_REG 102)
(FLAT_SCRATCH_HI_REG 103)
@@ -49,11 +47,7 @@
(EXEC_LO_REG 126)
(EXEC_HI_REG 127)
(EXECZ_REG 128)
- (SCC_REG 129)
- (FIRST_VGPR_REG 160)
- (LAST_VGPR_REG 415)
- (FIRST_AVGPR_REG 416)
- (LAST_AVGPR_REG 671)])
+ (SCC_REG 129)])
(define_constants
[(SP_REGNUM 16)
--
2.43.0