Hello All:

Common infrastructure using generic code for pair mem fusion of different
targets.

Implements additional interface virtual function implementation
required for rs6000 target.

Tested for aarch64-linux-gnu.

Thanks & Regards
Ajit

aarch64: Additional interface function implementation.

Common infrastructure using generic code for pair mem fusion of different
targets.

Implements additional interface virtual function implementation
required for rs6000 target.

2024-06-02  Ajit Kumar Agarwal  <aagar...@linux.ibm.com>

gcc/ChangeLog:

        * config/aarch64/aarch64-ldp-fusion.cc: Add target specific
        implementation of additional virtual functions added in pair_fusion
        struct.
---
 gcc/config/aarch64/aarch64-ldp-fusion.cc | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gcc/config/aarch64/aarch64-ldp-fusion.cc 
b/gcc/config/aarch64/aarch64-ldp-fusion.cc
index 0af927231d3..784cdc3937c 100644
--- a/gcc/config/aarch64/aarch64-ldp-fusion.cc
+++ b/gcc/config/aarch64/aarch64-ldp-fusion.cc
@@ -104,6 +104,29 @@ struct aarch64_pair_fusion : public pair_fusion
                                  bool load_p) override final;
 
   rtx destructure_pair (rtx regs[2], rtx pattern, bool load_p) override final;
+
+  bool should_handle_unordered_insns (rtl_ssa::insn_info *,
+                                     rtl_ssa::insn_info *) override final
+  {
+    return true;
+  }
+
+  bool fuseable_store_p (rtl_ssa::insn_info *,
+                        rtl_ssa::insn_info *) override final
+  {
+    return true;
+  }
+
+  bool fuseable_load_p (rtl_ssa::insn_info *) override final
+  {
+    return true;
+  }
+
+  void set_multiword_subreg (rtl_ssa::insn_info *, rtl_ssa::insn_info *,
+                            bool) override final
+  {
+    return;
+  }
 };
 
 bool
-- 
2.43.0

Reply via email to