tree: Add 3+ argument fndecl_built_in_p
On Wed, Feb 22, 2023 at 09:52:06AM +0000, Richard Biener wrote: > > The following testcase ICEs because we still have some spots that > > treat BUILT_IN_UNREACHABLE specially but not BUILT_IN_UNREACHABLE_TRAP > > the same. This patch uses (fndecl_built_in_p (node, BUILT_IN_UNREACHABLE) || fndecl_built_in_p (node, BUILT_IN_UNREACHABLE_TRAP)) a lot and from grepping around, we do something like that in lots of other places, or in some spots instead as (fndecl_built_in_p (node, BUILT_IN_NORMAL) && (DECL_FUNCTION_CODE (node) == BUILT_IN_WHATEVER1 || DECL_FUNCTION_CODE (node) == BUILT_IN_WHATEVER2)) The following patch adds an overload for this case, so we can write it in a shorter way, using C++11 argument packs so that it supports as many codes as one needs. 2023-04-20 Jakub Jelinek <jakub@redhat.com> Jonathan Wakely <jwakely@redhat.com> * tree.h (built_in_function_equal_p): New helper function. (fndecl_built_in_p): Turn into variadic template to support 1 or more built_in_function arguments. * builtins.cc (fold_builtin_expect): Use 3 argument fndecl_built_in_p. * gimplify.cc (goa_stabilize_expr): Likewise. * cgraphclones.cc (cgraph_node::create_clone): Likewise. * ipa-fnsummary.cc (compute_fn_summary): Likewise. * omp-low.cc (setjmp_or_longjmp_p): Likewise. * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee, cgraph_update_edges_for_call_stmt_node, cgraph_edge::verify_corresponds_to_fndecl, cgraph_node::verify_node): Likewise. * tree-stdarg.cc (optimize_va_list_gpr_fpr_size): Likewise. * gimple-ssa-warn-access.cc (matching_alloc_calls_p): Likewise. * ipa-prop.cc (try_make_edge_direct_virtual_call): Likewise.
Showing
- gcc/builtins.cc 2 additions, 2 deletionsgcc/builtins.cc
- gcc/cgraph.cc 8 additions, 11 deletionsgcc/cgraph.cc
- gcc/cgraphclones.cc 2 additions, 3 deletionsgcc/cgraphclones.cc
- gcc/gimple-ssa-warn-access.cc 3 additions, 4 deletionsgcc/gimple-ssa-warn-access.cc
- gcc/gimplify.cc 2 additions, 2 deletionsgcc/gimplify.cc
- gcc/ipa-fnsummary.cc 2 additions, 2 deletionsgcc/ipa-fnsummary.cc
- gcc/ipa-prop.cc 2 additions, 2 deletionsgcc/ipa-prop.cc
- gcc/omp-low.cc 1 addition, 2 deletionsgcc/omp-low.cc
- gcc/tree-stdarg.cc 2 additions, 2 deletionsgcc/tree-stdarg.cc
- gcc/tree.h 24 additions, 3 deletionsgcc/tree.h
Loading
Please register or sign in to comment