aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-im.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2020-05-27 10:25:56 +0200
committerJakub Jelinek <jakub@redhat.com>2020-05-27 10:25:56 +0200
commitbaff22c48bdee9cb644b7336bf6f20f799531507 (patch)
tree4f364b848f4423d8b072c1c08da38a0c0ef1e43b /gcc/tree-ssa-loop-im.c
parent79ea774f9a9d36d986152d93f9eae4a9ba36b37b (diff)
downloadgcc-baff22c48bdee9cb644b7336bf6f20f799531507.zip
gcc-baff22c48bdee9cb644b7336bf6f20f799531507.tar.gz
gcc-baff22c48bdee9cb644b7336bf6f20f799531507.tar.bz2
openmp: Fix up omp_declare_variant{s,_alt} htab handling
This patch fixes a GC ICE. During debugging, I've found that during gimplification we can actually call omp_resolve_declare_variant multiple times and it would create a new magic declare_variant_alt FUNCTION_DECL each time, which is undesirable, once we have such a decl, we should just use that. The other problem is that there was no cgraph node removal hook. As the omp_declare_variants htab is used just early during gimplification, we can just clear the whole htab, rather than trying to lookup and remove a particular entry. The other hash table is used later as well and that one uses just DECL_UID as hash, so in that case the patch removes the elt. 2020-05-27 Jakub Jelinek <jakub@redhat.com> PR middle-end/95315 * omp-general.c (omp_declare_variant_remove_hook): New function. (omp_resolve_declare_variant): Always return base if it is already declare_variant_alt magic decl itself. Register omp_declare_variant_remove_hook as cgraph node removal hook. * gcc.dg/gomp/pr95315.c: New test.
Diffstat (limited to 'gcc/tree-ssa-loop-im.c')
0 files changed, 0 insertions, 0 deletions