about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorSimonas Kazlauskas <git@kazlauskas.me>2016-06-16 18:28:30 +0300
committerSimonas Kazlauskas <git@kazlauskas.me>2016-06-17 00:00:44 +0300
commit04d63ccf5ac2448ced4ca0d964afbcfe47a58dfe (patch)
treef5cf6d87236c1b21fc7aea45a231ca26221d0211 /src/rustllvm/RustWrapper.cpp
parenta479a6a7a6fa1bfe1f18d7d7411ad14e7b8ca17b (diff)
downloadrust-04d63ccf5ac2448ced4ca0d964afbcfe47a58dfe.tar.gz
rust-04d63ccf5ac2448ced4ca0d964afbcfe47a58dfe.zip
Cache drops for early scope exits
Previously we would rebuild all drops on every early exit from a scope, which for code like:

```rust
match x {
    a => return 1,
    b => return 2,
    ...
    z => return 27
}
```

would produce 27 exactly same chains of drops for each return, a O(n*m) explosion in drops.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions