about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2017-09-13 13:22:20 -0700
committerAlex Crichton <alex@alexcrichton.com>2017-09-17 09:41:43 -0700
commitafb85cfd33a6ef52edf8707aea12d952a64bb84c (patch)
tree4920b67d68c965a7ad02ea688f44ab19c94fac13 /src/rustllvm/RustWrapper.cpp
parent8821affd1523a719ffb9f6537d53f8725ab00592 (diff)
downloadrust-afb85cfd33a6ef52edf8707aea12d952a64bb84c.tar.gz
rust-afb85cfd33a6ef52edf8707aea12d952a64bb84c.zip
rustc: Mostly remove `ExportedSymbols`
This is a big map that ends up inside of a `CrateContext` during translation for
all codegen units. This means that any change to the map may end up causing an
incremental recompilation of a codegen unit! In order to reduce the amount of
dependencies here between codegen units and the actual input crate this commit
refactors dealing with exported symbols and such into various queries.

The new queries are largely based on existing queries with filled out
implementations for the local crate in addition to external crates, but the main
idea is that while translating codegen untis no unit needs the entire set of
exported symbols, instead they only need queries about particulare `DefId`
instances every now and then.

The linking stage, however, still generates a full list of all exported symbols
from all crates, but that's going to always happen unconditionally anyway, so no
news there!
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions