rust/src/librustc/middle/trans
Brian Anderson 4db68e644e Modify failure lang items to take less pointers.
Divide-by-zero before:

```
        leaq    "str\"str\"(1762)"(%rip), %rax
        movq    %rax, 16(%rsp)
        movq    $27, 24(%rsp)
        leaq    "str\"str\"(1542)"(%rip), %rax
        movq    %rax, (%rsp)
        movq    $19, 8(%rsp)
        leaq    16(%rsp), %rdi
        leaq    (%rsp), %rsi
        movl    $32, %edx
        callq   _ZN7failure5fail_20hc04408f955ce60aaqWjE@PLT
```

After:

```
        leaq    .Lconst(%rip), %rdi
        callq   _ZN7failure5fail_20haf918a97c8f7f2bfqWjE@PLT
```

Bounds check before:

```
        leaq    "str\"str\"(1542)"(%rip), %rax
        movq    %rax, 8(%rsp)
        movq    $19, 16(%rsp)
        leaq    8(%rsp), %rdi
        movl    $38, %esi
        movl    $1, %edx
        movl    $1, %ecx
        callq   _ZN7failure17fail_bounds_check20hf4bc3c69e96caf41RXjE@PLT
```

Bounds check after:

```
        leaq    .Lconst2(%rip), %rdi
        movl    $1, %esi
        movl    $1, %edx
        callq   _ZN7failure17fail_bounds_check20h5267276a537a7de22XjE@PLT
```

Size before:

21277995 librustc-4e7c5e5c.s

```
text       data
12554881   6089335
```

Size after:

21247617 librustc-4e7c5e5c.so

```
text       data
12518497   6095748
```
2014-07-31 07:30:17 -07:00
..
_match.rs librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
adt.rs Add Drop support for enums 2014-07-22 23:45:49 +02:00
asm.rs rustc_llvm: Remove the inner llvm module 2014-07-14 12:27:08 -07:00
base.rs avoid redundant translation of items during monomorphization 2014-07-30 12:07:26 -07:00
basic_block.rs librustc: Implement lifetime elision. 2014-07-19 13:10:58 -07:00
build.rs librustc: Use builder for llvm attributes. 2014-07-25 16:06:44 -07:00
builder.rs librustc: Use builder for llvm attributes. 2014-07-25 16:06:44 -07:00
cabi_arm.rs rustc_llvm: Remove the inner llvm module 2014-07-14 12:27:08 -07:00
cabi_mips.rs rustc_llvm: Remove the inner llvm module 2014-07-14 12:27:08 -07:00
cabi_x86_64.rs rustc_llvm: Remove the inner llvm module 2014-07-14 12:27:08 -07:00
cabi_x86.rs rustc_llvm: Remove the inner llvm module 2014-07-14 12:27:08 -07:00
cabi.rs rustc_llvm: Remove the inner llvm module 2014-07-14 12:27:08 -07:00
callee.rs avoid redundant translation of items during monomorphization 2014-07-30 12:07:26 -07:00
cleanup.rs Emit lifetime end markers in unwinding codepaths 2014-07-25 14:31:05 +02:00
closure.rs avoid redundant translation of items during monomorphization 2014-07-30 12:07:26 -07:00
common.rs avoid redundant translation of items during monomorphization 2014-07-30 12:07:26 -07:00
consts.rs Modify failure lang items to take less pointers. 2014-07-31 07:30:17 -07:00
context.rs Emit LLVM lifetime intrinsics to improve stack usage and codegen in general 2014-07-22 09:17:41 +02:00
controlflow.rs Modify failure lang items to take less pointers. 2014-07-31 07:30:17 -07:00
datum.rs Improve usage of lifetime intrinsics in match expressions 2014-07-23 17:39:13 +02:00
debuginfo.rs librustc: Stop desugaring for expressions and translate them directly. 2014-07-24 18:58:12 -07:00
doc.rs librustc: Remove ~EXPR, ~TYPE, and ~PAT from the language, except 2014-05-06 23:12:54 -07:00
expr.rs librustc: Use builder for llvm attributes. 2014-07-25 16:06:44 -07:00
foreign.rs avoid redundant translation of items during monomorphization 2014-07-30 12:07:26 -07:00
glue.rs avoid redundant translation of items during monomorphization 2014-07-30 12:07:26 -07:00
inline.rs avoid redundant translation of items during monomorphization 2014-07-30 12:07:26 -07:00
intrinsic.rs librustc: Use builder for llvm attributes. 2014-07-25 16:06:44 -07:00
llrepr.rs rustc_llvm: Remove the inner llvm module 2014-07-14 12:27:08 -07:00
machine.rs rustc_llvm: Remove the inner llvm module 2014-07-14 12:27:08 -07:00
macros.rs
meth.rs avoid redundant translation of items during monomorphization 2014-07-30 12:07:26 -07:00
mod.rs
monomorphize.rs avoid redundant translation of items during monomorphization 2014-07-30 12:07:26 -07:00
reflect.rs avoid redundant translation of items during monomorphization 2014-07-30 12:07:26 -07:00
tvec.rs Emit LLVM lifetime intrinsics to improve stack usage and codegen in general 2014-07-22 09:17:41 +02:00
type_.rs Add string::raw::from_buf 2014-07-24 07:25:43 -07:00
type_of.rs librustc: Implement unboxed closures with mutable receivers 2014-07-18 09:01:37 -07:00
value.rs rustc_llvm: Remove the inner llvm module 2014-07-14 12:27:08 -07:00