From 541e5f84d7ccbf02f8fdab6da0ff92f7ffbf0866 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Sun, 20 Oct 2013 23:13:48 -0400 Subject: add support for the `cold` function attribute This allows a function to marked as infrequently called, resulting in any branch calling it to be considered colder. --- src/libstd/rt/borrowck.rs | 1 + src/libstd/unstable/lang.rs | 2 ++ 2 files changed, 3 insertions(+) (limited to 'src/libstd') diff --git a/src/libstd/rt/borrowck.rs b/src/libstd/rt/borrowck.rs index 9d13e79464a..7fcd674009d 100644 --- a/src/libstd/rt/borrowck.rs +++ b/src/libstd/rt/borrowck.rs @@ -57,6 +57,7 @@ pub fn clear_task_borrow_list() { let _ = try_take_task_borrow_list(); } +#[cold] unsafe fn fail_borrowed(box: *mut raw::Box<()>, file: *c_char, line: size_t) -> ! { debug_borrow("fail_borrowed: ", box, 0, 0, file, line); diff --git a/src/libstd/unstable/lang.rs b/src/libstd/unstable/lang.rs index 6dfb319d592..89126bf9c9c 100644 --- a/src/libstd/unstable/lang.rs +++ b/src/libstd/unstable/lang.rs @@ -16,11 +16,13 @@ use libc::{c_char, size_t, uintptr_t}; use rt::task; use rt::borrowck; +#[cold] #[lang="fail_"] pub fn fail_(expr: *c_char, file: *c_char, line: size_t) -> ! { task::begin_unwind(expr, file, line); } +#[cold] #[lang="fail_bounds_check"] pub fn fail_bounds_check(file: *c_char, line: size_t, index: size_t, len: size_t) -> ! { let msg = format!("index out of bounds: the len is {} but the index is {}", -- cgit 1.4.1-3-g733a5