mirror of
https://github.com/gcc-mirror/gcc.git
synced 2026-05-06 14:59:39 +02:00
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.
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user