diff options
author | Marc Poulhiès <poulhies@adacore.com> | 2024-06-03 09:43:52 +0200 |
---|---|---|
committer | Marc Poulhiès <poulhies@adacore.com> | 2024-06-03 10:57:24 +0200 |
commit | 5316c35b13cf536bf85eca6eb4b557ddd5d8c201 (patch) | |
tree | a43446f04b6085959e994e9be3eff5a70a8ac943 | |
parent | 2a616df8260aeabe00a28ea3870dba5577dbbe66 (diff) | |
download | gcc-5316c35b13cf536bf85eca6eb4b557ddd5d8c201.zip gcc-5316c35b13cf536bf85eca6eb4b557ddd5d8c201.tar.gz gcc-5316c35b13cf536bf85eca6eb4b557ddd5d8c201.tar.bz2 |
pair-fusion: fix for older GCC
Older GCCs fail with:
.../gcc/pair-fusion.cc: In member function ‘bool pair_fusion_bb_info::fuse_pair(bool, unsigned int, int, rtl_ssa::insn_info*, rtl_ssa::in
sn_info*, base_cand&, const rtl_ssa::insn_range_info&)’:
.../gcc/pair-fusion.cc:1790:40: error: ‘writeback’ is not a class, namespace, or enumeration
if (m_pass->should_handle_writeback (writeback::ALL)
Renaming the enum type works around the name conflict with the local
variable and also prevents future similar conflicts.
gcc/ChangeLog:
* pair-fusion.h (enum class writeback): Rename to...
(enum class writeback_type): ...this.
(struct pair_fusion): Adjust type name after renaming.
* pair-fusion.cc (pair_fusion_bb_info::track_access): Likewise.
(pair_fusion_bb_info::fuse_pair): Likewise.
(pair_fusion::process_block): Likewise.
-rw-r--r-- | gcc/pair-fusion.cc | 6 | ||||
-rw-r--r-- | gcc/pair-fusion.h | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/gcc/pair-fusion.cc b/gcc/pair-fusion.cc index 9f897ac..26b2284 100644 --- a/gcc/pair-fusion.cc +++ b/gcc/pair-fusion.cc @@ -426,7 +426,7 @@ pair_fusion_bb_info::track_access (insn_info *insn, bool load_p, rtx mem) return; // Ignore writeback accesses if the hook says to do so. - if (!m_pass->should_handle_writeback (writeback::EXISTING) + if (!m_pass->should_handle_writeback (writeback_type::EXISTING) && GET_RTX_CLASS (GET_CODE (XEXP (mem, 0))) == RTX_AUTOINC) return; @@ -1787,7 +1787,7 @@ pair_fusion_bb_info::fuse_pair (bool load_p, // update of the base register and try and fold it in to make this into a // writeback pair. insn_info *trailing_add = nullptr; - if (m_pass->should_handle_writeback (writeback::ALL) + if (m_pass->should_handle_writeback (writeback_type::ALL) && !writeback_effect && (!load_p || (!refers_to_regno_p (base_regno, base_regno + 1, XEXP (pats[0], 0), nullptr) @@ -2996,7 +2996,7 @@ void pair_fusion::process_block (bb_info *bb) rtx pat = PATTERN (rti); bool load_p; if (reload_completed - && should_handle_writeback (writeback::ALL) + && should_handle_writeback (writeback_type::ALL) && pair_mem_insn_p (rti, load_p)) try_promote_writeback (insn, load_p); diff --git a/gcc/pair-fusion.h b/gcc/pair-fusion.h index 2a38dc8..45e4edc 100644 --- a/gcc/pair-fusion.h +++ b/gcc/pair-fusion.h @@ -75,7 +75,7 @@ struct alias_walker; // When querying should_handle_writeback, this enum is used to // qualify which opportunities we are asking about. -enum class writeback { +enum class writeback_type { // Only those writeback opportunities that arise from existing // auto-increment accesses. EXISTING, @@ -123,7 +123,7 @@ struct pair_fusion { // Return true if we should try to handle writeback opportunities. // WHICH determines the kinds of writeback opportunities the caller // is asking about. - virtual bool should_handle_writeback (enum writeback which) = 0; + virtual bool should_handle_writeback (writeback_type which) = 0; // Given BASE_MEM, the mem from the lower candidate access for a pair, // and LOAD_P (true if the access is a load), check if we should proceed |