This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Properly release VOP of inlined call stmt


On 02/17/14 06:42, Richard Biener wrote:

This makes us release the virtual SSA name associated with a call that
is inlined.  This removes some garbage that is otherwise kept live
duing early opts (and thus reduces whole-program footprint).

With this patch and the separately posted ipa-prop change I can
bootstrap & regtest with

Index: gcc/tree-ssa.c
===================================================================
--- gcc/tree-ssa.c      (revision 207783)
+++ gcc/tree-ssa.c      (working copy)
@@ -741,6 +741,16 @@ verify_def (basic_block bb, basic_block
        goto err;
      }

+  if (bb == NULL
+      /* ???  Too many latent cases in the main opt pipeline.  But it's
+         worth to fix all cases before inlining as that reduces the
+        amount of garbage kept live.  */
+      && !cfun->after_inlining)
+    {
+      error ("removed STMT failed to release SSA name");
+      goto err;
+    }
+
    if (definition_block[SSA_NAME_VERSION (ssa_name)])
      {
        error ("SSA_NAME created in two different blocks %i and %i",

applied.

Bootstrapped and tested (with the above applied) on
x86_64-unknown-linux-gnu.  Ok?

Thanks,
Richard.

2014-02-17  Richard Biener  <rguenther@suse.de>

	* tree-inline.c (expand_call_inline): Release the virtual
	operand defined by the call we are about to inline.
OK.

ISTM that we ought to define stage4 as explicitly including this kind of stuff in addition to regression fixing. Not sure exactly what wording we'd want to use though.

If you wanted to really go nuts, install a mark hook on for the RTL GGC routines that flags when a deleted insn is still reachable ;-) It's obviously not OK for the tree, but good for finding leaking deleted insns.

Jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]