]> git.lizzy.rs Git - rust.git/commit
Implement the translation item collector.
authorMichael Woerister <michaelwoerister@posteo.net>
Mon, 2 Nov 2015 13:46:39 +0000 (14:46 +0100)
committerMichael Woerister <michaelwoerister@posteo.net>
Tue, 26 Jan 2016 15:17:45 +0000 (10:17 -0500)
commit862911df9af8216edc94458df2084143aad7be5b
tree29eb0d0d8ee2062a1ffd69cdbcd2738df8b34764
parentb279c5b068517c034c6b1a8b1aa78a7271fa223b
Implement the translation item collector.

The purpose of the translation item collector is to find all monomorphic instances of functions, methods and statics that need to be translated into LLVM IR in order to compile the current crate.
So far these instances have been discovered lazily during the trans path. For incremental compilation we want to know the set of these instances in advance, and that is what the trans::collect module provides.
In the future, incremental and regular translation will be driven by the collector implemented here.
46 files changed:
configure
mk/tests.mk
src/compiletest/common.rs
src/compiletest/runtest.rs
src/librustc/front/map/definitions.rs
src/librustc/middle/cstore.rs
src/librustc/middle/ty/context.rs
src/librustc/middle/ty/maps.rs
src/librustc/mir/repr.rs
src/librustc/session/config.rs
src/librustc_metadata/astencode.rs
src/librustc_metadata/csearch.rs
src/librustc_metadata/decoder.rs
src/librustc_trans/trans/base.rs
src/librustc_trans/trans/collector.rs [new file with mode: 0644]
src/librustc_trans/trans/consts.rs
src/librustc_trans/trans/context.rs
src/librustc_trans/trans/expr.rs
src/librustc_trans/trans/glue.rs
src/librustc_trans/trans/meth.rs
src/librustc_trans/trans/mod.rs
src/test/auxiliary/cgu_export_trait_method.rs [new file with mode: 0644]
src/test/auxiliary/cgu_extern_closures.rs [new file with mode: 0644]
src/test/auxiliary/cgu_generic_function.rs [new file with mode: 0644]
src/test/codegen-units/cross-crate-closures.rs [new file with mode: 0644]
src/test/codegen-units/cross-crate-generic-functions.rs [new file with mode: 0644]
src/test/codegen-units/cross-crate-trait-method.rs [new file with mode: 0644]
src/test/codegen-units/function-as-argument.rs [new file with mode: 0644]
src/test/codegen-units/generic-drop-glue.rs [new file with mode: 0644]
src/test/codegen-units/generic-functions.rs [new file with mode: 0644]
src/test/codegen-units/generic-impl.rs [new file with mode: 0644]
src/test/codegen-units/impl-in-non-instantiated-generic.rs [new file with mode: 0644]
src/test/codegen-units/instantiation-through-vtable.rs [new file with mode: 0644]
src/test/codegen-units/items-within-generic-items.rs [new file with mode: 0644]
src/test/codegen-units/non-generic-closures.rs [new file with mode: 0644]
src/test/codegen-units/non-generic-drop-glue.rs [new file with mode: 0644]
src/test/codegen-units/non-generic-functions.rs [new file with mode: 0644]
src/test/codegen-units/overloaded-operators.rs [new file with mode: 0644]
src/test/codegen-units/statics-and-consts.rs [new file with mode: 0644]
src/test/codegen-units/trait-implementations.rs [new file with mode: 0644]
src/test/codegen-units/trait-method-as-argument.rs [new file with mode: 0644]
src/test/codegen-units/trait-method-default-impl.rs [new file with mode: 0644]
src/test/codegen-units/transitive-drop-glue.rs [new file with mode: 0644]
src/test/codegen-units/tuple-drop-glue.rs [new file with mode: 0644]
src/test/codegen-units/unsizing.rs [new file with mode: 0644]
src/test/codegen-units/unused-traits-and-generics.rs [new file with mode: 0644]