aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraph.cc
diff options
context:
space:
mode:
authorArthur Cohen <arthur.cohen@embecosm.com>2023-02-20 11:24:38 +0100
committerArthur Cohen <arthur.cohen@embecosm.com>2023-02-20 11:24:38 +0100
commite23e7f14a51d93d87516c92efedc67f742a1213f (patch)
tree9487266062c200e1866e05e17b05036e838d6daf /gcc/cgraph.cc
parent3448f0fa239430156d7ebbcab6cf1abb6095b242 (diff)
parent24a3d7353f4194ca95b951718cf6d834d7bbb6af (diff)
downloadgcc-e23e7f14a51d93d87516c92efedc67f742a1213f.zip
gcc-e23e7f14a51d93d87516c92efedc67f742a1213f.tar.gz
gcc-e23e7f14a51d93d87516c92efedc67f742a1213f.tar.bz2
Merge remote-tracking branch 'upstream/tschwinge/merge-upstream'
Diffstat (limited to 'gcc/cgraph.cc')
-rw-r--r--gcc/cgraph.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/cgraph.cc b/gcc/cgraph.cc
index 06bc980..f352212 100644
--- a/gcc/cgraph.cc
+++ b/gcc/cgraph.cc
@@ -2764,6 +2764,9 @@ set_const_flag_1 (cgraph_node *node, bool set_const, bool looping,
if (!set_const || alias->get_availability () > AVAIL_INTERPOSABLE)
set_const_flag_1 (alias, set_const, looping, changed);
}
+ for (struct cgraph_node *n = node->simd_clones; n != NULL;
+ n = n->simdclone->next_clone)
+ set_const_flag_1 (n, set_const, looping, changed);
for (cgraph_edge *e = node->callers; e; e = e->next_caller)
if (e->caller->thunk
&& (!set_const || e->caller->get_availability () > AVAIL_INTERPOSABLE))
@@ -2876,6 +2879,9 @@ cgraph_node::set_pure_flag (bool pure, bool looping)
{
struct set_pure_flag_info info = {pure, looping, false};
call_for_symbol_thunks_and_aliases (set_pure_flag_1, &info, !pure, true);
+ for (struct cgraph_node *n = simd_clones; n != NULL;
+ n = n->simdclone->next_clone)
+ set_pure_flag_1 (n, &info);
return info.changed;
}
@@ -3248,11 +3254,11 @@ cgraph_edge::verify_corresponds_to_fndecl (tree decl)
node = node->ultimate_alias_target ();
/* Optimizers can redirect unreachable calls or calls triggering undefined
- behavior to __builtin_unreachable or __builtin_trap. */
+ behavior to __builtin_unreachable or __builtin_unreachable trap. */
if (fndecl_built_in_p (callee->decl, BUILT_IN_NORMAL)
&& (DECL_FUNCTION_CODE (callee->decl) == BUILT_IN_UNREACHABLE
- || DECL_FUNCTION_CODE (callee->decl) == BUILT_IN_TRAP))
+ || DECL_FUNCTION_CODE (callee->decl) == BUILT_IN_UNREACHABLE_TRAP))
return false;
if (callee->former_clone_of != node->decl