about summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/ArchiveWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2021-01-25 19:03:37 +0000
committerbors <bors@rust-lang.org>2021-01-25 19:03:37 +0000
commitf4eb5d9f719cd3c849befc8914ad8ce0ddcf34ed (patch)
tree5c6ab6af9a459f06209a8c5f9fe5112f4b3204fd /compiler/rustc_llvm/llvm-wrapper/ArchiveWrapper.cpp
parent7fba12bb1d3877870758a7a53e2fe766bb19bd60 (diff)
parentd38553ca82b23c85be3dcf202a4ae03b584b17a8 (diff)
downloadrust-f4eb5d9f719cd3c849befc8914ad8ce0ddcf34ed.tar.gz
rust-f4eb5d9f719cd3c849befc8914ad8ce0ddcf34ed.zip
Auto merge of #68828 - oli-obk:inline_cycle, r=wesleywiser
Prevent query cycles in the MIR inliner

r? `@eddyb` `@wesleywiser`

cc `@rust-lang/wg-mir-opt`

The general design is that we have a new query that is run on the `validated_mir` instead of on the `optimized_mir`. That query is forced before going into the optimization pipeline, so as to not try to read from a stolen MIR.

The query should not be cached cross crate, as you should never call it for items from other crates. By its very design calls into other crates can never cause query cycles.

This is a pessimistic approach to inlining, since we strictly have more calls in the `validated_mir` than we have in `optimized_mir`, but that's not a problem imo.
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/ArchiveWrapper.cpp')
0 files changed, 0 insertions, 0 deletions