[gcc(refs/users/meissner/heads/work122)] Update ChangeLog.meissner
Michael Meissner
meissner@gcc.gnu.org
Fri Jun 9 21:06:34 GMT 2023
https://gcc.gnu.org/g:723cf62e83af1327dbf7131dba6afbeb338307ae
commit 723cf62e83af1327dbf7131dba6afbeb338307ae
Author: Michael Meissner <meissner@linux.ibm.com>
Date: Fri Jun 9 17:06:31 2023 -0400
Update ChangeLog.meissner
Diff:
---
gcc/ChangeLog.meissner | 27 +++++++++++++++++++++++++--
1 file changed, 25 insertions(+), 2 deletions(-)
diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index 3ba4840234b..6bee719341e 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -15,9 +15,28 @@ There are several problems with the current GCC:
SImode as the mode. You need to pass in DImode instead of SImode. This
is to allow lwz to be treated differently than lwa.
+ 3) The rules for automatically setting the prefixed attribute were not
+ checking that these fused load and compare immediate fusion operations
+ might have prefixed addresses.
+
+ 4) We should use lwa_operand for lwa instead of ds_form_mem_operand. The
+ lwa_operand has some additional checks for the lwa instruction.
+
The fix is to modify genfusion.pl that it sets the "YZ" constraint instead of
-"m" for the ld and lwa instructions. And to pass DImode to the
-address_is_non_pfx_d_or_x function for lwa.
+"m" for the ld and lwa instructions.
+
+This patch also passes DImode to the address_is_non_pfx_d_or_x function for the
+lwa instruction so that it properly cheks for DS form restrictions when
+splitting the insn because it won't fuse.
+
+This patch also modifies the prefixed attribute so that it checks load + compare
+immediate instructions for be a load instruction. This means that the
+lwa_cmpdi_cr0_SI_clobber_CC_none insn must ask for a DImode scratch register
+instead of SImode scratch register and also set the sign_extend attribute. The
+code for checking if a load is a lwa expects that the register is DImode, the
+memory is SImode, and the sign_extend attribute is set.
+
+I also added a test case for this condition.
2023-06-08 Michael Meissner <meissner@linux.ibm.com>
@@ -26,11 +45,15 @@ gcc/
* config/rs6000/genfusion.pl (gen_ld_cmpi_p10_one): Fix problems that
allowed prefixed lwa to be generated.
* config/rs6000/fusion.md: Regenerate.
+ * config/rs6000/rs6000.md (prefixed attribute): Add support for load
+ plus compare immediate fused insns.
gcc/testsuite/
* g++.target/powerpc/pr105325.C: New test.
+==================== Branch work122, patch #5 was reverted ====================
+
==================== Branch work122, patch #4 was reverted ====================
==================== Branch work122, patch #3 was reverted ====================
More information about the Gcc-cvs
mailing list