rust/src/librustc_trans
bors 1cf592fa40 Auto merge of #36551 - eddyb:meta-games, r=nikomatsakis
Refactor away RBML from rustc_metadata.

RBML and `ty{en,de}code` have had their long-overdue purge. Summary of changes:
* Metadata is now a tree encoded in post-order and with relative backward references pointing to children nodes. With auto-deriving and type safety, this makes maintenance and adding new information to metadata painless and bug-free by default. It's also more compact and cache-friendly (cache misses should be proportional to the depth of the node being accessed, not the number of siblings as in EBML/RBML).
* Metadata sizes have been reduced, for `libcore` it went down 16% (`8.38MB` -> `7.05MB`) and for `libstd` 14% (`3.53MB` -> `3.03MB`), while encoding more or less the same information
* Specialization is used in the bundled `libserialize` (crates.io `rustc_serialize` remains unaffected) to customize the encoding (and more importantly, decoding) of various types, most notably those interned in the `TyCtxt`. Some of this abuses a soundness hole pending a fix (cc @aturon), but when that fix arrives, we'll move to macros 1.1 `#[derive]` and custom `TyCtxt`-aware serialization traits.
* Enumerating children of modules from other crates is now orthogonal to describing those items via `Def` - this is a step towards bridging crate-local HIR and cross-crate metadata
* `CrateNum` has been moved to `rustc` and both it and `NodeId` are now newtypes instead of `u32` aliases, for specializing their decoding. This is `[syntax-breaking]` (cc @Manishearth ).

cc @rust-lang/compiler
2016-09-21 19:17:24 -07:00
..
back rustc_trans: simplify vtable and symbol handling. 2016-09-20 20:30:52 +03:00
debuginfo Refactor TyStruct/TyEnum/TyUnion into TyAdt 2016-09-08 22:17:53 +03:00
mir Auto merge of #36551 - eddyb:meta-games, r=nikomatsakis 2016-09-21 19:17:24 -07:00
abi.rs Add s390x support 2016-09-09 22:28:19 +01:00
adt.rs Auto merge of #36551 - eddyb:meta-games, r=nikomatsakis 2016-09-21 19:17:24 -07:00
asm.rs rustc_trans: remove the bulk of old trans and most of its support code. 2016-08-24 13:23:37 +03:00
assert_module_sources.rs Refactor away AttrMetaMethods. 2016-08-25 20:41:40 +00:00
attributes.rs finish type-auditing rustllvm 2016-08-03 15:08:47 +03:00
base.rs Auto merge of #36551 - eddyb:meta-games, r=nikomatsakis 2016-09-21 19:17:24 -07:00
basic_block.rs
build.rs split the FFI part of rustc_llvm to rustc_llvm::ffi 2016-08-03 15:08:47 +03:00
builder.rs finish type-auditing rustllvm 2016-08-03 15:08:47 +03:00
cabi_aarch64.rs
cabi_arm.rs
cabi_asmjs.rs
cabi_mips64.rs cabi: change some more 32s to 64s 2016-08-28 21:35:54 -05:00
cabi_mips.rs
cabi_powerpc64.rs
cabi_powerpc.rs add mips64-gnu and mips64el-gnu targets 2016-08-26 17:17:03 -05:00
cabi_s390x.rs Add s390x support 2016-09-09 22:28:19 +01:00
cabi_x86_64.rs Replace _, _ with .. 2016-09-04 12:30:33 +03:00
cabi_x86_win64.rs
cabi_x86.rs
callee.rs rustc_trans: simplify vtable and symbol handling. 2016-09-20 20:30:52 +03:00
Cargo.toml
cleanup.rs rustc_trans: remove the bulk of old trans and most of its support code. 2016-08-24 13:23:37 +03:00
closure.rs rustc_trans: simplify vtable and symbol handling. 2016-09-20 20:30:52 +03:00
collector.rs Auto merge of #36551 - eddyb:meta-games, r=nikomatsakis 2016-09-21 19:17:24 -07:00
common.rs rustc_trans: simplify vtable and symbol handling. 2016-09-20 20:30:52 +03:00
consts.rs Fix incorrect LLVM Linkage enum 2016-09-04 16:12:01 -05:00
context.rs Refactor TyStruct/TyEnum/TyUnion into TyAdt 2016-09-08 22:17:53 +03:00
declare.rs Fix incorrect LLVM Linkage enum 2016-09-04 16:12:01 -05:00
diagnostics.rs Small error code explanations improvements 2016-08-26 17:28:47 +02:00
disr.rs
glue.rs rustc_trans: don't do on-demand drop glue instantiation. 2016-09-20 20:30:55 +03:00
intrinsic.rs Rollup merge of #36459 - nikomatsakis:issue-35546, r=eddyb 2016-09-15 18:16:21 +05:30
lib.rs rustc_metadata: go only through rustc_serialize in astencode. 2016-09-20 20:07:54 +03:00
machine.rs
macros.rs
meth.rs rustc_trans: simplify vtable and symbol handling. 2016-09-20 20:30:52 +03:00
monomorphize.rs cache projections in trans 2016-08-31 17:47:33 -04:00
partitioning.rs trans: Allow base::internalize_symbols() to internalize #[no_mangle] symbols 2016-09-15 20:39:58 -04:00
README.txt
symbol_map.rs
symbol_names_test.rs Refactor away AttrMetaMethods. 2016-08-25 20:41:40 +00:00
trans_item.rs trans: Allow base::internalize_symbols() to internalize #[no_mangle] symbols 2016-09-15 20:39:58 -04:00
tvec.rs Fix optimization regressions for operations on [x; n]-initialized arrays. 2016-09-01 00:27:03 +03:00
type_.rs finish type-auditing rustllvm 2016-08-03 15:08:47 +03:00
type_of.rs rustc_metadata: go only through rustc_serialize in astencode. 2016-09-20 20:07:54 +03:00
value.rs begin auditing the C++ types in RustWrapper 2016-08-03 15:08:47 +03:00

See the README.md in ../librustc.