RFA: Switching LRA on for s390
Andreas Krebbel
krebbel@linux.vnet.ibm.com
Fri Jun 7 14:57:00 GMT 2013
On Fri, May 31, 2013 at 02:11:38PM -0400, Vladimir Makarov wrote:
> The following patch switches LRA on for s390. The patch introduces
> a new option -mlra to use LRA instead of reload. I did not document
> the option as I'd like to delete it for gcc4.9. By default, LRA will
> be used for s390 instead of reload for better testing LRA for s390.
>
> Changes in s390.md are because of define_splits for the last
> alternative *movmem_short, *clrmem_short, *cmpmem_short have guard
> TARGET_CPU_ZARCH.
>
> The patch was successfully bootstrapped and tested on s390x.
>
> Any comments?
> Is it ok to commit the patch into trunk?
>
> Thanks.
>
>
> 2013-05-31 Vladimir Makarov <vmakarov@redhat.com>
>
> * config/s390/s390.opt (mlra): New option.
> * config/s390/s390.c (s390_decompose_address): Check displacement
> for all registers for LRA.
> (s390_secondary_reload): Don't used secondary reloads for LRA.
> (s390_lra_p): New function.
> (TARGET_LRA_P): Define.
> * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
> of attribute cpu_facility to zarch for the last alternative.
> (*cmpmem_short): Ditto.
I've applied the attached patch. This helps me getting a little
further when bootstrapping with lra and --with-arch=zEC12.
2013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/s390/s390.md (cpu_facility): Add cpu_zarch.
("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
for last alternative in the cpu_facility attribute.
---
gcc/config/s390/s390.md | 13 ++++!!!!!!!!!
1 file changed, 4 insertions(+), 9 modifications(!)
Index: gcc/config/s390/s390.md
===================================================================
*** gcc/config/s390/s390.md.orig
--- gcc/config/s390/s390.md
***************
*** 277,283 ****
(define_attr "cpu" "g5,g6,z900,z990,z9_109,z9_ec,z10,z196,zEC12"
(const (symbol_ref "s390_tune_attr")))
! (define_attr "cpu_facility" "standard,ieee,zarch,longdisp,extimm,dfp,z10,z196,zEC12"
(const_string "standard"))
(define_attr "enabled" ""
--- 277,284 ----
(define_attr "cpu" "g5,g6,z900,z990,z9_109,z9_ec,z10,z196,zEC12"
(const (symbol_ref "s390_tune_attr")))
! (define_attr "cpu_facility"
! "standard,ieee,zarch,cpu_zarch,longdisp,extimm,dfp,z10,z196,zEC12"
(const_string "standard"))
(define_attr "enabled" ""
***************
*** 304,309 ****
--- 305,314 ----
(match_test "TARGET_DFP"))
(const_int 1)
+ (and (eq_attr "cpu_facility" "cpu_zarch")
+ (match_test "TARGET_CPU_ZARCH"))
+ (const_int 1)
+
(and (eq_attr "cpu_facility" "z10")
(match_test "TARGET_Z10"))
(const_int 1)
***************
*** 2690,2696 ****
"(GET_MODE (operands[2]) == Pmode || GET_MODE (operands[2]) == VOIDmode)"
"#"
[(set_attr "type" "cs")
! (set_attr "cpu_facility" "*,*,z10,zarch")])
(define_split
[(set (match_operand:BLK 0 "memory_operand" "")
--- 2695,2701 ----
"(GET_MODE (operands[2]) == Pmode || GET_MODE (operands[2]) == VOIDmode)"
"#"
[(set_attr "type" "cs")
! (set_attr "cpu_facility" "*,*,z10,cpu_zarch")])
(define_split
[(set (match_operand:BLK 0 "memory_operand" "")
***************
*** 2899,2905 ****
"(GET_MODE (operands[1]) == Pmode || GET_MODE (operands[1]) == VOIDmode)"
"#"
[(set_attr "type" "cs")
! (set_attr "cpu_facility" "*,*,z10,zarch")])
(define_split
[(set (match_operand:BLK 0 "memory_operand" "")
--- 2904,2910 ----
"(GET_MODE (operands[1]) == Pmode || GET_MODE (operands[1]) == VOIDmode)"
"#"
[(set_attr "type" "cs")
! (set_attr "cpu_facility" "*,*,z10,cpu_zarch")])
(define_split
[(set (match_operand:BLK 0 "memory_operand" "")
***************
*** 3075,3081 ****
"(GET_MODE (operands[2]) == Pmode || GET_MODE (operands[2]) == VOIDmode)"
"#"
[(set_attr "type" "cs")
! (set_attr "cpu_facility" "*,*,z10,zarch")])
(define_split
[(set (reg:CCU CC_REGNUM)
--- 3080,3086 ----
"(GET_MODE (operands[2]) == Pmode || GET_MODE (operands[2]) == VOIDmode)"
"#"
[(set_attr "type" "cs")
! (set_attr "cpu_facility" "*,*,z10,cpu_zarch")])
(define_split
[(set (reg:CCU CC_REGNUM)
More information about the Gcc-patches
mailing list