diff options
author | Chung-Lin Tang <cltang@codesourcery.com> | 2022-06-17 22:17:47 +0800 |
---|---|---|
committer | Chung-Lin Tang <cltang@codesourcery.com> | 2022-06-17 22:17:47 +0800 |
commit | efeaf0714cc42f92817ba83a264c100311b9adb9 (patch) | |
tree | afd12739f8be80ad36213ab79932a9cd3c8045af | |
parent | 167cc9de1f85aa6a0121292dc5b27b799490dd5b (diff) | |
download | gcc-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.c | 20 |
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 |