about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-09-14 12:28:31 +0000
committerbors <bors@rust-lang.org>2017-09-14 12:28:31 +0000
commit5dfc84cfa72b405c194228b53c4de3f6474204ec (patch)
treec29605d0077883e3e5a81fed475f645cd043c93b /src/rustllvm/RustWrapper.cpp
parent2b6bc588ca7197bc5d9f212e9e91a2c3811d025c (diff)
parent0e8e6592f6650f975fc39bfcdef53ce474c1e7a9 (diff)
downloadrust-5dfc84cfa72b405c194228b53c4de3f6474204ec.tar.gz
rust-5dfc84cfa72b405c194228b53c4de3f6474204ec.zip
Auto merge of #44480 - Zoxc:gen-liveness, r=arielb1
Analyse storage liveness and preserve it during generator transformation

This uses a dataflow analysis on `StorageLive` and `StorageDead` statements to infer where the storage of locals are live. The result of this analysis is intersected with the regular liveness analysis such that a local is can only be live when its storage is. This fixes https://github.com/rust-lang/rust/issues/44184. If the storage of a local is live across a suspension point, we'll insert a `StorageLive` statement for it after the suspension point so storage liveness is preserved. This fixes https://github.com/rust-lang/rust/issues/44179.

r? @arielb1
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions