]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
middle-end/103851 - ensure SSA names are released during OMP lowering
authorChung-Lin Tang <cltang@codesourcery.com>
Fri, 17 Jun 2022 14:17:47 +0000 (22:17 +0800)
committerChung-Lin Tang <cltang@codesourcery.com>
Fri, 17 Jun 2022 14:17:47 +0000 (22:17 +0800)
This makes sure to release moved & remapped SSA names during OMP
outlining which happens before going into SSA but with SSA names
created by gimplification around.

2022-01-03  Richard Biener  <rguenther@suse.de>

PR middle-end/103851
* tree-cfg.c (move_sese_region_to_fn): Always release SSA names.

* g++.dg/gomp/pr103851.C: New testcase.

(cherry picked from commit 4911609fbe47d3e4d2765cd67031a7e0ee9f5af0)

gcc/tree-cfg.c

index 82ca96a746c3991144b361c2ed08b9e7e2b34dc4..63c03f120aa19791da9bb87d6b8d3390bb15dab3 100644 (file)
@@ -7914,18 +7914,14 @@ move_sese_region_to_fn (struct function *dest_cfun, basic_block entry_bb,
   if (eh_map)
     delete eh_map;
 
-  if (gimple_in_ssa_p (cfun))
-    {
-      /* We need to release ssa-names in a defined order, so first find them,
-        and then iterate in ascending version order.  */
-      bitmap release_names = BITMAP_ALLOC (NULL);
-      vars_map.traverse<void *, gather_ssa_name_hash_map_from> (release_names);
-      bitmap_iterator bi;
-      unsigned i;
-      EXECUTE_IF_SET_IN_BITMAP (release_names, 0, i, bi)
-       release_ssa_name (ssa_name (i));
-      BITMAP_FREE (release_names);
-    }
+  /* We need to release ssa-names in a defined order, so first find them,
+     and then iterate in ascending version order.  */
+  bitmap release_names = BITMAP_ALLOC (NULL);
+  vars_map.traverse<void *, gather_ssa_name_hash_map_from> (release_names);
+  bitmap_iterator bi;
+  EXECUTE_IF_SET_IN_BITMAP (release_names, 0, i, bi)
+    release_ssa_name (ssa_name (i));
+  BITMAP_FREE (release_names);
 
   /* Rewire the entry and exit blocks.  The successor to the entry
      block turns into the successor of DEST_FN's ENTRY_BLOCK_PTR in