As discussed in the cover letter, the code removed in this patch is unnecessary,
references to global reg vars from inline asms do not work reliably, and so we
should simply require that inline asms use constraints to make such references
properly visible to the compiler.

Bootstrapped/regtested on powerpc64, will retest on ppc64le and x86 in stage 1.

        PR rtl-optimization/79985
        * df-scan.c (df_insn_refs_collect): Remove special case for
        global registers and asm statements.
---
 gcc/df-scan.c | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/gcc/df-scan.c b/gcc/df-scan.c
index 95e1e0df2d5..cbb08fc36ae 100644
--- a/gcc/df-scan.c
+++ b/gcc/df-scan.c
@@ -3207,17 +3207,6 @@ df_insn_refs_collect (struct df_collection_rec 
*collection_rec,
   if (CALL_P (insn_info->insn))
     df_get_call_refs (collection_rec, bb, insn_info, flags);
 
-  if (asm_noperands (PATTERN (insn_info->insn)) >= 0)
-    for (unsigned i = 0; i < FIRST_PSEUDO_REGISTER; i++)
-      if (global_regs[i])
-       {
-         /* As with calls, asm statements reference all global regs. */
-         df_ref_record (DF_REF_BASE, collection_rec, regno_reg_rtx[i],
-                        NULL, bb, insn_info, DF_REF_REG_USE, flags);
-         df_ref_record (DF_REF_BASE, collection_rec, regno_reg_rtx[i],
-                        NULL, bb, insn_info, DF_REF_REG_DEF, flags);
-       }
-
   /* Record other defs.  These should be mostly for DF_REF_REGULAR, so
      that a qsort on the defs is unnecessary in most cases.  */
   df_defs_record (collection_rec,
-- 
2.13.3

Reply via email to