aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChung-Lin Tang <cltang@codesourcery.com>2022-06-17 22:17:47 +0800
committerChung-Lin Tang <cltang@codesourcery.com>2022-06-17 22:17:47 +0800
commitefeaf0714cc42f92817ba83a264c100311b9adb9 (patch)
treeafd12739f8be80ad36213ab79932a9cd3c8045af
parent167cc9de1f85aa6a0121292dc5b27b799490dd5b (diff)
downloadgcc-efeaf0714cc42f92817ba83a264c100311b9adb9.zip
gcc-efeaf0714cc42f92817ba83a264c100311b9adb9.tar.gz
gcc-efeaf0714cc42f92817ba83a264c100311b9adb9.tar.bz2
middle-end/103851 - ensure SSA names are released during OMP lowering
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)
-rw-r--r--gcc/tree-cfg.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 82ca96a..63c03f1 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -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