On 09/30/2015 12:46 PM, Jakub Jelinek wrote:
On Wed, Sep 30, 2015 at 11:44:38AM -0600, Jeff Law wrote:
+/* Move all SSA_NAMEs from FREE_SSA_NAMES_QUEUE to FREE_SSA_NAMES.
+
+   We do not, but should have a mode to verify the state of the SSA_NAMEs
+   lists.  In particular at this point every name must be in the IL,
+   on the free list or in the queue.  Anything else is an error.  */
+
+void
+flush_ssaname_freelist (void)
+{
+  while (!vec_safe_is_empty (FREE_SSANAMES_QUEUE (cfun)))
+    {
+      tree t = FREE_SSANAMES_QUEUE (cfun)->pop ();
+      vec_safe_push (FREE_SSANAMES (cfun), t);
+    }

Isn't it faster to just do:
   vec_safe_splice (FREE_SSANAMES (cfun), FREE_SSANAMES_QUEUE (cfun));
   vec_safe_truncate (FREE_SSANAMES_QUEUE (cfun));
or so?  I mean, rather than reallocating the vector perhaps many times
grow it just once to the exact size, and memcpy there the data.
Probably.

I'm pondering a bit of refactoring in there, I'll look at fixing this while I'm in there.

jeff

Reply via email to