Revert workaround allowing interposition on nested functions

Jan Hubicka hubicka@kam.mff.cuni.cz
Mon Nov 8 18:02:02 GMT 2021


Hi,
the workaround seems to be no longer necessary - it seems that all the
issues was isolated to wrong beaviour of can_be_interposed wrt
partitioned functions.

Honza

	* gimple.c (gimple_call_static_chain_flags): Revert the workaround
	allowing interposition since issues with binds_to_local_def were
	hopefully solved.
diff --git a/gcc/gimple.c b/gcc/gimple.c
index 3d1d3a15b2c..9e65fa61c73 100644
--- a/gcc/gimple.c
+++ b/gcc/gimple.c
@@ -1645,13 +1645,13 @@ gimple_call_static_chain_flags (const gcall *stmt)
       modref_summary *summary = node ? get_modref_function_summary (node)
 				: NULL;
 
+      /* Nested functions should always bind to current def since
+	 there is no public ABI for them.  */
+      gcc_checking_assert (node->binds_to_current_def_p ());
       if (summary)
 	{
 	  int modref_flags = summary->static_chain_flags;
 
-	  /* ??? Nested functions should always bind to current def.  */
-	  if (!node->binds_to_current_def_p ())
-	    modref_flags = interposable_eaf_flags (modref_flags, flags);
 	  if (dbg_cnt (ipa_mod_ref_pta))
 	    flags |= modref_flags;
 	}


More information about the Gcc-patches mailing list