This removes the CALL_CANNOT_INLINE_P tree flag. As discussed in the thread about the duplicate edge/gimple stmt flag.
Bootstrapped and tested on x86_64-unknown-linux-gnu. Richard. 2011-12-02 Richard Guenther <rguent...@suse.de> * tree.h (CALL_CANNOT_INLINE_P): Remove. * tree-mudflap.c (mf_xform_statements): Do not modify alloca calls. * builtins.c (expand_builtin_alloca): With -fmudflap do not expand alloca calls inline. * cfgexpand.c (expand_call_stmt): Do not set CALL_CANNOT_INLINE_P. * gimple.c (gimple_build_call_from_tree): Do not read CALL_CANNOT_INLINE_P. * gimplify.c (gimplify_call_expr): Do not copy CALL_CANNOT_INLINE_P. Index: gcc/tree.h =================================================================== *** gcc/tree.h (revision 181902) --- gcc/tree.h (working copy) *************** struct GTY(()) tree_common { *** 533,541 **** CASE_HIGH_SEEN in CASE_LABEL_EXPR - CALL_CANNOT_INLINE_P in - CALL_EXPR - ENUM_IS_SCOPED in ENUMERAL_TYPE --- 533,538 ---- *************** extern void omp_clause_range_check_faile *** 1245,1253 **** #define CASE_HIGH_SEEN(NODE) \ (CASE_LABEL_EXPR_CHECK (NODE)->base.static_flag) - /* Used to mark a CALL_EXPR as not suitable for inlining. */ - #define CALL_CANNOT_INLINE_P(NODE) (CALL_EXPR_CHECK (NODE)->base.static_flag) - /* Used to mark scoped enums. */ #define ENUM_IS_SCOPED(NODE) (ENUMERAL_TYPE_CHECK (NODE)->base.static_flag) --- 1242,1247 ---- Index: gcc/tree-mudflap.c =================================================================== *** gcc/tree-mudflap.c (revision 181902) --- gcc/tree-mudflap.c (working copy) *************** mf_xform_derefs_1 (gimple_stmt_iterator *** 929,935 **** } /* Transform 1) Memory references. - 2) BUILTIN_ALLOCA calls. */ static void mf_xform_statements (void) --- 929,934 ---- *************** mf_xform_statements (void) *** 970,985 **** } break; - case GIMPLE_CALL: - { - tree fndecl = gimple_call_fndecl (s); - if (fndecl && (DECL_FUNCTION_CODE (fndecl) == BUILT_IN_ALLOCA - || (DECL_FUNCTION_CODE (fndecl) - == BUILT_IN_ALLOCA_WITH_ALIGN))) - gimple_call_set_cannot_inline (s, true); - } - break; - default: ; } --- 969,974 ---- Index: gcc/builtins.c =================================================================== *** gcc/builtins.c (revision 181902) --- gcc/builtins.c (working copy) *************** expand_builtin_alloca (tree exp, bool ca *** 4523,4530 **** bool alloca_with_align = (DECL_FUNCTION_CODE (get_callee_fndecl (exp)) == BUILT_IN_ALLOCA_WITH_ALIGN); ! /* Emit normal call if marked not-inlineable. */ ! if (CALL_CANNOT_INLINE_P (exp)) return NULL_RTX; valid_arglist --- 4523,4530 ---- bool alloca_with_align = (DECL_FUNCTION_CODE (get_callee_fndecl (exp)) == BUILT_IN_ALLOCA_WITH_ALIGN); ! /* Emit normal call if we use mudflap. */ ! if (flag_mudflap) return NULL_RTX; valid_arglist Index: gcc/cfgexpand.c =================================================================== *** gcc/cfgexpand.c (revision 181902) --- gcc/cfgexpand.c (working copy) *************** expand_call_stmt (gimple stmt) *** 2050,2056 **** CALL_ALLOCA_FOR_VAR_P (exp) = gimple_call_alloca_for_var_p (stmt); else CALL_FROM_THUNK_P (exp) = gimple_call_from_thunk_p (stmt); - CALL_CANNOT_INLINE_P (exp) = gimple_call_cannot_inline_p (stmt); CALL_EXPR_VA_ARG_PACK (exp) = gimple_call_va_arg_pack_p (stmt); SET_EXPR_LOCATION (exp, gimple_location (stmt)); TREE_BLOCK (exp) = gimple_block (stmt); --- 2050,2055 ---- Index: gcc/gimple.c =================================================================== *** gcc/gimple.c (revision 181902) --- gcc/gimple.c (working copy) *************** gimple_build_call_from_tree (tree t) *** 370,376 **** /* Carry all the CALL_EXPR flags to the new GIMPLE_CALL. */ gimple_call_set_chain (call, CALL_EXPR_STATIC_CHAIN (t)); gimple_call_set_tail (call, CALL_EXPR_TAILCALL (t)); - gimple_call_set_cannot_inline (call, CALL_CANNOT_INLINE_P (t)); gimple_call_set_return_slot_opt (call, CALL_EXPR_RETURN_SLOT_OPT (t)); if (fndecl && DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_NORMAL --- 370,375 ---- Index: gcc/gimplify.c =================================================================== *** gcc/gimplify.c (revision 181902) --- gcc/gimplify.c (working copy) *************** gimplify_call_expr (tree *expr_p, gimple *** 2449,2455 **** CALL_EXPR_RETURN_SLOT_OPT (*expr_p) = CALL_EXPR_RETURN_SLOT_OPT (call); CALL_FROM_THUNK_P (*expr_p) = CALL_FROM_THUNK_P (call); - CALL_CANNOT_INLINE_P (*expr_p) = CALL_CANNOT_INLINE_P (call); SET_EXPR_LOCATION (*expr_p, EXPR_LOCATION (call)); TREE_BLOCK (*expr_p) = TREE_BLOCK (call); --- 2449,2454 ----