about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorDaniel Micay <danielmicay@gmail.com>2013-10-20 23:13:48 -0400
committerDaniel Micay <danielmicay@gmail.com>2013-10-28 15:34:50 -0400
commit541e5f84d7ccbf02f8fdab6da0ff92f7ffbf0866 (patch)
tree322f1b094fe96327906dc66349d069c3d31cf745 /src/rustllvm/RustWrapper.cpp
parentd664ca26357fad84b4bc48f903f4795d491ccfd1 (diff)
downloadrust-541e5f84d7ccbf02f8fdab6da0ff92f7ffbf0866.tar.gz
rust-541e5f84d7ccbf02f8fdab6da0ff92f7ffbf0866.zip
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.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
-rw-r--r--src/rustllvm/RustWrapper.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp
index f8d56f4e892..0a148d334ab 100644
--- a/src/rustllvm/RustWrapper.cpp
+++ b/src/rustllvm/RustWrapper.cpp
@@ -365,6 +365,11 @@ extern "C" void LLVMRemoveReturnAttribute(LLVMValueRef Fn, LLVMAttribute PA) {
                       AttributeSet::get(A->getContext(), AttributeSet::ReturnIndex,  B));
 }
 
+extern "C" void LLVMAddColdAttribute(LLVMValueRef Fn) {
+  Function *A = unwrap<Function>(Fn);
+  A->addAttribute(AttributeSet::FunctionIndex, Attribute::Cold);
+}
+
 extern "C" LLVMValueRef LLVMBuildAtomicLoad(LLVMBuilderRef B,
                                             LLVMValueRef source,
                                             const char* Name,