aboutsummaryrefslogtreecommitdiff
path: root/include/ansidecl.h
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2007-03-06 19:57:27 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2007-03-06 18:57:27 +0000
commit52bf96d2f299e9e69db82b5d0ae7186ab949339b (patch)
tree6db0f16a08d3e0f5d8feea8a59bd2d27420fa52d /include/ansidecl.h
parent20f326d7103a4d9d821a54ad5fa030c8a9aa2478 (diff)
downloadgcc-52bf96d2f299e9e69db82b5d0ae7186ab949339b.zip
gcc-52bf96d2f299e9e69db82b5d0ae7186ab949339b.tar.gz
gcc-52bf96d2f299e9e69db82b5d0ae7186ab949339b.tar.bz2
errors.h (warning, [...]): Mark as cold.
* errors.h (warning, error, fatal, internal_error): Mark as cold. * predict.c (maybe_hot_bb): Cold functions are never hot; hot functions are hot. (probably_cold_bb_p): Cold functions are cold. (probably_never_executed_bb_p): Cold functions are cold. (tree_bb_level_predictions): Predict calls to cold functions as not taken. (compute_function_frequency): Check hot/cold attributes. * function.h (function_frequency): Update comments. * predict.def (PRED_COLD_FUNCTION): Predict cold function. * c-common.c (handle_hot_attribute, handle_cold_attribute): New. (c_common_att): Add cold and hot. * doc/extend.texi (hot,cold attributes): Document. * ansidecl.h (ATTRIBUTE_COLD, ATTRIBUTE_HOT): New. From-SVN: r122632
Diffstat (limited to 'include/ansidecl.h')
-rw-r--r--include/ansidecl.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/ansidecl.h b/include/ansidecl.h
index 16adc47..c19955a 100644
--- a/include/ansidecl.h
+++ b/include/ansidecl.h
@@ -367,6 +367,22 @@ So instead we use the macro below and test it against specific values. */
# define ATTRIBUTE_PACKED __attribute__ ((packed))
#endif
+/* Attribute `hot' and `cold' was valid as of gcc 4.3. */
+#ifndef ATTRIBUTE_COLD
+# if (GCC_VERSION >= 4003)
+# define ATTRIBUTE_COLD __attribute__ ((__cold__))
+# else
+# define ATTRIBUTE_COLD
+# endif /* GNUC >= 4.3 */
+#endif /* ATTRIBUTE_COLD */
+#ifndef ATTRIBUTE_HOT
+# if (GCC_VERSION >= 4003)
+# define ATTRIBUTE_HOT __attribute__ ((__hot__))
+# else
+# define ATTRIBUTE_HOT
+# endif /* GNUC >= 4.3 */
+#endif /* ATTRIBUTE_HOT */
+
/* We use __extension__ in some places to suppress -pedantic warnings
about GCC extensions. This feature didn't work properly before
gcc 2.8. */