https://gcc.gnu.org/g:7c51ab8bcf7707ef1f752a3fbd30f1f9edc9a2a3

commit 7c51ab8bcf7707ef1f752a3fbd30f1f9edc9a2a3
Author: Ondřej Machota <ondrejmach...@gmail.com>
Date:   Mon Apr 28 20:41:18 2025 +0200

    rtl-ssa-dce: prepare sbitmaps

Diff:
---
 gcc/dce.cc | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/gcc/dce.cc b/gcc/dce.cc
index e21f8bff8898..4f35875988cf 100644
--- a/gcc/dce.cc
+++ b/gcc/dce.cc
@@ -1511,6 +1511,7 @@ rtl_ssa_dce::mark_prelive_insn (insn_info *insn, 
auto_vec<set_info *> &worklist)
   if (dump_file)
     fprintf (dump_file, "Insn %d marked as prelive\n", insn->uid ());
 
+  mm_marked.set_bit(insn->uid());
   m_marked.emplace (insn);
   // debug instruction are not added to worklist not to wake up possibly dead
   // instructions
@@ -1561,6 +1562,7 @@ rtl_ssa_dce::mark ()
        continue;
 
       m_marked.emplace (insn);
+      mm_marked.set_bit(uid);
 
       use_array uses = insn->uses ();
       if (insn->is_phi ())
@@ -1571,6 +1573,7 @@ rtl_ssa_dce::mark ()
          if (m_marked_phis.count (pi) > 0)
            continue;
 
+    mm_marked_phis.set_bit(pi_uid);
          m_marked_phis.emplace (pi);
          uses = pi->inputs ();
        }
@@ -1742,7 +1745,8 @@ rtl_ssa_dce::propagate_dead_phis ()
          if (dump_file)
            fprintf (dump_file, "Debug insns %d depends on dead phi.\n",
                     insn->uid ());
-         marked.erase (insn);
+         m_marked.erase (insn);
+    mm_marked.clear_bit(insn->uid());
          // debug instructions dont have chains
          continue;
        }
@@ -1750,12 +1754,12 @@ rtl_ssa_dce::propagate_dead_phis ()
       // mark
       if (insn->is_phi ())
        {
-         gcc_assert (marked_phis.count (static_cast<phi_info *> (set)) == 0);
+         gcc_assert (m_marked_phis.count (static_cast<phi_info *> (set)) == 0);
          visited_dead_phis.emplace (static_cast<phi_info *> (set));
        }
       else
        {
-         gcc_assert (marked.count (insn) == 0);
+         gcc_assert (m_marked.count (insn) == 0);
          depends_on_dead_phi.emplace (insn);
        }

Reply via email to