From cb59f689a37fc39178b9ac5fa595c63b3d7eddc0 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Fri, 9 Jun 2017 20:36:50 +0200 Subject: builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST, [...]): New. * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST, ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST, ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New. * builtins.def (abort, trap, unreachable): Declare cold. * calls.c (flags_from_decl_or_type): Lookup ECF_COLD. * tree-core.h (ECF_COLD): New. * tree.c (set_call_expr_flags): Handle ECF_COLD. (build_common_builtin_nodes): Mark unreachable and abort as cold. * class.c (build_vtbl_initializer): Mark dvirt_fn as cold. * decl.c (cxx_init_decl_processing, push_throw_library_fn): Likewise. (excpet.c): Mark terminate as cold. * gcc.dg/predict-14.c: Avoid cold function detection. * gcc.target/i386/umod-3.c: Likewise. From-SVN: r249070 --- gcc/calls.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gcc/calls.c') diff --git a/gcc/calls.c b/gcc/calls.c index 91a4466..8a23b50 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -821,6 +821,8 @@ flags_from_decl_or_type (const_tree exp) flags |= ECF_NOVOPS; if (lookup_attribute ("leaf", DECL_ATTRIBUTES (exp))) flags |= ECF_LEAF; + if (lookup_attribute ("cold", DECL_ATTRIBUTES (exp))) + flags |= ECF_COLD; if (TREE_NOTHROW (exp)) flags |= ECF_NOTHROW; -- cgit v1.1