]> git.lizzy.rs Git - rust.git/commit
Auto merge of #33171 - michaelwoerister:collector-drop-glue, r=nikomatsakis
authorbors <bors@rust-lang.org>
Thu, 28 Apr 2016 21:37:30 +0000 (14:37 -0700)
committerbors <bors@rust-lang.org>
Thu, 28 Apr 2016 21:37:30 +0000 (14:37 -0700)
commit8da2bcac5db1e091b90cceb19d0496f0f7501c88
tree3e7117b1cd94427c3f766a59f3885970b6fd32e8
parent115c6c810caf8cedf04297804b1316e7b4e092d7
parent0fc9f9a20080753426772eac77d4d135ccd01ab7
Auto merge of #33171 - michaelwoerister:collector-drop-glue, r=nikomatsakis

Some preliminary work towards making trans "collector driven".

The `trans::collector` already collects all translation items and `trans::partitioning` distributes these translation items into codegen units. The changes in this PR provide the following extensions to this functionality:

1. Drop-glue is handled more accurately now, knowing about the difference between `DropGlueKind::Ty` and `DropGlueKind::TyContents`.
2. The partitioning module now supports the `FixedUnitCount` strategy which more or less corresponds to the partitioning one gets via supplying `-Ccodegen-units` today.
3. The partitioning scheme also takes care of assigned LLVM declarations to codegen units, not just definitions (declarations for external items not yet implemented).

It's debatable whether declarations should be handled by the partitioning scheme or whether they should just be emitted on demand.