diff options
| author | Daniel Micay <danielmicay@gmail.com> | 2013-02-14 14:48:15 -0500 |
|---|---|---|
| committer | Daniel Micay <danielmicay@gmail.com> | 2013-02-14 14:48:34 -0500 |
| commit | 762ce323c03275a3a9c233ef1788dc6f5e631ce4 (patch) | |
| tree | 429a5d45cbc462740106cd1063c88ba62956cfd1 /src | |
| parent | 36edd256397d250ce35204ba1a0954609c25a20a (diff) | |
stop applying noinline to glue code
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/middle/trans/base.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/librustc/middle/trans/base.rs b/src/librustc/middle/trans/base.rs index 9a82bb53e01..8d6d299c92f 100644 --- a/src/librustc/middle/trans/base.rs +++ b/src/librustc/middle/trans/base.rs @@ -382,6 +382,15 @@ pub fn get_tydesc(ccx: @crate_ctxt, t: ty::t) -> @mut tydesc_info { } } +pub fn set_optimize_for_size(f: ValueRef) { + unsafe { + llvm::LLVMAddFunctionAttr(f, + lib::llvm::OptimizeForSizeAttribute + as c_ulonglong, + 0u as c_ulonglong); + } +} + pub fn set_no_inline(f: ValueRef) { unsafe { llvm::LLVMAddFunctionAttr(f, @@ -440,7 +449,7 @@ pub fn set_custom_stack_growth_fn(f: ValueRef) { pub fn set_glue_inlining(f: ValueRef, t: ty::t) { if ty::type_is_structural(t) { - set_no_inline(f); + set_optimize_for_size(f); } else { set_always_inline(f); } } |
