rust/src/librustrt
bors bfcde309e7 auto merge of #15876 : brson/rust/failfat, r=pcwalton
Adds a new runtime unwinding function that encapsulates the printing of the words "explicit failure" when `fail!()` is called w/o arguments.

The before/after optimized assembly:



```
        leaq    "str\"str\"(1412)"(%rip), %rax
        movq    %rax, 24(%rsp)
        movq    $16, 32(%rsp)
        leaq    "str\"str\"(1413)"(%rip), %rax
        movq    %rax, 8(%rsp)
        movq    $19, 16(%rsp)
        leaq    24(%rsp), %rdi
        leaq    8(%rsp), %rsi
        movl    $11, %edx
        callq   _ZN6unwind12begin_unwind21h15836560661922107792E
```

```
        leaq    "str\"str\"(1369)"(%rip), %rax
        movq    %rax, 8(%rsp)
        movq    $19, 16(%rsp)
        leaq    8(%rsp), %rdi
        movl    $11, %esi
        callq   _ZN6unwind31begin_unwind_no_time_to_explain20hd1c720cdde6a116480dE@PLT
```

Before/after filesizes:

rwxrwxr-x 1 brian brian 21479503 Jul 20 22:09 stage2-old/lib/librustc-4e7c5e5c.so
rwxrwxr-x 1 brian brian 21475415 Jul 20 22:30 x86_64-unknown-linux-gnu/stage2/lib/librustc-4e7c5e5c.so

This is the lowest-hanging fruit in the fail-bloat wars. Further fixes are going to require harder tradeoffs.

r? @pcwalton
2014-07-22 10:46:16 +00:00
..
args.rs Stabilization for owned (now boxed) and cell 2014-07-13 12:52:51 -07:00
at_exit_imp.rs Stabilization for owned (now boxed) and cell 2014-07-13 12:52:51 -07:00
bookkeeping.rs std: Extract librustrt out of libstd 2014-06-06 22:19:41 -07:00
c_str.rs Rename functions in the CloneableVector trait 2014-07-17 16:35:48 +02:00
exclusive.rs std: Extract librustrt out of libstd 2014-06-06 22:19:41 -07:00
lib.rs Use fewer instructions for fail! 2014-07-21 13:50:12 -07:00
libunwind.rs Fix spelling errors. 2014-07-03 12:54:51 -07:00
local.rs Stabilization for owned (now boxed) and cell 2014-07-13 12:52:51 -07:00
local_data.rs librustc: Implement lifetime elision. 2014-07-19 13:10:58 -07:00
local_heap.rs librustc: Remove the fallback to int for integers and f64 for 2014-06-29 11:47:58 -07:00
local_ptr.rs Stabilization for owned (now boxed) and cell 2014-07-13 12:52:51 -07:00
macros.rs std: Extract librustrt out of libstd 2014-06-06 22:19:41 -07:00
mutex.rs Rename all raw pointers as necessary 2014-06-28 11:53:58 -07:00
rtio.rs librustc: Implement lifetime elision. 2014-07-19 13:10:58 -07:00
stack.rs Stabilization for owned (now boxed) and cell 2014-07-13 12:52:51 -07:00
task.rs Stabilization for owned (now boxed) and cell 2014-07-13 12:52:51 -07:00
thread.rs Stabilization for owned (now boxed) and cell 2014-07-13 12:52:51 -07:00
thread_local_storage.rs librustc: Remove the fallback to int for integers and f64 for 2014-06-29 11:47:58 -07:00
unwind.rs Use fewer instructions for fail! 2014-07-21 13:50:12 -07:00
util.rs ignore-lexer-test to broken files and remove some tray hyphens 2014-07-21 10:59:58 -07:00