From 9e5f7d5631b8f4009ac1c693e585d4b7108d4275 Mon Sep 17 00:00:00 2001
From: mark <markm@cs.wisc.edu>
Date: Thu, 27 Aug 2020 22:58:48 -0500
Subject: [PATCH] mv compiler to compiler/

---
 Cargo.toml                                    |  3 +-
 {src => compiler}/rustc/Cargo.toml            |  6 +-
 .../rustc.rs => compiler/rustc/src/main.rs    |  0
 .../rustc_apfloat}/Cargo.toml                 |  4 --
 .../rustc_apfloat/src}/ieee.rs                |  0
 .../rustc_apfloat/src}/lib.rs                 |  0
 .../rustc_apfloat/src}/ppc.rs                 |  0
 .../rustc_apfloat}/tests/ieee.rs              |  0
 .../rustc_apfloat}/tests/ppc.rs               |  0
 .../rustc_arena}/Cargo.toml                   |  6 +-
 .../rustc_arena/src}/lib.rs                   |  0
 .../rustc_arena/src}/tests.rs                 |  0
 compiler/rustc_ast/Cargo.toml                 | 19 +++++++
 .../rustc_ast}/README.md                      |  0
 .../rustc_ast/src}/ast.rs                     |  0
 .../rustc_ast/src}/ast/tests.rs               |  0
 .../rustc_ast/src}/attr/mod.rs                |  0
 .../rustc_ast/src}/crate_disambiguator.rs     |  0
 .../rustc_ast/src}/entry.rs                   |  0
 .../rustc_ast/src}/expand/allocator.rs        |  0
 .../rustc_ast/src}/expand/mod.rs              |  0
 .../rustc_ast/src}/lib.rs                     |  0
 .../rustc_ast/src}/mut_visit.rs               |  0
 .../rustc_ast/src}/node_id.rs                 |  0
 .../rustc_ast/src}/ptr.rs                     |  0
 .../rustc_ast/src}/token.rs                   |  0
 .../rustc_ast/src}/tokenstream.rs             |  0
 .../rustc_ast/src}/util/classify.rs           |  0
 .../rustc_ast/src}/util/comments.rs           |  0
 .../rustc_ast/src}/util/comments/tests.rs     |  0
 .../rustc_ast/src}/util/lev_distance.rs       |  0
 .../rustc_ast/src}/util/lev_distance/tests.rs |  0
 .../rustc_ast/src}/util/literal.rs            |  0
 .../rustc_ast/src}/util/parser.rs             |  0
 .../rustc_ast/src}/visit.rs                   |  0
 compiler/rustc_ast_lowering/Cargo.toml        | 22 +++++++
 .../rustc_ast_lowering/src}/expr.rs           |  0
 .../rustc_ast_lowering/src}/item.rs           |  0
 .../rustc_ast_lowering/src}/lib.rs            |  0
 .../rustc_ast_lowering/src}/pat.rs            |  0
 .../rustc_ast_lowering/src}/path.rs           |  0
 compiler/rustc_ast_passes/Cargo.toml          | 18 ++++++
 .../rustc_ast_passes/src}/ast_validation.rs   |  0
 .../rustc_ast_passes/src}/feature_gate.rs     |  0
 .../rustc_ast_passes/src}/lib.rs              |  0
 .../rustc_ast_passes/src}/node_count.rs       |  0
 .../rustc_ast_passes/src}/show_span.rs        |  0
 compiler/rustc_ast_pretty/Cargo.toml          | 14 +++++
 .../rustc_ast_pretty/src}/helpers.rs          |  0
 .../rustc_ast_pretty/src}/lib.rs              |  0
 .../rustc_ast_pretty/src}/pp.rs               |  0
 .../rustc_ast_pretty/src}/pprust.rs           |  0
 .../rustc_ast_pretty/src}/pprust/tests.rs     |  0
 compiler/rustc_attr/Cargo.toml                | 21 +++++++
 .../rustc_attr/src}/builtin.rs                |  0
 .../rustc_attr/src}/lib.rs                    |  0
 compiler/rustc_builtin_macros/Cargo.toml      | 24 ++++++++
 .../rustc_builtin_macros/src}/asm.rs          |  0
 .../rustc_builtin_macros/src}/assert.rs       |  0
 .../rustc_builtin_macros/src}/cfg.rs          |  0
 .../src}/cfg_accessible.rs                    |  0
 .../src}/cmdline_attrs.rs                     |  0
 .../src}/compile_error.rs                     |  0
 .../rustc_builtin_macros/src}/concat.rs       |  0
 .../src}/concat_idents.rs                     |  0
 .../src}/deriving/bounds.rs                   |  0
 .../src}/deriving/clone.rs                    |  0
 .../src}/deriving/cmp/eq.rs                   |  0
 .../src}/deriving/cmp/ord.rs                  |  0
 .../src}/deriving/cmp/partial_eq.rs           |  0
 .../src}/deriving/cmp/partial_ord.rs          |  0
 .../src}/deriving/debug.rs                    |  0
 .../src}/deriving/decodable.rs                |  0
 .../src}/deriving/default.rs                  |  0
 .../src}/deriving/encodable.rs                |  0
 .../src}/deriving/generic/mod.rs              |  0
 .../src}/deriving/generic/ty.rs               |  0
 .../src}/deriving/hash.rs                     |  0
 .../rustc_builtin_macros/src}/deriving/mod.rs |  0
 .../rustc_builtin_macros/src}/env.rs          |  0
 .../rustc_builtin_macros/src}/format.rs       |  0
 .../src}/format_foreign.rs                    |  0
 .../src}/format_foreign/printf/tests.rs       |  0
 .../src}/format_foreign/shell/tests.rs        |  0
 .../src}/global_allocator.rs                  |  0
 .../rustc_builtin_macros/src}/global_asm.rs   |  0
 .../rustc_builtin_macros/src}/lib.rs          |  0
 .../rustc_builtin_macros/src}/llvm_asm.rs     |  0
 .../rustc_builtin_macros/src}/log_syntax.rs   |  0
 .../src}/proc_macro_harness.rs                |  0
 .../rustc_builtin_macros/src}/source_util.rs  |  0
 .../src}/standard_library_imports.rs          |  0
 .../rustc_builtin_macros/src}/test.rs         |  0
 .../rustc_builtin_macros/src}/test_harness.rs |  0
 .../rustc_builtin_macros/src}/trace_macros.rs |  0
 .../rustc_builtin_macros/src}/util.rs         |  0
 compiler/rustc_codegen_llvm/Cargo.toml        | 34 +++++++++++
 .../rustc_codegen_llvm}/README.md             |  0
 .../rustc_codegen_llvm/src}/abi.rs            |  0
 .../rustc_codegen_llvm/src}/allocator.rs      |  0
 .../rustc_codegen_llvm/src}/asm.rs            |  0
 .../rustc_codegen_llvm/src}/attributes.rs     |  0
 .../rustc_codegen_llvm/src}/back/archive.rs   |  0
 .../rustc_codegen_llvm/src}/back/lto.rs       |  0
 .../rustc_codegen_llvm/src}/back/profiling.rs |  0
 .../rustc_codegen_llvm/src}/back/write.rs     |  0
 .../rustc_codegen_llvm/src}/base.rs           |  0
 .../rustc_codegen_llvm/src}/builder.rs        |  0
 .../rustc_codegen_llvm/src}/callee.rs         |  0
 .../rustc_codegen_llvm/src}/common.rs         |  0
 .../rustc_codegen_llvm/src}/consts.rs         |  0
 .../rustc_codegen_llvm/src}/context.rs        |  0
 .../src}/coverageinfo/mapgen.rs               |  0
 .../src}/coverageinfo/mod.rs                  |  0
 .../src}/debuginfo/create_scope_map.rs        |  0
 .../rustc_codegen_llvm/src}/debuginfo/doc.rs  |  0
 .../rustc_codegen_llvm/src}/debuginfo/gdb.rs  |  0
 .../src}/debuginfo/metadata.rs                |  0
 .../rustc_codegen_llvm/src}/debuginfo/mod.rs  |  0
 .../src}/debuginfo/namespace.rs               |  0
 .../src}/debuginfo/source_loc.rs              |  0
 .../src}/debuginfo/utils.rs                   |  0
 .../rustc_codegen_llvm/src}/declare.rs        |  0
 .../rustc_codegen_llvm/src}/intrinsic.rs      |  0
 .../rustc_codegen_llvm/src}/lib.rs            |  0
 .../src}/llvm/archive_ro.rs                   |  0
 .../src}/llvm/diagnostic.rs                   |  0
 .../rustc_codegen_llvm/src}/llvm/ffi.rs       |  0
 .../rustc_codegen_llvm/src}/llvm/mod.rs       |  0
 .../rustc_codegen_llvm/src}/llvm_util.rs      |  0
 .../rustc_codegen_llvm/src}/metadata.rs       |  0
 .../rustc_codegen_llvm/src}/mono_item.rs      |  0
 .../rustc_codegen_llvm/src}/type_.rs          |  0
 .../rustc_codegen_llvm/src}/type_of.rs        |  0
 .../rustc_codegen_llvm/src}/va_arg.rs         |  0
 .../rustc_codegen_llvm/src}/value.rs          |  0
 compiler/rustc_codegen_ssa/Cargo.toml         | 36 ++++++++++++
 .../rustc_codegen_ssa}/README.md              |  0
 .../rustc_codegen_ssa/src}/back/archive.rs    |  0
 .../rustc_codegen_ssa/src}/back/command.rs    |  0
 .../rustc_codegen_ssa/src}/back/link.rs       |  0
 .../rustc_codegen_ssa/src}/back/linker.rs     |  0
 .../rustc_codegen_ssa/src}/back/lto.rs        |  0
 .../rustc_codegen_ssa/src}/back/mod.rs        |  0
 .../rustc_codegen_ssa/src}/back/rpath.rs      |  0
 .../src}/back/rpath/tests.rs                  |  0
 .../src}/back/symbol_export.rs                |  0
 .../rustc_codegen_ssa/src}/back/write.rs      |  0
 .../rustc_codegen_ssa/src}/base.rs            |  0
 .../rustc_codegen_ssa/src}/common.rs          |  0
 .../src}/coverageinfo/ffi.rs                  |  0
 .../src}/coverageinfo/map.rs                  |  0
 .../src}/coverageinfo/mod.rs                  |  0
 .../rustc_codegen_ssa/src}/debuginfo/mod.rs   |  0
 .../src}/debuginfo/type_names.rs              |  0
 .../rustc_codegen_ssa/src}/glue.rs            |  0
 .../rustc_codegen_ssa/src}/lib.rs             |  0
 .../rustc_codegen_ssa/src}/meth.rs            |  0
 .../rustc_codegen_ssa/src}/mir/analyze.rs     |  0
 .../rustc_codegen_ssa/src}/mir/block.rs       |  0
 .../rustc_codegen_ssa/src}/mir/constant.rs    |  0
 .../src}/mir/coverageinfo.rs                  |  0
 .../rustc_codegen_ssa/src}/mir/debuginfo.rs   |  0
 .../rustc_codegen_ssa/src}/mir/mod.rs         |  0
 .../rustc_codegen_ssa/src}/mir/operand.rs     |  0
 .../rustc_codegen_ssa/src}/mir/place.rs       |  0
 .../rustc_codegen_ssa/src}/mir/rvalue.rs      |  0
 .../rustc_codegen_ssa/src}/mir/statement.rs   |  0
 .../rustc_codegen_ssa/src}/mono_item.rs       |  0
 .../rustc_codegen_ssa/src}/traits/abi.rs      |  0
 .../rustc_codegen_ssa/src}/traits/asm.rs      |  0
 .../rustc_codegen_ssa/src}/traits/backend.rs  |  0
 .../rustc_codegen_ssa/src}/traits/builder.rs  |  0
 .../rustc_codegen_ssa/src}/traits/consts.rs   |  0
 .../src}/traits/coverageinfo.rs               |  0
 .../src}/traits/debuginfo.rs                  |  0
 .../rustc_codegen_ssa/src}/traits/declare.rs  |  0
 .../src}/traits/intrinsic.rs                  |  0
 .../rustc_codegen_ssa/src}/traits/misc.rs     |  0
 .../rustc_codegen_ssa/src}/traits/mod.rs      |  0
 .../rustc_codegen_ssa/src}/traits/statics.rs  |  0
 .../rustc_codegen_ssa/src}/traits/type_.rs    |  0
 .../rustc_codegen_ssa/src}/traits/write.rs    |  0
 .../rustc_data_structures}/Cargo.toml         | 10 ++--
 .../rustc_data_structures/src}/atomic_ref.rs  |  0
 .../rustc_data_structures/src}/base_n.rs      |  0
 .../src}/base_n/tests.rs                      |  0
 .../src}/binary_search_util/mod.rs            |  0
 .../src}/binary_search_util/tests.rs          |  0
 .../rustc_data_structures/src}/box_region.rs  |  0
 .../rustc_data_structures/src}/captures.rs    |  0
 .../rustc_data_structures/src}/const_cstr.rs  |  0
 .../rustc_data_structures/src}/fingerprint.rs |  0
 .../rustc_data_structures/src}/flock.rs       |  0
 .../rustc_data_structures/src}/frozen.rs      |  0
 .../rustc_data_structures/src}/fx.rs          |  0
 .../src}/graph/dominators/mod.rs              |  0
 .../src}/graph/dominators/tests.rs            |  0
 .../src}/graph/implementation/mod.rs          |  0
 .../src}/graph/implementation/tests.rs        |  0
 .../src}/graph/iterate/mod.rs                 |  0
 .../src}/graph/iterate/tests.rs               |  0
 .../rustc_data_structures/src}/graph/mod.rs   |  0
 .../src}/graph/reference.rs                   |  0
 .../src}/graph/scc/mod.rs                     |  0
 .../src}/graph/scc/tests.rs                   |  0
 .../rustc_data_structures/src}/graph/tests.rs |  0
 .../src}/graph/vec_graph/mod.rs               |  0
 .../src}/graph/vec_graph/tests.rs             |  0
 .../rustc_data_structures/src}/jobserver.rs   |  0
 .../rustc_data_structures/src}/lib.rs         |  0
 .../rustc_data_structures/src}/macros.rs      |  0
 .../src}/map_in_place.rs                      |  0
 .../src}/obligation_forest/graphviz.rs        |  0
 .../src}/obligation_forest/mod.rs             |  0
 .../src}/obligation_forest/tests.rs           |  0
 .../src}/owning_ref/LICENSE                   |  0
 .../src}/owning_ref/mod.rs                    |  0
 .../src}/owning_ref/tests.rs                  |  0
 .../rustc_data_structures/src}/profiling.rs   |  0
 .../rustc_data_structures/src}/ptr_key.rs     |  0
 .../rustc_data_structures/src}/sharded.rs     |  0
 .../rustc_data_structures/src}/sip128.rs      |  0
 .../src}/sip128/tests.rs                      |  0
 .../rustc_data_structures/src}/small_c_str.rs |  0
 .../src}/small_c_str/tests.rs                 |  0
 .../src}/snapshot_map/mod.rs                  |  0
 .../src}/snapshot_map/tests.rs                |  0
 .../rustc_data_structures/src}/sorted_map.rs  |  0
 .../src}/sorted_map/index_map.rs              |  0
 .../src}/sorted_map/tests.rs                  |  0
 .../src}/stable_hasher.rs                     |  0
 .../rustc_data_structures/src}/stable_map.rs  |  0
 .../rustc_data_structures/src}/stable_set.rs  |  0
 .../rustc_data_structures/src}/stack.rs       |  0
 .../rustc_data_structures/src}/svh.rs         |  0
 .../rustc_data_structures/src}/sync.rs        |  0
 .../rustc_data_structures/src}/tagged_ptr.rs  |  0
 .../src}/tagged_ptr/copy.rs                   |  0
 .../src}/tagged_ptr/drop.rs                   |  0
 .../rustc_data_structures/src}/temp_dir.rs    |  0
 .../rustc_data_structures/src}/thin_vec.rs    |  0
 .../rustc_data_structures/src}/tiny_list.rs   |  0
 .../src}/tiny_list/tests.rs                   |  0
 .../src}/transitive_relation.rs               |  0
 .../src}/transitive_relation/tests.rs         |  0
 .../src}/vec_linked_list.rs                   |  0
 .../rustc_data_structures/src}/work_queue.rs  |  0
 compiler/rustc_driver/Cargo.toml              | 41 +++++++++++++
 .../rustc_driver}/README.md                   |  0
 .../rustc_driver/src}/args.rs                 |  0
 .../rustc_driver/src}/lib.rs                  |  0
 .../rustc_driver/src}/pretty.rs               |  0
 .../rustc_error_codes}/Cargo.toml             |  4 --
 .../rustc_error_codes/src}/error_codes.rs     |  0
 .../src}/error_codes/E0001.md                 |  0
 .../src}/error_codes/E0002.md                 |  0
 .../src}/error_codes/E0004.md                 |  0
 .../src}/error_codes/E0005.md                 |  0
 .../src}/error_codes/E0007.md                 |  0
 .../src}/error_codes/E0009.md                 |  0
 .../src}/error_codes/E0010.md                 |  0
 .../src}/error_codes/E0013.md                 |  0
 .../src}/error_codes/E0014.md                 |  0
 .../src}/error_codes/E0015.md                 |  0
 .../src}/error_codes/E0019.md                 |  0
 .../src}/error_codes/E0023.md                 |  0
 .../src}/error_codes/E0025.md                 |  0
 .../src}/error_codes/E0026.md                 |  0
 .../src}/error_codes/E0027.md                 |  0
 .../src}/error_codes/E0029.md                 |  0
 .../src}/error_codes/E0030.md                 |  0
 .../src}/error_codes/E0033.md                 |  0
 .../src}/error_codes/E0034.md                 |  0
 .../src}/error_codes/E0038.md                 |  0
 .../src}/error_codes/E0040.md                 |  0
 .../src}/error_codes/E0044.md                 |  0
 .../src}/error_codes/E0045.md                 |  0
 .../src}/error_codes/E0046.md                 |  0
 .../src}/error_codes/E0049.md                 |  0
 .../src}/error_codes/E0050.md                 |  0
 .../src}/error_codes/E0053.md                 |  0
 .../src}/error_codes/E0054.md                 |  0
 .../src}/error_codes/E0055.md                 |  0
 .../src}/error_codes/E0057.md                 |  0
 .../src}/error_codes/E0059.md                 |  0
 .../src}/error_codes/E0060.md                 |  0
 .../src}/error_codes/E0061.md                 |  0
 .../src}/error_codes/E0062.md                 |  0
 .../src}/error_codes/E0063.md                 |  0
 .../src}/error_codes/E0067.md                 |  0
 .../src}/error_codes/E0069.md                 |  0
 .../src}/error_codes/E0070.md                 |  0
 .../src}/error_codes/E0071.md                 |  0
 .../src}/error_codes/E0072.md                 |  0
 .../src}/error_codes/E0073.md                 |  0
 .../src}/error_codes/E0074.md                 |  0
 .../src}/error_codes/E0075.md                 |  0
 .../src}/error_codes/E0076.md                 |  0
 .../src}/error_codes/E0077.md                 |  0
 .../src}/error_codes/E0080.md                 |  0
 .../src}/error_codes/E0081.md                 |  0
 .../src}/error_codes/E0084.md                 |  0
 .../src}/error_codes/E0087.md                 |  0
 .../src}/error_codes/E0088.md                 |  0
 .../src}/error_codes/E0089.md                 |  0
 .../src}/error_codes/E0090.md                 |  0
 .../src}/error_codes/E0091.md                 |  0
 .../src}/error_codes/E0092.md                 |  0
 .../src}/error_codes/E0093.md                 |  0
 .../src}/error_codes/E0094.md                 |  0
 .../src}/error_codes/E0106.md                 |  0
 .../src}/error_codes/E0107.md                 |  0
 .../src}/error_codes/E0109.md                 |  0
 .../src}/error_codes/E0110.md                 |  0
 .../src}/error_codes/E0116.md                 |  0
 .../src}/error_codes/E0117.md                 |  0
 .../src}/error_codes/E0118.md                 |  0
 .../src}/error_codes/E0119.md                 |  0
 .../src}/error_codes/E0120.md                 |  0
 .../src}/error_codes/E0121.md                 |  0
 .../src}/error_codes/E0124.md                 |  0
 .../src}/error_codes/E0128.md                 |  0
 .../src}/error_codes/E0130.md                 |  0
 .../src}/error_codes/E0131.md                 |  0
 .../src}/error_codes/E0132.md                 |  0
 .../src}/error_codes/E0133.md                 |  0
 .../src}/error_codes/E0136.md                 |  0
 .../src}/error_codes/E0137.md                 |  0
 .../src}/error_codes/E0138.md                 |  0
 .../src}/error_codes/E0139.md                 |  0
 .../src}/error_codes/E0152.md                 |  0
 .../src}/error_codes/E0154.md                 |  0
 .../src}/error_codes/E0158.md                 |  0
 .../src}/error_codes/E0161.md                 |  0
 .../src}/error_codes/E0162.md                 |  0
 .../src}/error_codes/E0164.md                 |  0
 .../src}/error_codes/E0165.md                 |  0
 .../src}/error_codes/E0170.md                 |  0
 .../src}/error_codes/E0178.md                 |  0
 .../src}/error_codes/E0184.md                 |  0
 .../src}/error_codes/E0185.md                 |  0
 .../src}/error_codes/E0186.md                 |  0
 .../src}/error_codes/E0191.md                 |  0
 .../src}/error_codes/E0192.md                 |  0
 .../src}/error_codes/E0193.md                 |  0
 .../src}/error_codes/E0195.md                 |  0
 .../src}/error_codes/E0197.md                 |  0
 .../src}/error_codes/E0198.md                 |  0
 .../src}/error_codes/E0199.md                 |  0
 .../src}/error_codes/E0200.md                 |  0
 .../src}/error_codes/E0201.md                 |  0
 .../src}/error_codes/E0202.md                 |  0
 .../src}/error_codes/E0203.md                 |  0
 .../src}/error_codes/E0204.md                 |  0
 .../src}/error_codes/E0205.md                 |  0
 .../src}/error_codes/E0206.md                 |  0
 .../src}/error_codes/E0207.md                 |  0
 .../src}/error_codes/E0210.md                 |  0
 .../src}/error_codes/E0211.md                 |  0
 .../src}/error_codes/E0214.md                 |  0
 .../src}/error_codes/E0220.md                 |  0
 .../src}/error_codes/E0221.md                 |  0
 .../src}/error_codes/E0222.md                 |  0
 .../src}/error_codes/E0223.md                 |  0
 .../src}/error_codes/E0224.md                 |  0
 .../src}/error_codes/E0225.md                 |  0
 .../src}/error_codes/E0226.md                 |  0
 .../src}/error_codes/E0228.md                 |  0
 .../src}/error_codes/E0229.md                 |  0
 .../src}/error_codes/E0230.md                 |  0
 .../src}/error_codes/E0231.md                 |  0
 .../src}/error_codes/E0232.md                 |  0
 .../src}/error_codes/E0243.md                 |  0
 .../src}/error_codes/E0244.md                 |  0
 .../src}/error_codes/E0251.md                 |  0
 .../src}/error_codes/E0252.md                 |  0
 .../src}/error_codes/E0253.md                 |  0
 .../src}/error_codes/E0254.md                 |  0
 .../src}/error_codes/E0255.md                 |  0
 .../src}/error_codes/E0256.md                 |  0
 .../src}/error_codes/E0259.md                 |  0
 .../src}/error_codes/E0260.md                 |  0
 .../src}/error_codes/E0261.md                 |  0
 .../src}/error_codes/E0262.md                 |  0
 .../src}/error_codes/E0263.md                 |  0
 .../src}/error_codes/E0264.md                 |  0
 .../src}/error_codes/E0267.md                 |  0
 .../src}/error_codes/E0268.md                 |  0
 .../src}/error_codes/E0271.md                 |  0
 .../src}/error_codes/E0275.md                 |  0
 .../src}/error_codes/E0276.md                 |  0
 .../src}/error_codes/E0277.md                 |  0
 .../src}/error_codes/E0281.md                 |  0
 .../src}/error_codes/E0282.md                 |  0
 .../src}/error_codes/E0283.md                 |  0
 .../src}/error_codes/E0284.md                 |  0
 .../src}/error_codes/E0297.md                 |  0
 .../src}/error_codes/E0301.md                 |  0
 .../src}/error_codes/E0302.md                 |  0
 .../src}/error_codes/E0303.md                 |  0
 .../src}/error_codes/E0307.md                 |  0
 .../src}/error_codes/E0308.md                 |  0
 .../src}/error_codes/E0309.md                 |  0
 .../src}/error_codes/E0310.md                 |  0
 .../src}/error_codes/E0312.md                 |  0
 .../src}/error_codes/E0317.md                 |  0
 .../src}/error_codes/E0321.md                 |  0
 .../src}/error_codes/E0322.md                 |  0
 .../src}/error_codes/E0323.md                 |  0
 .../src}/error_codes/E0324.md                 |  0
 .../src}/error_codes/E0325.md                 |  0
 .../src}/error_codes/E0326.md                 |  0
 .../src}/error_codes/E0328.md                 |  0
 .../src}/error_codes/E0329.md                 |  0
 .../src}/error_codes/E0364.md                 |  0
 .../src}/error_codes/E0365.md                 |  0
 .../src}/error_codes/E0366.md                 |  0
 .../src}/error_codes/E0367.md                 |  0
 .../src}/error_codes/E0368.md                 |  0
 .../src}/error_codes/E0369.md                 |  0
 .../src}/error_codes/E0370.md                 |  0
 .../src}/error_codes/E0371.md                 |  0
 .../src}/error_codes/E0373.md                 |  0
 .../src}/error_codes/E0374.md                 |  0
 .../src}/error_codes/E0375.md                 |  0
 .../src}/error_codes/E0376.md                 |  0
 .../src}/error_codes/E0378.md                 |  0
 .../src}/error_codes/E0379.md                 |  0
 .../src}/error_codes/E0380.md                 |  0
 .../src}/error_codes/E0381.md                 |  0
 .../src}/error_codes/E0382.md                 |  0
 .../src}/error_codes/E0383.md                 |  0
 .../src}/error_codes/E0384.md                 |  0
 .../src}/error_codes/E0386.md                 |  0
 .../src}/error_codes/E0387.md                 |  0
 .../src}/error_codes/E0388.md                 |  0
 .../src}/error_codes/E0389.md                 |  0
 .../src}/error_codes/E0390.md                 |  0
 .../src}/error_codes/E0391.md                 |  0
 .../src}/error_codes/E0392.md                 |  0
 .../src}/error_codes/E0393.md                 |  0
 .../src}/error_codes/E0398.md                 |  0
 .../src}/error_codes/E0399.md                 |  0
 .../src}/error_codes/E0401.md                 |  0
 .../src}/error_codes/E0403.md                 |  0
 .../src}/error_codes/E0404.md                 |  0
 .../src}/error_codes/E0405.md                 |  0
 .../src}/error_codes/E0407.md                 |  0
 .../src}/error_codes/E0408.md                 |  0
 .../src}/error_codes/E0409.md                 |  0
 .../src}/error_codes/E0411.md                 |  0
 .../src}/error_codes/E0412.md                 |  0
 .../src}/error_codes/E0415.md                 |  0
 .../src}/error_codes/E0416.md                 |  0
 .../src}/error_codes/E0422.md                 |  0
 .../src}/error_codes/E0423.md                 |  0
 .../src}/error_codes/E0424.md                 |  0
 .../src}/error_codes/E0425.md                 |  0
 .../src}/error_codes/E0426.md                 |  0
 .../src}/error_codes/E0428.md                 |  0
 .../src}/error_codes/E0429.md                 |  0
 .../src}/error_codes/E0430.md                 |  0
 .../src}/error_codes/E0431.md                 |  0
 .../src}/error_codes/E0432.md                 |  0
 .../src}/error_codes/E0433.md                 |  0
 .../src}/error_codes/E0434.md                 |  0
 .../src}/error_codes/E0435.md                 |  0
 .../src}/error_codes/E0436.md                 |  0
 .../src}/error_codes/E0437.md                 |  0
 .../src}/error_codes/E0438.md                 |  0
 .../src}/error_codes/E0439.md                 |  0
 .../src}/error_codes/E0445.md                 |  0
 .../src}/error_codes/E0446.md                 |  0
 .../src}/error_codes/E0447.md                 |  0
 .../src}/error_codes/E0448.md                 |  0
 .../src}/error_codes/E0449.md                 |  0
 .../src}/error_codes/E0451.md                 |  0
 .../src}/error_codes/E0452.md                 |  0
 .../src}/error_codes/E0453.md                 |  0
 .../src}/error_codes/E0454.md                 |  0
 .../src}/error_codes/E0455.md                 |  0
 .../src}/error_codes/E0458.md                 |  0
 .../src}/error_codes/E0459.md                 |  0
 .../src}/error_codes/E0463.md                 |  0
 .../src}/error_codes/E0466.md                 |  0
 .../src}/error_codes/E0468.md                 |  0
 .../src}/error_codes/E0469.md                 |  0
 .../src}/error_codes/E0477.md                 |  0
 .../src}/error_codes/E0478.md                 |  0
 .../src}/error_codes/E0491.md                 |  0
 .../src}/error_codes/E0492.md                 |  0
 .../src}/error_codes/E0493.md                 |  0
 .../src}/error_codes/E0495.md                 |  0
 .../src}/error_codes/E0496.md                 |  0
 .../src}/error_codes/E0497.md                 |  0
 .../src}/error_codes/E0499.md                 |  0
 .../src}/error_codes/E0500.md                 |  0
 .../src}/error_codes/E0501.md                 |  0
 .../src}/error_codes/E0502.md                 |  0
 .../src}/error_codes/E0503.md                 |  0
 .../src}/error_codes/E0504.md                 |  0
 .../src}/error_codes/E0505.md                 |  0
 .../src}/error_codes/E0506.md                 |  0
 .../src}/error_codes/E0507.md                 |  0
 .../src}/error_codes/E0508.md                 |  0
 .../src}/error_codes/E0509.md                 |  0
 .../src}/error_codes/E0510.md                 |  0
 .../src}/error_codes/E0511.md                 |  0
 .../src}/error_codes/E0512.md                 |  0
 .../src}/error_codes/E0515.md                 |  0
 .../src}/error_codes/E0516.md                 |  0
 .../src}/error_codes/E0517.md                 |  0
 .../src}/error_codes/E0518.md                 |  0
 .../src}/error_codes/E0520.md                 |  0
 .../src}/error_codes/E0522.md                 |  0
 .../src}/error_codes/E0524.md                 |  0
 .../src}/error_codes/E0525.md                 |  0
 .../src}/error_codes/E0527.md                 |  0
 .../src}/error_codes/E0528.md                 |  0
 .../src}/error_codes/E0529.md                 |  0
 .../src}/error_codes/E0530.md                 |  0
 .../src}/error_codes/E0531.md                 |  0
 .../src}/error_codes/E0532.md                 |  0
 .../src}/error_codes/E0533.md                 |  0
 .../src}/error_codes/E0534.md                 |  0
 .../src}/error_codes/E0535.md                 |  0
 .../src}/error_codes/E0536.md                 |  0
 .../src}/error_codes/E0537.md                 |  0
 .../src}/error_codes/E0538.md                 |  0
 .../src}/error_codes/E0539.md                 |  0
 .../src}/error_codes/E0541.md                 |  0
 .../src}/error_codes/E0550.md                 |  0
 .../src}/error_codes/E0551.md                 |  0
 .../src}/error_codes/E0552.md                 |  0
 .../src}/error_codes/E0554.md                 |  0
 .../src}/error_codes/E0556.md                 |  0
 .../src}/error_codes/E0557.md                 |  0
 .../src}/error_codes/E0559.md                 |  0
 .../src}/error_codes/E0560.md                 |  0
 .../src}/error_codes/E0561.md                 |  0
 .../src}/error_codes/E0562.md                 |  0
 .../src}/error_codes/E0565.md                 |  0
 .../src}/error_codes/E0566.md                 |  0
 .../src}/error_codes/E0567.md                 |  0
 .../src}/error_codes/E0568.md                 |  0
 .../src}/error_codes/E0569.md                 |  0
 .../src}/error_codes/E0570.md                 |  0
 .../src}/error_codes/E0571.md                 |  0
 .../src}/error_codes/E0572.md                 |  0
 .../src}/error_codes/E0573.md                 |  0
 .../src}/error_codes/E0574.md                 |  0
 .../src}/error_codes/E0575.md                 |  0
 .../src}/error_codes/E0576.md                 |  0
 .../src}/error_codes/E0577.md                 |  0
 .../src}/error_codes/E0578.md                 |  0
 .../src}/error_codes/E0579.md                 |  0
 .../src}/error_codes/E0580.md                 |  0
 .../src}/error_codes/E0581.md                 |  0
 .../src}/error_codes/E0582.md                 |  0
 .../src}/error_codes/E0583.md                 |  0
 .../src}/error_codes/E0584.md                 |  0
 .../src}/error_codes/E0585.md                 |  0
 .../src}/error_codes/E0586.md                 |  0
 .../src}/error_codes/E0587.md                 |  0
 .../src}/error_codes/E0588.md                 |  0
 .../src}/error_codes/E0589.md                 |  0
 .../src}/error_codes/E0590.md                 |  0
 .../src}/error_codes/E0591.md                 |  0
 .../src}/error_codes/E0592.md                 |  0
 .../src}/error_codes/E0593.md                 |  0
 .../src}/error_codes/E0594.md                 |  0
 .../src}/error_codes/E0595.md                 |  0
 .../src}/error_codes/E0596.md                 |  0
 .../src}/error_codes/E0597.md                 |  0
 .../src}/error_codes/E0599.md                 |  0
 .../src}/error_codes/E0600.md                 |  0
 .../src}/error_codes/E0601.md                 |  0
 .../src}/error_codes/E0602.md                 |  0
 .../src}/error_codes/E0603.md                 |  0
 .../src}/error_codes/E0604.md                 |  0
 .../src}/error_codes/E0605.md                 |  0
 .../src}/error_codes/E0606.md                 |  0
 .../src}/error_codes/E0607.md                 |  0
 .../src}/error_codes/E0608.md                 |  0
 .../src}/error_codes/E0609.md                 |  0
 .../src}/error_codes/E0610.md                 |  0
 .../src}/error_codes/E0614.md                 |  0
 .../src}/error_codes/E0615.md                 |  0
 .../src}/error_codes/E0616.md                 |  0
 .../src}/error_codes/E0617.md                 |  0
 .../src}/error_codes/E0618.md                 |  0
 .../src}/error_codes/E0619.md                 |  0
 .../src}/error_codes/E0620.md                 |  0
 .../src}/error_codes/E0621.md                 |  0
 .../src}/error_codes/E0622.md                 |  0
 .../src}/error_codes/E0623.md                 |  0
 .../src}/error_codes/E0624.md                 |  0
 .../src}/error_codes/E0626.md                 |  0
 .../src}/error_codes/E0627.md                 |  0
 .../src}/error_codes/E0628.md                 |  0
 .../src}/error_codes/E0631.md                 |  0
 .../src}/error_codes/E0633.md                 |  0
 .../src}/error_codes/E0634.md                 |  0
 .../src}/error_codes/E0635.md                 |  0
 .../src}/error_codes/E0636.md                 |  0
 .../src}/error_codes/E0637.md                 |  0
 .../src}/error_codes/E0638.md                 |  0
 .../src}/error_codes/E0639.md                 |  0
 .../src}/error_codes/E0641.md                 |  0
 .../src}/error_codes/E0642.md                 |  0
 .../src}/error_codes/E0643.md                 |  0
 .../src}/error_codes/E0644.md                 |  0
 .../src}/error_codes/E0646.md                 |  0
 .../src}/error_codes/E0647.md                 |  0
 .../src}/error_codes/E0648.md                 |  0
 .../src}/error_codes/E0657.md                 |  0
 .../src}/error_codes/E0658.md                 |  0
 .../src}/error_codes/E0659.md                 |  0
 .../src}/error_codes/E0660.md                 |  0
 .../src}/error_codes/E0661.md                 |  0
 .../src}/error_codes/E0662.md                 |  0
 .../src}/error_codes/E0663.md                 |  0
 .../src}/error_codes/E0664.md                 |  0
 .../src}/error_codes/E0665.md                 |  0
 .../src}/error_codes/E0666.md                 |  0
 .../src}/error_codes/E0668.md                 |  0
 .../src}/error_codes/E0669.md                 |  0
 .../src}/error_codes/E0670.md                 |  0
 .../src}/error_codes/E0671.md                 |  0
 .../src}/error_codes/E0687.md                 |  0
 .../src}/error_codes/E0688.md                 |  0
 .../src}/error_codes/E0689.md                 |  0
 .../src}/error_codes/E0690.md                 |  0
 .../src}/error_codes/E0691.md                 |  0
 .../src}/error_codes/E0692.md                 |  0
 .../src}/error_codes/E0693.md                 |  0
 .../src}/error_codes/E0695.md                 |  0
 .../src}/error_codes/E0696.md                 |  0
 .../src}/error_codes/E0697.md                 |  0
 .../src}/error_codes/E0698.md                 |  0
 .../src}/error_codes/E0699.md                 |  0
 .../src}/error_codes/E0700.md                 |  0
 .../src}/error_codes/E0701.md                 |  0
 .../src}/error_codes/E0703.md                 |  0
 .../src}/error_codes/E0704.md                 |  0
 .../src}/error_codes/E0705.md                 |  0
 .../src}/error_codes/E0706.md                 |  0
 .../src}/error_codes/E0708.md                 |  0
 .../src}/error_codes/E0710.md                 |  0
 .../src}/error_codes/E0712.md                 |  0
 .../src}/error_codes/E0713.md                 |  0
 .../src}/error_codes/E0714.md                 |  0
 .../src}/error_codes/E0715.md                 |  0
 .../src}/error_codes/E0716.md                 |  0
 .../src}/error_codes/E0718.md                 |  0
 .../src}/error_codes/E0719.md                 |  0
 .../src}/error_codes/E0720.md                 |  0
 .../src}/error_codes/E0723.md                 |  0
 .../src}/error_codes/E0724.md                 |  0
 .../src}/error_codes/E0725.md                 |  0
 .../src}/error_codes/E0727.md                 |  0
 .../src}/error_codes/E0728.md                 |  0
 .../src}/error_codes/E0729.md                 |  0
 .../src}/error_codes/E0730.md                 |  0
 .../src}/error_codes/E0731.md                 |  0
 .../src}/error_codes/E0732.md                 |  0
 .../src}/error_codes/E0733.md                 |  0
 .../src}/error_codes/E0734.md                 |  0
 .../src}/error_codes/E0735.md                 |  0
 .../src}/error_codes/E0736.md                 |  0
 .../src}/error_codes/E0737.md                 |  0
 .../src}/error_codes/E0739.md                 |  0
 .../src}/error_codes/E0740.md                 |  0
 .../src}/error_codes/E0741.md                 |  0
 .../src}/error_codes/E0742.md                 |  0
 .../src}/error_codes/E0743.md                 |  0
 .../src}/error_codes/E0744.md                 |  0
 .../src}/error_codes/E0745.md                 |  0
 .../src}/error_codes/E0746.md                 |  0
 .../src}/error_codes/E0747.md                 |  0
 .../src}/error_codes/E0748.md                 |  0
 .../src}/error_codes/E0749.md                 |  0
 .../src}/error_codes/E0750.md                 |  0
 .../src}/error_codes/E0751.md                 |  0
 .../src}/error_codes/E0752.md                 |  0
 .../src}/error_codes/E0753.md                 |  0
 .../src}/error_codes/E0754.md                 |  0
 .../src}/error_codes/E0758.md                 |  0
 .../src}/error_codes/E0759.md                 |  0
 .../src}/error_codes/E0760.md                 |  0
 .../src}/error_codes/E0761.md                 |  0
 .../src}/error_codes/E0762.md                 |  0
 .../src}/error_codes/E0763.md                 |  0
 .../src}/error_codes/E0764.md                 |  0
 .../src}/error_codes/E0765.md                 |  0
 .../src}/error_codes/E0766.md                 |  0
 .../src}/error_codes/E0767.md                 |  0
 .../src}/error_codes/E0768.md                 |  0
 .../src}/error_codes/E0769.md                 |  0
 .../src}/error_codes/E0770.md                 |  0
 .../src}/error_codes/E0771.md                 |  0
 .../rustc_error_codes/src}/lib.rs             |  0
 .../rustc_errors}/Cargo.toml                  | 10 ++--
 .../src}/annotate_snippet_emitter_writer.rs   |  0
 .../rustc_errors/src}/diagnostic.rs           |  0
 .../rustc_errors/src}/diagnostic_builder.rs   |  0
 .../rustc_errors/src}/emitter.rs              |  0
 .../rustc_errors/src}/json.rs                 |  0
 .../rustc_errors/src}/json/tests.rs           |  0
 .../rustc_errors/src}/lib.rs                  |  0
 .../rustc_errors/src}/lock.rs                 |  0
 .../rustc_errors/src}/registry.rs             |  0
 .../rustc_errors/src}/snippet.rs              |  0
 .../rustc_errors/src}/styled_buffer.rs        |  0
 compiler/rustc_expand/Cargo.toml              | 26 +++++++++
 .../rustc_expand/src}/base.rs                 |  0
 .../rustc_expand/src}/build.rs                |  0
 .../rustc_expand/src}/config.rs               |  0
 .../rustc_expand/src}/expand.rs               |  0
 .../rustc_expand/src}/lib.rs                  |  0
 .../rustc_expand/src}/mbe.rs                  |  0
 .../rustc_expand/src}/mbe/macro_check.rs      |  0
 .../rustc_expand/src}/mbe/macro_parser.rs     |  0
 .../rustc_expand/src}/mbe/macro_rules.rs      |  0
 .../rustc_expand/src}/mbe/quoted.rs           |  0
 .../rustc_expand/src}/mbe/transcribe.rs       |  0
 .../rustc_expand/src}/module.rs               |  0
 .../rustc_expand/src}/mut_visit/tests.rs      |  0
 .../rustc_expand/src}/parse/lexer/tests.rs    |  0
 .../rustc_expand/src}/parse/tests.rs          |  0
 .../rustc_expand/src}/placeholders.rs         |  0
 .../rustc_expand/src}/proc_macro.rs           |  0
 .../rustc_expand/src}/proc_macro_server.rs    |  0
 .../rustc_expand/src}/tests.rs                |  0
 .../rustc_expand/src}/tokenstream/tests.rs    |  0
 .../rustc_feature}/Cargo.toml                 |  6 +-
 .../rustc_feature/src}/accepted.rs            |  0
 .../rustc_feature/src}/active.rs              |  0
 .../rustc_feature/src}/builtin_attrs.rs       |  0
 .../rustc_feature/src}/lib.rs                 |  0
 .../rustc_feature/src}/removed.rs             |  0
 .../rustc_fs_util}/Cargo.toml                 |  6 --
 .../rustc_fs_util/src}/lib.rs                 |  0
 .../rustc_graphviz}/Cargo.toml                |  4 --
 .../rustc_graphviz/src}/lib.rs                |  0
 .../rustc_graphviz/src}/tests.rs              |  0
 compiler/rustc_hir/Cargo.toml                 | 20 +++++++
 .../rustc_hir/src}/arena.rs                   |  0
 .../rustc_hir/src}/def.rs                     |  0
 .../rustc_hir/src}/definitions.rs             |  0
 .../rustc_hir/src}/hir.rs                     |  0
 .../rustc_hir/src}/hir_id.rs                  |  0
 .../rustc_hir/src}/intravisit.rs              |  0
 .../rustc_hir/src}/itemlikevisit.rs           |  0
 .../rustc_hir/src}/lang_items.rs              |  0
 .../rustc_hir/src}/lib.rs                     |  0
 .../rustc_hir/src}/pat_util.rs                |  0
 .../rustc_hir/src}/stable_hash_impls.rs       |  0
 .../rustc_hir/src}/target.rs                  |  0
 .../rustc_hir/src}/weak_lang_items.rs         |  0
 compiler/rustc_hir_pretty/Cargo.toml          | 15 +++++
 .../rustc_hir_pretty/src}/lib.rs              |  0
 compiler/rustc_incremental/Cargo.toml         | 22 +++++++
 .../src}/assert_dep_graph.rs                  |  0
 .../src}/assert_module_sources.rs             |  0
 .../rustc_incremental/src}/lib.rs             |  0
 .../rustc_incremental/src}/persist/README.md  |  0
 .../rustc_incremental/src}/persist/data.rs    |  0
 .../src}/persist/dirty_clean.rs               |  0
 .../src}/persist/file_format.rs               |  0
 .../rustc_incremental/src}/persist/fs.rs      |  0
 .../src}/persist/fs/tests.rs                  |  0
 .../rustc_incremental/src}/persist/load.rs    |  0
 .../rustc_incremental/src}/persist/mod.rs     |  0
 .../rustc_incremental/src}/persist/save.rs    |  0
 .../src}/persist/work_product.rs              |  0
 .../rustc_index}/Cargo.toml                   |  6 +-
 .../rustc_index/src}/bit_set.rs               |  0
 .../rustc_index/src}/bit_set/tests.rs         |  0
 .../rustc_index/src}/lib.rs                   |  0
 .../rustc_index/src}/vec.rs                   |  0
 .../rustc_index/src}/vec/tests.rs             |  0
 compiler/rustc_infer/Cargo.toml               | 24 ++++++++
 .../rustc_infer/src}/infer/at.rs              |  0
 .../src}/infer/canonical/canonicalizer.rs     |  0
 .../rustc_infer/src}/infer/canonical/mod.rs   |  0
 .../src}/infer/canonical/query_response.rs    |  0
 .../src}/infer/canonical/substitute.rs        |  0
 .../rustc_infer/src}/infer/combine.rs         |  0
 .../rustc_infer/src}/infer/equate.rs          |  0
 .../src}/infer/error_reporting/mod.rs         |  0
 .../infer/error_reporting/need_type_info.rs   |  0
 .../nice_region_error/different_lifetimes.rs  |  0
 .../nice_region_error/find_anon_type.rs       |  0
 .../error_reporting/nice_region_error/mod.rs  |  0
 .../nice_region_error/named_anon_conflict.rs  |  0
 .../nice_region_error/placeholder_error.rs    |  0
 .../nice_region_error/static_impl_trait.rs    |  0
 .../trait_impl_difference.rs                  |  0
 .../error_reporting/nice_region_error/util.rs |  0
 .../src}/infer/error_reporting/note.rs        |  0
 .../rustc_infer/src}/infer/free_regions.rs    |  0
 .../rustc_infer/src}/infer/freshen.rs         |  0
 .../rustc_infer/src}/infer/fudge.rs           |  0
 .../rustc_infer/src}/infer/glb.rs             |  0
 .../src}/infer/higher_ranked/README.md        |  0
 .../src}/infer/higher_ranked/mod.rs           |  0
 .../rustc_infer/src}/infer/lattice.rs         |  0
 .../infer/lexical_region_resolve/README.md    |  0
 .../src}/infer/lexical_region_resolve/mod.rs  |  0
 .../rustc_infer/src}/infer/lub.rs             |  0
 .../rustc_infer/src}/infer/mod.rs             |  0
 .../rustc_infer/src}/infer/nll_relate/mod.rs  |  0
 .../rustc_infer/src}/infer/outlives/env.rs    |  0
 .../rustc_infer/src}/infer/outlives/mod.rs    |  0
 .../src}/infer/outlives/obligations.rs        |  0
 .../rustc_infer/src}/infer/outlives/verify.rs |  0
 .../src}/infer/region_constraints/README.md   |  0
 .../infer/region_constraints/leak_check.rs    |  0
 .../src}/infer/region_constraints/mod.rs      |  0
 .../rustc_infer/src}/infer/resolve.rs         |  0
 .../rustc_infer/src}/infer/sub.rs             |  0
 .../rustc_infer/src}/infer/type_variable.rs   |  0
 .../rustc_infer/src}/infer/undo_log.rs        |  0
 .../rustc_infer/src}/lib.rs                   |  0
 .../rustc_infer/src}/traits/engine.rs         |  0
 .../src}/traits/error_reporting/mod.rs        |  0
 .../rustc_infer/src}/traits/mod.rs            |  0
 .../rustc_infer/src}/traits/project.rs        |  0
 .../src}/traits/structural_impls.rs           |  0
 .../rustc_infer/src}/traits/util.rs           |  0
 compiler/rustc_interface/Cargo.toml           | 55 ++++++++++++++++++
 .../rustc_interface/src}/callbacks.rs         |  0
 .../rustc_interface/src}/interface.rs         |  0
 .../rustc_interface/src}/lib.rs               |  0
 .../rustc_interface/src}/passes.rs            |  0
 .../rustc_interface/src}/proc_macro_decls.rs  |  0
 .../rustc_interface/src}/queries.rs           |  0
 .../rustc_interface/src}/tests.rs             |  0
 .../rustc_interface/src}/util.rs              |  0
 .../rustc_lexer}/Cargo.toml                   |  0
 .../rustc_lexer}/src/cursor.rs                |  0
 .../rustc_lexer}/src/lib.rs                   |  0
 .../rustc_lexer}/src/tests.rs                 |  0
 .../rustc_lexer}/src/unescape.rs              |  0
 .../rustc_lexer}/src/unescape/tests.rs        |  0
 compiler/rustc_lint/Cargo.toml                | 22 +++++++
 .../rustc_lint/src}/array_into_iter.rs        |  0
 .../rustc_lint/src}/builtin.rs                |  0
 .../rustc_lint/src}/context.rs                |  0
 .../rustc_lint/src}/early.rs                  |  0
 .../rustc_lint/src}/internal.rs               |  0
 .../rustc_lint/src}/late.rs                   |  0
 .../rustc_lint/src}/levels.rs                 |  0
 .../rustc_lint/src}/lib.rs                    |  0
 .../rustc_lint/src}/non_ascii_idents.rs       |  0
 .../rustc_lint/src}/nonstandard_style.rs      |  0
 .../src}/nonstandard_style/tests.rs           |  0
 .../rustc_lint/src}/passes.rs                 |  0
 .../rustc_lint/src}/redundant_semicolon.rs    |  0
 .../rustc_lint/src}/types.rs                  |  0
 .../rustc_lint/src}/unused.rs                 |  0
 .../rustc_macros}/Cargo.toml                  |  0
 .../rustc_macros}/src/hash_stable.rs          |  0
 .../rustc_macros}/src/lib.rs                  |  0
 .../rustc_macros}/src/lift.rs                 |  0
 .../rustc_macros}/src/query.rs                |  0
 .../rustc_macros}/src/serialize.rs            |  0
 .../rustc_macros}/src/symbols.rs              |  0
 .../rustc_macros}/src/type_foldable.rs        |  0
 compiler/rustc_metadata/Cargo.toml            | 33 +++++++++++
 .../rustc_metadata/src}/creader.rs            |  0
 .../rustc_metadata/src}/dependency_format.rs  |  0
 .../rustc_metadata/src}/dynamic_lib.rs        |  0
 .../rustc_metadata/src}/dynamic_lib/tests.rs  |  0
 .../rustc_metadata/src}/foreign_modules.rs    |  0
 .../rustc_metadata/src}/lib.rs                |  0
 .../rustc_metadata/src}/link_args.rs          |  0
 .../rustc_metadata/src}/locator.rs            |  0
 .../rustc_metadata/src}/native_libs.rs        |  0
 .../rustc_metadata/src}/rmeta/decoder.rs      |  0
 .../src}/rmeta/decoder/cstore_impl.rs         |  0
 .../rustc_metadata/src}/rmeta/encoder.rs      |  0
 .../rustc_metadata/src}/rmeta/mod.rs          |  0
 .../rustc_metadata/src}/rmeta/table.rs        |  0
 compiler/rustc_middle/Cargo.toml              | 33 +++++++++++
 .../rustc_middle}/README.md                   |  0
 .../rustc_middle}/benches/lib.rs              |  0
 .../rustc_middle/src}/arena.rs                |  0
 .../rustc_middle/src}/dep_graph/dep_node.rs   |  0
 .../rustc_middle/src}/dep_graph/mod.rs        |  0
 .../rustc_middle/src}/hir/exports.rs          |  0
 .../rustc_middle/src}/hir/map/blocks.rs       |  0
 .../rustc_middle/src}/hir/map/collector.rs    |  0
 .../rustc_middle/src}/hir/map/mod.rs          |  0
 .../rustc_middle/src}/hir/mod.rs              |  0
 .../rustc_middle/src}/hir/place.rs            |  0
 .../rustc_middle/src}/ich/hcx.rs              |  0
 .../rustc_middle/src}/ich/impls_hir.rs        |  0
 .../rustc_middle/src}/ich/impls_syntax.rs     |  0
 .../rustc_middle/src}/ich/impls_ty.rs         |  0
 .../rustc_middle/src}/ich/mod.rs              |  0
 .../rustc_middle/src}/infer/canonical.rs      |  0
 .../rustc_middle/src}/infer/mod.rs            |  0
 .../rustc_middle/src}/infer/unify_key.rs      |  0
 .../rustc_middle/src}/lib.rs                  |  0
 .../rustc_middle/src}/lint.rs                 |  0
 .../rustc_middle/src}/macros.rs               |  0
 .../src}/middle/codegen_fn_attrs.rs           |  0
 .../rustc_middle/src}/middle/cstore.rs        |  0
 .../src}/middle/dependency_format.rs          |  0
 .../src}/middle/exported_symbols.rs           |  0
 .../rustc_middle/src}/middle/lang_items.rs    |  0
 .../rustc_middle/src}/middle/limits.rs        |  0
 .../rustc_middle/src}/middle/mod.rs           |  0
 .../rustc_middle/src}/middle/privacy.rs       |  0
 .../rustc_middle/src}/middle/region.rs        |  0
 .../src}/middle/resolve_lifetime.rs           |  0
 .../rustc_middle/src}/middle/stability.rs     |  0
 .../rustc_middle/src}/mir/coverage/mod.rs     |  0
 .../src}/mir/interpret/allocation.rs          |  0
 .../rustc_middle/src}/mir/interpret/error.rs  |  0
 .../rustc_middle/src}/mir/interpret/mod.rs    |  0
 .../src}/mir/interpret/pointer.rs             |  0
 .../src}/mir/interpret/queries.rs             |  0
 .../rustc_middle/src}/mir/interpret/value.rs  |  0
 .../rustc_middle/src}/mir/mod.rs              |  0
 .../rustc_middle/src}/mir/mono.rs             |  0
 .../rustc_middle/src}/mir/predecessors.rs     |  0
 .../rustc_middle/src}/mir/query.rs            |  0
 .../rustc_middle/src}/mir/tcx.rs              |  0
 .../rustc_middle/src}/mir/terminator/mod.rs   |  0
 .../rustc_middle/src}/mir/traversal.rs        |  0
 .../rustc_middle/src}/mir/type_foldable.rs    |  0
 .../rustc_middle/src}/mir/visit.rs            |  0
 .../rustc_middle/src}/query/mod.rs            |  0
 .../rustc_middle/src}/tests.rs                |  0
 .../rustc_middle/src}/traits/chalk.rs         |  0
 .../rustc_middle/src}/traits/mod.rs           |  0
 .../rustc_middle/src}/traits/query.rs         |  0
 .../rustc_middle/src}/traits/select.rs        |  0
 .../src}/traits/specialization_graph.rs       |  0
 .../src}/traits/structural_impls.rs           |  0
 .../rustc_middle/src}/ty/_match.rs            |  0
 .../rustc_middle/src}/ty/adjustment.rs        |  0
 .../rustc_middle/src}/ty/binding.rs           |  0
 .../rustc_middle/src}/ty/cast.rs              |  0
 .../rustc_middle/src}/ty/codec.rs             |  0
 .../rustc_middle/src}/ty/consts.rs            |  0
 .../rustc_middle/src}/ty/consts/int.rs        |  0
 .../rustc_middle/src}/ty/consts/kind.rs       |  0
 .../rustc_middle/src}/ty/context.rs           |  0
 .../rustc_middle/src}/ty/diagnostics.rs       |  0
 .../rustc_middle/src}/ty/erase_regions.rs     |  0
 .../rustc_middle/src}/ty/error.rs             |  0
 .../rustc_middle/src}/ty/fast_reject.rs       |  0
 .../rustc_middle/src}/ty/flags.rs             |  0
 .../rustc_middle/src}/ty/fold.rs              |  0
 .../src}/ty/inhabitedness/def_id_forest.rs    |  0
 .../rustc_middle/src}/ty/inhabitedness/mod.rs |  0
 .../rustc_middle/src}/ty/instance.rs          |  0
 .../rustc_middle/src}/ty/layout.rs            |  0
 .../rustc_middle/src}/ty/list.rs              |  0
 .../rustc_middle/src}/ty/mod.rs               |  0
 .../src}/ty/normalize_erasing_regions.rs      |  0
 .../rustc_middle/src}/ty/outlives.rs          |  0
 .../rustc_middle/src}/ty/print/mod.rs         |  0
 .../rustc_middle/src}/ty/print/obsolete.rs    |  0
 .../rustc_middle/src}/ty/print/pretty.rs      |  0
 .../rustc_middle/src}/ty/query/README.md      |  0
 .../rustc_middle/src}/ty/query/job.rs         |  0
 .../rustc_middle/src}/ty/query/keys.rs        |  0
 .../rustc_middle/src}/ty/query/mod.rs         |  0
 .../src}/ty/query/on_disk_cache.rs            |  0
 .../rustc_middle/src}/ty/query/plumbing.rs    |  0
 .../src}/ty/query/profiling_support.rs        |  0
 .../rustc_middle/src}/ty/query/stats.rs       |  0
 .../rustc_middle/src}/ty/query/values.rs      |  0
 .../rustc_middle/src}/ty/relate.rs            |  0
 .../rustc_middle/src}/ty/steal.rs             |  0
 .../rustc_middle/src}/ty/structural_impls.rs  |  0
 .../rustc_middle/src}/ty/sty.rs               |  0
 .../rustc_middle/src}/ty/subst.rs             |  0
 .../rustc_middle/src}/ty/trait_def.rs         |  0
 .../rustc_middle/src}/ty/util.rs              |  0
 .../rustc_middle/src}/ty/walk.rs              |  0
 .../rustc_middle/src}/util/bug.rs             |  0
 .../rustc_middle/src}/util/common.rs          |  0
 .../rustc_middle/src}/util/common/tests.rs    |  0
 compiler/rustc_mir/Cargo.toml                 | 33 +++++++++++
 .../rustc_mir/src}/borrow_check/borrow_set.rs |  0
 .../borrow_check/constraint_generation.rs     |  0
 .../src}/borrow_check/constraints/graph.rs    |  0
 .../src}/borrow_check/constraints/mod.rs      |  0
 .../rustc_mir/src}/borrow_check/def_use.rs    |  0
 .../diagnostics/conflict_errors.rs            |  0
 .../diagnostics/explain_borrow.rs             |  0
 .../src}/borrow_check/diagnostics/find_use.rs |  0
 .../src}/borrow_check/diagnostics/mod.rs      |  0
 .../borrow_check/diagnostics/move_errors.rs   |  0
 .../diagnostics/mutability_errors.rs          |  0
 .../diagnostics/outlives_suggestion.rs        |  0
 .../borrow_check/diagnostics/region_errors.rs |  0
 .../borrow_check/diagnostics/region_name.rs   |  0
 .../src}/borrow_check/diagnostics/var_name.rs |  0
 .../rustc_mir/src}/borrow_check/facts.rs      |  0
 .../src}/borrow_check/invalidation.rs         |  0
 .../rustc_mir/src}/borrow_check/location.rs   |  0
 .../src}/borrow_check/member_constraints.rs   |  0
 .../rustc_mir/src}/borrow_check/mod.rs        |  0
 .../rustc_mir/src}/borrow_check/nll.rs        |  0
 .../rustc_mir/src}/borrow_check/path_utils.rs |  0
 .../rustc_mir/src}/borrow_check/place_ext.rs  |  0
 .../src}/borrow_check/places_conflict.rs      |  0
 .../rustc_mir/src}/borrow_check/prefixes.rs   |  0
 .../borrow_check/region_infer/dump_mir.rs     |  0
 .../borrow_check/region_infer/graphviz.rs     |  0
 .../src}/borrow_check/region_infer/mod.rs     |  0
 .../borrow_check/region_infer/opaque_types.rs |  0
 .../borrow_check/region_infer/reverse_sccs.rs |  0
 .../src}/borrow_check/region_infer/values.rs  |  0
 .../rustc_mir/src}/borrow_check/renumber.rs   |  0
 .../type_check/constraint_conversion.rs       |  0
 .../type_check/free_region_relations.rs       |  0
 .../borrow_check/type_check/input_output.rs   |  0
 .../type_check/liveness/local_use_map.rs      |  0
 .../borrow_check/type_check/liveness/mod.rs   |  0
 .../type_check/liveness/polonius.rs           |  0
 .../borrow_check/type_check/liveness/trace.rs |  0
 .../src}/borrow_check/type_check/mod.rs       |  0
 .../borrow_check/type_check/relate_tys.rs     |  0
 .../src}/borrow_check/universal_regions.rs    |  0
 .../rustc_mir/src}/borrow_check/used_muts.rs  |  0
 .../rustc_mir/src}/const_eval/error.rs        |  0
 .../rustc_mir/src}/const_eval/eval_queries.rs |  0
 .../rustc_mir/src}/const_eval/fn_queries.rs   |  0
 .../rustc_mir/src}/const_eval/machine.rs      |  0
 .../rustc_mir/src}/const_eval/mod.rs          |  0
 .../src}/dataflow/drop_flag_effects.rs        |  0
 .../src}/dataflow/framework/cursor.rs         |  0
 .../src}/dataflow/framework/direction.rs      |  0
 .../src}/dataflow/framework/engine.rs         |  0
 .../src}/dataflow/framework/graphviz.rs       |  0
 .../rustc_mir/src}/dataflow/framework/mod.rs  |  0
 .../src}/dataflow/framework/tests.rs          |  0
 .../src}/dataflow/framework/visitor.rs        |  0
 .../src}/dataflow/impls/borrowed_locals.rs    |  0
 .../rustc_mir/src}/dataflow/impls/borrows.rs  |  0
 .../src}/dataflow/impls/init_locals.rs        |  0
 .../rustc_mir/src}/dataflow/impls/liveness.rs |  0
 .../rustc_mir/src}/dataflow/impls/mod.rs      |  0
 .../src}/dataflow/impls/storage_liveness.rs   |  0
 .../rustc_mir/src}/dataflow/mod.rs            |  0
 .../src}/dataflow/move_paths/abs_domain.rs    |  0
 .../src}/dataflow/move_paths/builder.rs       |  0
 .../rustc_mir/src}/dataflow/move_paths/mod.rs |  0
 .../rustc_mir/src}/interpret/cast.rs          |  0
 .../rustc_mir/src}/interpret/eval_context.rs  |  0
 .../rustc_mir/src}/interpret/intern.rs        |  0
 .../rustc_mir/src}/interpret/intrinsics.rs    |  0
 .../interpret/intrinsics/caller_location.rs   |  0
 .../src}/interpret/intrinsics/type_name.rs    |  0
 .../rustc_mir/src}/interpret/machine.rs       |  0
 .../rustc_mir/src}/interpret/memory.rs        |  0
 .../rustc_mir/src}/interpret/mod.rs           |  0
 .../rustc_mir/src}/interpret/operand.rs       |  0
 .../rustc_mir/src}/interpret/operator.rs      |  0
 .../rustc_mir/src}/interpret/place.rs         |  0
 .../rustc_mir/src}/interpret/step.rs          |  0
 .../rustc_mir/src}/interpret/terminator.rs    |  0
 .../rustc_mir/src}/interpret/traits.rs        |  0
 .../rustc_mir/src}/interpret/util.rs          |  0
 .../rustc_mir/src}/interpret/validity.rs      |  0
 .../rustc_mir/src}/interpret/visitor.rs       |  0
 .../rustc_mir/src}/lib.rs                     |  0
 .../rustc_mir/src}/monomorphize/collector.rs  |  0
 .../rustc_mir/src}/monomorphize/mod.rs        |  0
 .../src}/monomorphize/partitioning/default.rs |  0
 .../src}/monomorphize/partitioning/merging.rs |  0
 .../src}/monomorphize/partitioning/mod.rs     |  0
 .../src}/monomorphize/polymorphize.rs         |  0
 .../rustc_mir/src}/shim.rs                    |  0
 .../src}/transform/add_call_guards.rs         |  0
 .../transform/add_moves_for_packed_drops.rs   |  0
 .../rustc_mir/src}/transform/add_retag.rs     |  0
 .../src}/transform/check_consts/mod.rs        |  0
 .../src}/transform/check_consts/ops.rs        |  0
 .../check_consts/post_drop_elaboration.rs     |  0
 .../src}/transform/check_consts/qualifs.rs    |  0
 .../src}/transform/check_consts/resolver.rs   |  0
 .../src}/transform/check_consts/validation.rs |  0
 .../src}/transform/check_packed_ref.rs        |  0
 .../src}/transform/check_unsafety.rs          |  0
 .../src}/transform/cleanup_post_borrowck.rs   |  0
 .../rustc_mir/src}/transform/const_prop.rs    |  0
 .../rustc_mir/src}/transform/copy_prop.rs     |  0
 .../rustc_mir/src}/transform/deaggregator.rs  |  0
 .../rustc_mir/src}/transform/dump_mir.rs      |  0
 .../src}/transform/elaborate_drops.rs         |  0
 .../rustc_mir/src}/transform/generator.rs     |  0
 .../rustc_mir/src}/transform/inline.rs        |  0
 .../rustc_mir/src}/transform/instcombine.rs   |  0
 .../src}/transform/instrument_coverage.rs     |  0
 .../src}/transform/match_branches.rs          |  0
 .../rustc_mir/src}/transform/mod.rs           |  0
 .../src}/transform/no_landing_pads.rs         |  0
 .../rustc_mir/src}/transform/nrvo.rs          |  0
 .../src}/transform/promote_consts.rs          |  0
 .../src}/transform/qualify_min_const_fn.rs    |  0
 .../transform/remove_noop_landing_pads.rs     |  0
 .../src}/transform/required_consts.rs         |  0
 .../rustc_mir/src}/transform/rustc_peek.rs    |  0
 .../rustc_mir/src}/transform/simplify.rs      |  0
 .../src}/transform/simplify_branches.rs       |  0
 .../transform/simplify_comparison_integral.rs |  0
 .../rustc_mir/src}/transform/simplify_try.rs  |  0
 .../transform/uninhabited_enum_branching.rs   |  0
 .../src}/transform/unreachable_prop.rs        |  0
 .../rustc_mir/src}/transform/validate.rs      |  0
 .../rustc_mir/src}/util/aggregate.rs          |  0
 .../rustc_mir/src}/util/alignment.rs          |  0
 .../rustc_mir/src}/util/borrowck_errors.rs    |  0
 .../rustc_mir/src}/util/collect_writes.rs     |  0
 .../rustc_mir/src}/util/def_use.rs            |  0
 .../rustc_mir/src}/util/elaborate_drops.rs    |  0
 .../rustc_mir/src}/util/graphviz.rs           |  0
 .../rustc_mir/src}/util/mod.rs                |  0
 .../rustc_mir/src}/util/patch.rs              |  0
 .../rustc_mir/src}/util/pretty.rs             |  0
 .../rustc_mir/src}/util/storage.rs            |  0
 compiler/rustc_mir_build/Cargo.toml           | 27 +++++++++
 .../rustc_mir_build/src}/build/block.rs       |  0
 .../rustc_mir_build/src}/build/cfg.rs         |  0
 .../src}/build/expr/as_constant.rs            |  0
 .../src}/build/expr/as_operand.rs             |  0
 .../src}/build/expr/as_place.rs               |  0
 .../src}/build/expr/as_rvalue.rs              |  0
 .../src}/build/expr/as_temp.rs                |  0
 .../src}/build/expr/category.rs               |  0
 .../rustc_mir_build/src}/build/expr/into.rs   |  0
 .../rustc_mir_build/src}/build/expr/mod.rs    |  0
 .../rustc_mir_build/src}/build/expr/stmt.rs   |  0
 .../rustc_mir_build/src}/build/into.rs        |  0
 .../rustc_mir_build/src}/build/matches/mod.rs |  0
 .../src}/build/matches/simplify.rs            |  0
 .../src}/build/matches/test.rs                |  0
 .../src}/build/matches/util.rs                |  0
 .../rustc_mir_build/src}/build/misc.rs        |  0
 .../rustc_mir_build/src}/build/mod.rs         |  0
 .../rustc_mir_build/src}/build/scope.rs       |  0
 .../rustc_mir_build/src}/lib.rs               |  0
 .../rustc_mir_build/src}/lints.rs             |  0
 .../rustc_mir_build/src}/thir/constant.rs     |  0
 .../rustc_mir_build/src}/thir/cx/block.rs     |  0
 .../rustc_mir_build/src}/thir/cx/expr.rs      |  0
 .../rustc_mir_build/src}/thir/cx/mod.rs       |  0
 .../rustc_mir_build/src}/thir/cx/to_ref.rs    |  0
 .../rustc_mir_build/src}/thir/mod.rs          |  0
 .../src}/thir/pattern/_match.rs               |  0
 .../src}/thir/pattern/check_match.rs          |  0
 .../src}/thir/pattern/const_to_pat.rs         |  0
 .../rustc_mir_build/src}/thir/pattern/mod.rs  |  0
 .../rustc_mir_build/src}/thir/util.rs         |  0
 compiler/rustc_parse/Cargo.toml               | 22 +++++++
 .../rustc_parse/src}/lexer/mod.rs             |  0
 .../rustc_parse/src}/lexer/tokentrees.rs      |  0
 .../src}/lexer/unescape_error_reporting.rs    |  0
 .../rustc_parse/src}/lexer/unicode_chars.rs   |  0
 .../rustc_parse/src}/lib.rs                   |  0
 .../rustc_parse/src}/parser/attr.rs           |  0
 .../rustc_parse/src}/parser/diagnostics.rs    |  0
 .../rustc_parse/src}/parser/expr.rs           |  0
 .../rustc_parse/src}/parser/generics.rs       |  0
 .../rustc_parse/src}/parser/item.rs           |  0
 .../rustc_parse/src}/parser/mod.rs            |  0
 .../rustc_parse/src}/parser/nonterminal.rs    |  0
 .../rustc_parse/src}/parser/pat.rs            |  0
 .../rustc_parse/src}/parser/path.rs           |  0
 .../rustc_parse/src}/parser/stmt.rs           |  0
 .../rustc_parse/src}/parser/ty.rs             |  0
 .../rustc_parse/src}/validate_attr.rs         |  0
 compiler/rustc_parse_format/Cargo.toml        |  9 +++
 .../rustc_parse_format/src}/lib.rs            |  0
 .../rustc_parse_format/src}/tests.rs          |  0
 compiler/rustc_passes/Cargo.toml              | 19 +++++++
 .../rustc_passes/src}/check_attr.rs           |  0
 .../rustc_passes/src}/check_const.rs          |  0
 .../rustc_passes/src}/dead.rs                 |  0
 .../rustc_passes/src}/diagnostic_items.rs     |  0
 .../rustc_passes/src}/entry.rs                |  0
 .../rustc_passes/src}/hir_id_validator.rs     |  0
 .../rustc_passes/src}/hir_stats.rs            |  0
 .../rustc_passes/src}/intrinsicck.rs          |  0
 .../rustc_passes/src}/lang_items.rs           |  0
 .../rustc_passes/src}/layout_test.rs          |  0
 .../rustc_passes/src}/lib.rs                  |  0
 .../rustc_passes/src}/lib_features.rs         |  0
 .../rustc_passes/src}/liveness.rs             |  0
 .../rustc_passes/src}/loops.rs                |  0
 .../rustc_passes/src}/reachable.rs            |  0
 .../rustc_passes/src}/region.rs               |  0
 .../rustc_passes/src}/stability.rs            |  0
 .../rustc_passes/src}/upvars.rs               |  0
 .../rustc_passes/src}/weak_lang_items.rs      |  0
 compiler/rustc_plugin_impl/Cargo.toml         | 19 +++++++
 .../rustc_plugin_impl/src}/build.rs           |  0
 .../rustc_plugin_impl/src}/lib.rs             |  0
 .../rustc_plugin_impl/src}/load.rs            |  0
 compiler/rustc_privacy/Cargo.toml             | 16 ++++++
 .../rustc_privacy/src}/lib.rs                 |  0
 compiler/rustc_query_system/Cargo.toml        | 21 +++++++
 .../rustc_query_system/src}/cache.rs          |  0
 .../src}/dep_graph/README.md                  |  0
 .../src}/dep_graph/debug.rs                   |  0
 .../src}/dep_graph/dep_node.rs                |  0
 .../src}/dep_graph/graph.rs                   |  0
 .../rustc_query_system/src}/dep_graph/mod.rs  |  0
 .../rustc_query_system/src}/dep_graph/prev.rs |  0
 .../src}/dep_graph/query.rs                   |  0
 .../src}/dep_graph/serialized.rs              |  0
 .../rustc_query_system/src}/lib.rs            |  0
 .../rustc_query_system/src}/query/README.md   |  0
 .../rustc_query_system/src}/query/caches.rs   |  0
 .../rustc_query_system/src}/query/config.rs   |  0
 .../rustc_query_system/src}/query/job.rs      |  0
 .../rustc_query_system/src}/query/mod.rs      |  0
 .../rustc_query_system/src}/query/plumbing.rs |  0
 compiler/rustc_resolve/Cargo.toml             | 29 ++++++++++
 .../rustc_resolve/src}/build_reduced_graph.rs |  0
 .../rustc_resolve/src}/check_unused.rs        |  0
 .../rustc_resolve/src}/def_collector.rs       |  0
 .../rustc_resolve/src}/diagnostics.rs         |  0
 .../rustc_resolve/src}/imports.rs             |  0
 .../rustc_resolve/src}/late.rs                |  0
 .../rustc_resolve/src}/late/diagnostics.rs    |  0
 .../rustc_resolve/src}/late/lifetimes.rs      |  0
 .../rustc_resolve/src}/lib.rs                 |  0
 .../rustc_resolve/src}/macros.rs              |  0
 compiler/rustc_save_analysis/Cargo.toml       | 20 +++++++
 .../rustc_save_analysis/src}/dump_visitor.rs  |  0
 .../rustc_save_analysis/src}/dumper.rs        |  0
 .../rustc_save_analysis/src}/lib.rs           |  0
 .../rustc_save_analysis/src}/sig.rs           |  0
 .../rustc_save_analysis/src}/span_utils.rs    |  0
 .../rustc_serialize}/Cargo.toml               |  6 +-
 .../rustc_serialize/src}/collection_impls.rs  |  0
 .../rustc_serialize/src}/json.rs              |  0
 .../rustc_serialize/src}/json/tests.rs        |  0
 .../rustc_serialize/src}/leb128.rs            |  0
 .../rustc_serialize/src}/lib.rs               |  0
 .../rustc_serialize/src}/opaque.rs            |  0
 .../rustc_serialize/src}/serialize.rs         |  0
 .../rustc_serialize}/tests/json.rs            |  0
 .../rustc_serialize}/tests/leb128.rs          |  0
 .../rustc_serialize}/tests/opaque.rs          |  0
 compiler/rustc_session/Cargo.toml             | 20 +++++++
 .../rustc_session/src}/cgu_reuse_tracker.rs   |  0
 .../rustc_session/src}/code_stats.rs          |  0
 .../rustc_session/src}/config.rs              |  0
 .../rustc_session/src}/filesearch.rs          |  0
 .../rustc_session/src}/lib.rs                 |  0
 .../rustc_session/src}/lint.rs                |  0
 .../rustc_session/src}/lint/builtin.rs        |  0
 .../rustc_session/src}/options.rs             |  0
 .../rustc_session/src}/output.rs              |  0
 .../rustc_session/src}/parse.rs               |  0
 .../rustc_session/src}/search_paths.rs        |  0
 .../rustc_session/src}/session.rs             |  0
 .../rustc_session/src}/utils.rs               |  0
 compiler/rustc_span/Cargo.toml                | 21 +++++++
 .../rustc_span/src}/analyze_source_file.rs    |  0
 .../src}/analyze_source_file/tests.rs         |  0
 .../src}/caching_source_map_view.rs           |  0
 .../rustc_span/src}/def_id.rs                 |  0
 .../rustc_span/src}/edition.rs                |  0
 .../rustc_span/src}/fatal_error.rs            |  0
 .../rustc_span/src}/hygiene.rs                |  0
 .../rustc_span/src}/lib.rs                    |  0
 .../rustc_span/src}/source_map.rs             |  0
 .../rustc_span/src}/source_map/tests.rs       |  0
 .../rustc_span/src}/span_encoding.rs          |  0
 .../rustc_span/src}/symbol.rs                 |  0
 .../rustc_span/src}/symbol/tests.rs           |  0
 .../rustc_span/src}/tests.rs                  |  0
 compiler/rustc_symbol_mangling/Cargo.toml     | 21 +++++++
 .../rustc_symbol_mangling/src}/legacy.rs      |  0
 .../rustc_symbol_mangling/src}/lib.rs         |  0
 .../rustc_symbol_mangling/src}/test.rs        |  0
 .../rustc_symbol_mangling/src}/v0.rs          |  0
 compiler/rustc_target/Cargo.toml              | 14 +++++
 .../rustc_target}/README.md                   |  0
 .../rustc_target/src}/abi/call/aarch64.rs     |  0
 .../rustc_target/src}/abi/call/amdgpu.rs      |  0
 .../rustc_target/src}/abi/call/arm.rs         |  0
 .../rustc_target/src}/abi/call/avr.rs         |  0
 .../rustc_target/src}/abi/call/hexagon.rs     |  0
 .../rustc_target/src}/abi/call/mips.rs        |  0
 .../rustc_target/src}/abi/call/mips64.rs      |  0
 .../rustc_target/src}/abi/call/mod.rs         |  0
 .../rustc_target/src}/abi/call/msp430.rs      |  0
 .../rustc_target/src}/abi/call/nvptx.rs       |  0
 .../rustc_target/src}/abi/call/nvptx64.rs     |  0
 .../rustc_target/src}/abi/call/powerpc.rs     |  0
 .../rustc_target/src}/abi/call/powerpc64.rs   |  0
 .../rustc_target/src}/abi/call/riscv.rs       |  0
 .../rustc_target/src}/abi/call/s390x.rs       |  0
 .../rustc_target/src}/abi/call/sparc.rs       |  0
 .../rustc_target/src}/abi/call/sparc64.rs     |  0
 .../rustc_target/src}/abi/call/wasm32.rs      |  0
 .../src}/abi/call/wasm32_bindgen_compat.rs    |  0
 .../rustc_target/src}/abi/call/x86.rs         |  0
 .../rustc_target/src}/abi/call/x86_64.rs      |  0
 .../rustc_target/src}/abi/call/x86_win64.rs   |  0
 .../rustc_target/src}/abi/mod.rs              |  0
 .../rustc_target/src}/asm/aarch64.rs          |  0
 .../rustc_target/src}/asm/arm.rs              |  0
 .../rustc_target/src}/asm/hexagon.rs          |  0
 .../rustc_target/src}/asm/mod.rs              |  0
 .../rustc_target/src}/asm/nvptx.rs            |  0
 .../rustc_target/src}/asm/riscv.rs            |  0
 .../rustc_target/src}/asm/x86.rs              |  0
 .../rustc_target/src}/lib.rs                  |  0
 .../src}/spec/aarch64_apple_darwin.rs         |  0
 .../src}/spec/aarch64_apple_ios.rs            |  0
 .../src}/spec/aarch64_apple_tvos.rs           |  0
 .../rustc_target/src}/spec/aarch64_fuchsia.rs |  0
 .../src}/spec/aarch64_linux_android.rs        |  0
 .../src}/spec/aarch64_pc_windows_msvc.rs      |  0
 .../src}/spec/aarch64_unknown_cloudabi.rs     |  0
 .../src}/spec/aarch64_unknown_freebsd.rs      |  0
 .../src}/spec/aarch64_unknown_hermit.rs       |  0
 .../src}/spec/aarch64_unknown_linux_gnu.rs    |  0
 .../src}/spec/aarch64_unknown_linux_musl.rs   |  0
 .../src}/spec/aarch64_unknown_netbsd.rs       |  0
 .../src}/spec/aarch64_unknown_none.rs         |  0
 .../spec/aarch64_unknown_none_softfloat.rs    |  0
 .../src}/spec/aarch64_unknown_openbsd.rs      |  0
 .../src}/spec/aarch64_unknown_redox.rs        |  0
 .../src}/spec/aarch64_uwp_windows_msvc.rs     |  0
 .../src}/spec/aarch64_wrs_vxworks.rs          |  0
 .../rustc_target/src}/spec/abi.rs             |  0
 .../rustc_target/src}/spec/abi/tests.rs       |  0
 .../rustc_target/src}/spec/android_base.rs    |  0
 .../rustc_target/src}/spec/apple_base.rs      |  0
 .../rustc_target/src}/spec/apple_sdk_base.rs  |  0
 .../rustc_target/src}/spec/arm_base.rs        |  0
 .../src}/spec/arm_linux_androideabi.rs        |  0
 .../src}/spec/arm_unknown_linux_gnueabi.rs    |  0
 .../src}/spec/arm_unknown_linux_gnueabihf.rs  |  0
 .../src}/spec/arm_unknown_linux_musleabi.rs   |  0
 .../src}/spec/arm_unknown_linux_musleabihf.rs |  0
 .../src}/spec/armebv7r_none_eabi.rs           |  0
 .../src}/spec/armebv7r_none_eabihf.rs         |  0
 .../src}/spec/armv4t_unknown_linux_gnueabi.rs |  0
 .../spec/armv5te_unknown_linux_gnueabi.rs     |  0
 .../spec/armv5te_unknown_linux_musleabi.rs    |  0
 .../src}/spec/armv6_unknown_freebsd.rs        |  0
 .../src}/spec/armv6_unknown_netbsd_eabihf.rs  |  0
 .../rustc_target/src}/spec/armv7_apple_ios.rs |  0
 .../src}/spec/armv7_linux_androideabi.rs      |  0
 .../spec/armv7_unknown_cloudabi_eabihf.rs     |  0
 .../src}/spec/armv7_unknown_freebsd.rs        |  0
 .../src}/spec/armv7_unknown_linux_gnueabi.rs  |  0
 .../spec/armv7_unknown_linux_gnueabihf.rs     |  0
 .../src}/spec/armv7_unknown_linux_musleabi.rs |  0
 .../spec/armv7_unknown_linux_musleabihf.rs    |  0
 .../src}/spec/armv7_unknown_netbsd_eabihf.rs  |  0
 .../src}/spec/armv7_wrs_vxworks_eabihf.rs     |  0
 .../src}/spec/armv7a_none_eabi.rs             |  0
 .../src}/spec/armv7a_none_eabihf.rs           |  0
 .../src}/spec/armv7r_none_eabi.rs             |  0
 .../src}/spec/armv7r_none_eabihf.rs           |  0
 .../src}/spec/armv7s_apple_ios.rs             |  0
 .../src}/spec/asmjs_unknown_emscripten.rs     |  0
 .../rustc_target/src}/spec/avr_gnu_base.rs    |  0
 .../src}/spec/avr_unknown_gnu_atmega328.rs    |  0
 .../rustc_target/src}/spec/cloudabi_base.rs   |  0
 .../rustc_target/src}/spec/crt_objects.rs     |  0
 .../rustc_target/src}/spec/dragonfly_base.rs  |  0
 .../rustc_target/src}/spec/freebsd_base.rs    |  0
 .../rustc_target/src}/spec/fuchsia_base.rs    |  0
 .../rustc_target/src}/spec/haiku_base.rs      |  0
 .../rustc_target/src}/spec/hermit_base.rs     |  0
 .../src}/spec/hermit_kernel_base.rs           |  0
 .../src}/spec/hexagon_unknown_linux_musl.rs   |  0
 .../rustc_target/src}/spec/i386_apple_ios.rs  |  0
 .../src}/spec/i586_pc_windows_msvc.rs         |  0
 .../src}/spec/i586_unknown_linux_gnu.rs       |  0
 .../src}/spec/i586_unknown_linux_musl.rs      |  0
 .../src}/spec/i686_apple_darwin.rs            |  0
 .../src}/spec/i686_linux_android.rs           |  0
 .../src}/spec/i686_pc_windows_gnu.rs          |  0
 .../src}/spec/i686_pc_windows_msvc.rs         |  0
 .../src}/spec/i686_unknown_cloudabi.rs        |  0
 .../src}/spec/i686_unknown_freebsd.rs         |  0
 .../src}/spec/i686_unknown_haiku.rs           |  0
 .../src}/spec/i686_unknown_linux_gnu.rs       |  0
 .../src}/spec/i686_unknown_linux_musl.rs      |  0
 .../src}/spec/i686_unknown_netbsd.rs          |  0
 .../src}/spec/i686_unknown_openbsd.rs         |  0
 .../src}/spec/i686_unknown_uefi.rs            |  0
 .../src}/spec/i686_uwp_windows_gnu.rs         |  0
 .../src}/spec/i686_uwp_windows_msvc.rs        |  0
 .../src}/spec/i686_wrs_vxworks.rs             |  0
 .../rustc_target/src}/spec/illumos_base.rs    |  0
 .../rustc_target/src}/spec/l4re_base.rs       |  0
 .../rustc_target/src}/spec/linux_base.rs      |  0
 .../src}/spec/linux_kernel_base.rs            |  0
 .../rustc_target/src}/spec/linux_musl_base.rs |  0
 .../spec/mips64_unknown_linux_gnuabi64.rs     |  0
 .../spec/mips64_unknown_linux_muslabi64.rs    |  0
 .../spec/mips64el_unknown_linux_gnuabi64.rs   |  0
 .../spec/mips64el_unknown_linux_muslabi64.rs  |  0
 .../src}/spec/mips_unknown_linux_gnu.rs       |  0
 .../src}/spec/mips_unknown_linux_musl.rs      |  0
 .../src}/spec/mips_unknown_linux_uclibc.rs    |  0
 .../rustc_target/src}/spec/mipsel_sony_psp.rs |  0
 .../spec/mipsel_sony_psp_linker_script.ld     |  0
 .../src}/spec/mipsel_unknown_linux_gnu.rs     |  0
 .../src}/spec/mipsel_unknown_linux_musl.rs    |  0
 .../src}/spec/mipsel_unknown_linux_uclibc.rs  |  0
 .../spec/mipsisa32r6_unknown_linux_gnu.rs     |  0
 .../spec/mipsisa32r6el_unknown_linux_gnu.rs   |  0
 .../mipsisa64r6_unknown_linux_gnuabi64.rs     |  0
 .../mipsisa64r6el_unknown_linux_gnuabi64.rs   |  0
 .../rustc_target/src}/spec/mod.rs             |  0
 .../rustc_target/src}/spec/msp430_none_elf.rs |  0
 .../rustc_target/src}/spec/msvc_base.rs       |  0
 .../rustc_target/src}/spec/netbsd_base.rs     |  0
 .../src}/spec/nvptx64_nvidia_cuda.rs          |  0
 .../rustc_target/src}/spec/openbsd_base.rs    |  0
 .../src}/spec/powerpc64_unknown_freebsd.rs    |  0
 .../src}/spec/powerpc64_unknown_linux_gnu.rs  |  0
 .../src}/spec/powerpc64_unknown_linux_musl.rs |  0
 .../src}/spec/powerpc64_wrs_vxworks.rs        |  0
 .../spec/powerpc64le_unknown_linux_gnu.rs     |  0
 .../spec/powerpc64le_unknown_linux_musl.rs    |  0
 .../src}/spec/powerpc_unknown_linux_gnu.rs    |  0
 .../src}/spec/powerpc_unknown_linux_gnuspe.rs |  0
 .../src}/spec/powerpc_unknown_linux_musl.rs   |  0
 .../src}/spec/powerpc_unknown_netbsd.rs       |  0
 .../src}/spec/powerpc_wrs_vxworks.rs          |  0
 .../src}/spec/powerpc_wrs_vxworks_spe.rs      |  0
 .../rustc_target/src}/spec/redox_base.rs      |  0
 .../src}/spec/riscv32i_unknown_none_elf.rs    |  0
 .../src}/spec/riscv32imac_unknown_none_elf.rs |  0
 .../src}/spec/riscv32imc_unknown_none_elf.rs  |  0
 .../src}/spec/riscv64gc_unknown_linux_gnu.rs  |  0
 .../src}/spec/riscv64gc_unknown_none_elf.rs   |  0
 .../src}/spec/riscv64imac_unknown_none_elf.rs |  0
 .../rustc_target/src}/spec/riscv_base.rs      |  0
 .../src}/spec/s390x_unknown_linux_gnu.rs      |  0
 .../rustc_target/src}/spec/solaris_base.rs    |  0
 .../src}/spec/sparc64_unknown_linux_gnu.rs    |  0
 .../src}/spec/sparc64_unknown_netbsd.rs       |  0
 .../src}/spec/sparc64_unknown_openbsd.rs      |  0
 .../src}/spec/sparc_unknown_linux_gnu.rs      |  0
 .../src}/spec/sparcv9_sun_solaris.rs          |  0
 .../src}/spec/tests/tests_impl.rs             |  0
 .../rustc_target/src}/spec/thumb_base.rs      |  0
 .../src}/spec/thumbv4t_none_eabi.rs           |  0
 .../src}/spec/thumbv6m_none_eabi.rs           |  0
 .../src}/spec/thumbv7a_pc_windows_msvc.rs     |  0
 .../src}/spec/thumbv7a_uwp_windows_msvc.rs    |  0
 .../src}/spec/thumbv7em_none_eabi.rs          |  0
 .../src}/spec/thumbv7em_none_eabihf.rs        |  0
 .../src}/spec/thumbv7m_none_eabi.rs           |  0
 .../spec/thumbv7neon_linux_androideabi.rs     |  0
 .../thumbv7neon_unknown_linux_gnueabihf.rs    |  0
 .../thumbv7neon_unknown_linux_musleabihf.rs   |  0
 .../src}/spec/thumbv8m_base_none_eabi.rs      |  0
 .../src}/spec/thumbv8m_main_none_eabi.rs      |  0
 .../src}/spec/thumbv8m_main_none_eabihf.rs    |  0
 .../rustc_target/src}/spec/uefi_msvc_base.rs  |  0
 .../rustc_target/src}/spec/vxworks_base.rs    |  0
 .../rustc_target/src}/spec/wasm32_base.rs     |  0
 .../src}/spec/wasm32_unknown_emscripten.rs    |  0
 .../src}/spec/wasm32_unknown_unknown.rs       |  0
 .../rustc_target/src}/spec/wasm32_wasi.rs     |  0
 .../src}/spec/windows_gnu_base.rs             |  0
 .../src}/spec/windows_msvc_base.rs            |  0
 .../src}/spec/windows_uwp_gnu_base.rs         |  0
 .../src}/spec/windows_uwp_msvc_base.rs        |  0
 .../src}/spec/x86_64_apple_darwin.rs          |  0
 .../src}/spec/x86_64_apple_ios.rs             |  0
 .../src}/spec/x86_64_apple_ios_macabi.rs      |  0
 .../src}/spec/x86_64_apple_tvos.rs            |  0
 .../src}/spec/x86_64_fortanix_unknown_sgx.rs  |  0
 .../rustc_target/src}/spec/x86_64_fuchsia.rs  |  0
 .../src}/spec/x86_64_linux_android.rs         |  0
 .../src}/spec/x86_64_linux_kernel.rs          |  0
 .../src}/spec/x86_64_pc_windows_gnu.rs        |  0
 .../src}/spec/x86_64_pc_windows_msvc.rs       |  0
 .../src}/spec/x86_64_rumprun_netbsd.rs        |  0
 .../src}/spec/x86_64_sun_solaris.rs           |  0
 .../src}/spec/x86_64_unknown_cloudabi.rs      |  0
 .../src}/spec/x86_64_unknown_dragonfly.rs     |  0
 .../src}/spec/x86_64_unknown_freebsd.rs       |  0
 .../src}/spec/x86_64_unknown_haiku.rs         |  0
 .../src}/spec/x86_64_unknown_hermit.rs        |  0
 .../src}/spec/x86_64_unknown_hermit_kernel.rs |  0
 .../src}/spec/x86_64_unknown_illumos.rs       |  0
 .../src}/spec/x86_64_unknown_l4re_uclibc.rs   |  0
 .../src}/spec/x86_64_unknown_linux_gnu.rs     |  0
 .../src}/spec/x86_64_unknown_linux_gnux32.rs  |  0
 .../src}/spec/x86_64_unknown_linux_musl.rs    |  0
 .../src}/spec/x86_64_unknown_netbsd.rs        |  0
 .../src}/spec/x86_64_unknown_openbsd.rs       |  0
 .../src}/spec/x86_64_unknown_redox.rs         |  0
 .../src}/spec/x86_64_unknown_uefi.rs          |  0
 .../src}/spec/x86_64_uwp_windows_gnu.rs       |  0
 .../src}/spec/x86_64_uwp_windows_msvc.rs      |  0
 .../src}/spec/x86_64_wrs_vxworks.rs           |  0
 compiler/rustc_trait_selection/Cargo.toml     | 25 ++++++++
 .../rustc_trait_selection/src}/autoderef.rs   |  0
 .../rustc_trait_selection/src}/infer.rs       |  0
 .../rustc_trait_selection/src}/lib.rs         |  0
 .../src}/opaque_types.rs                      |  0
 .../src}/traits/auto_trait.rs                 |  0
 .../src}/traits/chalk_fulfill.rs              |  0
 .../src}/traits/codegen/mod.rs                |  0
 .../src}/traits/coherence.rs                  |  0
 .../src}/traits/engine.rs                     |  0
 .../src}/traits/error_reporting/mod.rs        |  0
 .../error_reporting/on_unimplemented.rs       |  0
 .../traits/error_reporting/suggestions.rs     |  0
 .../src}/traits/fulfill.rs                    |  0
 .../rustc_trait_selection/src}/traits/misc.rs |  0
 .../rustc_trait_selection/src}/traits/mod.rs  |  0
 .../src}/traits/object_safety.rs              |  0
 .../src}/traits/on_unimplemented.rs           |  0
 .../src}/traits/project.rs                    |  0
 .../src}/traits/query/dropck_outlives.rs      |  0
 .../src}/traits/query/evaluate_obligation.rs  |  0
 .../src}/traits/query/method_autoderef.rs     |  0
 .../src}/traits/query/mod.rs                  |  0
 .../src}/traits/query/normalize.rs            |  0
 .../src}/traits/query/outlives_bounds.rs      |  0
 .../traits/query/type_op/ascribe_user_type.rs |  0
 .../src}/traits/query/type_op/custom.rs       |  0
 .../src}/traits/query/type_op/eq.rs           |  0
 .../query/type_op/implied_outlives_bounds.rs  |  0
 .../src}/traits/query/type_op/mod.rs          |  0
 .../src}/traits/query/type_op/normalize.rs    |  0
 .../src}/traits/query/type_op/outlives.rs     |  0
 .../traits/query/type_op/prove_predicate.rs   |  0
 .../src}/traits/query/type_op/subtype.rs      |  0
 .../src}/traits/select/candidate_assembly.rs  |  0
 .../src}/traits/select/confirmation.rs        |  0
 .../src}/traits/select/mod.rs                 |  0
 .../src}/traits/specialize/mod.rs             |  0
 .../traits/specialize/specialization_graph.rs |  0
 .../src}/traits/structural_match.rs           |  0
 .../rustc_trait_selection/src}/traits/util.rs |  0
 .../rustc_trait_selection/src}/traits/wf.rs   |  0
 compiler/rustc_traits/Cargo.toml              | 19 +++++++
 .../rustc_traits/src}/chalk/db.rs             |  0
 .../rustc_traits/src}/chalk/lowering.rs       |  0
 .../rustc_traits/src}/chalk/mod.rs            |  0
 .../rustc_traits/src}/dropck_outlives.rs      |  0
 .../rustc_traits/src}/evaluate_obligation.rs  |  0
 .../src}/implied_outlives_bounds.rs           |  0
 .../rustc_traits/src}/lib.rs                  |  0
 .../src}/normalize_erasing_regions.rs         |  0
 .../src}/normalize_projection_ty.rs           |  0
 .../rustc_traits/src}/type_op.rs              |  0
 compiler/rustc_ty/Cargo.toml                  | 17 ++++++
 .../rustc_ty/src}/common_traits.rs            |  0
 .../rustc_ty/src}/instance.rs                 |  0
 .../rustc_ty/src}/lib.rs                      |  0
 .../rustc_ty/src}/needs_drop.rs               |  0
 .../rustc_ty/src}/ty.rs                       |  0
 compiler/rustc_typeck/Cargo.toml              | 27 +++++++++
 .../rustc_typeck}/README.md                   |  0
 .../rustc_typeck/src}/astconv/errors.rs       |  0
 .../rustc_typeck/src}/astconv/generics.rs     |  0
 .../rustc_typeck/src}/astconv/mod.rs          |  0
 .../rustc_typeck/src}/bounds.rs               |  0
 .../rustc_typeck/src}/check/_match.rs         |  0
 .../rustc_typeck/src}/check/autoderef.rs      |  0
 .../rustc_typeck/src}/check/callee.rs         |  0
 .../rustc_typeck/src}/check/cast.rs           |  0
 .../rustc_typeck/src}/check/closure.rs        |  0
 .../rustc_typeck/src}/check/coercion.rs       |  0
 .../rustc_typeck/src}/check/compare_method.rs |  0
 .../rustc_typeck/src}/check/demand.rs         |  0
 .../rustc_typeck/src}/check/dropck.rs         |  0
 .../rustc_typeck/src}/check/expr.rs           |  0
 .../src}/check/generator_interior.rs          |  0
 .../rustc_typeck/src}/check/intrinsic.rs      |  0
 .../rustc_typeck/src}/check/method/confirm.rs |  0
 .../rustc_typeck/src}/check/method/mod.rs     |  0
 .../rustc_typeck/src}/check/method/probe.rs   |  0
 .../rustc_typeck/src}/check/method/suggest.rs |  0
 .../rustc_typeck/src}/check/mod.rs            |  0
 .../rustc_typeck/src}/check/op.rs             |  0
 .../rustc_typeck/src}/check/pat.rs            |  0
 .../rustc_typeck/src}/check/place_op.rs       |  0
 .../rustc_typeck/src}/check/regionck.rs       |  0
 .../rustc_typeck/src}/check/upvar.rs          |  0
 .../rustc_typeck/src}/check/wfcheck.rs        |  0
 .../rustc_typeck/src}/check/writeback.rs      |  0
 .../rustc_typeck/src}/check_unused.rs         |  0
 .../rustc_typeck/src}/coherence/builtin.rs    |  0
 .../src}/coherence/inherent_impls.rs          |  0
 .../src}/coherence/inherent_impls_overlap.rs  |  0
 .../rustc_typeck/src}/coherence/mod.rs        |  0
 .../rustc_typeck/src}/coherence/orphan.rs     |  0
 .../rustc_typeck/src}/coherence/unsafety.rs   |  0
 .../rustc_typeck/src}/collect.rs              |  0
 .../rustc_typeck/src}/collect/type_of.rs      |  0
 .../src}/constrained_generic_params.rs        |  0
 .../rustc_typeck/src}/expr_use_visitor.rs     |  0
 .../rustc_typeck/src}/impl_wf_check.rs        |  0
 .../src}/impl_wf_check/min_specialization.rs  |  0
 .../rustc_typeck/src}/lib.rs                  |  0
 .../rustc_typeck/src}/mem_categorization.rs   |  0
 .../rustc_typeck/src}/outlives/explicit.rs    |  0
 .../src}/outlives/implicit_infer.rs           |  0
 .../rustc_typeck/src}/outlives/mod.rs         |  0
 .../rustc_typeck/src}/outlives/test.rs        |  0
 .../rustc_typeck/src}/outlives/utils.rs       |  0
 .../rustc_typeck/src}/structured_errors.rs    |  0
 .../rustc_typeck/src}/variance/constraints.rs |  0
 .../rustc_typeck/src}/variance/mod.rs         |  0
 .../rustc_typeck/src}/variance/solve.rs       |  0
 .../rustc_typeck/src}/variance/terms.rs       |  0
 .../rustc_typeck/src}/variance/test.rs        |  0
 .../rustc_typeck/src}/variance/xform.rs       |  0
 src/bootstrap/README.md                       |  2 +-
 src/bootstrap/builder/tests.rs                |  2 +-
 src/bootstrap/compile.rs                      |  4 +-
 src/bootstrap/dist.rs                         |  2 +-
 src/bootstrap/doc.rs                          |  1 +
 src/bootstrap/flags.rs                        |  2 +-
 src/bootstrap/test.rs                         |  2 +-
 src/librustc_ast/Cargo.toml                   | 21 -------
 src/librustc_ast_lowering/Cargo.toml          | 24 --------
 src/librustc_ast_passes/Cargo.toml            | 22 -------
 src/librustc_ast_pretty/Cargo.toml            | 16 ------
 src/librustc_attr/Cargo.toml                  | 23 --------
 src/librustc_builtin_macros/Cargo.toml        | 26 ---------
 src/librustc_codegen_llvm/Cargo.toml          | 36 ------------
 src/librustc_codegen_ssa/Cargo.toml           | 38 -------------
 src/librustc_driver/Cargo.toml                | 43 --------------
 src/librustc_expand/Cargo.toml                | 28 ---------
 src/librustc_hir/Cargo.toml                   | 22 -------
 src/librustc_hir_pretty/Cargo.toml            | 17 ------
 src/librustc_incremental/Cargo.toml           | 24 --------
 src/librustc_infer/Cargo.toml                 | 26 ---------
 src/librustc_interface/Cargo.toml             | 57 -------------------
 src/librustc_lint/Cargo.toml                  | 26 ---------
 src/librustc_metadata/Cargo.toml              | 35 ------------
 src/librustc_middle/Cargo.toml                | 35 ------------
 src/librustc_mir/Cargo.toml                   | 35 ------------
 src/librustc_mir_build/Cargo.toml             | 29 ----------
 src/librustc_parse/Cargo.toml                 | 24 --------
 src/librustc_parse_format/Cargo.toml          | 13 -----
 src/librustc_passes/Cargo.toml                | 23 --------
 src/librustc_plugin_impl/Cargo.toml           | 21 -------
 src/librustc_privacy/Cargo.toml               | 20 -------
 src/librustc_query_system/Cargo.toml          | 23 --------
 src/librustc_resolve/Cargo.toml               | 31 ----------
 src/librustc_save_analysis/Cargo.toml         | 24 --------
 src/librustc_session/Cargo.toml               | 24 --------
 src/librustc_span/Cargo.toml                  | 23 --------
 src/librustc_symbol_mangling/Cargo.toml       | 23 --------
 src/librustc_target/Cargo.toml                | 18 ------
 src/librustc_trait_selection/Cargo.toml       | 27 ---------
 src/librustc_traits/Cargo.toml                | 23 --------
 src/librustc_ty/Cargo.toml                    | 21 -------
 src/librustc_typeck/Cargo.toml                | 29 ----------
 ...ck-borrow-mut-base-ptr-in-aliasable-loc.rs |  2 +-
 .../borrowck-borrow-of-mut-base-ptr-safe.rs   |  2 +-
 .../ui/borrowck/borrowck-move-mut-base-ptr.rs |  2 +-
 .../borrowck-mut-borrow-of-mut-base-ptr.rs    |  2 +-
 .../ui/borrowck/borrowck-swap-mut-base-ptr.rs |  2 +-
 src/test/ui/pattern/const-pat-ice.stderr      |  2 +-
 .../type-alias-impl-trait-const.rs            |  2 +-
 src/tools/error_index_generator/build.rs      |  4 +-
 src/tools/tidy/src/debug_artifacts.rs         |  2 +-
 src/tools/tidy/src/edition.rs                 |  1 -
 src/tools/tidy/src/features.rs                | 20 ++++---
 src/tools/tidy/src/main.rs                    | 47 ++++++++-------
 src/tools/unstable-book-gen/src/main.rs       | 10 ++--
 1686 files changed, 941 insertions(+), 1051 deletions(-)
 rename {src => compiler}/rustc/Cargo.toml (80%)
 rename src/rustc/rustc.rs => compiler/rustc/src/main.rs (100%)
 rename {src/librustc_apfloat => compiler/rustc_apfloat}/Cargo.toml (82%)
 rename {src/librustc_apfloat => compiler/rustc_apfloat/src}/ieee.rs (100%)
 rename {src/librustc_apfloat => compiler/rustc_apfloat/src}/lib.rs (100%)
 rename {src/librustc_apfloat => compiler/rustc_apfloat/src}/ppc.rs (100%)
 rename {src/librustc_apfloat => compiler/rustc_apfloat}/tests/ieee.rs (100%)
 rename {src/librustc_apfloat => compiler/rustc_apfloat}/tests/ppc.rs (100%)
 rename {src/librustc_arena => compiler/rustc_arena}/Cargo.toml (63%)
 rename {src/librustc_arena => compiler/rustc_arena/src}/lib.rs (100%)
 rename {src/librustc_arena => compiler/rustc_arena/src}/tests.rs (100%)
 create mode 100644 compiler/rustc_ast/Cargo.toml
 rename {src/librustc_ast => compiler/rustc_ast}/README.md (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/ast.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/ast/tests.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/attr/mod.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/crate_disambiguator.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/entry.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/expand/allocator.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/expand/mod.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/lib.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/mut_visit.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/node_id.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/ptr.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/token.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/tokenstream.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/util/classify.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/util/comments.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/util/comments/tests.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/util/lev_distance.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/util/lev_distance/tests.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/util/literal.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/util/parser.rs (100%)
 rename {src/librustc_ast => compiler/rustc_ast/src}/visit.rs (100%)
 create mode 100644 compiler/rustc_ast_lowering/Cargo.toml
 rename {src/librustc_ast_lowering => compiler/rustc_ast_lowering/src}/expr.rs (100%)
 rename {src/librustc_ast_lowering => compiler/rustc_ast_lowering/src}/item.rs (100%)
 rename {src/librustc_ast_lowering => compiler/rustc_ast_lowering/src}/lib.rs (100%)
 rename {src/librustc_ast_lowering => compiler/rustc_ast_lowering/src}/pat.rs (100%)
 rename {src/librustc_ast_lowering => compiler/rustc_ast_lowering/src}/path.rs (100%)
 create mode 100644 compiler/rustc_ast_passes/Cargo.toml
 rename {src/librustc_ast_passes => compiler/rustc_ast_passes/src}/ast_validation.rs (100%)
 rename {src/librustc_ast_passes => compiler/rustc_ast_passes/src}/feature_gate.rs (100%)
 rename {src/librustc_ast_passes => compiler/rustc_ast_passes/src}/lib.rs (100%)
 rename {src/librustc_ast_passes => compiler/rustc_ast_passes/src}/node_count.rs (100%)
 rename {src/librustc_ast_passes => compiler/rustc_ast_passes/src}/show_span.rs (100%)
 create mode 100644 compiler/rustc_ast_pretty/Cargo.toml
 rename {src/librustc_ast_pretty => compiler/rustc_ast_pretty/src}/helpers.rs (100%)
 rename {src/librustc_ast_pretty => compiler/rustc_ast_pretty/src}/lib.rs (100%)
 rename {src/librustc_ast_pretty => compiler/rustc_ast_pretty/src}/pp.rs (100%)
 rename {src/librustc_ast_pretty => compiler/rustc_ast_pretty/src}/pprust.rs (100%)
 rename {src/librustc_ast_pretty => compiler/rustc_ast_pretty/src}/pprust/tests.rs (100%)
 create mode 100644 compiler/rustc_attr/Cargo.toml
 rename {src/librustc_attr => compiler/rustc_attr/src}/builtin.rs (100%)
 rename {src/librustc_attr => compiler/rustc_attr/src}/lib.rs (100%)
 create mode 100644 compiler/rustc_builtin_macros/Cargo.toml
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/asm.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/assert.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/cfg.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/cfg_accessible.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/cmdline_attrs.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/compile_error.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/concat.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/concat_idents.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/deriving/bounds.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/deriving/clone.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/deriving/cmp/eq.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/deriving/cmp/ord.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/deriving/cmp/partial_eq.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/deriving/cmp/partial_ord.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/deriving/debug.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/deriving/decodable.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/deriving/default.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/deriving/encodable.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/deriving/generic/mod.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/deriving/generic/ty.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/deriving/hash.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/deriving/mod.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/env.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/format.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/format_foreign.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/format_foreign/printf/tests.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/format_foreign/shell/tests.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/global_allocator.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/global_asm.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/lib.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/llvm_asm.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/log_syntax.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/proc_macro_harness.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/source_util.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/standard_library_imports.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/test.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/test_harness.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/trace_macros.rs (100%)
 rename {src/librustc_builtin_macros => compiler/rustc_builtin_macros/src}/util.rs (100%)
 create mode 100644 compiler/rustc_codegen_llvm/Cargo.toml
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm}/README.md (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/abi.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/allocator.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/asm.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/attributes.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/back/archive.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/back/lto.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/back/profiling.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/back/write.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/base.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/builder.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/callee.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/common.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/consts.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/context.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/coverageinfo/mapgen.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/coverageinfo/mod.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/debuginfo/create_scope_map.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/debuginfo/doc.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/debuginfo/gdb.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/debuginfo/metadata.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/debuginfo/mod.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/debuginfo/namespace.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/debuginfo/source_loc.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/debuginfo/utils.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/declare.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/intrinsic.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/lib.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/llvm/archive_ro.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/llvm/diagnostic.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/llvm/ffi.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/llvm/mod.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/llvm_util.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/metadata.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/mono_item.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/type_.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/type_of.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/va_arg.rs (100%)
 rename {src/librustc_codegen_llvm => compiler/rustc_codegen_llvm/src}/value.rs (100%)
 create mode 100644 compiler/rustc_codegen_ssa/Cargo.toml
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa}/README.md (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/back/archive.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/back/command.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/back/link.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/back/linker.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/back/lto.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/back/mod.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/back/rpath.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/back/rpath/tests.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/back/symbol_export.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/back/write.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/base.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/common.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/coverageinfo/ffi.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/coverageinfo/map.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/coverageinfo/mod.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/debuginfo/mod.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/debuginfo/type_names.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/glue.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/lib.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/meth.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/mir/analyze.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/mir/block.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/mir/constant.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/mir/coverageinfo.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/mir/debuginfo.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/mir/mod.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/mir/operand.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/mir/place.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/mir/rvalue.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/mir/statement.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/mono_item.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/traits/abi.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/traits/asm.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/traits/backend.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/traits/builder.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/traits/consts.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/traits/coverageinfo.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/traits/debuginfo.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/traits/declare.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/traits/intrinsic.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/traits/misc.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/traits/mod.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/traits/statics.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/traits/type_.rs (100%)
 rename {src/librustc_codegen_ssa => compiler/rustc_codegen_ssa/src}/traits/write.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures}/Cargo.toml (77%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/atomic_ref.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/base_n.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/base_n/tests.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/binary_search_util/mod.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/binary_search_util/tests.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/box_region.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/captures.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/const_cstr.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/fingerprint.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/flock.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/frozen.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/fx.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/graph/dominators/mod.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/graph/dominators/tests.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/graph/implementation/mod.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/graph/implementation/tests.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/graph/iterate/mod.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/graph/iterate/tests.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/graph/mod.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/graph/reference.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/graph/scc/mod.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/graph/scc/tests.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/graph/tests.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/graph/vec_graph/mod.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/graph/vec_graph/tests.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/jobserver.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/lib.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/macros.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/map_in_place.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/obligation_forest/graphviz.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/obligation_forest/mod.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/obligation_forest/tests.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/owning_ref/LICENSE (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/owning_ref/mod.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/owning_ref/tests.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/profiling.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/ptr_key.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/sharded.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/sip128.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/sip128/tests.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/small_c_str.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/small_c_str/tests.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/snapshot_map/mod.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/snapshot_map/tests.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/sorted_map.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/sorted_map/index_map.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/sorted_map/tests.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/stable_hasher.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/stable_map.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/stable_set.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/stack.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/svh.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/sync.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/tagged_ptr.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/tagged_ptr/copy.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/tagged_ptr/drop.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/temp_dir.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/thin_vec.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/tiny_list.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/tiny_list/tests.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/transitive_relation.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/transitive_relation/tests.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/vec_linked_list.rs (100%)
 rename {src/librustc_data_structures => compiler/rustc_data_structures/src}/work_queue.rs (100%)
 create mode 100644 compiler/rustc_driver/Cargo.toml
 rename {src/librustc_driver => compiler/rustc_driver}/README.md (100%)
 rename {src/librustc_driver => compiler/rustc_driver/src}/args.rs (100%)
 rename {src/librustc_driver => compiler/rustc_driver/src}/lib.rs (100%)
 rename {src/librustc_driver => compiler/rustc_driver/src}/pretty.rs (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes}/Cargo.toml (69%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes.rs (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0001.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0002.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0004.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0005.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0007.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0009.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0010.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0013.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0014.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0015.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0019.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0023.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0025.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0026.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0027.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0029.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0030.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0033.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0034.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0038.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0040.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0044.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0045.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0046.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0049.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0050.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0053.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0054.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0055.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0057.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0059.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0060.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0061.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0062.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0063.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0067.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0069.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0070.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0071.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0072.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0073.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0074.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0075.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0076.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0077.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0080.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0081.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0084.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0087.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0088.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0089.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0090.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0091.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0092.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0093.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0094.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0106.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0107.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0109.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0110.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0116.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0117.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0118.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0119.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0120.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0121.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0124.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0128.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0130.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0131.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0132.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0133.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0136.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0137.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0138.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0139.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0152.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0154.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0158.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0161.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0162.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0164.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0165.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0170.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0178.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0184.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0185.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0186.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0191.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0192.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0193.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0195.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0197.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0198.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0199.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0200.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0201.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0202.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0203.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0204.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0205.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0206.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0207.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0210.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0211.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0214.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0220.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0221.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0222.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0223.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0224.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0225.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0226.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0228.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0229.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0230.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0231.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0232.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0243.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0244.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0251.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0252.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0253.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0254.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0255.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0256.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0259.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0260.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0261.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0262.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0263.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0264.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0267.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0268.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0271.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0275.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0276.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0277.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0281.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0282.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0283.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0284.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0297.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0301.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0302.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0303.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0307.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0308.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0309.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0310.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0312.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0317.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0321.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0322.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0323.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0324.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0325.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0326.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0328.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0329.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0364.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0365.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0366.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0367.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0368.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0369.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0370.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0371.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0373.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0374.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0375.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0376.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0378.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0379.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0380.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0381.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0382.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0383.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0384.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0386.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0387.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0388.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0389.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0390.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0391.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0392.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0393.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0398.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0399.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0401.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0403.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0404.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0405.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0407.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0408.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0409.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0411.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0412.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0415.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0416.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0422.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0423.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0424.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0425.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0426.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0428.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0429.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0430.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0431.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0432.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0433.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0434.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0435.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0436.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0437.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0438.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0439.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0445.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0446.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0447.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0448.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0449.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0451.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0452.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0453.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0454.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0455.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0458.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0459.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0463.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0466.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0468.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0469.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0477.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0478.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0491.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0492.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0493.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0495.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0496.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0497.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0499.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0500.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0501.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0502.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0503.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0504.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0505.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0506.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0507.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0508.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0509.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0510.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0511.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0512.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0515.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0516.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0517.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0518.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0520.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0522.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0524.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0525.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0527.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0528.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0529.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0530.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0531.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0532.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0533.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0534.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0535.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0536.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0537.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0538.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0539.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0541.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0550.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0551.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0552.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0554.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0556.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0557.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0559.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0560.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0561.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0562.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0565.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0566.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0567.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0568.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0569.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0570.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0571.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0572.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0573.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0574.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0575.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0576.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0577.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0578.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0579.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0580.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0581.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0582.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0583.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0584.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0585.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0586.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0587.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0588.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0589.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0590.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0591.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0592.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0593.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0594.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0595.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0596.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0597.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0599.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0600.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0601.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0602.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0603.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0604.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0605.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0606.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0607.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0608.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0609.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0610.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0614.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0615.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0616.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0617.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0618.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0619.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0620.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0621.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0622.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0623.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0624.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0626.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0627.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0628.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0631.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0633.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0634.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0635.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0636.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0637.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0638.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0639.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0641.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0642.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0643.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0644.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0646.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0647.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0648.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0657.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0658.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0659.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0660.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0661.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0662.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0663.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0664.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0665.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0666.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0668.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0669.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0670.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0671.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0687.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0688.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0689.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0690.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0691.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0692.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0693.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0695.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0696.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0697.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0698.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0699.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0700.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0701.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0703.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0704.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0705.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0706.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0708.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0710.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0712.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0713.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0714.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0715.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0716.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0718.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0719.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0720.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0723.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0724.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0725.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0727.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0728.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0729.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0730.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0731.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0732.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0733.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0734.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0735.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0736.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0737.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0739.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0740.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0741.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0742.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0743.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0744.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0745.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0746.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0747.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0748.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0749.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0750.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0751.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0752.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0753.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0754.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0758.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0759.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0760.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0761.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0762.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0763.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0764.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0765.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0766.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0767.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0768.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0769.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0770.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/error_codes/E0771.md (100%)
 rename {src/librustc_error_codes => compiler/rustc_error_codes/src}/lib.rs (100%)
 rename {src/librustc_errors => compiler/rustc_errors}/Cargo.toml (60%)
 rename {src/librustc_errors => compiler/rustc_errors/src}/annotate_snippet_emitter_writer.rs (100%)
 rename {src/librustc_errors => compiler/rustc_errors/src}/diagnostic.rs (100%)
 rename {src/librustc_errors => compiler/rustc_errors/src}/diagnostic_builder.rs (100%)
 rename {src/librustc_errors => compiler/rustc_errors/src}/emitter.rs (100%)
 rename {src/librustc_errors => compiler/rustc_errors/src}/json.rs (100%)
 rename {src/librustc_errors => compiler/rustc_errors/src}/json/tests.rs (100%)
 rename {src/librustc_errors => compiler/rustc_errors/src}/lib.rs (100%)
 rename {src/librustc_errors => compiler/rustc_errors/src}/lock.rs (100%)
 rename {src/librustc_errors => compiler/rustc_errors/src}/registry.rs (100%)
 rename {src/librustc_errors => compiler/rustc_errors/src}/snippet.rs (100%)
 rename {src/librustc_errors => compiler/rustc_errors/src}/styled_buffer.rs (100%)
 create mode 100644 compiler/rustc_expand/Cargo.toml
 rename {src/librustc_expand => compiler/rustc_expand/src}/base.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/build.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/config.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/expand.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/lib.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/mbe.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/mbe/macro_check.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/mbe/macro_parser.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/mbe/macro_rules.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/mbe/quoted.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/mbe/transcribe.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/module.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/mut_visit/tests.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/parse/lexer/tests.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/parse/tests.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/placeholders.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/proc_macro.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/proc_macro_server.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/tests.rs (100%)
 rename {src/librustc_expand => compiler/rustc_expand/src}/tokenstream/tests.rs (100%)
 rename {src/librustc_feature => compiler/rustc_feature}/Cargo.toml (53%)
 rename {src/librustc_feature => compiler/rustc_feature/src}/accepted.rs (100%)
 rename {src/librustc_feature => compiler/rustc_feature/src}/active.rs (100%)
 rename {src/librustc_feature => compiler/rustc_feature/src}/builtin_attrs.rs (100%)
 rename {src/librustc_feature => compiler/rustc_feature/src}/lib.rs (100%)
 rename {src/librustc_feature => compiler/rustc_feature/src}/removed.rs (100%)
 rename {src/librustc_fs_util => compiler/rustc_fs_util}/Cargo.toml (63%)
 rename {src/librustc_fs_util => compiler/rustc_fs_util/src}/lib.rs (100%)
 rename {src/librustc_graphviz => compiler/rustc_graphviz}/Cargo.toml (70%)
 rename {src/librustc_graphviz => compiler/rustc_graphviz/src}/lib.rs (100%)
 rename {src/librustc_graphviz => compiler/rustc_graphviz/src}/tests.rs (100%)
 create mode 100644 compiler/rustc_hir/Cargo.toml
 rename {src/librustc_hir => compiler/rustc_hir/src}/arena.rs (100%)
 rename {src/librustc_hir => compiler/rustc_hir/src}/def.rs (100%)
 rename {src/librustc_hir => compiler/rustc_hir/src}/definitions.rs (100%)
 rename {src/librustc_hir => compiler/rustc_hir/src}/hir.rs (100%)
 rename {src/librustc_hir => compiler/rustc_hir/src}/hir_id.rs (100%)
 rename {src/librustc_hir => compiler/rustc_hir/src}/intravisit.rs (100%)
 rename {src/librustc_hir => compiler/rustc_hir/src}/itemlikevisit.rs (100%)
 rename {src/librustc_hir => compiler/rustc_hir/src}/lang_items.rs (100%)
 rename {src/librustc_hir => compiler/rustc_hir/src}/lib.rs (100%)
 rename {src/librustc_hir => compiler/rustc_hir/src}/pat_util.rs (100%)
 rename {src/librustc_hir => compiler/rustc_hir/src}/stable_hash_impls.rs (100%)
 rename {src/librustc_hir => compiler/rustc_hir/src}/target.rs (100%)
 rename {src/librustc_hir => compiler/rustc_hir/src}/weak_lang_items.rs (100%)
 create mode 100644 compiler/rustc_hir_pretty/Cargo.toml
 rename {src/librustc_hir_pretty => compiler/rustc_hir_pretty/src}/lib.rs (100%)
 create mode 100644 compiler/rustc_incremental/Cargo.toml
 rename {src/librustc_incremental => compiler/rustc_incremental/src}/assert_dep_graph.rs (100%)
 rename {src/librustc_incremental => compiler/rustc_incremental/src}/assert_module_sources.rs (100%)
 rename {src/librustc_incremental => compiler/rustc_incremental/src}/lib.rs (100%)
 rename {src/librustc_incremental => compiler/rustc_incremental/src}/persist/README.md (100%)
 rename {src/librustc_incremental => compiler/rustc_incremental/src}/persist/data.rs (100%)
 rename {src/librustc_incremental => compiler/rustc_incremental/src}/persist/dirty_clean.rs (100%)
 rename {src/librustc_incremental => compiler/rustc_incremental/src}/persist/file_format.rs (100%)
 rename {src/librustc_incremental => compiler/rustc_incremental/src}/persist/fs.rs (100%)
 rename {src/librustc_incremental => compiler/rustc_incremental/src}/persist/fs/tests.rs (100%)
 rename {src/librustc_incremental => compiler/rustc_incremental/src}/persist/load.rs (100%)
 rename {src/librustc_incremental => compiler/rustc_incremental/src}/persist/mod.rs (100%)
 rename {src/librustc_incremental => compiler/rustc_incremental/src}/persist/save.rs (100%)
 rename {src/librustc_incremental => compiler/rustc_incremental/src}/persist/work_product.rs (100%)
 rename {src/librustc_index => compiler/rustc_index}/Cargo.toml (54%)
 rename {src/librustc_index => compiler/rustc_index/src}/bit_set.rs (100%)
 rename {src/librustc_index => compiler/rustc_index/src}/bit_set/tests.rs (100%)
 rename {src/librustc_index => compiler/rustc_index/src}/lib.rs (100%)
 rename {src/librustc_index => compiler/rustc_index/src}/vec.rs (100%)
 rename {src/librustc_index => compiler/rustc_index/src}/vec/tests.rs (100%)
 create mode 100644 compiler/rustc_infer/Cargo.toml
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/at.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/canonical/canonicalizer.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/canonical/mod.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/canonical/query_response.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/canonical/substitute.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/combine.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/equate.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/error_reporting/mod.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/error_reporting/need_type_info.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/error_reporting/nice_region_error/different_lifetimes.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/error_reporting/nice_region_error/find_anon_type.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/error_reporting/nice_region_error/mod.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/error_reporting/nice_region_error/named_anon_conflict.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/error_reporting/nice_region_error/placeholder_error.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/error_reporting/nice_region_error/static_impl_trait.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/error_reporting/nice_region_error/trait_impl_difference.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/error_reporting/nice_region_error/util.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/error_reporting/note.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/free_regions.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/freshen.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/fudge.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/glb.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/higher_ranked/README.md (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/higher_ranked/mod.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/lattice.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/lexical_region_resolve/README.md (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/lexical_region_resolve/mod.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/lub.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/mod.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/nll_relate/mod.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/outlives/env.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/outlives/mod.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/outlives/obligations.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/outlives/verify.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/region_constraints/README.md (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/region_constraints/leak_check.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/region_constraints/mod.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/resolve.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/sub.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/type_variable.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/infer/undo_log.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/lib.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/traits/engine.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/traits/error_reporting/mod.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/traits/mod.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/traits/project.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/traits/structural_impls.rs (100%)
 rename {src/librustc_infer => compiler/rustc_infer/src}/traits/util.rs (100%)
 create mode 100644 compiler/rustc_interface/Cargo.toml
 rename {src/librustc_interface => compiler/rustc_interface/src}/callbacks.rs (100%)
 rename {src/librustc_interface => compiler/rustc_interface/src}/interface.rs (100%)
 rename {src/librustc_interface => compiler/rustc_interface/src}/lib.rs (100%)
 rename {src/librustc_interface => compiler/rustc_interface/src}/passes.rs (100%)
 rename {src/librustc_interface => compiler/rustc_interface/src}/proc_macro_decls.rs (100%)
 rename {src/librustc_interface => compiler/rustc_interface/src}/queries.rs (100%)
 rename {src/librustc_interface => compiler/rustc_interface/src}/tests.rs (100%)
 rename {src/librustc_interface => compiler/rustc_interface/src}/util.rs (100%)
 rename {src/librustc_lexer => compiler/rustc_lexer}/Cargo.toml (100%)
 rename {src/librustc_lexer => compiler/rustc_lexer}/src/cursor.rs (100%)
 rename {src/librustc_lexer => compiler/rustc_lexer}/src/lib.rs (100%)
 rename {src/librustc_lexer => compiler/rustc_lexer}/src/tests.rs (100%)
 rename {src/librustc_lexer => compiler/rustc_lexer}/src/unescape.rs (100%)
 rename {src/librustc_lexer => compiler/rustc_lexer}/src/unescape/tests.rs (100%)
 create mode 100644 compiler/rustc_lint/Cargo.toml
 rename {src/librustc_lint => compiler/rustc_lint/src}/array_into_iter.rs (100%)
 rename {src/librustc_lint => compiler/rustc_lint/src}/builtin.rs (100%)
 rename {src/librustc_lint => compiler/rustc_lint/src}/context.rs (100%)
 rename {src/librustc_lint => compiler/rustc_lint/src}/early.rs (100%)
 rename {src/librustc_lint => compiler/rustc_lint/src}/internal.rs (100%)
 rename {src/librustc_lint => compiler/rustc_lint/src}/late.rs (100%)
 rename {src/librustc_lint => compiler/rustc_lint/src}/levels.rs (100%)
 rename {src/librustc_lint => compiler/rustc_lint/src}/lib.rs (100%)
 rename {src/librustc_lint => compiler/rustc_lint/src}/non_ascii_idents.rs (100%)
 rename {src/librustc_lint => compiler/rustc_lint/src}/nonstandard_style.rs (100%)
 rename {src/librustc_lint => compiler/rustc_lint/src}/nonstandard_style/tests.rs (100%)
 rename {src/librustc_lint => compiler/rustc_lint/src}/passes.rs (100%)
 rename {src/librustc_lint => compiler/rustc_lint/src}/redundant_semicolon.rs (100%)
 rename {src/librustc_lint => compiler/rustc_lint/src}/types.rs (100%)
 rename {src/librustc_lint => compiler/rustc_lint/src}/unused.rs (100%)
 rename {src/librustc_macros => compiler/rustc_macros}/Cargo.toml (100%)
 rename {src/librustc_macros => compiler/rustc_macros}/src/hash_stable.rs (100%)
 rename {src/librustc_macros => compiler/rustc_macros}/src/lib.rs (100%)
 rename {src/librustc_macros => compiler/rustc_macros}/src/lift.rs (100%)
 rename {src/librustc_macros => compiler/rustc_macros}/src/query.rs (100%)
 rename {src/librustc_macros => compiler/rustc_macros}/src/serialize.rs (100%)
 rename {src/librustc_macros => compiler/rustc_macros}/src/symbols.rs (100%)
 rename {src/librustc_macros => compiler/rustc_macros}/src/type_foldable.rs (100%)
 create mode 100644 compiler/rustc_metadata/Cargo.toml
 rename {src/librustc_metadata => compiler/rustc_metadata/src}/creader.rs (100%)
 rename {src/librustc_metadata => compiler/rustc_metadata/src}/dependency_format.rs (100%)
 rename {src/librustc_metadata => compiler/rustc_metadata/src}/dynamic_lib.rs (100%)
 rename {src/librustc_metadata => compiler/rustc_metadata/src}/dynamic_lib/tests.rs (100%)
 rename {src/librustc_metadata => compiler/rustc_metadata/src}/foreign_modules.rs (100%)
 rename {src/librustc_metadata => compiler/rustc_metadata/src}/lib.rs (100%)
 rename {src/librustc_metadata => compiler/rustc_metadata/src}/link_args.rs (100%)
 rename {src/librustc_metadata => compiler/rustc_metadata/src}/locator.rs (100%)
 rename {src/librustc_metadata => compiler/rustc_metadata/src}/native_libs.rs (100%)
 rename {src/librustc_metadata => compiler/rustc_metadata/src}/rmeta/decoder.rs (100%)
 rename {src/librustc_metadata => compiler/rustc_metadata/src}/rmeta/decoder/cstore_impl.rs (100%)
 rename {src/librustc_metadata => compiler/rustc_metadata/src}/rmeta/encoder.rs (100%)
 rename {src/librustc_metadata => compiler/rustc_metadata/src}/rmeta/mod.rs (100%)
 rename {src/librustc_metadata => compiler/rustc_metadata/src}/rmeta/table.rs (100%)
 create mode 100644 compiler/rustc_middle/Cargo.toml
 rename {src/librustc_middle => compiler/rustc_middle}/README.md (100%)
 rename {src/librustc_middle => compiler/rustc_middle}/benches/lib.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/arena.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/dep_graph/dep_node.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/dep_graph/mod.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/hir/exports.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/hir/map/blocks.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/hir/map/collector.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/hir/map/mod.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/hir/mod.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/hir/place.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ich/hcx.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ich/impls_hir.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ich/impls_syntax.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ich/impls_ty.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ich/mod.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/infer/canonical.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/infer/mod.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/infer/unify_key.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/lib.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/lint.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/macros.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/middle/codegen_fn_attrs.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/middle/cstore.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/middle/dependency_format.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/middle/exported_symbols.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/middle/lang_items.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/middle/limits.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/middle/mod.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/middle/privacy.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/middle/region.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/middle/resolve_lifetime.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/middle/stability.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/mir/coverage/mod.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/mir/interpret/allocation.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/mir/interpret/error.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/mir/interpret/mod.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/mir/interpret/pointer.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/mir/interpret/queries.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/mir/interpret/value.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/mir/mod.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/mir/mono.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/mir/predecessors.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/mir/query.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/mir/tcx.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/mir/terminator/mod.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/mir/traversal.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/mir/type_foldable.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/mir/visit.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/query/mod.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/tests.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/traits/chalk.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/traits/mod.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/traits/query.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/traits/select.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/traits/specialization_graph.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/traits/structural_impls.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/_match.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/adjustment.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/binding.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/cast.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/codec.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/consts.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/consts/int.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/consts/kind.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/context.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/diagnostics.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/erase_regions.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/error.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/fast_reject.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/flags.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/fold.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/inhabitedness/def_id_forest.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/inhabitedness/mod.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/instance.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/layout.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/list.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/mod.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/normalize_erasing_regions.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/outlives.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/print/mod.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/print/obsolete.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/print/pretty.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/query/README.md (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/query/job.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/query/keys.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/query/mod.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/query/on_disk_cache.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/query/plumbing.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/query/profiling_support.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/query/stats.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/query/values.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/relate.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/steal.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/structural_impls.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/sty.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/subst.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/trait_def.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/util.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/ty/walk.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/util/bug.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/util/common.rs (100%)
 rename {src/librustc_middle => compiler/rustc_middle/src}/util/common/tests.rs (100%)
 create mode 100644 compiler/rustc_mir/Cargo.toml
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/borrow_set.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/constraint_generation.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/constraints/graph.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/constraints/mod.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/def_use.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/diagnostics/conflict_errors.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/diagnostics/explain_borrow.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/diagnostics/find_use.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/diagnostics/mod.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/diagnostics/move_errors.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/diagnostics/mutability_errors.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/diagnostics/outlives_suggestion.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/diagnostics/region_errors.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/diagnostics/region_name.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/diagnostics/var_name.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/facts.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/invalidation.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/location.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/member_constraints.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/mod.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/nll.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/path_utils.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/place_ext.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/places_conflict.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/prefixes.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/region_infer/dump_mir.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/region_infer/graphviz.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/region_infer/mod.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/region_infer/opaque_types.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/region_infer/reverse_sccs.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/region_infer/values.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/renumber.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/type_check/constraint_conversion.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/type_check/free_region_relations.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/type_check/input_output.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/type_check/liveness/local_use_map.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/type_check/liveness/mod.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/type_check/liveness/polonius.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/type_check/liveness/trace.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/type_check/mod.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/type_check/relate_tys.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/universal_regions.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/borrow_check/used_muts.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/const_eval/error.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/const_eval/eval_queries.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/const_eval/fn_queries.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/const_eval/machine.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/const_eval/mod.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/dataflow/drop_flag_effects.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/dataflow/framework/cursor.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/dataflow/framework/direction.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/dataflow/framework/engine.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/dataflow/framework/graphviz.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/dataflow/framework/mod.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/dataflow/framework/tests.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/dataflow/framework/visitor.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/dataflow/impls/borrowed_locals.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/dataflow/impls/borrows.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/dataflow/impls/init_locals.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/dataflow/impls/liveness.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/dataflow/impls/mod.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/dataflow/impls/storage_liveness.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/dataflow/mod.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/dataflow/move_paths/abs_domain.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/dataflow/move_paths/builder.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/dataflow/move_paths/mod.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/interpret/cast.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/interpret/eval_context.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/interpret/intern.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/interpret/intrinsics.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/interpret/intrinsics/caller_location.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/interpret/intrinsics/type_name.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/interpret/machine.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/interpret/memory.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/interpret/mod.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/interpret/operand.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/interpret/operator.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/interpret/place.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/interpret/step.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/interpret/terminator.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/interpret/traits.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/interpret/util.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/interpret/validity.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/interpret/visitor.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/lib.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/monomorphize/collector.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/monomorphize/mod.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/monomorphize/partitioning/default.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/monomorphize/partitioning/merging.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/monomorphize/partitioning/mod.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/monomorphize/polymorphize.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/shim.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/add_call_guards.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/add_moves_for_packed_drops.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/add_retag.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/check_consts/mod.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/check_consts/ops.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/check_consts/post_drop_elaboration.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/check_consts/qualifs.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/check_consts/resolver.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/check_consts/validation.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/check_packed_ref.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/check_unsafety.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/cleanup_post_borrowck.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/const_prop.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/copy_prop.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/deaggregator.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/dump_mir.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/elaborate_drops.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/generator.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/inline.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/instcombine.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/instrument_coverage.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/match_branches.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/mod.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/no_landing_pads.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/nrvo.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/promote_consts.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/qualify_min_const_fn.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/remove_noop_landing_pads.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/required_consts.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/rustc_peek.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/simplify.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/simplify_branches.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/simplify_comparison_integral.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/simplify_try.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/uninhabited_enum_branching.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/unreachable_prop.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/transform/validate.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/util/aggregate.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/util/alignment.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/util/borrowck_errors.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/util/collect_writes.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/util/def_use.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/util/elaborate_drops.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/util/graphviz.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/util/mod.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/util/patch.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/util/pretty.rs (100%)
 rename {src/librustc_mir => compiler/rustc_mir/src}/util/storage.rs (100%)
 create mode 100644 compiler/rustc_mir_build/Cargo.toml
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/block.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/cfg.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/expr/as_constant.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/expr/as_operand.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/expr/as_place.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/expr/as_rvalue.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/expr/as_temp.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/expr/category.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/expr/into.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/expr/mod.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/expr/stmt.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/into.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/matches/mod.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/matches/simplify.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/matches/test.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/matches/util.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/misc.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/mod.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/build/scope.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/lib.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/lints.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/thir/constant.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/thir/cx/block.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/thir/cx/expr.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/thir/cx/mod.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/thir/cx/to_ref.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/thir/mod.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/thir/pattern/_match.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/thir/pattern/check_match.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/thir/pattern/const_to_pat.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/thir/pattern/mod.rs (100%)
 rename {src/librustc_mir_build => compiler/rustc_mir_build/src}/thir/util.rs (100%)
 create mode 100644 compiler/rustc_parse/Cargo.toml
 rename {src/librustc_parse => compiler/rustc_parse/src}/lexer/mod.rs (100%)
 rename {src/librustc_parse => compiler/rustc_parse/src}/lexer/tokentrees.rs (100%)
 rename {src/librustc_parse => compiler/rustc_parse/src}/lexer/unescape_error_reporting.rs (100%)
 rename {src/librustc_parse => compiler/rustc_parse/src}/lexer/unicode_chars.rs (100%)
 rename {src/librustc_parse => compiler/rustc_parse/src}/lib.rs (100%)
 rename {src/librustc_parse => compiler/rustc_parse/src}/parser/attr.rs (100%)
 rename {src/librustc_parse => compiler/rustc_parse/src}/parser/diagnostics.rs (100%)
 rename {src/librustc_parse => compiler/rustc_parse/src}/parser/expr.rs (100%)
 rename {src/librustc_parse => compiler/rustc_parse/src}/parser/generics.rs (100%)
 rename {src/librustc_parse => compiler/rustc_parse/src}/parser/item.rs (100%)
 rename {src/librustc_parse => compiler/rustc_parse/src}/parser/mod.rs (100%)
 rename {src/librustc_parse => compiler/rustc_parse/src}/parser/nonterminal.rs (100%)
 rename {src/librustc_parse => compiler/rustc_parse/src}/parser/pat.rs (100%)
 rename {src/librustc_parse => compiler/rustc_parse/src}/parser/path.rs (100%)
 rename {src/librustc_parse => compiler/rustc_parse/src}/parser/stmt.rs (100%)
 rename {src/librustc_parse => compiler/rustc_parse/src}/parser/ty.rs (100%)
 rename {src/librustc_parse => compiler/rustc_parse/src}/validate_attr.rs (100%)
 create mode 100644 compiler/rustc_parse_format/Cargo.toml
 rename {src/librustc_parse_format => compiler/rustc_parse_format/src}/lib.rs (100%)
 rename {src/librustc_parse_format => compiler/rustc_parse_format/src}/tests.rs (100%)
 create mode 100644 compiler/rustc_passes/Cargo.toml
 rename {src/librustc_passes => compiler/rustc_passes/src}/check_attr.rs (100%)
 rename {src/librustc_passes => compiler/rustc_passes/src}/check_const.rs (100%)
 rename {src/librustc_passes => compiler/rustc_passes/src}/dead.rs (100%)
 rename {src/librustc_passes => compiler/rustc_passes/src}/diagnostic_items.rs (100%)
 rename {src/librustc_passes => compiler/rustc_passes/src}/entry.rs (100%)
 rename {src/librustc_passes => compiler/rustc_passes/src}/hir_id_validator.rs (100%)
 rename {src/librustc_passes => compiler/rustc_passes/src}/hir_stats.rs (100%)
 rename {src/librustc_passes => compiler/rustc_passes/src}/intrinsicck.rs (100%)
 rename {src/librustc_passes => compiler/rustc_passes/src}/lang_items.rs (100%)
 rename {src/librustc_passes => compiler/rustc_passes/src}/layout_test.rs (100%)
 rename {src/librustc_passes => compiler/rustc_passes/src}/lib.rs (100%)
 rename {src/librustc_passes => compiler/rustc_passes/src}/lib_features.rs (100%)
 rename {src/librustc_passes => compiler/rustc_passes/src}/liveness.rs (100%)
 rename {src/librustc_passes => compiler/rustc_passes/src}/loops.rs (100%)
 rename {src/librustc_passes => compiler/rustc_passes/src}/reachable.rs (100%)
 rename {src/librustc_passes => compiler/rustc_passes/src}/region.rs (100%)
 rename {src/librustc_passes => compiler/rustc_passes/src}/stability.rs (100%)
 rename {src/librustc_passes => compiler/rustc_passes/src}/upvars.rs (100%)
 rename {src/librustc_passes => compiler/rustc_passes/src}/weak_lang_items.rs (100%)
 create mode 100644 compiler/rustc_plugin_impl/Cargo.toml
 rename {src/librustc_plugin_impl => compiler/rustc_plugin_impl/src}/build.rs (100%)
 rename {src/librustc_plugin_impl => compiler/rustc_plugin_impl/src}/lib.rs (100%)
 rename {src/librustc_plugin_impl => compiler/rustc_plugin_impl/src}/load.rs (100%)
 create mode 100644 compiler/rustc_privacy/Cargo.toml
 rename {src/librustc_privacy => compiler/rustc_privacy/src}/lib.rs (100%)
 create mode 100644 compiler/rustc_query_system/Cargo.toml
 rename {src/librustc_query_system => compiler/rustc_query_system/src}/cache.rs (100%)
 rename {src/librustc_query_system => compiler/rustc_query_system/src}/dep_graph/README.md (100%)
 rename {src/librustc_query_system => compiler/rustc_query_system/src}/dep_graph/debug.rs (100%)
 rename {src/librustc_query_system => compiler/rustc_query_system/src}/dep_graph/dep_node.rs (100%)
 rename {src/librustc_query_system => compiler/rustc_query_system/src}/dep_graph/graph.rs (100%)
 rename {src/librustc_query_system => compiler/rustc_query_system/src}/dep_graph/mod.rs (100%)
 rename {src/librustc_query_system => compiler/rustc_query_system/src}/dep_graph/prev.rs (100%)
 rename {src/librustc_query_system => compiler/rustc_query_system/src}/dep_graph/query.rs (100%)
 rename {src/librustc_query_system => compiler/rustc_query_system/src}/dep_graph/serialized.rs (100%)
 rename {src/librustc_query_system => compiler/rustc_query_system/src}/lib.rs (100%)
 rename {src/librustc_query_system => compiler/rustc_query_system/src}/query/README.md (100%)
 rename {src/librustc_query_system => compiler/rustc_query_system/src}/query/caches.rs (100%)
 rename {src/librustc_query_system => compiler/rustc_query_system/src}/query/config.rs (100%)
 rename {src/librustc_query_system => compiler/rustc_query_system/src}/query/job.rs (100%)
 rename {src/librustc_query_system => compiler/rustc_query_system/src}/query/mod.rs (100%)
 rename {src/librustc_query_system => compiler/rustc_query_system/src}/query/plumbing.rs (100%)
 create mode 100644 compiler/rustc_resolve/Cargo.toml
 rename {src/librustc_resolve => compiler/rustc_resolve/src}/build_reduced_graph.rs (100%)
 rename {src/librustc_resolve => compiler/rustc_resolve/src}/check_unused.rs (100%)
 rename {src/librustc_resolve => compiler/rustc_resolve/src}/def_collector.rs (100%)
 rename {src/librustc_resolve => compiler/rustc_resolve/src}/diagnostics.rs (100%)
 rename {src/librustc_resolve => compiler/rustc_resolve/src}/imports.rs (100%)
 rename {src/librustc_resolve => compiler/rustc_resolve/src}/late.rs (100%)
 rename {src/librustc_resolve => compiler/rustc_resolve/src}/late/diagnostics.rs (100%)
 rename {src/librustc_resolve => compiler/rustc_resolve/src}/late/lifetimes.rs (100%)
 rename {src/librustc_resolve => compiler/rustc_resolve/src}/lib.rs (100%)
 rename {src/librustc_resolve => compiler/rustc_resolve/src}/macros.rs (100%)
 create mode 100644 compiler/rustc_save_analysis/Cargo.toml
 rename {src/librustc_save_analysis => compiler/rustc_save_analysis/src}/dump_visitor.rs (100%)
 rename {src/librustc_save_analysis => compiler/rustc_save_analysis/src}/dumper.rs (100%)
 rename {src/librustc_save_analysis => compiler/rustc_save_analysis/src}/lib.rs (100%)
 rename {src/librustc_save_analysis => compiler/rustc_save_analysis/src}/sig.rs (100%)
 rename {src/librustc_save_analysis => compiler/rustc_save_analysis/src}/span_utils.rs (100%)
 rename {src/librustc_serialize => compiler/rustc_serialize}/Cargo.toml (70%)
 rename {src/librustc_serialize => compiler/rustc_serialize/src}/collection_impls.rs (100%)
 rename {src/librustc_serialize => compiler/rustc_serialize/src}/json.rs (100%)
 rename {src/librustc_serialize => compiler/rustc_serialize/src}/json/tests.rs (100%)
 rename {src/librustc_serialize => compiler/rustc_serialize/src}/leb128.rs (100%)
 rename {src/librustc_serialize => compiler/rustc_serialize/src}/lib.rs (100%)
 rename {src/librustc_serialize => compiler/rustc_serialize/src}/opaque.rs (100%)
 rename {src/librustc_serialize => compiler/rustc_serialize/src}/serialize.rs (100%)
 rename {src/librustc_serialize => compiler/rustc_serialize}/tests/json.rs (100%)
 rename {src/librustc_serialize => compiler/rustc_serialize}/tests/leb128.rs (100%)
 rename {src/librustc_serialize => compiler/rustc_serialize}/tests/opaque.rs (100%)
 create mode 100644 compiler/rustc_session/Cargo.toml
 rename {src/librustc_session => compiler/rustc_session/src}/cgu_reuse_tracker.rs (100%)
 rename {src/librustc_session => compiler/rustc_session/src}/code_stats.rs (100%)
 rename {src/librustc_session => compiler/rustc_session/src}/config.rs (100%)
 rename {src/librustc_session => compiler/rustc_session/src}/filesearch.rs (100%)
 rename {src/librustc_session => compiler/rustc_session/src}/lib.rs (100%)
 rename {src/librustc_session => compiler/rustc_session/src}/lint.rs (100%)
 rename {src/librustc_session => compiler/rustc_session/src}/lint/builtin.rs (100%)
 rename {src/librustc_session => compiler/rustc_session/src}/options.rs (100%)
 rename {src/librustc_session => compiler/rustc_session/src}/output.rs (100%)
 rename {src/librustc_session => compiler/rustc_session/src}/parse.rs (100%)
 rename {src/librustc_session => compiler/rustc_session/src}/search_paths.rs (100%)
 rename {src/librustc_session => compiler/rustc_session/src}/session.rs (100%)
 rename {src/librustc_session => compiler/rustc_session/src}/utils.rs (100%)
 create mode 100644 compiler/rustc_span/Cargo.toml
 rename {src/librustc_span => compiler/rustc_span/src}/analyze_source_file.rs (100%)
 rename {src/librustc_span => compiler/rustc_span/src}/analyze_source_file/tests.rs (100%)
 rename {src/librustc_span => compiler/rustc_span/src}/caching_source_map_view.rs (100%)
 rename {src/librustc_span => compiler/rustc_span/src}/def_id.rs (100%)
 rename {src/librustc_span => compiler/rustc_span/src}/edition.rs (100%)
 rename {src/librustc_span => compiler/rustc_span/src}/fatal_error.rs (100%)
 rename {src/librustc_span => compiler/rustc_span/src}/hygiene.rs (100%)
 rename {src/librustc_span => compiler/rustc_span/src}/lib.rs (100%)
 rename {src/librustc_span => compiler/rustc_span/src}/source_map.rs (100%)
 rename {src/librustc_span => compiler/rustc_span/src}/source_map/tests.rs (100%)
 rename {src/librustc_span => compiler/rustc_span/src}/span_encoding.rs (100%)
 rename {src/librustc_span => compiler/rustc_span/src}/symbol.rs (100%)
 rename {src/librustc_span => compiler/rustc_span/src}/symbol/tests.rs (100%)
 rename {src/librustc_span => compiler/rustc_span/src}/tests.rs (100%)
 create mode 100644 compiler/rustc_symbol_mangling/Cargo.toml
 rename {src/librustc_symbol_mangling => compiler/rustc_symbol_mangling/src}/legacy.rs (100%)
 rename {src/librustc_symbol_mangling => compiler/rustc_symbol_mangling/src}/lib.rs (100%)
 rename {src/librustc_symbol_mangling => compiler/rustc_symbol_mangling/src}/test.rs (100%)
 rename {src/librustc_symbol_mangling => compiler/rustc_symbol_mangling/src}/v0.rs (100%)
 create mode 100644 compiler/rustc_target/Cargo.toml
 rename {src/librustc_target => compiler/rustc_target}/README.md (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/aarch64.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/amdgpu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/arm.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/avr.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/hexagon.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/mips.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/mips64.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/mod.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/msp430.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/nvptx.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/nvptx64.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/powerpc.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/powerpc64.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/riscv.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/s390x.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/sparc.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/sparc64.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/wasm32.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/wasm32_bindgen_compat.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/x86.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/x86_64.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/call/x86_win64.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/abi/mod.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/asm/aarch64.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/asm/arm.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/asm/hexagon.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/asm/mod.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/asm/nvptx.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/asm/riscv.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/asm/x86.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/lib.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/aarch64_apple_darwin.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/aarch64_apple_ios.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/aarch64_apple_tvos.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/aarch64_fuchsia.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/aarch64_linux_android.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/aarch64_pc_windows_msvc.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/aarch64_unknown_cloudabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/aarch64_unknown_freebsd.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/aarch64_unknown_hermit.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/aarch64_unknown_linux_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/aarch64_unknown_linux_musl.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/aarch64_unknown_netbsd.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/aarch64_unknown_none.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/aarch64_unknown_none_softfloat.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/aarch64_unknown_openbsd.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/aarch64_unknown_redox.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/aarch64_uwp_windows_msvc.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/aarch64_wrs_vxworks.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/abi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/abi/tests.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/android_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/apple_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/apple_sdk_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/arm_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/arm_linux_androideabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/arm_unknown_linux_gnueabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/arm_unknown_linux_gnueabihf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/arm_unknown_linux_musleabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/arm_unknown_linux_musleabihf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armebv7r_none_eabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armebv7r_none_eabihf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv4t_unknown_linux_gnueabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv5te_unknown_linux_gnueabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv5te_unknown_linux_musleabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv6_unknown_freebsd.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv6_unknown_netbsd_eabihf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv7_apple_ios.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv7_linux_androideabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv7_unknown_cloudabi_eabihf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv7_unknown_freebsd.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv7_unknown_linux_gnueabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv7_unknown_linux_gnueabihf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv7_unknown_linux_musleabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv7_unknown_linux_musleabihf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv7_unknown_netbsd_eabihf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv7_wrs_vxworks_eabihf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv7a_none_eabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv7a_none_eabihf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv7r_none_eabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv7r_none_eabihf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/armv7s_apple_ios.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/asmjs_unknown_emscripten.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/avr_gnu_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/avr_unknown_gnu_atmega328.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/cloudabi_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/crt_objects.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/dragonfly_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/freebsd_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/fuchsia_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/haiku_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/hermit_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/hermit_kernel_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/hexagon_unknown_linux_musl.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i386_apple_ios.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i586_pc_windows_msvc.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i586_unknown_linux_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i586_unknown_linux_musl.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i686_apple_darwin.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i686_linux_android.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i686_pc_windows_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i686_pc_windows_msvc.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i686_unknown_cloudabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i686_unknown_freebsd.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i686_unknown_haiku.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i686_unknown_linux_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i686_unknown_linux_musl.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i686_unknown_netbsd.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i686_unknown_openbsd.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i686_unknown_uefi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i686_uwp_windows_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i686_uwp_windows_msvc.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/i686_wrs_vxworks.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/illumos_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/l4re_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/linux_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/linux_kernel_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/linux_musl_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/mips64_unknown_linux_gnuabi64.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/mips64_unknown_linux_muslabi64.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/mips64el_unknown_linux_gnuabi64.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/mips64el_unknown_linux_muslabi64.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/mips_unknown_linux_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/mips_unknown_linux_musl.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/mips_unknown_linux_uclibc.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/mipsel_sony_psp.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/mipsel_sony_psp_linker_script.ld (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/mipsel_unknown_linux_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/mipsel_unknown_linux_musl.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/mipsel_unknown_linux_uclibc.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/mipsisa32r6_unknown_linux_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/mipsisa32r6el_unknown_linux_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/mipsisa64r6_unknown_linux_gnuabi64.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/mipsisa64r6el_unknown_linux_gnuabi64.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/mod.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/msp430_none_elf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/msvc_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/netbsd_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/nvptx64_nvidia_cuda.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/openbsd_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/powerpc64_unknown_freebsd.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/powerpc64_unknown_linux_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/powerpc64_unknown_linux_musl.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/powerpc64_wrs_vxworks.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/powerpc64le_unknown_linux_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/powerpc64le_unknown_linux_musl.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/powerpc_unknown_linux_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/powerpc_unknown_linux_gnuspe.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/powerpc_unknown_linux_musl.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/powerpc_unknown_netbsd.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/powerpc_wrs_vxworks.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/powerpc_wrs_vxworks_spe.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/redox_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/riscv32i_unknown_none_elf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/riscv32imac_unknown_none_elf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/riscv32imc_unknown_none_elf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/riscv64gc_unknown_linux_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/riscv64gc_unknown_none_elf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/riscv64imac_unknown_none_elf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/riscv_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/s390x_unknown_linux_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/solaris_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/sparc64_unknown_linux_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/sparc64_unknown_netbsd.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/sparc64_unknown_openbsd.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/sparc_unknown_linux_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/sparcv9_sun_solaris.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/tests/tests_impl.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/thumb_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/thumbv4t_none_eabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/thumbv6m_none_eabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/thumbv7a_pc_windows_msvc.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/thumbv7a_uwp_windows_msvc.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/thumbv7em_none_eabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/thumbv7em_none_eabihf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/thumbv7m_none_eabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/thumbv7neon_linux_androideabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/thumbv7neon_unknown_linux_gnueabihf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/thumbv7neon_unknown_linux_musleabihf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/thumbv8m_base_none_eabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/thumbv8m_main_none_eabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/thumbv8m_main_none_eabihf.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/uefi_msvc_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/vxworks_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/wasm32_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/wasm32_unknown_emscripten.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/wasm32_unknown_unknown.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/wasm32_wasi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/windows_gnu_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/windows_msvc_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/windows_uwp_gnu_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/windows_uwp_msvc_base.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_apple_darwin.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_apple_ios.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_apple_ios_macabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_apple_tvos.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_fortanix_unknown_sgx.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_fuchsia.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_linux_android.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_linux_kernel.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_pc_windows_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_pc_windows_msvc.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_rumprun_netbsd.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_sun_solaris.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_unknown_cloudabi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_unknown_dragonfly.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_unknown_freebsd.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_unknown_haiku.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_unknown_hermit.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_unknown_hermit_kernel.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_unknown_illumos.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_unknown_l4re_uclibc.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_unknown_linux_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_unknown_linux_gnux32.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_unknown_linux_musl.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_unknown_netbsd.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_unknown_openbsd.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_unknown_redox.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_unknown_uefi.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_uwp_windows_gnu.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_uwp_windows_msvc.rs (100%)
 rename {src/librustc_target => compiler/rustc_target/src}/spec/x86_64_wrs_vxworks.rs (100%)
 create mode 100644 compiler/rustc_trait_selection/Cargo.toml
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/autoderef.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/infer.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/lib.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/opaque_types.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/auto_trait.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/chalk_fulfill.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/codegen/mod.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/coherence.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/engine.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/error_reporting/mod.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/error_reporting/on_unimplemented.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/error_reporting/suggestions.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/fulfill.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/misc.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/mod.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/object_safety.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/on_unimplemented.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/project.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/query/dropck_outlives.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/query/evaluate_obligation.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/query/method_autoderef.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/query/mod.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/query/normalize.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/query/outlives_bounds.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/query/type_op/ascribe_user_type.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/query/type_op/custom.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/query/type_op/eq.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/query/type_op/implied_outlives_bounds.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/query/type_op/mod.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/query/type_op/normalize.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/query/type_op/outlives.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/query/type_op/prove_predicate.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/query/type_op/subtype.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/select/candidate_assembly.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/select/confirmation.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/select/mod.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/specialize/mod.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/specialize/specialization_graph.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/structural_match.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/util.rs (100%)
 rename {src/librustc_trait_selection => compiler/rustc_trait_selection/src}/traits/wf.rs (100%)
 create mode 100644 compiler/rustc_traits/Cargo.toml
 rename {src/librustc_traits => compiler/rustc_traits/src}/chalk/db.rs (100%)
 rename {src/librustc_traits => compiler/rustc_traits/src}/chalk/lowering.rs (100%)
 rename {src/librustc_traits => compiler/rustc_traits/src}/chalk/mod.rs (100%)
 rename {src/librustc_traits => compiler/rustc_traits/src}/dropck_outlives.rs (100%)
 rename {src/librustc_traits => compiler/rustc_traits/src}/evaluate_obligation.rs (100%)
 rename {src/librustc_traits => compiler/rustc_traits/src}/implied_outlives_bounds.rs (100%)
 rename {src/librustc_traits => compiler/rustc_traits/src}/lib.rs (100%)
 rename {src/librustc_traits => compiler/rustc_traits/src}/normalize_erasing_regions.rs (100%)
 rename {src/librustc_traits => compiler/rustc_traits/src}/normalize_projection_ty.rs (100%)
 rename {src/librustc_traits => compiler/rustc_traits/src}/type_op.rs (100%)
 create mode 100644 compiler/rustc_ty/Cargo.toml
 rename {src/librustc_ty => compiler/rustc_ty/src}/common_traits.rs (100%)
 rename {src/librustc_ty => compiler/rustc_ty/src}/instance.rs (100%)
 rename {src/librustc_ty => compiler/rustc_ty/src}/lib.rs (100%)
 rename {src/librustc_ty => compiler/rustc_ty/src}/needs_drop.rs (100%)
 rename {src/librustc_ty => compiler/rustc_ty/src}/ty.rs (100%)
 create mode 100644 compiler/rustc_typeck/Cargo.toml
 rename {src/librustc_typeck => compiler/rustc_typeck}/README.md (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/astconv/errors.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/astconv/generics.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/astconv/mod.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/bounds.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/_match.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/autoderef.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/callee.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/cast.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/closure.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/coercion.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/compare_method.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/demand.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/dropck.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/expr.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/generator_interior.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/intrinsic.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/method/confirm.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/method/mod.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/method/probe.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/method/suggest.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/mod.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/op.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/pat.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/place_op.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/regionck.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/upvar.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/wfcheck.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check/writeback.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/check_unused.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/coherence/builtin.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/coherence/inherent_impls.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/coherence/inherent_impls_overlap.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/coherence/mod.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/coherence/orphan.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/coherence/unsafety.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/collect.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/collect/type_of.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/constrained_generic_params.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/expr_use_visitor.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/impl_wf_check.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/impl_wf_check/min_specialization.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/lib.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/mem_categorization.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/outlives/explicit.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/outlives/implicit_infer.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/outlives/mod.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/outlives/test.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/outlives/utils.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/structured_errors.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/variance/constraints.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/variance/mod.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/variance/solve.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/variance/terms.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/variance/test.rs (100%)
 rename {src/librustc_typeck => compiler/rustc_typeck/src}/variance/xform.rs (100%)
 delete mode 100644 src/librustc_ast/Cargo.toml
 delete mode 100644 src/librustc_ast_lowering/Cargo.toml
 delete mode 100644 src/librustc_ast_passes/Cargo.toml
 delete mode 100644 src/librustc_ast_pretty/Cargo.toml
 delete mode 100644 src/librustc_attr/Cargo.toml
 delete mode 100644 src/librustc_builtin_macros/Cargo.toml
 delete mode 100644 src/librustc_codegen_llvm/Cargo.toml
 delete mode 100644 src/librustc_codegen_ssa/Cargo.toml
 delete mode 100644 src/librustc_driver/Cargo.toml
 delete mode 100644 src/librustc_expand/Cargo.toml
 delete mode 100644 src/librustc_hir/Cargo.toml
 delete mode 100644 src/librustc_hir_pretty/Cargo.toml
 delete mode 100644 src/librustc_incremental/Cargo.toml
 delete mode 100644 src/librustc_infer/Cargo.toml
 delete mode 100644 src/librustc_interface/Cargo.toml
 delete mode 100644 src/librustc_lint/Cargo.toml
 delete mode 100644 src/librustc_metadata/Cargo.toml
 delete mode 100644 src/librustc_middle/Cargo.toml
 delete mode 100644 src/librustc_mir/Cargo.toml
 delete mode 100644 src/librustc_mir_build/Cargo.toml
 delete mode 100644 src/librustc_parse/Cargo.toml
 delete mode 100644 src/librustc_parse_format/Cargo.toml
 delete mode 100644 src/librustc_passes/Cargo.toml
 delete mode 100644 src/librustc_plugin_impl/Cargo.toml
 delete mode 100644 src/librustc_privacy/Cargo.toml
 delete mode 100644 src/librustc_query_system/Cargo.toml
 delete mode 100644 src/librustc_resolve/Cargo.toml
 delete mode 100644 src/librustc_save_analysis/Cargo.toml
 delete mode 100644 src/librustc_session/Cargo.toml
 delete mode 100644 src/librustc_span/Cargo.toml
 delete mode 100644 src/librustc_symbol_mangling/Cargo.toml
 delete mode 100644 src/librustc_target/Cargo.toml
 delete mode 100644 src/librustc_trait_selection/Cargo.toml
 delete mode 100644 src/librustc_traits/Cargo.toml
 delete mode 100644 src/librustc_ty/Cargo.toml
 delete mode 100644 src/librustc_typeck/Cargo.toml

diff --git a/Cargo.toml b/Cargo.toml
index d8d9cc399c8dd..fde1cb5a35c2e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,8 +1,7 @@
 [workspace]
 members = [
   "src/bootstrap",
-  "src/rustc",
-  "src/librustc_codegen_llvm",
+  "compiler/rustc",
   "library/std",
   "library/test",
   "src/tools/cargotest",
diff --git a/src/rustc/Cargo.toml b/compiler/rustc/Cargo.toml
similarity index 80%
rename from src/rustc/Cargo.toml
rename to compiler/rustc/Cargo.toml
index 5e0f167bb3801..4340d50f845b8 100644
--- a/src/rustc/Cargo.toml
+++ b/compiler/rustc/Cargo.toml
@@ -6,14 +6,14 @@ edition = '2018'
 
 [[bin]]
 name = "rustc_binary"
-path = "rustc.rs"
+path = "src/main.rs"
 
 [dependencies]
-rustc_driver = { path = "../librustc_driver" }
+rustc_driver = { path = "../rustc_driver" }
 
 # Make sure rustc_codegen_ssa ends up in the sysroot, because this
 # crate is intended to be used by codegen backends, which may not be in-tree.
-rustc_codegen_ssa = { path = "../librustc_codegen_ssa" }
+rustc_codegen_ssa = { path = "../rustc_codegen_ssa" }
 
 [dependencies.jemalloc-sys]
 version = '0.3.0'
diff --git a/src/rustc/rustc.rs b/compiler/rustc/src/main.rs
similarity index 100%
rename from src/rustc/rustc.rs
rename to compiler/rustc/src/main.rs
diff --git a/src/librustc_apfloat/Cargo.toml b/compiler/rustc_apfloat/Cargo.toml
similarity index 82%
rename from src/librustc_apfloat/Cargo.toml
rename to compiler/rustc_apfloat/Cargo.toml
index 726965e1e7180..306513f1a7eaf 100644
--- a/src/librustc_apfloat/Cargo.toml
+++ b/compiler/rustc_apfloat/Cargo.toml
@@ -4,10 +4,6 @@ name = "rustc_apfloat"
 version = "0.0.0"
 edition = "2018"
 
-[lib]
-name = "rustc_apfloat"
-path = "lib.rs"
-
 [dependencies]
 bitflags = "1.2.1"
 smallvec = { version = "1.0", features = ["union", "may_dangle"] }
diff --git a/src/librustc_apfloat/ieee.rs b/compiler/rustc_apfloat/src/ieee.rs
similarity index 100%
rename from src/librustc_apfloat/ieee.rs
rename to compiler/rustc_apfloat/src/ieee.rs
diff --git a/src/librustc_apfloat/lib.rs b/compiler/rustc_apfloat/src/lib.rs
similarity index 100%
rename from src/librustc_apfloat/lib.rs
rename to compiler/rustc_apfloat/src/lib.rs
diff --git a/src/librustc_apfloat/ppc.rs b/compiler/rustc_apfloat/src/ppc.rs
similarity index 100%
rename from src/librustc_apfloat/ppc.rs
rename to compiler/rustc_apfloat/src/ppc.rs
diff --git a/src/librustc_apfloat/tests/ieee.rs b/compiler/rustc_apfloat/tests/ieee.rs
similarity index 100%
rename from src/librustc_apfloat/tests/ieee.rs
rename to compiler/rustc_apfloat/tests/ieee.rs
diff --git a/src/librustc_apfloat/tests/ppc.rs b/compiler/rustc_apfloat/tests/ppc.rs
similarity index 100%
rename from src/librustc_apfloat/tests/ppc.rs
rename to compiler/rustc_apfloat/tests/ppc.rs
diff --git a/src/librustc_arena/Cargo.toml b/compiler/rustc_arena/Cargo.toml
similarity index 63%
rename from src/librustc_arena/Cargo.toml
rename to compiler/rustc_arena/Cargo.toml
index dfae956e2b6d5..41701f3255f48 100644
--- a/src/librustc_arena/Cargo.toml
+++ b/compiler/rustc_arena/Cargo.toml
@@ -4,10 +4,6 @@ name = "rustc_arena"
 version = "0.0.0"
 edition = "2018"
 
-[lib]
-name = "rustc_arena"
-path = "lib.rs"
-
 [dependencies]
-rustc_data_structures = { path = "../librustc_data_structures" }
+rustc_data_structures = { path = "../rustc_data_structures" }
 smallvec = { version = "1.0", features = ["union", "may_dangle"] }
diff --git a/src/librustc_arena/lib.rs b/compiler/rustc_arena/src/lib.rs
similarity index 100%
rename from src/librustc_arena/lib.rs
rename to compiler/rustc_arena/src/lib.rs
diff --git a/src/librustc_arena/tests.rs b/compiler/rustc_arena/src/tests.rs
similarity index 100%
rename from src/librustc_arena/tests.rs
rename to compiler/rustc_arena/src/tests.rs
diff --git a/compiler/rustc_ast/Cargo.toml b/compiler/rustc_ast/Cargo.toml
new file mode 100644
index 0000000000000..13e17a807c484
--- /dev/null
+++ b/compiler/rustc_ast/Cargo.toml
@@ -0,0 +1,19 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_ast"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+rustc_serialize = { path = "../rustc_serialize" }
+tracing = "0.1"
+rustc_span = { path = "../rustc_span" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_index = { path = "../rustc_index" }
+rustc_lexer = { path = "../rustc_lexer" }
+rustc_macros = { path = "../rustc_macros" }
+smallvec = { version = "1.0", features = ["union", "may_dangle"] }
+bitflags = "1.2.1"
diff --git a/src/librustc_ast/README.md b/compiler/rustc_ast/README.md
similarity index 100%
rename from src/librustc_ast/README.md
rename to compiler/rustc_ast/README.md
diff --git a/src/librustc_ast/ast.rs b/compiler/rustc_ast/src/ast.rs
similarity index 100%
rename from src/librustc_ast/ast.rs
rename to compiler/rustc_ast/src/ast.rs
diff --git a/src/librustc_ast/ast/tests.rs b/compiler/rustc_ast/src/ast/tests.rs
similarity index 100%
rename from src/librustc_ast/ast/tests.rs
rename to compiler/rustc_ast/src/ast/tests.rs
diff --git a/src/librustc_ast/attr/mod.rs b/compiler/rustc_ast/src/attr/mod.rs
similarity index 100%
rename from src/librustc_ast/attr/mod.rs
rename to compiler/rustc_ast/src/attr/mod.rs
diff --git a/src/librustc_ast/crate_disambiguator.rs b/compiler/rustc_ast/src/crate_disambiguator.rs
similarity index 100%
rename from src/librustc_ast/crate_disambiguator.rs
rename to compiler/rustc_ast/src/crate_disambiguator.rs
diff --git a/src/librustc_ast/entry.rs b/compiler/rustc_ast/src/entry.rs
similarity index 100%
rename from src/librustc_ast/entry.rs
rename to compiler/rustc_ast/src/entry.rs
diff --git a/src/librustc_ast/expand/allocator.rs b/compiler/rustc_ast/src/expand/allocator.rs
similarity index 100%
rename from src/librustc_ast/expand/allocator.rs
rename to compiler/rustc_ast/src/expand/allocator.rs
diff --git a/src/librustc_ast/expand/mod.rs b/compiler/rustc_ast/src/expand/mod.rs
similarity index 100%
rename from src/librustc_ast/expand/mod.rs
rename to compiler/rustc_ast/src/expand/mod.rs
diff --git a/src/librustc_ast/lib.rs b/compiler/rustc_ast/src/lib.rs
similarity index 100%
rename from src/librustc_ast/lib.rs
rename to compiler/rustc_ast/src/lib.rs
diff --git a/src/librustc_ast/mut_visit.rs b/compiler/rustc_ast/src/mut_visit.rs
similarity index 100%
rename from src/librustc_ast/mut_visit.rs
rename to compiler/rustc_ast/src/mut_visit.rs
diff --git a/src/librustc_ast/node_id.rs b/compiler/rustc_ast/src/node_id.rs
similarity index 100%
rename from src/librustc_ast/node_id.rs
rename to compiler/rustc_ast/src/node_id.rs
diff --git a/src/librustc_ast/ptr.rs b/compiler/rustc_ast/src/ptr.rs
similarity index 100%
rename from src/librustc_ast/ptr.rs
rename to compiler/rustc_ast/src/ptr.rs
diff --git a/src/librustc_ast/token.rs b/compiler/rustc_ast/src/token.rs
similarity index 100%
rename from src/librustc_ast/token.rs
rename to compiler/rustc_ast/src/token.rs
diff --git a/src/librustc_ast/tokenstream.rs b/compiler/rustc_ast/src/tokenstream.rs
similarity index 100%
rename from src/librustc_ast/tokenstream.rs
rename to compiler/rustc_ast/src/tokenstream.rs
diff --git a/src/librustc_ast/util/classify.rs b/compiler/rustc_ast/src/util/classify.rs
similarity index 100%
rename from src/librustc_ast/util/classify.rs
rename to compiler/rustc_ast/src/util/classify.rs
diff --git a/src/librustc_ast/util/comments.rs b/compiler/rustc_ast/src/util/comments.rs
similarity index 100%
rename from src/librustc_ast/util/comments.rs
rename to compiler/rustc_ast/src/util/comments.rs
diff --git a/src/librustc_ast/util/comments/tests.rs b/compiler/rustc_ast/src/util/comments/tests.rs
similarity index 100%
rename from src/librustc_ast/util/comments/tests.rs
rename to compiler/rustc_ast/src/util/comments/tests.rs
diff --git a/src/librustc_ast/util/lev_distance.rs b/compiler/rustc_ast/src/util/lev_distance.rs
similarity index 100%
rename from src/librustc_ast/util/lev_distance.rs
rename to compiler/rustc_ast/src/util/lev_distance.rs
diff --git a/src/librustc_ast/util/lev_distance/tests.rs b/compiler/rustc_ast/src/util/lev_distance/tests.rs
similarity index 100%
rename from src/librustc_ast/util/lev_distance/tests.rs
rename to compiler/rustc_ast/src/util/lev_distance/tests.rs
diff --git a/src/librustc_ast/util/literal.rs b/compiler/rustc_ast/src/util/literal.rs
similarity index 100%
rename from src/librustc_ast/util/literal.rs
rename to compiler/rustc_ast/src/util/literal.rs
diff --git a/src/librustc_ast/util/parser.rs b/compiler/rustc_ast/src/util/parser.rs
similarity index 100%
rename from src/librustc_ast/util/parser.rs
rename to compiler/rustc_ast/src/util/parser.rs
diff --git a/src/librustc_ast/visit.rs b/compiler/rustc_ast/src/visit.rs
similarity index 100%
rename from src/librustc_ast/visit.rs
rename to compiler/rustc_ast/src/visit.rs
diff --git a/compiler/rustc_ast_lowering/Cargo.toml b/compiler/rustc_ast_lowering/Cargo.toml
new file mode 100644
index 0000000000000..177a9066edf5d
--- /dev/null
+++ b/compiler/rustc_ast_lowering/Cargo.toml
@@ -0,0 +1,22 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_ast_lowering"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+rustc_arena = { path = "../rustc_arena" }
+tracing = "0.1"
+rustc_ast_pretty = { path = "../rustc_ast_pretty" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_target = { path = "../rustc_target" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_index = { path = "../rustc_index" }
+rustc_span = { path = "../rustc_span" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_session = { path = "../rustc_session" }
+rustc_ast = { path = "../rustc_ast" }
+smallvec = { version = "1.0", features = ["union", "may_dangle"] }
diff --git a/src/librustc_ast_lowering/expr.rs b/compiler/rustc_ast_lowering/src/expr.rs
similarity index 100%
rename from src/librustc_ast_lowering/expr.rs
rename to compiler/rustc_ast_lowering/src/expr.rs
diff --git a/src/librustc_ast_lowering/item.rs b/compiler/rustc_ast_lowering/src/item.rs
similarity index 100%
rename from src/librustc_ast_lowering/item.rs
rename to compiler/rustc_ast_lowering/src/item.rs
diff --git a/src/librustc_ast_lowering/lib.rs b/compiler/rustc_ast_lowering/src/lib.rs
similarity index 100%
rename from src/librustc_ast_lowering/lib.rs
rename to compiler/rustc_ast_lowering/src/lib.rs
diff --git a/src/librustc_ast_lowering/pat.rs b/compiler/rustc_ast_lowering/src/pat.rs
similarity index 100%
rename from src/librustc_ast_lowering/pat.rs
rename to compiler/rustc_ast_lowering/src/pat.rs
diff --git a/src/librustc_ast_lowering/path.rs b/compiler/rustc_ast_lowering/src/path.rs
similarity index 100%
rename from src/librustc_ast_lowering/path.rs
rename to compiler/rustc_ast_lowering/src/path.rs
diff --git a/compiler/rustc_ast_passes/Cargo.toml b/compiler/rustc_ast_passes/Cargo.toml
new file mode 100644
index 0000000000000..7cf3e752c9256
--- /dev/null
+++ b/compiler/rustc_ast_passes/Cargo.toml
@@ -0,0 +1,18 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_ast_passes"
+version = "0.0.0"
+edition = "2018"
+
+[dependencies]
+itertools = "0.8"
+tracing = "0.1"
+rustc_ast_pretty = { path = "../rustc_ast_pretty" }
+rustc_attr = { path = "../rustc_attr" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_feature = { path = "../rustc_feature" }
+rustc_parse = { path = "../rustc_parse" }
+rustc_session = { path = "../rustc_session" }
+rustc_span = { path = "../rustc_span" }
+rustc_ast = { path = "../rustc_ast" }
diff --git a/src/librustc_ast_passes/ast_validation.rs b/compiler/rustc_ast_passes/src/ast_validation.rs
similarity index 100%
rename from src/librustc_ast_passes/ast_validation.rs
rename to compiler/rustc_ast_passes/src/ast_validation.rs
diff --git a/src/librustc_ast_passes/feature_gate.rs b/compiler/rustc_ast_passes/src/feature_gate.rs
similarity index 100%
rename from src/librustc_ast_passes/feature_gate.rs
rename to compiler/rustc_ast_passes/src/feature_gate.rs
diff --git a/src/librustc_ast_passes/lib.rs b/compiler/rustc_ast_passes/src/lib.rs
similarity index 100%
rename from src/librustc_ast_passes/lib.rs
rename to compiler/rustc_ast_passes/src/lib.rs
diff --git a/src/librustc_ast_passes/node_count.rs b/compiler/rustc_ast_passes/src/node_count.rs
similarity index 100%
rename from src/librustc_ast_passes/node_count.rs
rename to compiler/rustc_ast_passes/src/node_count.rs
diff --git a/src/librustc_ast_passes/show_span.rs b/compiler/rustc_ast_passes/src/show_span.rs
similarity index 100%
rename from src/librustc_ast_passes/show_span.rs
rename to compiler/rustc_ast_passes/src/show_span.rs
diff --git a/compiler/rustc_ast_pretty/Cargo.toml b/compiler/rustc_ast_pretty/Cargo.toml
new file mode 100644
index 0000000000000..f447bc7f4efba
--- /dev/null
+++ b/compiler/rustc_ast_pretty/Cargo.toml
@@ -0,0 +1,14 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_ast_pretty"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+tracing = "0.1"
+rustc_span = { path = "../rustc_span" }
+rustc_ast = { path = "../rustc_ast" }
+rustc_target = { path = "../rustc_target" }
diff --git a/src/librustc_ast_pretty/helpers.rs b/compiler/rustc_ast_pretty/src/helpers.rs
similarity index 100%
rename from src/librustc_ast_pretty/helpers.rs
rename to compiler/rustc_ast_pretty/src/helpers.rs
diff --git a/src/librustc_ast_pretty/lib.rs b/compiler/rustc_ast_pretty/src/lib.rs
similarity index 100%
rename from src/librustc_ast_pretty/lib.rs
rename to compiler/rustc_ast_pretty/src/lib.rs
diff --git a/src/librustc_ast_pretty/pp.rs b/compiler/rustc_ast_pretty/src/pp.rs
similarity index 100%
rename from src/librustc_ast_pretty/pp.rs
rename to compiler/rustc_ast_pretty/src/pp.rs
diff --git a/src/librustc_ast_pretty/pprust.rs b/compiler/rustc_ast_pretty/src/pprust.rs
similarity index 100%
rename from src/librustc_ast_pretty/pprust.rs
rename to compiler/rustc_ast_pretty/src/pprust.rs
diff --git a/src/librustc_ast_pretty/pprust/tests.rs b/compiler/rustc_ast_pretty/src/pprust/tests.rs
similarity index 100%
rename from src/librustc_ast_pretty/pprust/tests.rs
rename to compiler/rustc_ast_pretty/src/pprust/tests.rs
diff --git a/compiler/rustc_attr/Cargo.toml b/compiler/rustc_attr/Cargo.toml
new file mode 100644
index 0000000000000..5f941a0a650f8
--- /dev/null
+++ b/compiler/rustc_attr/Cargo.toml
@@ -0,0 +1,21 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_attr"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+rustc_ast_pretty = { path = "../rustc_ast_pretty" }
+rustc_serialize = { path = "../rustc_serialize" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_span = { path = "../rustc_span" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_feature = { path = "../rustc_feature" }
+rustc_lexer = { path = "../rustc_lexer" }
+rustc_macros = { path = "../rustc_macros" }
+rustc_session = { path = "../rustc_session" }
+rustc_ast = { path = "../rustc_ast" }
+version_check = "0.9"
diff --git a/src/librustc_attr/builtin.rs b/compiler/rustc_attr/src/builtin.rs
similarity index 100%
rename from src/librustc_attr/builtin.rs
rename to compiler/rustc_attr/src/builtin.rs
diff --git a/src/librustc_attr/lib.rs b/compiler/rustc_attr/src/lib.rs
similarity index 100%
rename from src/librustc_attr/lib.rs
rename to compiler/rustc_attr/src/lib.rs
diff --git a/compiler/rustc_builtin_macros/Cargo.toml b/compiler/rustc_builtin_macros/Cargo.toml
new file mode 100644
index 0000000000000..c397a85412627
--- /dev/null
+++ b/compiler/rustc_builtin_macros/Cargo.toml
@@ -0,0 +1,24 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_builtin_macros"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+rustc_parse_format = { path = "../rustc_parse_format" }
+tracing = "0.1"
+rustc_ast_pretty = { path = "../rustc_ast_pretty" }
+rustc_attr = { path = "../rustc_attr" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_feature = { path = "../rustc_feature" }
+rustc_parse = { path = "../rustc_parse" }
+rustc_target = { path = "../rustc_target" }
+rustc_session = { path = "../rustc_session" }
+smallvec = { version = "1.0", features = ["union", "may_dangle"] }
+rustc_ast = { path = "../rustc_ast" }
+rustc_expand = { path = "../rustc_expand" }
+rustc_span = { path = "../rustc_span" }
diff --git a/src/librustc_builtin_macros/asm.rs b/compiler/rustc_builtin_macros/src/asm.rs
similarity index 100%
rename from src/librustc_builtin_macros/asm.rs
rename to compiler/rustc_builtin_macros/src/asm.rs
diff --git a/src/librustc_builtin_macros/assert.rs b/compiler/rustc_builtin_macros/src/assert.rs
similarity index 100%
rename from src/librustc_builtin_macros/assert.rs
rename to compiler/rustc_builtin_macros/src/assert.rs
diff --git a/src/librustc_builtin_macros/cfg.rs b/compiler/rustc_builtin_macros/src/cfg.rs
similarity index 100%
rename from src/librustc_builtin_macros/cfg.rs
rename to compiler/rustc_builtin_macros/src/cfg.rs
diff --git a/src/librustc_builtin_macros/cfg_accessible.rs b/compiler/rustc_builtin_macros/src/cfg_accessible.rs
similarity index 100%
rename from src/librustc_builtin_macros/cfg_accessible.rs
rename to compiler/rustc_builtin_macros/src/cfg_accessible.rs
diff --git a/src/librustc_builtin_macros/cmdline_attrs.rs b/compiler/rustc_builtin_macros/src/cmdline_attrs.rs
similarity index 100%
rename from src/librustc_builtin_macros/cmdline_attrs.rs
rename to compiler/rustc_builtin_macros/src/cmdline_attrs.rs
diff --git a/src/librustc_builtin_macros/compile_error.rs b/compiler/rustc_builtin_macros/src/compile_error.rs
similarity index 100%
rename from src/librustc_builtin_macros/compile_error.rs
rename to compiler/rustc_builtin_macros/src/compile_error.rs
diff --git a/src/librustc_builtin_macros/concat.rs b/compiler/rustc_builtin_macros/src/concat.rs
similarity index 100%
rename from src/librustc_builtin_macros/concat.rs
rename to compiler/rustc_builtin_macros/src/concat.rs
diff --git a/src/librustc_builtin_macros/concat_idents.rs b/compiler/rustc_builtin_macros/src/concat_idents.rs
similarity index 100%
rename from src/librustc_builtin_macros/concat_idents.rs
rename to compiler/rustc_builtin_macros/src/concat_idents.rs
diff --git a/src/librustc_builtin_macros/deriving/bounds.rs b/compiler/rustc_builtin_macros/src/deriving/bounds.rs
similarity index 100%
rename from src/librustc_builtin_macros/deriving/bounds.rs
rename to compiler/rustc_builtin_macros/src/deriving/bounds.rs
diff --git a/src/librustc_builtin_macros/deriving/clone.rs b/compiler/rustc_builtin_macros/src/deriving/clone.rs
similarity index 100%
rename from src/librustc_builtin_macros/deriving/clone.rs
rename to compiler/rustc_builtin_macros/src/deriving/clone.rs
diff --git a/src/librustc_builtin_macros/deriving/cmp/eq.rs b/compiler/rustc_builtin_macros/src/deriving/cmp/eq.rs
similarity index 100%
rename from src/librustc_builtin_macros/deriving/cmp/eq.rs
rename to compiler/rustc_builtin_macros/src/deriving/cmp/eq.rs
diff --git a/src/librustc_builtin_macros/deriving/cmp/ord.rs b/compiler/rustc_builtin_macros/src/deriving/cmp/ord.rs
similarity index 100%
rename from src/librustc_builtin_macros/deriving/cmp/ord.rs
rename to compiler/rustc_builtin_macros/src/deriving/cmp/ord.rs
diff --git a/src/librustc_builtin_macros/deriving/cmp/partial_eq.rs b/compiler/rustc_builtin_macros/src/deriving/cmp/partial_eq.rs
similarity index 100%
rename from src/librustc_builtin_macros/deriving/cmp/partial_eq.rs
rename to compiler/rustc_builtin_macros/src/deriving/cmp/partial_eq.rs
diff --git a/src/librustc_builtin_macros/deriving/cmp/partial_ord.rs b/compiler/rustc_builtin_macros/src/deriving/cmp/partial_ord.rs
similarity index 100%
rename from src/librustc_builtin_macros/deriving/cmp/partial_ord.rs
rename to compiler/rustc_builtin_macros/src/deriving/cmp/partial_ord.rs
diff --git a/src/librustc_builtin_macros/deriving/debug.rs b/compiler/rustc_builtin_macros/src/deriving/debug.rs
similarity index 100%
rename from src/librustc_builtin_macros/deriving/debug.rs
rename to compiler/rustc_builtin_macros/src/deriving/debug.rs
diff --git a/src/librustc_builtin_macros/deriving/decodable.rs b/compiler/rustc_builtin_macros/src/deriving/decodable.rs
similarity index 100%
rename from src/librustc_builtin_macros/deriving/decodable.rs
rename to compiler/rustc_builtin_macros/src/deriving/decodable.rs
diff --git a/src/librustc_builtin_macros/deriving/default.rs b/compiler/rustc_builtin_macros/src/deriving/default.rs
similarity index 100%
rename from src/librustc_builtin_macros/deriving/default.rs
rename to compiler/rustc_builtin_macros/src/deriving/default.rs
diff --git a/src/librustc_builtin_macros/deriving/encodable.rs b/compiler/rustc_builtin_macros/src/deriving/encodable.rs
similarity index 100%
rename from src/librustc_builtin_macros/deriving/encodable.rs
rename to compiler/rustc_builtin_macros/src/deriving/encodable.rs
diff --git a/src/librustc_builtin_macros/deriving/generic/mod.rs b/compiler/rustc_builtin_macros/src/deriving/generic/mod.rs
similarity index 100%
rename from src/librustc_builtin_macros/deriving/generic/mod.rs
rename to compiler/rustc_builtin_macros/src/deriving/generic/mod.rs
diff --git a/src/librustc_builtin_macros/deriving/generic/ty.rs b/compiler/rustc_builtin_macros/src/deriving/generic/ty.rs
similarity index 100%
rename from src/librustc_builtin_macros/deriving/generic/ty.rs
rename to compiler/rustc_builtin_macros/src/deriving/generic/ty.rs
diff --git a/src/librustc_builtin_macros/deriving/hash.rs b/compiler/rustc_builtin_macros/src/deriving/hash.rs
similarity index 100%
rename from src/librustc_builtin_macros/deriving/hash.rs
rename to compiler/rustc_builtin_macros/src/deriving/hash.rs
diff --git a/src/librustc_builtin_macros/deriving/mod.rs b/compiler/rustc_builtin_macros/src/deriving/mod.rs
similarity index 100%
rename from src/librustc_builtin_macros/deriving/mod.rs
rename to compiler/rustc_builtin_macros/src/deriving/mod.rs
diff --git a/src/librustc_builtin_macros/env.rs b/compiler/rustc_builtin_macros/src/env.rs
similarity index 100%
rename from src/librustc_builtin_macros/env.rs
rename to compiler/rustc_builtin_macros/src/env.rs
diff --git a/src/librustc_builtin_macros/format.rs b/compiler/rustc_builtin_macros/src/format.rs
similarity index 100%
rename from src/librustc_builtin_macros/format.rs
rename to compiler/rustc_builtin_macros/src/format.rs
diff --git a/src/librustc_builtin_macros/format_foreign.rs b/compiler/rustc_builtin_macros/src/format_foreign.rs
similarity index 100%
rename from src/librustc_builtin_macros/format_foreign.rs
rename to compiler/rustc_builtin_macros/src/format_foreign.rs
diff --git a/src/librustc_builtin_macros/format_foreign/printf/tests.rs b/compiler/rustc_builtin_macros/src/format_foreign/printf/tests.rs
similarity index 100%
rename from src/librustc_builtin_macros/format_foreign/printf/tests.rs
rename to compiler/rustc_builtin_macros/src/format_foreign/printf/tests.rs
diff --git a/src/librustc_builtin_macros/format_foreign/shell/tests.rs b/compiler/rustc_builtin_macros/src/format_foreign/shell/tests.rs
similarity index 100%
rename from src/librustc_builtin_macros/format_foreign/shell/tests.rs
rename to compiler/rustc_builtin_macros/src/format_foreign/shell/tests.rs
diff --git a/src/librustc_builtin_macros/global_allocator.rs b/compiler/rustc_builtin_macros/src/global_allocator.rs
similarity index 100%
rename from src/librustc_builtin_macros/global_allocator.rs
rename to compiler/rustc_builtin_macros/src/global_allocator.rs
diff --git a/src/librustc_builtin_macros/global_asm.rs b/compiler/rustc_builtin_macros/src/global_asm.rs
similarity index 100%
rename from src/librustc_builtin_macros/global_asm.rs
rename to compiler/rustc_builtin_macros/src/global_asm.rs
diff --git a/src/librustc_builtin_macros/lib.rs b/compiler/rustc_builtin_macros/src/lib.rs
similarity index 100%
rename from src/librustc_builtin_macros/lib.rs
rename to compiler/rustc_builtin_macros/src/lib.rs
diff --git a/src/librustc_builtin_macros/llvm_asm.rs b/compiler/rustc_builtin_macros/src/llvm_asm.rs
similarity index 100%
rename from src/librustc_builtin_macros/llvm_asm.rs
rename to compiler/rustc_builtin_macros/src/llvm_asm.rs
diff --git a/src/librustc_builtin_macros/log_syntax.rs b/compiler/rustc_builtin_macros/src/log_syntax.rs
similarity index 100%
rename from src/librustc_builtin_macros/log_syntax.rs
rename to compiler/rustc_builtin_macros/src/log_syntax.rs
diff --git a/src/librustc_builtin_macros/proc_macro_harness.rs b/compiler/rustc_builtin_macros/src/proc_macro_harness.rs
similarity index 100%
rename from src/librustc_builtin_macros/proc_macro_harness.rs
rename to compiler/rustc_builtin_macros/src/proc_macro_harness.rs
diff --git a/src/librustc_builtin_macros/source_util.rs b/compiler/rustc_builtin_macros/src/source_util.rs
similarity index 100%
rename from src/librustc_builtin_macros/source_util.rs
rename to compiler/rustc_builtin_macros/src/source_util.rs
diff --git a/src/librustc_builtin_macros/standard_library_imports.rs b/compiler/rustc_builtin_macros/src/standard_library_imports.rs
similarity index 100%
rename from src/librustc_builtin_macros/standard_library_imports.rs
rename to compiler/rustc_builtin_macros/src/standard_library_imports.rs
diff --git a/src/librustc_builtin_macros/test.rs b/compiler/rustc_builtin_macros/src/test.rs
similarity index 100%
rename from src/librustc_builtin_macros/test.rs
rename to compiler/rustc_builtin_macros/src/test.rs
diff --git a/src/librustc_builtin_macros/test_harness.rs b/compiler/rustc_builtin_macros/src/test_harness.rs
similarity index 100%
rename from src/librustc_builtin_macros/test_harness.rs
rename to compiler/rustc_builtin_macros/src/test_harness.rs
diff --git a/src/librustc_builtin_macros/trace_macros.rs b/compiler/rustc_builtin_macros/src/trace_macros.rs
similarity index 100%
rename from src/librustc_builtin_macros/trace_macros.rs
rename to compiler/rustc_builtin_macros/src/trace_macros.rs
diff --git a/src/librustc_builtin_macros/util.rs b/compiler/rustc_builtin_macros/src/util.rs
similarity index 100%
rename from src/librustc_builtin_macros/util.rs
rename to compiler/rustc_builtin_macros/src/util.rs
diff --git a/compiler/rustc_codegen_llvm/Cargo.toml b/compiler/rustc_codegen_llvm/Cargo.toml
new file mode 100644
index 0000000000000..38f552558c839
--- /dev/null
+++ b/compiler/rustc_codegen_llvm/Cargo.toml
@@ -0,0 +1,34 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_codegen_llvm"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+test = false
+doctest = false
+
+[dependencies]
+bitflags = "1.0"
+libc = "0.2"
+measureme = "0.7.1"
+snap = "1"
+tracing = "0.1"
+rustc_middle = { path = "../rustc_middle" }
+rustc-demangle = "0.1"
+rustc_attr = { path = "../rustc_attr" }
+rustc_codegen_ssa = { path = "../rustc_codegen_ssa" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_feature = { path = "../rustc_feature" }
+rustc_fs_util = { path = "../rustc_fs_util" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_incremental = { path = "../rustc_incremental" }
+rustc_index = { path = "../rustc_index" }
+rustc_llvm = { path = "../../src/librustc_llvm" }
+rustc_session = { path = "../rustc_session" }
+rustc_serialize = { path = "../rustc_serialize" }
+rustc_target = { path = "../rustc_target" }
+smallvec = { version = "1.0", features = ["union", "may_dangle"] }
+rustc_ast = { path = "../rustc_ast" }
+rustc_span = { path = "../rustc_span" }
diff --git a/src/librustc_codegen_llvm/README.md b/compiler/rustc_codegen_llvm/README.md
similarity index 100%
rename from src/librustc_codegen_llvm/README.md
rename to compiler/rustc_codegen_llvm/README.md
diff --git a/src/librustc_codegen_llvm/abi.rs b/compiler/rustc_codegen_llvm/src/abi.rs
similarity index 100%
rename from src/librustc_codegen_llvm/abi.rs
rename to compiler/rustc_codegen_llvm/src/abi.rs
diff --git a/src/librustc_codegen_llvm/allocator.rs b/compiler/rustc_codegen_llvm/src/allocator.rs
similarity index 100%
rename from src/librustc_codegen_llvm/allocator.rs
rename to compiler/rustc_codegen_llvm/src/allocator.rs
diff --git a/src/librustc_codegen_llvm/asm.rs b/compiler/rustc_codegen_llvm/src/asm.rs
similarity index 100%
rename from src/librustc_codegen_llvm/asm.rs
rename to compiler/rustc_codegen_llvm/src/asm.rs
diff --git a/src/librustc_codegen_llvm/attributes.rs b/compiler/rustc_codegen_llvm/src/attributes.rs
similarity index 100%
rename from src/librustc_codegen_llvm/attributes.rs
rename to compiler/rustc_codegen_llvm/src/attributes.rs
diff --git a/src/librustc_codegen_llvm/back/archive.rs b/compiler/rustc_codegen_llvm/src/back/archive.rs
similarity index 100%
rename from src/librustc_codegen_llvm/back/archive.rs
rename to compiler/rustc_codegen_llvm/src/back/archive.rs
diff --git a/src/librustc_codegen_llvm/back/lto.rs b/compiler/rustc_codegen_llvm/src/back/lto.rs
similarity index 100%
rename from src/librustc_codegen_llvm/back/lto.rs
rename to compiler/rustc_codegen_llvm/src/back/lto.rs
diff --git a/src/librustc_codegen_llvm/back/profiling.rs b/compiler/rustc_codegen_llvm/src/back/profiling.rs
similarity index 100%
rename from src/librustc_codegen_llvm/back/profiling.rs
rename to compiler/rustc_codegen_llvm/src/back/profiling.rs
diff --git a/src/librustc_codegen_llvm/back/write.rs b/compiler/rustc_codegen_llvm/src/back/write.rs
similarity index 100%
rename from src/librustc_codegen_llvm/back/write.rs
rename to compiler/rustc_codegen_llvm/src/back/write.rs
diff --git a/src/librustc_codegen_llvm/base.rs b/compiler/rustc_codegen_llvm/src/base.rs
similarity index 100%
rename from src/librustc_codegen_llvm/base.rs
rename to compiler/rustc_codegen_llvm/src/base.rs
diff --git a/src/librustc_codegen_llvm/builder.rs b/compiler/rustc_codegen_llvm/src/builder.rs
similarity index 100%
rename from src/librustc_codegen_llvm/builder.rs
rename to compiler/rustc_codegen_llvm/src/builder.rs
diff --git a/src/librustc_codegen_llvm/callee.rs b/compiler/rustc_codegen_llvm/src/callee.rs
similarity index 100%
rename from src/librustc_codegen_llvm/callee.rs
rename to compiler/rustc_codegen_llvm/src/callee.rs
diff --git a/src/librustc_codegen_llvm/common.rs b/compiler/rustc_codegen_llvm/src/common.rs
similarity index 100%
rename from src/librustc_codegen_llvm/common.rs
rename to compiler/rustc_codegen_llvm/src/common.rs
diff --git a/src/librustc_codegen_llvm/consts.rs b/compiler/rustc_codegen_llvm/src/consts.rs
similarity index 100%
rename from src/librustc_codegen_llvm/consts.rs
rename to compiler/rustc_codegen_llvm/src/consts.rs
diff --git a/src/librustc_codegen_llvm/context.rs b/compiler/rustc_codegen_llvm/src/context.rs
similarity index 100%
rename from src/librustc_codegen_llvm/context.rs
rename to compiler/rustc_codegen_llvm/src/context.rs
diff --git a/src/librustc_codegen_llvm/coverageinfo/mapgen.rs b/compiler/rustc_codegen_llvm/src/coverageinfo/mapgen.rs
similarity index 100%
rename from src/librustc_codegen_llvm/coverageinfo/mapgen.rs
rename to compiler/rustc_codegen_llvm/src/coverageinfo/mapgen.rs
diff --git a/src/librustc_codegen_llvm/coverageinfo/mod.rs b/compiler/rustc_codegen_llvm/src/coverageinfo/mod.rs
similarity index 100%
rename from src/librustc_codegen_llvm/coverageinfo/mod.rs
rename to compiler/rustc_codegen_llvm/src/coverageinfo/mod.rs
diff --git a/src/librustc_codegen_llvm/debuginfo/create_scope_map.rs b/compiler/rustc_codegen_llvm/src/debuginfo/create_scope_map.rs
similarity index 100%
rename from src/librustc_codegen_llvm/debuginfo/create_scope_map.rs
rename to compiler/rustc_codegen_llvm/src/debuginfo/create_scope_map.rs
diff --git a/src/librustc_codegen_llvm/debuginfo/doc.rs b/compiler/rustc_codegen_llvm/src/debuginfo/doc.rs
similarity index 100%
rename from src/librustc_codegen_llvm/debuginfo/doc.rs
rename to compiler/rustc_codegen_llvm/src/debuginfo/doc.rs
diff --git a/src/librustc_codegen_llvm/debuginfo/gdb.rs b/compiler/rustc_codegen_llvm/src/debuginfo/gdb.rs
similarity index 100%
rename from src/librustc_codegen_llvm/debuginfo/gdb.rs
rename to compiler/rustc_codegen_llvm/src/debuginfo/gdb.rs
diff --git a/src/librustc_codegen_llvm/debuginfo/metadata.rs b/compiler/rustc_codegen_llvm/src/debuginfo/metadata.rs
similarity index 100%
rename from src/librustc_codegen_llvm/debuginfo/metadata.rs
rename to compiler/rustc_codegen_llvm/src/debuginfo/metadata.rs
diff --git a/src/librustc_codegen_llvm/debuginfo/mod.rs b/compiler/rustc_codegen_llvm/src/debuginfo/mod.rs
similarity index 100%
rename from src/librustc_codegen_llvm/debuginfo/mod.rs
rename to compiler/rustc_codegen_llvm/src/debuginfo/mod.rs
diff --git a/src/librustc_codegen_llvm/debuginfo/namespace.rs b/compiler/rustc_codegen_llvm/src/debuginfo/namespace.rs
similarity index 100%
rename from src/librustc_codegen_llvm/debuginfo/namespace.rs
rename to compiler/rustc_codegen_llvm/src/debuginfo/namespace.rs
diff --git a/src/librustc_codegen_llvm/debuginfo/source_loc.rs b/compiler/rustc_codegen_llvm/src/debuginfo/source_loc.rs
similarity index 100%
rename from src/librustc_codegen_llvm/debuginfo/source_loc.rs
rename to compiler/rustc_codegen_llvm/src/debuginfo/source_loc.rs
diff --git a/src/librustc_codegen_llvm/debuginfo/utils.rs b/compiler/rustc_codegen_llvm/src/debuginfo/utils.rs
similarity index 100%
rename from src/librustc_codegen_llvm/debuginfo/utils.rs
rename to compiler/rustc_codegen_llvm/src/debuginfo/utils.rs
diff --git a/src/librustc_codegen_llvm/declare.rs b/compiler/rustc_codegen_llvm/src/declare.rs
similarity index 100%
rename from src/librustc_codegen_llvm/declare.rs
rename to compiler/rustc_codegen_llvm/src/declare.rs
diff --git a/src/librustc_codegen_llvm/intrinsic.rs b/compiler/rustc_codegen_llvm/src/intrinsic.rs
similarity index 100%
rename from src/librustc_codegen_llvm/intrinsic.rs
rename to compiler/rustc_codegen_llvm/src/intrinsic.rs
diff --git a/src/librustc_codegen_llvm/lib.rs b/compiler/rustc_codegen_llvm/src/lib.rs
similarity index 100%
rename from src/librustc_codegen_llvm/lib.rs
rename to compiler/rustc_codegen_llvm/src/lib.rs
diff --git a/src/librustc_codegen_llvm/llvm/archive_ro.rs b/compiler/rustc_codegen_llvm/src/llvm/archive_ro.rs
similarity index 100%
rename from src/librustc_codegen_llvm/llvm/archive_ro.rs
rename to compiler/rustc_codegen_llvm/src/llvm/archive_ro.rs
diff --git a/src/librustc_codegen_llvm/llvm/diagnostic.rs b/compiler/rustc_codegen_llvm/src/llvm/diagnostic.rs
similarity index 100%
rename from src/librustc_codegen_llvm/llvm/diagnostic.rs
rename to compiler/rustc_codegen_llvm/src/llvm/diagnostic.rs
diff --git a/src/librustc_codegen_llvm/llvm/ffi.rs b/compiler/rustc_codegen_llvm/src/llvm/ffi.rs
similarity index 100%
rename from src/librustc_codegen_llvm/llvm/ffi.rs
rename to compiler/rustc_codegen_llvm/src/llvm/ffi.rs
diff --git a/src/librustc_codegen_llvm/llvm/mod.rs b/compiler/rustc_codegen_llvm/src/llvm/mod.rs
similarity index 100%
rename from src/librustc_codegen_llvm/llvm/mod.rs
rename to compiler/rustc_codegen_llvm/src/llvm/mod.rs
diff --git a/src/librustc_codegen_llvm/llvm_util.rs b/compiler/rustc_codegen_llvm/src/llvm_util.rs
similarity index 100%
rename from src/librustc_codegen_llvm/llvm_util.rs
rename to compiler/rustc_codegen_llvm/src/llvm_util.rs
diff --git a/src/librustc_codegen_llvm/metadata.rs b/compiler/rustc_codegen_llvm/src/metadata.rs
similarity index 100%
rename from src/librustc_codegen_llvm/metadata.rs
rename to compiler/rustc_codegen_llvm/src/metadata.rs
diff --git a/src/librustc_codegen_llvm/mono_item.rs b/compiler/rustc_codegen_llvm/src/mono_item.rs
similarity index 100%
rename from src/librustc_codegen_llvm/mono_item.rs
rename to compiler/rustc_codegen_llvm/src/mono_item.rs
diff --git a/src/librustc_codegen_llvm/type_.rs b/compiler/rustc_codegen_llvm/src/type_.rs
similarity index 100%
rename from src/librustc_codegen_llvm/type_.rs
rename to compiler/rustc_codegen_llvm/src/type_.rs
diff --git a/src/librustc_codegen_llvm/type_of.rs b/compiler/rustc_codegen_llvm/src/type_of.rs
similarity index 100%
rename from src/librustc_codegen_llvm/type_of.rs
rename to compiler/rustc_codegen_llvm/src/type_of.rs
diff --git a/src/librustc_codegen_llvm/va_arg.rs b/compiler/rustc_codegen_llvm/src/va_arg.rs
similarity index 100%
rename from src/librustc_codegen_llvm/va_arg.rs
rename to compiler/rustc_codegen_llvm/src/va_arg.rs
diff --git a/src/librustc_codegen_llvm/value.rs b/compiler/rustc_codegen_llvm/src/value.rs
similarity index 100%
rename from src/librustc_codegen_llvm/value.rs
rename to compiler/rustc_codegen_llvm/src/value.rs
diff --git a/compiler/rustc_codegen_ssa/Cargo.toml b/compiler/rustc_codegen_ssa/Cargo.toml
new file mode 100644
index 0000000000000..e5df0f60941a8
--- /dev/null
+++ b/compiler/rustc_codegen_ssa/Cargo.toml
@@ -0,0 +1,36 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_codegen_ssa"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+test = false
+
+[dependencies]
+bitflags = "1.2.1"
+cc = "1.0.1"
+num_cpus = "1.0"
+memmap = "0.7"
+tracing = "0.1"
+libc = "0.2.50"
+jobserver = "0.1.11"
+tempfile = "3.1"
+pathdiff = "0.2.0"
+
+rustc_serialize = { path = "../rustc_serialize" }
+rustc_ast = { path = "../rustc_ast" }
+rustc_span = { path = "../rustc_span" }
+rustc_middle = { path = "../rustc_middle" }
+rustc_apfloat = { path = "../rustc_apfloat" }
+rustc_attr = { path = "../rustc_attr" }
+rustc_symbol_mangling = { path = "../rustc_symbol_mangling" }
+rustc_data_structures = { path = "../rustc_data_structures"}
+rustc_errors = { path = "../rustc_errors" }
+rustc_fs_util = { path = "../rustc_fs_util" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_incremental = { path = "../rustc_incremental" }
+rustc_index = { path = "../rustc_index" }
+rustc_macros = { path = "../rustc_macros" }
+rustc_target = { path = "../rustc_target" }
+rustc_session = { path = "../rustc_session" }
diff --git a/src/librustc_codegen_ssa/README.md b/compiler/rustc_codegen_ssa/README.md
similarity index 100%
rename from src/librustc_codegen_ssa/README.md
rename to compiler/rustc_codegen_ssa/README.md
diff --git a/src/librustc_codegen_ssa/back/archive.rs b/compiler/rustc_codegen_ssa/src/back/archive.rs
similarity index 100%
rename from src/librustc_codegen_ssa/back/archive.rs
rename to compiler/rustc_codegen_ssa/src/back/archive.rs
diff --git a/src/librustc_codegen_ssa/back/command.rs b/compiler/rustc_codegen_ssa/src/back/command.rs
similarity index 100%
rename from src/librustc_codegen_ssa/back/command.rs
rename to compiler/rustc_codegen_ssa/src/back/command.rs
diff --git a/src/librustc_codegen_ssa/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs
similarity index 100%
rename from src/librustc_codegen_ssa/back/link.rs
rename to compiler/rustc_codegen_ssa/src/back/link.rs
diff --git a/src/librustc_codegen_ssa/back/linker.rs b/compiler/rustc_codegen_ssa/src/back/linker.rs
similarity index 100%
rename from src/librustc_codegen_ssa/back/linker.rs
rename to compiler/rustc_codegen_ssa/src/back/linker.rs
diff --git a/src/librustc_codegen_ssa/back/lto.rs b/compiler/rustc_codegen_ssa/src/back/lto.rs
similarity index 100%
rename from src/librustc_codegen_ssa/back/lto.rs
rename to compiler/rustc_codegen_ssa/src/back/lto.rs
diff --git a/src/librustc_codegen_ssa/back/mod.rs b/compiler/rustc_codegen_ssa/src/back/mod.rs
similarity index 100%
rename from src/librustc_codegen_ssa/back/mod.rs
rename to compiler/rustc_codegen_ssa/src/back/mod.rs
diff --git a/src/librustc_codegen_ssa/back/rpath.rs b/compiler/rustc_codegen_ssa/src/back/rpath.rs
similarity index 100%
rename from src/librustc_codegen_ssa/back/rpath.rs
rename to compiler/rustc_codegen_ssa/src/back/rpath.rs
diff --git a/src/librustc_codegen_ssa/back/rpath/tests.rs b/compiler/rustc_codegen_ssa/src/back/rpath/tests.rs
similarity index 100%
rename from src/librustc_codegen_ssa/back/rpath/tests.rs
rename to compiler/rustc_codegen_ssa/src/back/rpath/tests.rs
diff --git a/src/librustc_codegen_ssa/back/symbol_export.rs b/compiler/rustc_codegen_ssa/src/back/symbol_export.rs
similarity index 100%
rename from src/librustc_codegen_ssa/back/symbol_export.rs
rename to compiler/rustc_codegen_ssa/src/back/symbol_export.rs
diff --git a/src/librustc_codegen_ssa/back/write.rs b/compiler/rustc_codegen_ssa/src/back/write.rs
similarity index 100%
rename from src/librustc_codegen_ssa/back/write.rs
rename to compiler/rustc_codegen_ssa/src/back/write.rs
diff --git a/src/librustc_codegen_ssa/base.rs b/compiler/rustc_codegen_ssa/src/base.rs
similarity index 100%
rename from src/librustc_codegen_ssa/base.rs
rename to compiler/rustc_codegen_ssa/src/base.rs
diff --git a/src/librustc_codegen_ssa/common.rs b/compiler/rustc_codegen_ssa/src/common.rs
similarity index 100%
rename from src/librustc_codegen_ssa/common.rs
rename to compiler/rustc_codegen_ssa/src/common.rs
diff --git a/src/librustc_codegen_ssa/coverageinfo/ffi.rs b/compiler/rustc_codegen_ssa/src/coverageinfo/ffi.rs
similarity index 100%
rename from src/librustc_codegen_ssa/coverageinfo/ffi.rs
rename to compiler/rustc_codegen_ssa/src/coverageinfo/ffi.rs
diff --git a/src/librustc_codegen_ssa/coverageinfo/map.rs b/compiler/rustc_codegen_ssa/src/coverageinfo/map.rs
similarity index 100%
rename from src/librustc_codegen_ssa/coverageinfo/map.rs
rename to compiler/rustc_codegen_ssa/src/coverageinfo/map.rs
diff --git a/src/librustc_codegen_ssa/coverageinfo/mod.rs b/compiler/rustc_codegen_ssa/src/coverageinfo/mod.rs
similarity index 100%
rename from src/librustc_codegen_ssa/coverageinfo/mod.rs
rename to compiler/rustc_codegen_ssa/src/coverageinfo/mod.rs
diff --git a/src/librustc_codegen_ssa/debuginfo/mod.rs b/compiler/rustc_codegen_ssa/src/debuginfo/mod.rs
similarity index 100%
rename from src/librustc_codegen_ssa/debuginfo/mod.rs
rename to compiler/rustc_codegen_ssa/src/debuginfo/mod.rs
diff --git a/src/librustc_codegen_ssa/debuginfo/type_names.rs b/compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs
similarity index 100%
rename from src/librustc_codegen_ssa/debuginfo/type_names.rs
rename to compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs
diff --git a/src/librustc_codegen_ssa/glue.rs b/compiler/rustc_codegen_ssa/src/glue.rs
similarity index 100%
rename from src/librustc_codegen_ssa/glue.rs
rename to compiler/rustc_codegen_ssa/src/glue.rs
diff --git a/src/librustc_codegen_ssa/lib.rs b/compiler/rustc_codegen_ssa/src/lib.rs
similarity index 100%
rename from src/librustc_codegen_ssa/lib.rs
rename to compiler/rustc_codegen_ssa/src/lib.rs
diff --git a/src/librustc_codegen_ssa/meth.rs b/compiler/rustc_codegen_ssa/src/meth.rs
similarity index 100%
rename from src/librustc_codegen_ssa/meth.rs
rename to compiler/rustc_codegen_ssa/src/meth.rs
diff --git a/src/librustc_codegen_ssa/mir/analyze.rs b/compiler/rustc_codegen_ssa/src/mir/analyze.rs
similarity index 100%
rename from src/librustc_codegen_ssa/mir/analyze.rs
rename to compiler/rustc_codegen_ssa/src/mir/analyze.rs
diff --git a/src/librustc_codegen_ssa/mir/block.rs b/compiler/rustc_codegen_ssa/src/mir/block.rs
similarity index 100%
rename from src/librustc_codegen_ssa/mir/block.rs
rename to compiler/rustc_codegen_ssa/src/mir/block.rs
diff --git a/src/librustc_codegen_ssa/mir/constant.rs b/compiler/rustc_codegen_ssa/src/mir/constant.rs
similarity index 100%
rename from src/librustc_codegen_ssa/mir/constant.rs
rename to compiler/rustc_codegen_ssa/src/mir/constant.rs
diff --git a/src/librustc_codegen_ssa/mir/coverageinfo.rs b/compiler/rustc_codegen_ssa/src/mir/coverageinfo.rs
similarity index 100%
rename from src/librustc_codegen_ssa/mir/coverageinfo.rs
rename to compiler/rustc_codegen_ssa/src/mir/coverageinfo.rs
diff --git a/src/librustc_codegen_ssa/mir/debuginfo.rs b/compiler/rustc_codegen_ssa/src/mir/debuginfo.rs
similarity index 100%
rename from src/librustc_codegen_ssa/mir/debuginfo.rs
rename to compiler/rustc_codegen_ssa/src/mir/debuginfo.rs
diff --git a/src/librustc_codegen_ssa/mir/mod.rs b/compiler/rustc_codegen_ssa/src/mir/mod.rs
similarity index 100%
rename from src/librustc_codegen_ssa/mir/mod.rs
rename to compiler/rustc_codegen_ssa/src/mir/mod.rs
diff --git a/src/librustc_codegen_ssa/mir/operand.rs b/compiler/rustc_codegen_ssa/src/mir/operand.rs
similarity index 100%
rename from src/librustc_codegen_ssa/mir/operand.rs
rename to compiler/rustc_codegen_ssa/src/mir/operand.rs
diff --git a/src/librustc_codegen_ssa/mir/place.rs b/compiler/rustc_codegen_ssa/src/mir/place.rs
similarity index 100%
rename from src/librustc_codegen_ssa/mir/place.rs
rename to compiler/rustc_codegen_ssa/src/mir/place.rs
diff --git a/src/librustc_codegen_ssa/mir/rvalue.rs b/compiler/rustc_codegen_ssa/src/mir/rvalue.rs
similarity index 100%
rename from src/librustc_codegen_ssa/mir/rvalue.rs
rename to compiler/rustc_codegen_ssa/src/mir/rvalue.rs
diff --git a/src/librustc_codegen_ssa/mir/statement.rs b/compiler/rustc_codegen_ssa/src/mir/statement.rs
similarity index 100%
rename from src/librustc_codegen_ssa/mir/statement.rs
rename to compiler/rustc_codegen_ssa/src/mir/statement.rs
diff --git a/src/librustc_codegen_ssa/mono_item.rs b/compiler/rustc_codegen_ssa/src/mono_item.rs
similarity index 100%
rename from src/librustc_codegen_ssa/mono_item.rs
rename to compiler/rustc_codegen_ssa/src/mono_item.rs
diff --git a/src/librustc_codegen_ssa/traits/abi.rs b/compiler/rustc_codegen_ssa/src/traits/abi.rs
similarity index 100%
rename from src/librustc_codegen_ssa/traits/abi.rs
rename to compiler/rustc_codegen_ssa/src/traits/abi.rs
diff --git a/src/librustc_codegen_ssa/traits/asm.rs b/compiler/rustc_codegen_ssa/src/traits/asm.rs
similarity index 100%
rename from src/librustc_codegen_ssa/traits/asm.rs
rename to compiler/rustc_codegen_ssa/src/traits/asm.rs
diff --git a/src/librustc_codegen_ssa/traits/backend.rs b/compiler/rustc_codegen_ssa/src/traits/backend.rs
similarity index 100%
rename from src/librustc_codegen_ssa/traits/backend.rs
rename to compiler/rustc_codegen_ssa/src/traits/backend.rs
diff --git a/src/librustc_codegen_ssa/traits/builder.rs b/compiler/rustc_codegen_ssa/src/traits/builder.rs
similarity index 100%
rename from src/librustc_codegen_ssa/traits/builder.rs
rename to compiler/rustc_codegen_ssa/src/traits/builder.rs
diff --git a/src/librustc_codegen_ssa/traits/consts.rs b/compiler/rustc_codegen_ssa/src/traits/consts.rs
similarity index 100%
rename from src/librustc_codegen_ssa/traits/consts.rs
rename to compiler/rustc_codegen_ssa/src/traits/consts.rs
diff --git a/src/librustc_codegen_ssa/traits/coverageinfo.rs b/compiler/rustc_codegen_ssa/src/traits/coverageinfo.rs
similarity index 100%
rename from src/librustc_codegen_ssa/traits/coverageinfo.rs
rename to compiler/rustc_codegen_ssa/src/traits/coverageinfo.rs
diff --git a/src/librustc_codegen_ssa/traits/debuginfo.rs b/compiler/rustc_codegen_ssa/src/traits/debuginfo.rs
similarity index 100%
rename from src/librustc_codegen_ssa/traits/debuginfo.rs
rename to compiler/rustc_codegen_ssa/src/traits/debuginfo.rs
diff --git a/src/librustc_codegen_ssa/traits/declare.rs b/compiler/rustc_codegen_ssa/src/traits/declare.rs
similarity index 100%
rename from src/librustc_codegen_ssa/traits/declare.rs
rename to compiler/rustc_codegen_ssa/src/traits/declare.rs
diff --git a/src/librustc_codegen_ssa/traits/intrinsic.rs b/compiler/rustc_codegen_ssa/src/traits/intrinsic.rs
similarity index 100%
rename from src/librustc_codegen_ssa/traits/intrinsic.rs
rename to compiler/rustc_codegen_ssa/src/traits/intrinsic.rs
diff --git a/src/librustc_codegen_ssa/traits/misc.rs b/compiler/rustc_codegen_ssa/src/traits/misc.rs
similarity index 100%
rename from src/librustc_codegen_ssa/traits/misc.rs
rename to compiler/rustc_codegen_ssa/src/traits/misc.rs
diff --git a/src/librustc_codegen_ssa/traits/mod.rs b/compiler/rustc_codegen_ssa/src/traits/mod.rs
similarity index 100%
rename from src/librustc_codegen_ssa/traits/mod.rs
rename to compiler/rustc_codegen_ssa/src/traits/mod.rs
diff --git a/src/librustc_codegen_ssa/traits/statics.rs b/compiler/rustc_codegen_ssa/src/traits/statics.rs
similarity index 100%
rename from src/librustc_codegen_ssa/traits/statics.rs
rename to compiler/rustc_codegen_ssa/src/traits/statics.rs
diff --git a/src/librustc_codegen_ssa/traits/type_.rs b/compiler/rustc_codegen_ssa/src/traits/type_.rs
similarity index 100%
rename from src/librustc_codegen_ssa/traits/type_.rs
rename to compiler/rustc_codegen_ssa/src/traits/type_.rs
diff --git a/src/librustc_codegen_ssa/traits/write.rs b/compiler/rustc_codegen_ssa/src/traits/write.rs
similarity index 100%
rename from src/librustc_codegen_ssa/traits/write.rs
rename to compiler/rustc_codegen_ssa/src/traits/write.rs
diff --git a/src/librustc_data_structures/Cargo.toml b/compiler/rustc_data_structures/Cargo.toml
similarity index 77%
rename from src/librustc_data_structures/Cargo.toml
rename to compiler/rustc_data_structures/Cargo.toml
index 988bb733f9fb7..f929d9911f91a 100644
--- a/src/librustc_data_structures/Cargo.toml
+++ b/compiler/rustc_data_structures/Cargo.toml
@@ -5,8 +5,6 @@ version = "0.0.0"
 edition = "2018"
 
 [lib]
-name = "rustc_data_structures"
-path = "lib.rs"
 doctest = false
 
 [dependencies]
@@ -16,9 +14,9 @@ tracing = "0.1"
 jobserver_crate = { version = "0.1.13", package = "jobserver" }
 lazy_static = "1"
 once_cell = { version = "1", features = ["parking_lot"] }
-rustc_serialize = { path = "../librustc_serialize" }
-rustc_macros = { path = "../librustc_macros" }
-rustc_graphviz = { path = "../librustc_graphviz" }
+rustc_serialize = { path = "../rustc_serialize" }
+rustc_macros = { path = "../rustc_macros" }
+rustc_graphviz = { path = "../rustc_graphviz" }
 cfg-if = "0.1.2"
 crossbeam-utils = { version = "0.7", features = ["nightly"] }
 stable_deref_trait = "1.0.0"
@@ -26,7 +24,7 @@ rayon = { version = "0.3.0", package = "rustc-rayon" }
 rayon-core = { version = "0.3.0", package = "rustc-rayon-core" }
 rustc-hash = "1.1.0"
 smallvec = { version = "1.0", features = ["union", "may_dangle"] }
-rustc_index = { path = "../librustc_index", package = "rustc_index" }
+rustc_index = { path = "../rustc_index", package = "rustc_index" }
 bitflags = "1.2.1"
 measureme = "0.7.1"
 libc = "0.2"
diff --git a/src/librustc_data_structures/atomic_ref.rs b/compiler/rustc_data_structures/src/atomic_ref.rs
similarity index 100%
rename from src/librustc_data_structures/atomic_ref.rs
rename to compiler/rustc_data_structures/src/atomic_ref.rs
diff --git a/src/librustc_data_structures/base_n.rs b/compiler/rustc_data_structures/src/base_n.rs
similarity index 100%
rename from src/librustc_data_structures/base_n.rs
rename to compiler/rustc_data_structures/src/base_n.rs
diff --git a/src/librustc_data_structures/base_n/tests.rs b/compiler/rustc_data_structures/src/base_n/tests.rs
similarity index 100%
rename from src/librustc_data_structures/base_n/tests.rs
rename to compiler/rustc_data_structures/src/base_n/tests.rs
diff --git a/src/librustc_data_structures/binary_search_util/mod.rs b/compiler/rustc_data_structures/src/binary_search_util/mod.rs
similarity index 100%
rename from src/librustc_data_structures/binary_search_util/mod.rs
rename to compiler/rustc_data_structures/src/binary_search_util/mod.rs
diff --git a/src/librustc_data_structures/binary_search_util/tests.rs b/compiler/rustc_data_structures/src/binary_search_util/tests.rs
similarity index 100%
rename from src/librustc_data_structures/binary_search_util/tests.rs
rename to compiler/rustc_data_structures/src/binary_search_util/tests.rs
diff --git a/src/librustc_data_structures/box_region.rs b/compiler/rustc_data_structures/src/box_region.rs
similarity index 100%
rename from src/librustc_data_structures/box_region.rs
rename to compiler/rustc_data_structures/src/box_region.rs
diff --git a/src/librustc_data_structures/captures.rs b/compiler/rustc_data_structures/src/captures.rs
similarity index 100%
rename from src/librustc_data_structures/captures.rs
rename to compiler/rustc_data_structures/src/captures.rs
diff --git a/src/librustc_data_structures/const_cstr.rs b/compiler/rustc_data_structures/src/const_cstr.rs
similarity index 100%
rename from src/librustc_data_structures/const_cstr.rs
rename to compiler/rustc_data_structures/src/const_cstr.rs
diff --git a/src/librustc_data_structures/fingerprint.rs b/compiler/rustc_data_structures/src/fingerprint.rs
similarity index 100%
rename from src/librustc_data_structures/fingerprint.rs
rename to compiler/rustc_data_structures/src/fingerprint.rs
diff --git a/src/librustc_data_structures/flock.rs b/compiler/rustc_data_structures/src/flock.rs
similarity index 100%
rename from src/librustc_data_structures/flock.rs
rename to compiler/rustc_data_structures/src/flock.rs
diff --git a/src/librustc_data_structures/frozen.rs b/compiler/rustc_data_structures/src/frozen.rs
similarity index 100%
rename from src/librustc_data_structures/frozen.rs
rename to compiler/rustc_data_structures/src/frozen.rs
diff --git a/src/librustc_data_structures/fx.rs b/compiler/rustc_data_structures/src/fx.rs
similarity index 100%
rename from src/librustc_data_structures/fx.rs
rename to compiler/rustc_data_structures/src/fx.rs
diff --git a/src/librustc_data_structures/graph/dominators/mod.rs b/compiler/rustc_data_structures/src/graph/dominators/mod.rs
similarity index 100%
rename from src/librustc_data_structures/graph/dominators/mod.rs
rename to compiler/rustc_data_structures/src/graph/dominators/mod.rs
diff --git a/src/librustc_data_structures/graph/dominators/tests.rs b/compiler/rustc_data_structures/src/graph/dominators/tests.rs
similarity index 100%
rename from src/librustc_data_structures/graph/dominators/tests.rs
rename to compiler/rustc_data_structures/src/graph/dominators/tests.rs
diff --git a/src/librustc_data_structures/graph/implementation/mod.rs b/compiler/rustc_data_structures/src/graph/implementation/mod.rs
similarity index 100%
rename from src/librustc_data_structures/graph/implementation/mod.rs
rename to compiler/rustc_data_structures/src/graph/implementation/mod.rs
diff --git a/src/librustc_data_structures/graph/implementation/tests.rs b/compiler/rustc_data_structures/src/graph/implementation/tests.rs
similarity index 100%
rename from src/librustc_data_structures/graph/implementation/tests.rs
rename to compiler/rustc_data_structures/src/graph/implementation/tests.rs
diff --git a/src/librustc_data_structures/graph/iterate/mod.rs b/compiler/rustc_data_structures/src/graph/iterate/mod.rs
similarity index 100%
rename from src/librustc_data_structures/graph/iterate/mod.rs
rename to compiler/rustc_data_structures/src/graph/iterate/mod.rs
diff --git a/src/librustc_data_structures/graph/iterate/tests.rs b/compiler/rustc_data_structures/src/graph/iterate/tests.rs
similarity index 100%
rename from src/librustc_data_structures/graph/iterate/tests.rs
rename to compiler/rustc_data_structures/src/graph/iterate/tests.rs
diff --git a/src/librustc_data_structures/graph/mod.rs b/compiler/rustc_data_structures/src/graph/mod.rs
similarity index 100%
rename from src/librustc_data_structures/graph/mod.rs
rename to compiler/rustc_data_structures/src/graph/mod.rs
diff --git a/src/librustc_data_structures/graph/reference.rs b/compiler/rustc_data_structures/src/graph/reference.rs
similarity index 100%
rename from src/librustc_data_structures/graph/reference.rs
rename to compiler/rustc_data_structures/src/graph/reference.rs
diff --git a/src/librustc_data_structures/graph/scc/mod.rs b/compiler/rustc_data_structures/src/graph/scc/mod.rs
similarity index 100%
rename from src/librustc_data_structures/graph/scc/mod.rs
rename to compiler/rustc_data_structures/src/graph/scc/mod.rs
diff --git a/src/librustc_data_structures/graph/scc/tests.rs b/compiler/rustc_data_structures/src/graph/scc/tests.rs
similarity index 100%
rename from src/librustc_data_structures/graph/scc/tests.rs
rename to compiler/rustc_data_structures/src/graph/scc/tests.rs
diff --git a/src/librustc_data_structures/graph/tests.rs b/compiler/rustc_data_structures/src/graph/tests.rs
similarity index 100%
rename from src/librustc_data_structures/graph/tests.rs
rename to compiler/rustc_data_structures/src/graph/tests.rs
diff --git a/src/librustc_data_structures/graph/vec_graph/mod.rs b/compiler/rustc_data_structures/src/graph/vec_graph/mod.rs
similarity index 100%
rename from src/librustc_data_structures/graph/vec_graph/mod.rs
rename to compiler/rustc_data_structures/src/graph/vec_graph/mod.rs
diff --git a/src/librustc_data_structures/graph/vec_graph/tests.rs b/compiler/rustc_data_structures/src/graph/vec_graph/tests.rs
similarity index 100%
rename from src/librustc_data_structures/graph/vec_graph/tests.rs
rename to compiler/rustc_data_structures/src/graph/vec_graph/tests.rs
diff --git a/src/librustc_data_structures/jobserver.rs b/compiler/rustc_data_structures/src/jobserver.rs
similarity index 100%
rename from src/librustc_data_structures/jobserver.rs
rename to compiler/rustc_data_structures/src/jobserver.rs
diff --git a/src/librustc_data_structures/lib.rs b/compiler/rustc_data_structures/src/lib.rs
similarity index 100%
rename from src/librustc_data_structures/lib.rs
rename to compiler/rustc_data_structures/src/lib.rs
diff --git a/src/librustc_data_structures/macros.rs b/compiler/rustc_data_structures/src/macros.rs
similarity index 100%
rename from src/librustc_data_structures/macros.rs
rename to compiler/rustc_data_structures/src/macros.rs
diff --git a/src/librustc_data_structures/map_in_place.rs b/compiler/rustc_data_structures/src/map_in_place.rs
similarity index 100%
rename from src/librustc_data_structures/map_in_place.rs
rename to compiler/rustc_data_structures/src/map_in_place.rs
diff --git a/src/librustc_data_structures/obligation_forest/graphviz.rs b/compiler/rustc_data_structures/src/obligation_forest/graphviz.rs
similarity index 100%
rename from src/librustc_data_structures/obligation_forest/graphviz.rs
rename to compiler/rustc_data_structures/src/obligation_forest/graphviz.rs
diff --git a/src/librustc_data_structures/obligation_forest/mod.rs b/compiler/rustc_data_structures/src/obligation_forest/mod.rs
similarity index 100%
rename from src/librustc_data_structures/obligation_forest/mod.rs
rename to compiler/rustc_data_structures/src/obligation_forest/mod.rs
diff --git a/src/librustc_data_structures/obligation_forest/tests.rs b/compiler/rustc_data_structures/src/obligation_forest/tests.rs
similarity index 100%
rename from src/librustc_data_structures/obligation_forest/tests.rs
rename to compiler/rustc_data_structures/src/obligation_forest/tests.rs
diff --git a/src/librustc_data_structures/owning_ref/LICENSE b/compiler/rustc_data_structures/src/owning_ref/LICENSE
similarity index 100%
rename from src/librustc_data_structures/owning_ref/LICENSE
rename to compiler/rustc_data_structures/src/owning_ref/LICENSE
diff --git a/src/librustc_data_structures/owning_ref/mod.rs b/compiler/rustc_data_structures/src/owning_ref/mod.rs
similarity index 100%
rename from src/librustc_data_structures/owning_ref/mod.rs
rename to compiler/rustc_data_structures/src/owning_ref/mod.rs
diff --git a/src/librustc_data_structures/owning_ref/tests.rs b/compiler/rustc_data_structures/src/owning_ref/tests.rs
similarity index 100%
rename from src/librustc_data_structures/owning_ref/tests.rs
rename to compiler/rustc_data_structures/src/owning_ref/tests.rs
diff --git a/src/librustc_data_structures/profiling.rs b/compiler/rustc_data_structures/src/profiling.rs
similarity index 100%
rename from src/librustc_data_structures/profiling.rs
rename to compiler/rustc_data_structures/src/profiling.rs
diff --git a/src/librustc_data_structures/ptr_key.rs b/compiler/rustc_data_structures/src/ptr_key.rs
similarity index 100%
rename from src/librustc_data_structures/ptr_key.rs
rename to compiler/rustc_data_structures/src/ptr_key.rs
diff --git a/src/librustc_data_structures/sharded.rs b/compiler/rustc_data_structures/src/sharded.rs
similarity index 100%
rename from src/librustc_data_structures/sharded.rs
rename to compiler/rustc_data_structures/src/sharded.rs
diff --git a/src/librustc_data_structures/sip128.rs b/compiler/rustc_data_structures/src/sip128.rs
similarity index 100%
rename from src/librustc_data_structures/sip128.rs
rename to compiler/rustc_data_structures/src/sip128.rs
diff --git a/src/librustc_data_structures/sip128/tests.rs b/compiler/rustc_data_structures/src/sip128/tests.rs
similarity index 100%
rename from src/librustc_data_structures/sip128/tests.rs
rename to compiler/rustc_data_structures/src/sip128/tests.rs
diff --git a/src/librustc_data_structures/small_c_str.rs b/compiler/rustc_data_structures/src/small_c_str.rs
similarity index 100%
rename from src/librustc_data_structures/small_c_str.rs
rename to compiler/rustc_data_structures/src/small_c_str.rs
diff --git a/src/librustc_data_structures/small_c_str/tests.rs b/compiler/rustc_data_structures/src/small_c_str/tests.rs
similarity index 100%
rename from src/librustc_data_structures/small_c_str/tests.rs
rename to compiler/rustc_data_structures/src/small_c_str/tests.rs
diff --git a/src/librustc_data_structures/snapshot_map/mod.rs b/compiler/rustc_data_structures/src/snapshot_map/mod.rs
similarity index 100%
rename from src/librustc_data_structures/snapshot_map/mod.rs
rename to compiler/rustc_data_structures/src/snapshot_map/mod.rs
diff --git a/src/librustc_data_structures/snapshot_map/tests.rs b/compiler/rustc_data_structures/src/snapshot_map/tests.rs
similarity index 100%
rename from src/librustc_data_structures/snapshot_map/tests.rs
rename to compiler/rustc_data_structures/src/snapshot_map/tests.rs
diff --git a/src/librustc_data_structures/sorted_map.rs b/compiler/rustc_data_structures/src/sorted_map.rs
similarity index 100%
rename from src/librustc_data_structures/sorted_map.rs
rename to compiler/rustc_data_structures/src/sorted_map.rs
diff --git a/src/librustc_data_structures/sorted_map/index_map.rs b/compiler/rustc_data_structures/src/sorted_map/index_map.rs
similarity index 100%
rename from src/librustc_data_structures/sorted_map/index_map.rs
rename to compiler/rustc_data_structures/src/sorted_map/index_map.rs
diff --git a/src/librustc_data_structures/sorted_map/tests.rs b/compiler/rustc_data_structures/src/sorted_map/tests.rs
similarity index 100%
rename from src/librustc_data_structures/sorted_map/tests.rs
rename to compiler/rustc_data_structures/src/sorted_map/tests.rs
diff --git a/src/librustc_data_structures/stable_hasher.rs b/compiler/rustc_data_structures/src/stable_hasher.rs
similarity index 100%
rename from src/librustc_data_structures/stable_hasher.rs
rename to compiler/rustc_data_structures/src/stable_hasher.rs
diff --git a/src/librustc_data_structures/stable_map.rs b/compiler/rustc_data_structures/src/stable_map.rs
similarity index 100%
rename from src/librustc_data_structures/stable_map.rs
rename to compiler/rustc_data_structures/src/stable_map.rs
diff --git a/src/librustc_data_structures/stable_set.rs b/compiler/rustc_data_structures/src/stable_set.rs
similarity index 100%
rename from src/librustc_data_structures/stable_set.rs
rename to compiler/rustc_data_structures/src/stable_set.rs
diff --git a/src/librustc_data_structures/stack.rs b/compiler/rustc_data_structures/src/stack.rs
similarity index 100%
rename from src/librustc_data_structures/stack.rs
rename to compiler/rustc_data_structures/src/stack.rs
diff --git a/src/librustc_data_structures/svh.rs b/compiler/rustc_data_structures/src/svh.rs
similarity index 100%
rename from src/librustc_data_structures/svh.rs
rename to compiler/rustc_data_structures/src/svh.rs
diff --git a/src/librustc_data_structures/sync.rs b/compiler/rustc_data_structures/src/sync.rs
similarity index 100%
rename from src/librustc_data_structures/sync.rs
rename to compiler/rustc_data_structures/src/sync.rs
diff --git a/src/librustc_data_structures/tagged_ptr.rs b/compiler/rustc_data_structures/src/tagged_ptr.rs
similarity index 100%
rename from src/librustc_data_structures/tagged_ptr.rs
rename to compiler/rustc_data_structures/src/tagged_ptr.rs
diff --git a/src/librustc_data_structures/tagged_ptr/copy.rs b/compiler/rustc_data_structures/src/tagged_ptr/copy.rs
similarity index 100%
rename from src/librustc_data_structures/tagged_ptr/copy.rs
rename to compiler/rustc_data_structures/src/tagged_ptr/copy.rs
diff --git a/src/librustc_data_structures/tagged_ptr/drop.rs b/compiler/rustc_data_structures/src/tagged_ptr/drop.rs
similarity index 100%
rename from src/librustc_data_structures/tagged_ptr/drop.rs
rename to compiler/rustc_data_structures/src/tagged_ptr/drop.rs
diff --git a/src/librustc_data_structures/temp_dir.rs b/compiler/rustc_data_structures/src/temp_dir.rs
similarity index 100%
rename from src/librustc_data_structures/temp_dir.rs
rename to compiler/rustc_data_structures/src/temp_dir.rs
diff --git a/src/librustc_data_structures/thin_vec.rs b/compiler/rustc_data_structures/src/thin_vec.rs
similarity index 100%
rename from src/librustc_data_structures/thin_vec.rs
rename to compiler/rustc_data_structures/src/thin_vec.rs
diff --git a/src/librustc_data_structures/tiny_list.rs b/compiler/rustc_data_structures/src/tiny_list.rs
similarity index 100%
rename from src/librustc_data_structures/tiny_list.rs
rename to compiler/rustc_data_structures/src/tiny_list.rs
diff --git a/src/librustc_data_structures/tiny_list/tests.rs b/compiler/rustc_data_structures/src/tiny_list/tests.rs
similarity index 100%
rename from src/librustc_data_structures/tiny_list/tests.rs
rename to compiler/rustc_data_structures/src/tiny_list/tests.rs
diff --git a/src/librustc_data_structures/transitive_relation.rs b/compiler/rustc_data_structures/src/transitive_relation.rs
similarity index 100%
rename from src/librustc_data_structures/transitive_relation.rs
rename to compiler/rustc_data_structures/src/transitive_relation.rs
diff --git a/src/librustc_data_structures/transitive_relation/tests.rs b/compiler/rustc_data_structures/src/transitive_relation/tests.rs
similarity index 100%
rename from src/librustc_data_structures/transitive_relation/tests.rs
rename to compiler/rustc_data_structures/src/transitive_relation/tests.rs
diff --git a/src/librustc_data_structures/vec_linked_list.rs b/compiler/rustc_data_structures/src/vec_linked_list.rs
similarity index 100%
rename from src/librustc_data_structures/vec_linked_list.rs
rename to compiler/rustc_data_structures/src/vec_linked_list.rs
diff --git a/src/librustc_data_structures/work_queue.rs b/compiler/rustc_data_structures/src/work_queue.rs
similarity index 100%
rename from src/librustc_data_structures/work_queue.rs
rename to compiler/rustc_data_structures/src/work_queue.rs
diff --git a/compiler/rustc_driver/Cargo.toml b/compiler/rustc_driver/Cargo.toml
new file mode 100644
index 0000000000000..76e8592254cd3
--- /dev/null
+++ b/compiler/rustc_driver/Cargo.toml
@@ -0,0 +1,41 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_driver"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+crate-type = ["dylib"]
+
+[dependencies]
+lazy_static = "1.0"
+libc = "0.2"
+tracing = { version = "0.1.18", features = ["release_max_level_info"]  }
+tracing-subscriber = { version = "0.2.10", default-features = false, features = ["fmt", "env-filter", "smallvec", "parking_lot", "ansi"] }
+rustc_middle = { path = "../rustc_middle" }
+rustc_ast_pretty = { path = "../rustc_ast_pretty" }
+rustc_target = { path = "../rustc_target" }
+rustc_lint = { path = "../rustc_lint" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_feature = { path = "../rustc_feature" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_hir_pretty = { path = "../rustc_hir_pretty" }
+rustc_metadata = { path = "../rustc_metadata" }
+rustc_mir = { path = "../rustc_mir" }
+rustc_parse = { path = "../rustc_parse" }
+rustc_plugin_impl = { path = "../rustc_plugin_impl" }
+rustc_save_analysis = { path = "../rustc_save_analysis" }
+rustc_codegen_ssa = { path = "../rustc_codegen_ssa" }
+rustc_session = { path = "../rustc_session" }
+rustc_error_codes = { path = "../rustc_error_codes" }
+rustc_interface = { path = "../rustc_interface" }
+rustc_serialize = { path = "../rustc_serialize" }
+rustc_ast = { path = "../rustc_ast" }
+rustc_span = { path = "../rustc_span" }
+
+[target.'cfg(windows)'.dependencies]
+winapi = { version = "0.3", features = ["consoleapi", "debugapi", "processenv"] }
+
+[features]
+llvm = ['rustc_interface/llvm']
diff --git a/src/librustc_driver/README.md b/compiler/rustc_driver/README.md
similarity index 100%
rename from src/librustc_driver/README.md
rename to compiler/rustc_driver/README.md
diff --git a/src/librustc_driver/args.rs b/compiler/rustc_driver/src/args.rs
similarity index 100%
rename from src/librustc_driver/args.rs
rename to compiler/rustc_driver/src/args.rs
diff --git a/src/librustc_driver/lib.rs b/compiler/rustc_driver/src/lib.rs
similarity index 100%
rename from src/librustc_driver/lib.rs
rename to compiler/rustc_driver/src/lib.rs
diff --git a/src/librustc_driver/pretty.rs b/compiler/rustc_driver/src/pretty.rs
similarity index 100%
rename from src/librustc_driver/pretty.rs
rename to compiler/rustc_driver/src/pretty.rs
diff --git a/src/librustc_error_codes/Cargo.toml b/compiler/rustc_error_codes/Cargo.toml
similarity index 69%
rename from src/librustc_error_codes/Cargo.toml
rename to compiler/rustc_error_codes/Cargo.toml
index 5def867ff11f4..b4c9cd9456523 100644
--- a/src/librustc_error_codes/Cargo.toml
+++ b/compiler/rustc_error_codes/Cargo.toml
@@ -3,7 +3,3 @@ authors = ["The Rust Project Developers"]
 name = "rustc_error_codes"
 version = "0.0.0"
 edition = "2018"
-
-[lib]
-name = "rustc_error_codes"
-path = "lib.rs"
diff --git a/src/librustc_error_codes/error_codes.rs b/compiler/rustc_error_codes/src/error_codes.rs
similarity index 100%
rename from src/librustc_error_codes/error_codes.rs
rename to compiler/rustc_error_codes/src/error_codes.rs
diff --git a/src/librustc_error_codes/error_codes/E0001.md b/compiler/rustc_error_codes/src/error_codes/E0001.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0001.md
rename to compiler/rustc_error_codes/src/error_codes/E0001.md
diff --git a/src/librustc_error_codes/error_codes/E0002.md b/compiler/rustc_error_codes/src/error_codes/E0002.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0002.md
rename to compiler/rustc_error_codes/src/error_codes/E0002.md
diff --git a/src/librustc_error_codes/error_codes/E0004.md b/compiler/rustc_error_codes/src/error_codes/E0004.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0004.md
rename to compiler/rustc_error_codes/src/error_codes/E0004.md
diff --git a/src/librustc_error_codes/error_codes/E0005.md b/compiler/rustc_error_codes/src/error_codes/E0005.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0005.md
rename to compiler/rustc_error_codes/src/error_codes/E0005.md
diff --git a/src/librustc_error_codes/error_codes/E0007.md b/compiler/rustc_error_codes/src/error_codes/E0007.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0007.md
rename to compiler/rustc_error_codes/src/error_codes/E0007.md
diff --git a/src/librustc_error_codes/error_codes/E0009.md b/compiler/rustc_error_codes/src/error_codes/E0009.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0009.md
rename to compiler/rustc_error_codes/src/error_codes/E0009.md
diff --git a/src/librustc_error_codes/error_codes/E0010.md b/compiler/rustc_error_codes/src/error_codes/E0010.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0010.md
rename to compiler/rustc_error_codes/src/error_codes/E0010.md
diff --git a/src/librustc_error_codes/error_codes/E0013.md b/compiler/rustc_error_codes/src/error_codes/E0013.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0013.md
rename to compiler/rustc_error_codes/src/error_codes/E0013.md
diff --git a/src/librustc_error_codes/error_codes/E0014.md b/compiler/rustc_error_codes/src/error_codes/E0014.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0014.md
rename to compiler/rustc_error_codes/src/error_codes/E0014.md
diff --git a/src/librustc_error_codes/error_codes/E0015.md b/compiler/rustc_error_codes/src/error_codes/E0015.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0015.md
rename to compiler/rustc_error_codes/src/error_codes/E0015.md
diff --git a/src/librustc_error_codes/error_codes/E0019.md b/compiler/rustc_error_codes/src/error_codes/E0019.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0019.md
rename to compiler/rustc_error_codes/src/error_codes/E0019.md
diff --git a/src/librustc_error_codes/error_codes/E0023.md b/compiler/rustc_error_codes/src/error_codes/E0023.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0023.md
rename to compiler/rustc_error_codes/src/error_codes/E0023.md
diff --git a/src/librustc_error_codes/error_codes/E0025.md b/compiler/rustc_error_codes/src/error_codes/E0025.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0025.md
rename to compiler/rustc_error_codes/src/error_codes/E0025.md
diff --git a/src/librustc_error_codes/error_codes/E0026.md b/compiler/rustc_error_codes/src/error_codes/E0026.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0026.md
rename to compiler/rustc_error_codes/src/error_codes/E0026.md
diff --git a/src/librustc_error_codes/error_codes/E0027.md b/compiler/rustc_error_codes/src/error_codes/E0027.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0027.md
rename to compiler/rustc_error_codes/src/error_codes/E0027.md
diff --git a/src/librustc_error_codes/error_codes/E0029.md b/compiler/rustc_error_codes/src/error_codes/E0029.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0029.md
rename to compiler/rustc_error_codes/src/error_codes/E0029.md
diff --git a/src/librustc_error_codes/error_codes/E0030.md b/compiler/rustc_error_codes/src/error_codes/E0030.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0030.md
rename to compiler/rustc_error_codes/src/error_codes/E0030.md
diff --git a/src/librustc_error_codes/error_codes/E0033.md b/compiler/rustc_error_codes/src/error_codes/E0033.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0033.md
rename to compiler/rustc_error_codes/src/error_codes/E0033.md
diff --git a/src/librustc_error_codes/error_codes/E0034.md b/compiler/rustc_error_codes/src/error_codes/E0034.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0034.md
rename to compiler/rustc_error_codes/src/error_codes/E0034.md
diff --git a/src/librustc_error_codes/error_codes/E0038.md b/compiler/rustc_error_codes/src/error_codes/E0038.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0038.md
rename to compiler/rustc_error_codes/src/error_codes/E0038.md
diff --git a/src/librustc_error_codes/error_codes/E0040.md b/compiler/rustc_error_codes/src/error_codes/E0040.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0040.md
rename to compiler/rustc_error_codes/src/error_codes/E0040.md
diff --git a/src/librustc_error_codes/error_codes/E0044.md b/compiler/rustc_error_codes/src/error_codes/E0044.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0044.md
rename to compiler/rustc_error_codes/src/error_codes/E0044.md
diff --git a/src/librustc_error_codes/error_codes/E0045.md b/compiler/rustc_error_codes/src/error_codes/E0045.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0045.md
rename to compiler/rustc_error_codes/src/error_codes/E0045.md
diff --git a/src/librustc_error_codes/error_codes/E0046.md b/compiler/rustc_error_codes/src/error_codes/E0046.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0046.md
rename to compiler/rustc_error_codes/src/error_codes/E0046.md
diff --git a/src/librustc_error_codes/error_codes/E0049.md b/compiler/rustc_error_codes/src/error_codes/E0049.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0049.md
rename to compiler/rustc_error_codes/src/error_codes/E0049.md
diff --git a/src/librustc_error_codes/error_codes/E0050.md b/compiler/rustc_error_codes/src/error_codes/E0050.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0050.md
rename to compiler/rustc_error_codes/src/error_codes/E0050.md
diff --git a/src/librustc_error_codes/error_codes/E0053.md b/compiler/rustc_error_codes/src/error_codes/E0053.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0053.md
rename to compiler/rustc_error_codes/src/error_codes/E0053.md
diff --git a/src/librustc_error_codes/error_codes/E0054.md b/compiler/rustc_error_codes/src/error_codes/E0054.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0054.md
rename to compiler/rustc_error_codes/src/error_codes/E0054.md
diff --git a/src/librustc_error_codes/error_codes/E0055.md b/compiler/rustc_error_codes/src/error_codes/E0055.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0055.md
rename to compiler/rustc_error_codes/src/error_codes/E0055.md
diff --git a/src/librustc_error_codes/error_codes/E0057.md b/compiler/rustc_error_codes/src/error_codes/E0057.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0057.md
rename to compiler/rustc_error_codes/src/error_codes/E0057.md
diff --git a/src/librustc_error_codes/error_codes/E0059.md b/compiler/rustc_error_codes/src/error_codes/E0059.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0059.md
rename to compiler/rustc_error_codes/src/error_codes/E0059.md
diff --git a/src/librustc_error_codes/error_codes/E0060.md b/compiler/rustc_error_codes/src/error_codes/E0060.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0060.md
rename to compiler/rustc_error_codes/src/error_codes/E0060.md
diff --git a/src/librustc_error_codes/error_codes/E0061.md b/compiler/rustc_error_codes/src/error_codes/E0061.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0061.md
rename to compiler/rustc_error_codes/src/error_codes/E0061.md
diff --git a/src/librustc_error_codes/error_codes/E0062.md b/compiler/rustc_error_codes/src/error_codes/E0062.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0062.md
rename to compiler/rustc_error_codes/src/error_codes/E0062.md
diff --git a/src/librustc_error_codes/error_codes/E0063.md b/compiler/rustc_error_codes/src/error_codes/E0063.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0063.md
rename to compiler/rustc_error_codes/src/error_codes/E0063.md
diff --git a/src/librustc_error_codes/error_codes/E0067.md b/compiler/rustc_error_codes/src/error_codes/E0067.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0067.md
rename to compiler/rustc_error_codes/src/error_codes/E0067.md
diff --git a/src/librustc_error_codes/error_codes/E0069.md b/compiler/rustc_error_codes/src/error_codes/E0069.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0069.md
rename to compiler/rustc_error_codes/src/error_codes/E0069.md
diff --git a/src/librustc_error_codes/error_codes/E0070.md b/compiler/rustc_error_codes/src/error_codes/E0070.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0070.md
rename to compiler/rustc_error_codes/src/error_codes/E0070.md
diff --git a/src/librustc_error_codes/error_codes/E0071.md b/compiler/rustc_error_codes/src/error_codes/E0071.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0071.md
rename to compiler/rustc_error_codes/src/error_codes/E0071.md
diff --git a/src/librustc_error_codes/error_codes/E0072.md b/compiler/rustc_error_codes/src/error_codes/E0072.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0072.md
rename to compiler/rustc_error_codes/src/error_codes/E0072.md
diff --git a/src/librustc_error_codes/error_codes/E0073.md b/compiler/rustc_error_codes/src/error_codes/E0073.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0073.md
rename to compiler/rustc_error_codes/src/error_codes/E0073.md
diff --git a/src/librustc_error_codes/error_codes/E0074.md b/compiler/rustc_error_codes/src/error_codes/E0074.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0074.md
rename to compiler/rustc_error_codes/src/error_codes/E0074.md
diff --git a/src/librustc_error_codes/error_codes/E0075.md b/compiler/rustc_error_codes/src/error_codes/E0075.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0075.md
rename to compiler/rustc_error_codes/src/error_codes/E0075.md
diff --git a/src/librustc_error_codes/error_codes/E0076.md b/compiler/rustc_error_codes/src/error_codes/E0076.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0076.md
rename to compiler/rustc_error_codes/src/error_codes/E0076.md
diff --git a/src/librustc_error_codes/error_codes/E0077.md b/compiler/rustc_error_codes/src/error_codes/E0077.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0077.md
rename to compiler/rustc_error_codes/src/error_codes/E0077.md
diff --git a/src/librustc_error_codes/error_codes/E0080.md b/compiler/rustc_error_codes/src/error_codes/E0080.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0080.md
rename to compiler/rustc_error_codes/src/error_codes/E0080.md
diff --git a/src/librustc_error_codes/error_codes/E0081.md b/compiler/rustc_error_codes/src/error_codes/E0081.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0081.md
rename to compiler/rustc_error_codes/src/error_codes/E0081.md
diff --git a/src/librustc_error_codes/error_codes/E0084.md b/compiler/rustc_error_codes/src/error_codes/E0084.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0084.md
rename to compiler/rustc_error_codes/src/error_codes/E0084.md
diff --git a/src/librustc_error_codes/error_codes/E0087.md b/compiler/rustc_error_codes/src/error_codes/E0087.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0087.md
rename to compiler/rustc_error_codes/src/error_codes/E0087.md
diff --git a/src/librustc_error_codes/error_codes/E0088.md b/compiler/rustc_error_codes/src/error_codes/E0088.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0088.md
rename to compiler/rustc_error_codes/src/error_codes/E0088.md
diff --git a/src/librustc_error_codes/error_codes/E0089.md b/compiler/rustc_error_codes/src/error_codes/E0089.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0089.md
rename to compiler/rustc_error_codes/src/error_codes/E0089.md
diff --git a/src/librustc_error_codes/error_codes/E0090.md b/compiler/rustc_error_codes/src/error_codes/E0090.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0090.md
rename to compiler/rustc_error_codes/src/error_codes/E0090.md
diff --git a/src/librustc_error_codes/error_codes/E0091.md b/compiler/rustc_error_codes/src/error_codes/E0091.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0091.md
rename to compiler/rustc_error_codes/src/error_codes/E0091.md
diff --git a/src/librustc_error_codes/error_codes/E0092.md b/compiler/rustc_error_codes/src/error_codes/E0092.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0092.md
rename to compiler/rustc_error_codes/src/error_codes/E0092.md
diff --git a/src/librustc_error_codes/error_codes/E0093.md b/compiler/rustc_error_codes/src/error_codes/E0093.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0093.md
rename to compiler/rustc_error_codes/src/error_codes/E0093.md
diff --git a/src/librustc_error_codes/error_codes/E0094.md b/compiler/rustc_error_codes/src/error_codes/E0094.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0094.md
rename to compiler/rustc_error_codes/src/error_codes/E0094.md
diff --git a/src/librustc_error_codes/error_codes/E0106.md b/compiler/rustc_error_codes/src/error_codes/E0106.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0106.md
rename to compiler/rustc_error_codes/src/error_codes/E0106.md
diff --git a/src/librustc_error_codes/error_codes/E0107.md b/compiler/rustc_error_codes/src/error_codes/E0107.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0107.md
rename to compiler/rustc_error_codes/src/error_codes/E0107.md
diff --git a/src/librustc_error_codes/error_codes/E0109.md b/compiler/rustc_error_codes/src/error_codes/E0109.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0109.md
rename to compiler/rustc_error_codes/src/error_codes/E0109.md
diff --git a/src/librustc_error_codes/error_codes/E0110.md b/compiler/rustc_error_codes/src/error_codes/E0110.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0110.md
rename to compiler/rustc_error_codes/src/error_codes/E0110.md
diff --git a/src/librustc_error_codes/error_codes/E0116.md b/compiler/rustc_error_codes/src/error_codes/E0116.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0116.md
rename to compiler/rustc_error_codes/src/error_codes/E0116.md
diff --git a/src/librustc_error_codes/error_codes/E0117.md b/compiler/rustc_error_codes/src/error_codes/E0117.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0117.md
rename to compiler/rustc_error_codes/src/error_codes/E0117.md
diff --git a/src/librustc_error_codes/error_codes/E0118.md b/compiler/rustc_error_codes/src/error_codes/E0118.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0118.md
rename to compiler/rustc_error_codes/src/error_codes/E0118.md
diff --git a/src/librustc_error_codes/error_codes/E0119.md b/compiler/rustc_error_codes/src/error_codes/E0119.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0119.md
rename to compiler/rustc_error_codes/src/error_codes/E0119.md
diff --git a/src/librustc_error_codes/error_codes/E0120.md b/compiler/rustc_error_codes/src/error_codes/E0120.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0120.md
rename to compiler/rustc_error_codes/src/error_codes/E0120.md
diff --git a/src/librustc_error_codes/error_codes/E0121.md b/compiler/rustc_error_codes/src/error_codes/E0121.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0121.md
rename to compiler/rustc_error_codes/src/error_codes/E0121.md
diff --git a/src/librustc_error_codes/error_codes/E0124.md b/compiler/rustc_error_codes/src/error_codes/E0124.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0124.md
rename to compiler/rustc_error_codes/src/error_codes/E0124.md
diff --git a/src/librustc_error_codes/error_codes/E0128.md b/compiler/rustc_error_codes/src/error_codes/E0128.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0128.md
rename to compiler/rustc_error_codes/src/error_codes/E0128.md
diff --git a/src/librustc_error_codes/error_codes/E0130.md b/compiler/rustc_error_codes/src/error_codes/E0130.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0130.md
rename to compiler/rustc_error_codes/src/error_codes/E0130.md
diff --git a/src/librustc_error_codes/error_codes/E0131.md b/compiler/rustc_error_codes/src/error_codes/E0131.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0131.md
rename to compiler/rustc_error_codes/src/error_codes/E0131.md
diff --git a/src/librustc_error_codes/error_codes/E0132.md b/compiler/rustc_error_codes/src/error_codes/E0132.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0132.md
rename to compiler/rustc_error_codes/src/error_codes/E0132.md
diff --git a/src/librustc_error_codes/error_codes/E0133.md b/compiler/rustc_error_codes/src/error_codes/E0133.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0133.md
rename to compiler/rustc_error_codes/src/error_codes/E0133.md
diff --git a/src/librustc_error_codes/error_codes/E0136.md b/compiler/rustc_error_codes/src/error_codes/E0136.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0136.md
rename to compiler/rustc_error_codes/src/error_codes/E0136.md
diff --git a/src/librustc_error_codes/error_codes/E0137.md b/compiler/rustc_error_codes/src/error_codes/E0137.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0137.md
rename to compiler/rustc_error_codes/src/error_codes/E0137.md
diff --git a/src/librustc_error_codes/error_codes/E0138.md b/compiler/rustc_error_codes/src/error_codes/E0138.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0138.md
rename to compiler/rustc_error_codes/src/error_codes/E0138.md
diff --git a/src/librustc_error_codes/error_codes/E0139.md b/compiler/rustc_error_codes/src/error_codes/E0139.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0139.md
rename to compiler/rustc_error_codes/src/error_codes/E0139.md
diff --git a/src/librustc_error_codes/error_codes/E0152.md b/compiler/rustc_error_codes/src/error_codes/E0152.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0152.md
rename to compiler/rustc_error_codes/src/error_codes/E0152.md
diff --git a/src/librustc_error_codes/error_codes/E0154.md b/compiler/rustc_error_codes/src/error_codes/E0154.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0154.md
rename to compiler/rustc_error_codes/src/error_codes/E0154.md
diff --git a/src/librustc_error_codes/error_codes/E0158.md b/compiler/rustc_error_codes/src/error_codes/E0158.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0158.md
rename to compiler/rustc_error_codes/src/error_codes/E0158.md
diff --git a/src/librustc_error_codes/error_codes/E0161.md b/compiler/rustc_error_codes/src/error_codes/E0161.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0161.md
rename to compiler/rustc_error_codes/src/error_codes/E0161.md
diff --git a/src/librustc_error_codes/error_codes/E0162.md b/compiler/rustc_error_codes/src/error_codes/E0162.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0162.md
rename to compiler/rustc_error_codes/src/error_codes/E0162.md
diff --git a/src/librustc_error_codes/error_codes/E0164.md b/compiler/rustc_error_codes/src/error_codes/E0164.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0164.md
rename to compiler/rustc_error_codes/src/error_codes/E0164.md
diff --git a/src/librustc_error_codes/error_codes/E0165.md b/compiler/rustc_error_codes/src/error_codes/E0165.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0165.md
rename to compiler/rustc_error_codes/src/error_codes/E0165.md
diff --git a/src/librustc_error_codes/error_codes/E0170.md b/compiler/rustc_error_codes/src/error_codes/E0170.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0170.md
rename to compiler/rustc_error_codes/src/error_codes/E0170.md
diff --git a/src/librustc_error_codes/error_codes/E0178.md b/compiler/rustc_error_codes/src/error_codes/E0178.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0178.md
rename to compiler/rustc_error_codes/src/error_codes/E0178.md
diff --git a/src/librustc_error_codes/error_codes/E0184.md b/compiler/rustc_error_codes/src/error_codes/E0184.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0184.md
rename to compiler/rustc_error_codes/src/error_codes/E0184.md
diff --git a/src/librustc_error_codes/error_codes/E0185.md b/compiler/rustc_error_codes/src/error_codes/E0185.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0185.md
rename to compiler/rustc_error_codes/src/error_codes/E0185.md
diff --git a/src/librustc_error_codes/error_codes/E0186.md b/compiler/rustc_error_codes/src/error_codes/E0186.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0186.md
rename to compiler/rustc_error_codes/src/error_codes/E0186.md
diff --git a/src/librustc_error_codes/error_codes/E0191.md b/compiler/rustc_error_codes/src/error_codes/E0191.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0191.md
rename to compiler/rustc_error_codes/src/error_codes/E0191.md
diff --git a/src/librustc_error_codes/error_codes/E0192.md b/compiler/rustc_error_codes/src/error_codes/E0192.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0192.md
rename to compiler/rustc_error_codes/src/error_codes/E0192.md
diff --git a/src/librustc_error_codes/error_codes/E0193.md b/compiler/rustc_error_codes/src/error_codes/E0193.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0193.md
rename to compiler/rustc_error_codes/src/error_codes/E0193.md
diff --git a/src/librustc_error_codes/error_codes/E0195.md b/compiler/rustc_error_codes/src/error_codes/E0195.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0195.md
rename to compiler/rustc_error_codes/src/error_codes/E0195.md
diff --git a/src/librustc_error_codes/error_codes/E0197.md b/compiler/rustc_error_codes/src/error_codes/E0197.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0197.md
rename to compiler/rustc_error_codes/src/error_codes/E0197.md
diff --git a/src/librustc_error_codes/error_codes/E0198.md b/compiler/rustc_error_codes/src/error_codes/E0198.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0198.md
rename to compiler/rustc_error_codes/src/error_codes/E0198.md
diff --git a/src/librustc_error_codes/error_codes/E0199.md b/compiler/rustc_error_codes/src/error_codes/E0199.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0199.md
rename to compiler/rustc_error_codes/src/error_codes/E0199.md
diff --git a/src/librustc_error_codes/error_codes/E0200.md b/compiler/rustc_error_codes/src/error_codes/E0200.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0200.md
rename to compiler/rustc_error_codes/src/error_codes/E0200.md
diff --git a/src/librustc_error_codes/error_codes/E0201.md b/compiler/rustc_error_codes/src/error_codes/E0201.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0201.md
rename to compiler/rustc_error_codes/src/error_codes/E0201.md
diff --git a/src/librustc_error_codes/error_codes/E0202.md b/compiler/rustc_error_codes/src/error_codes/E0202.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0202.md
rename to compiler/rustc_error_codes/src/error_codes/E0202.md
diff --git a/src/librustc_error_codes/error_codes/E0203.md b/compiler/rustc_error_codes/src/error_codes/E0203.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0203.md
rename to compiler/rustc_error_codes/src/error_codes/E0203.md
diff --git a/src/librustc_error_codes/error_codes/E0204.md b/compiler/rustc_error_codes/src/error_codes/E0204.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0204.md
rename to compiler/rustc_error_codes/src/error_codes/E0204.md
diff --git a/src/librustc_error_codes/error_codes/E0205.md b/compiler/rustc_error_codes/src/error_codes/E0205.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0205.md
rename to compiler/rustc_error_codes/src/error_codes/E0205.md
diff --git a/src/librustc_error_codes/error_codes/E0206.md b/compiler/rustc_error_codes/src/error_codes/E0206.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0206.md
rename to compiler/rustc_error_codes/src/error_codes/E0206.md
diff --git a/src/librustc_error_codes/error_codes/E0207.md b/compiler/rustc_error_codes/src/error_codes/E0207.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0207.md
rename to compiler/rustc_error_codes/src/error_codes/E0207.md
diff --git a/src/librustc_error_codes/error_codes/E0210.md b/compiler/rustc_error_codes/src/error_codes/E0210.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0210.md
rename to compiler/rustc_error_codes/src/error_codes/E0210.md
diff --git a/src/librustc_error_codes/error_codes/E0211.md b/compiler/rustc_error_codes/src/error_codes/E0211.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0211.md
rename to compiler/rustc_error_codes/src/error_codes/E0211.md
diff --git a/src/librustc_error_codes/error_codes/E0214.md b/compiler/rustc_error_codes/src/error_codes/E0214.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0214.md
rename to compiler/rustc_error_codes/src/error_codes/E0214.md
diff --git a/src/librustc_error_codes/error_codes/E0220.md b/compiler/rustc_error_codes/src/error_codes/E0220.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0220.md
rename to compiler/rustc_error_codes/src/error_codes/E0220.md
diff --git a/src/librustc_error_codes/error_codes/E0221.md b/compiler/rustc_error_codes/src/error_codes/E0221.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0221.md
rename to compiler/rustc_error_codes/src/error_codes/E0221.md
diff --git a/src/librustc_error_codes/error_codes/E0222.md b/compiler/rustc_error_codes/src/error_codes/E0222.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0222.md
rename to compiler/rustc_error_codes/src/error_codes/E0222.md
diff --git a/src/librustc_error_codes/error_codes/E0223.md b/compiler/rustc_error_codes/src/error_codes/E0223.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0223.md
rename to compiler/rustc_error_codes/src/error_codes/E0223.md
diff --git a/src/librustc_error_codes/error_codes/E0224.md b/compiler/rustc_error_codes/src/error_codes/E0224.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0224.md
rename to compiler/rustc_error_codes/src/error_codes/E0224.md
diff --git a/src/librustc_error_codes/error_codes/E0225.md b/compiler/rustc_error_codes/src/error_codes/E0225.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0225.md
rename to compiler/rustc_error_codes/src/error_codes/E0225.md
diff --git a/src/librustc_error_codes/error_codes/E0226.md b/compiler/rustc_error_codes/src/error_codes/E0226.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0226.md
rename to compiler/rustc_error_codes/src/error_codes/E0226.md
diff --git a/src/librustc_error_codes/error_codes/E0228.md b/compiler/rustc_error_codes/src/error_codes/E0228.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0228.md
rename to compiler/rustc_error_codes/src/error_codes/E0228.md
diff --git a/src/librustc_error_codes/error_codes/E0229.md b/compiler/rustc_error_codes/src/error_codes/E0229.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0229.md
rename to compiler/rustc_error_codes/src/error_codes/E0229.md
diff --git a/src/librustc_error_codes/error_codes/E0230.md b/compiler/rustc_error_codes/src/error_codes/E0230.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0230.md
rename to compiler/rustc_error_codes/src/error_codes/E0230.md
diff --git a/src/librustc_error_codes/error_codes/E0231.md b/compiler/rustc_error_codes/src/error_codes/E0231.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0231.md
rename to compiler/rustc_error_codes/src/error_codes/E0231.md
diff --git a/src/librustc_error_codes/error_codes/E0232.md b/compiler/rustc_error_codes/src/error_codes/E0232.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0232.md
rename to compiler/rustc_error_codes/src/error_codes/E0232.md
diff --git a/src/librustc_error_codes/error_codes/E0243.md b/compiler/rustc_error_codes/src/error_codes/E0243.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0243.md
rename to compiler/rustc_error_codes/src/error_codes/E0243.md
diff --git a/src/librustc_error_codes/error_codes/E0244.md b/compiler/rustc_error_codes/src/error_codes/E0244.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0244.md
rename to compiler/rustc_error_codes/src/error_codes/E0244.md
diff --git a/src/librustc_error_codes/error_codes/E0251.md b/compiler/rustc_error_codes/src/error_codes/E0251.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0251.md
rename to compiler/rustc_error_codes/src/error_codes/E0251.md
diff --git a/src/librustc_error_codes/error_codes/E0252.md b/compiler/rustc_error_codes/src/error_codes/E0252.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0252.md
rename to compiler/rustc_error_codes/src/error_codes/E0252.md
diff --git a/src/librustc_error_codes/error_codes/E0253.md b/compiler/rustc_error_codes/src/error_codes/E0253.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0253.md
rename to compiler/rustc_error_codes/src/error_codes/E0253.md
diff --git a/src/librustc_error_codes/error_codes/E0254.md b/compiler/rustc_error_codes/src/error_codes/E0254.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0254.md
rename to compiler/rustc_error_codes/src/error_codes/E0254.md
diff --git a/src/librustc_error_codes/error_codes/E0255.md b/compiler/rustc_error_codes/src/error_codes/E0255.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0255.md
rename to compiler/rustc_error_codes/src/error_codes/E0255.md
diff --git a/src/librustc_error_codes/error_codes/E0256.md b/compiler/rustc_error_codes/src/error_codes/E0256.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0256.md
rename to compiler/rustc_error_codes/src/error_codes/E0256.md
diff --git a/src/librustc_error_codes/error_codes/E0259.md b/compiler/rustc_error_codes/src/error_codes/E0259.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0259.md
rename to compiler/rustc_error_codes/src/error_codes/E0259.md
diff --git a/src/librustc_error_codes/error_codes/E0260.md b/compiler/rustc_error_codes/src/error_codes/E0260.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0260.md
rename to compiler/rustc_error_codes/src/error_codes/E0260.md
diff --git a/src/librustc_error_codes/error_codes/E0261.md b/compiler/rustc_error_codes/src/error_codes/E0261.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0261.md
rename to compiler/rustc_error_codes/src/error_codes/E0261.md
diff --git a/src/librustc_error_codes/error_codes/E0262.md b/compiler/rustc_error_codes/src/error_codes/E0262.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0262.md
rename to compiler/rustc_error_codes/src/error_codes/E0262.md
diff --git a/src/librustc_error_codes/error_codes/E0263.md b/compiler/rustc_error_codes/src/error_codes/E0263.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0263.md
rename to compiler/rustc_error_codes/src/error_codes/E0263.md
diff --git a/src/librustc_error_codes/error_codes/E0264.md b/compiler/rustc_error_codes/src/error_codes/E0264.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0264.md
rename to compiler/rustc_error_codes/src/error_codes/E0264.md
diff --git a/src/librustc_error_codes/error_codes/E0267.md b/compiler/rustc_error_codes/src/error_codes/E0267.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0267.md
rename to compiler/rustc_error_codes/src/error_codes/E0267.md
diff --git a/src/librustc_error_codes/error_codes/E0268.md b/compiler/rustc_error_codes/src/error_codes/E0268.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0268.md
rename to compiler/rustc_error_codes/src/error_codes/E0268.md
diff --git a/src/librustc_error_codes/error_codes/E0271.md b/compiler/rustc_error_codes/src/error_codes/E0271.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0271.md
rename to compiler/rustc_error_codes/src/error_codes/E0271.md
diff --git a/src/librustc_error_codes/error_codes/E0275.md b/compiler/rustc_error_codes/src/error_codes/E0275.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0275.md
rename to compiler/rustc_error_codes/src/error_codes/E0275.md
diff --git a/src/librustc_error_codes/error_codes/E0276.md b/compiler/rustc_error_codes/src/error_codes/E0276.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0276.md
rename to compiler/rustc_error_codes/src/error_codes/E0276.md
diff --git a/src/librustc_error_codes/error_codes/E0277.md b/compiler/rustc_error_codes/src/error_codes/E0277.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0277.md
rename to compiler/rustc_error_codes/src/error_codes/E0277.md
diff --git a/src/librustc_error_codes/error_codes/E0281.md b/compiler/rustc_error_codes/src/error_codes/E0281.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0281.md
rename to compiler/rustc_error_codes/src/error_codes/E0281.md
diff --git a/src/librustc_error_codes/error_codes/E0282.md b/compiler/rustc_error_codes/src/error_codes/E0282.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0282.md
rename to compiler/rustc_error_codes/src/error_codes/E0282.md
diff --git a/src/librustc_error_codes/error_codes/E0283.md b/compiler/rustc_error_codes/src/error_codes/E0283.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0283.md
rename to compiler/rustc_error_codes/src/error_codes/E0283.md
diff --git a/src/librustc_error_codes/error_codes/E0284.md b/compiler/rustc_error_codes/src/error_codes/E0284.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0284.md
rename to compiler/rustc_error_codes/src/error_codes/E0284.md
diff --git a/src/librustc_error_codes/error_codes/E0297.md b/compiler/rustc_error_codes/src/error_codes/E0297.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0297.md
rename to compiler/rustc_error_codes/src/error_codes/E0297.md
diff --git a/src/librustc_error_codes/error_codes/E0301.md b/compiler/rustc_error_codes/src/error_codes/E0301.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0301.md
rename to compiler/rustc_error_codes/src/error_codes/E0301.md
diff --git a/src/librustc_error_codes/error_codes/E0302.md b/compiler/rustc_error_codes/src/error_codes/E0302.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0302.md
rename to compiler/rustc_error_codes/src/error_codes/E0302.md
diff --git a/src/librustc_error_codes/error_codes/E0303.md b/compiler/rustc_error_codes/src/error_codes/E0303.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0303.md
rename to compiler/rustc_error_codes/src/error_codes/E0303.md
diff --git a/src/librustc_error_codes/error_codes/E0307.md b/compiler/rustc_error_codes/src/error_codes/E0307.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0307.md
rename to compiler/rustc_error_codes/src/error_codes/E0307.md
diff --git a/src/librustc_error_codes/error_codes/E0308.md b/compiler/rustc_error_codes/src/error_codes/E0308.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0308.md
rename to compiler/rustc_error_codes/src/error_codes/E0308.md
diff --git a/src/librustc_error_codes/error_codes/E0309.md b/compiler/rustc_error_codes/src/error_codes/E0309.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0309.md
rename to compiler/rustc_error_codes/src/error_codes/E0309.md
diff --git a/src/librustc_error_codes/error_codes/E0310.md b/compiler/rustc_error_codes/src/error_codes/E0310.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0310.md
rename to compiler/rustc_error_codes/src/error_codes/E0310.md
diff --git a/src/librustc_error_codes/error_codes/E0312.md b/compiler/rustc_error_codes/src/error_codes/E0312.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0312.md
rename to compiler/rustc_error_codes/src/error_codes/E0312.md
diff --git a/src/librustc_error_codes/error_codes/E0317.md b/compiler/rustc_error_codes/src/error_codes/E0317.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0317.md
rename to compiler/rustc_error_codes/src/error_codes/E0317.md
diff --git a/src/librustc_error_codes/error_codes/E0321.md b/compiler/rustc_error_codes/src/error_codes/E0321.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0321.md
rename to compiler/rustc_error_codes/src/error_codes/E0321.md
diff --git a/src/librustc_error_codes/error_codes/E0322.md b/compiler/rustc_error_codes/src/error_codes/E0322.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0322.md
rename to compiler/rustc_error_codes/src/error_codes/E0322.md
diff --git a/src/librustc_error_codes/error_codes/E0323.md b/compiler/rustc_error_codes/src/error_codes/E0323.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0323.md
rename to compiler/rustc_error_codes/src/error_codes/E0323.md
diff --git a/src/librustc_error_codes/error_codes/E0324.md b/compiler/rustc_error_codes/src/error_codes/E0324.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0324.md
rename to compiler/rustc_error_codes/src/error_codes/E0324.md
diff --git a/src/librustc_error_codes/error_codes/E0325.md b/compiler/rustc_error_codes/src/error_codes/E0325.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0325.md
rename to compiler/rustc_error_codes/src/error_codes/E0325.md
diff --git a/src/librustc_error_codes/error_codes/E0326.md b/compiler/rustc_error_codes/src/error_codes/E0326.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0326.md
rename to compiler/rustc_error_codes/src/error_codes/E0326.md
diff --git a/src/librustc_error_codes/error_codes/E0328.md b/compiler/rustc_error_codes/src/error_codes/E0328.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0328.md
rename to compiler/rustc_error_codes/src/error_codes/E0328.md
diff --git a/src/librustc_error_codes/error_codes/E0329.md b/compiler/rustc_error_codes/src/error_codes/E0329.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0329.md
rename to compiler/rustc_error_codes/src/error_codes/E0329.md
diff --git a/src/librustc_error_codes/error_codes/E0364.md b/compiler/rustc_error_codes/src/error_codes/E0364.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0364.md
rename to compiler/rustc_error_codes/src/error_codes/E0364.md
diff --git a/src/librustc_error_codes/error_codes/E0365.md b/compiler/rustc_error_codes/src/error_codes/E0365.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0365.md
rename to compiler/rustc_error_codes/src/error_codes/E0365.md
diff --git a/src/librustc_error_codes/error_codes/E0366.md b/compiler/rustc_error_codes/src/error_codes/E0366.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0366.md
rename to compiler/rustc_error_codes/src/error_codes/E0366.md
diff --git a/src/librustc_error_codes/error_codes/E0367.md b/compiler/rustc_error_codes/src/error_codes/E0367.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0367.md
rename to compiler/rustc_error_codes/src/error_codes/E0367.md
diff --git a/src/librustc_error_codes/error_codes/E0368.md b/compiler/rustc_error_codes/src/error_codes/E0368.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0368.md
rename to compiler/rustc_error_codes/src/error_codes/E0368.md
diff --git a/src/librustc_error_codes/error_codes/E0369.md b/compiler/rustc_error_codes/src/error_codes/E0369.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0369.md
rename to compiler/rustc_error_codes/src/error_codes/E0369.md
diff --git a/src/librustc_error_codes/error_codes/E0370.md b/compiler/rustc_error_codes/src/error_codes/E0370.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0370.md
rename to compiler/rustc_error_codes/src/error_codes/E0370.md
diff --git a/src/librustc_error_codes/error_codes/E0371.md b/compiler/rustc_error_codes/src/error_codes/E0371.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0371.md
rename to compiler/rustc_error_codes/src/error_codes/E0371.md
diff --git a/src/librustc_error_codes/error_codes/E0373.md b/compiler/rustc_error_codes/src/error_codes/E0373.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0373.md
rename to compiler/rustc_error_codes/src/error_codes/E0373.md
diff --git a/src/librustc_error_codes/error_codes/E0374.md b/compiler/rustc_error_codes/src/error_codes/E0374.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0374.md
rename to compiler/rustc_error_codes/src/error_codes/E0374.md
diff --git a/src/librustc_error_codes/error_codes/E0375.md b/compiler/rustc_error_codes/src/error_codes/E0375.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0375.md
rename to compiler/rustc_error_codes/src/error_codes/E0375.md
diff --git a/src/librustc_error_codes/error_codes/E0376.md b/compiler/rustc_error_codes/src/error_codes/E0376.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0376.md
rename to compiler/rustc_error_codes/src/error_codes/E0376.md
diff --git a/src/librustc_error_codes/error_codes/E0378.md b/compiler/rustc_error_codes/src/error_codes/E0378.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0378.md
rename to compiler/rustc_error_codes/src/error_codes/E0378.md
diff --git a/src/librustc_error_codes/error_codes/E0379.md b/compiler/rustc_error_codes/src/error_codes/E0379.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0379.md
rename to compiler/rustc_error_codes/src/error_codes/E0379.md
diff --git a/src/librustc_error_codes/error_codes/E0380.md b/compiler/rustc_error_codes/src/error_codes/E0380.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0380.md
rename to compiler/rustc_error_codes/src/error_codes/E0380.md
diff --git a/src/librustc_error_codes/error_codes/E0381.md b/compiler/rustc_error_codes/src/error_codes/E0381.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0381.md
rename to compiler/rustc_error_codes/src/error_codes/E0381.md
diff --git a/src/librustc_error_codes/error_codes/E0382.md b/compiler/rustc_error_codes/src/error_codes/E0382.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0382.md
rename to compiler/rustc_error_codes/src/error_codes/E0382.md
diff --git a/src/librustc_error_codes/error_codes/E0383.md b/compiler/rustc_error_codes/src/error_codes/E0383.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0383.md
rename to compiler/rustc_error_codes/src/error_codes/E0383.md
diff --git a/src/librustc_error_codes/error_codes/E0384.md b/compiler/rustc_error_codes/src/error_codes/E0384.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0384.md
rename to compiler/rustc_error_codes/src/error_codes/E0384.md
diff --git a/src/librustc_error_codes/error_codes/E0386.md b/compiler/rustc_error_codes/src/error_codes/E0386.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0386.md
rename to compiler/rustc_error_codes/src/error_codes/E0386.md
diff --git a/src/librustc_error_codes/error_codes/E0387.md b/compiler/rustc_error_codes/src/error_codes/E0387.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0387.md
rename to compiler/rustc_error_codes/src/error_codes/E0387.md
diff --git a/src/librustc_error_codes/error_codes/E0388.md b/compiler/rustc_error_codes/src/error_codes/E0388.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0388.md
rename to compiler/rustc_error_codes/src/error_codes/E0388.md
diff --git a/src/librustc_error_codes/error_codes/E0389.md b/compiler/rustc_error_codes/src/error_codes/E0389.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0389.md
rename to compiler/rustc_error_codes/src/error_codes/E0389.md
diff --git a/src/librustc_error_codes/error_codes/E0390.md b/compiler/rustc_error_codes/src/error_codes/E0390.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0390.md
rename to compiler/rustc_error_codes/src/error_codes/E0390.md
diff --git a/src/librustc_error_codes/error_codes/E0391.md b/compiler/rustc_error_codes/src/error_codes/E0391.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0391.md
rename to compiler/rustc_error_codes/src/error_codes/E0391.md
diff --git a/src/librustc_error_codes/error_codes/E0392.md b/compiler/rustc_error_codes/src/error_codes/E0392.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0392.md
rename to compiler/rustc_error_codes/src/error_codes/E0392.md
diff --git a/src/librustc_error_codes/error_codes/E0393.md b/compiler/rustc_error_codes/src/error_codes/E0393.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0393.md
rename to compiler/rustc_error_codes/src/error_codes/E0393.md
diff --git a/src/librustc_error_codes/error_codes/E0398.md b/compiler/rustc_error_codes/src/error_codes/E0398.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0398.md
rename to compiler/rustc_error_codes/src/error_codes/E0398.md
diff --git a/src/librustc_error_codes/error_codes/E0399.md b/compiler/rustc_error_codes/src/error_codes/E0399.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0399.md
rename to compiler/rustc_error_codes/src/error_codes/E0399.md
diff --git a/src/librustc_error_codes/error_codes/E0401.md b/compiler/rustc_error_codes/src/error_codes/E0401.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0401.md
rename to compiler/rustc_error_codes/src/error_codes/E0401.md
diff --git a/src/librustc_error_codes/error_codes/E0403.md b/compiler/rustc_error_codes/src/error_codes/E0403.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0403.md
rename to compiler/rustc_error_codes/src/error_codes/E0403.md
diff --git a/src/librustc_error_codes/error_codes/E0404.md b/compiler/rustc_error_codes/src/error_codes/E0404.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0404.md
rename to compiler/rustc_error_codes/src/error_codes/E0404.md
diff --git a/src/librustc_error_codes/error_codes/E0405.md b/compiler/rustc_error_codes/src/error_codes/E0405.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0405.md
rename to compiler/rustc_error_codes/src/error_codes/E0405.md
diff --git a/src/librustc_error_codes/error_codes/E0407.md b/compiler/rustc_error_codes/src/error_codes/E0407.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0407.md
rename to compiler/rustc_error_codes/src/error_codes/E0407.md
diff --git a/src/librustc_error_codes/error_codes/E0408.md b/compiler/rustc_error_codes/src/error_codes/E0408.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0408.md
rename to compiler/rustc_error_codes/src/error_codes/E0408.md
diff --git a/src/librustc_error_codes/error_codes/E0409.md b/compiler/rustc_error_codes/src/error_codes/E0409.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0409.md
rename to compiler/rustc_error_codes/src/error_codes/E0409.md
diff --git a/src/librustc_error_codes/error_codes/E0411.md b/compiler/rustc_error_codes/src/error_codes/E0411.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0411.md
rename to compiler/rustc_error_codes/src/error_codes/E0411.md
diff --git a/src/librustc_error_codes/error_codes/E0412.md b/compiler/rustc_error_codes/src/error_codes/E0412.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0412.md
rename to compiler/rustc_error_codes/src/error_codes/E0412.md
diff --git a/src/librustc_error_codes/error_codes/E0415.md b/compiler/rustc_error_codes/src/error_codes/E0415.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0415.md
rename to compiler/rustc_error_codes/src/error_codes/E0415.md
diff --git a/src/librustc_error_codes/error_codes/E0416.md b/compiler/rustc_error_codes/src/error_codes/E0416.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0416.md
rename to compiler/rustc_error_codes/src/error_codes/E0416.md
diff --git a/src/librustc_error_codes/error_codes/E0422.md b/compiler/rustc_error_codes/src/error_codes/E0422.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0422.md
rename to compiler/rustc_error_codes/src/error_codes/E0422.md
diff --git a/src/librustc_error_codes/error_codes/E0423.md b/compiler/rustc_error_codes/src/error_codes/E0423.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0423.md
rename to compiler/rustc_error_codes/src/error_codes/E0423.md
diff --git a/src/librustc_error_codes/error_codes/E0424.md b/compiler/rustc_error_codes/src/error_codes/E0424.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0424.md
rename to compiler/rustc_error_codes/src/error_codes/E0424.md
diff --git a/src/librustc_error_codes/error_codes/E0425.md b/compiler/rustc_error_codes/src/error_codes/E0425.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0425.md
rename to compiler/rustc_error_codes/src/error_codes/E0425.md
diff --git a/src/librustc_error_codes/error_codes/E0426.md b/compiler/rustc_error_codes/src/error_codes/E0426.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0426.md
rename to compiler/rustc_error_codes/src/error_codes/E0426.md
diff --git a/src/librustc_error_codes/error_codes/E0428.md b/compiler/rustc_error_codes/src/error_codes/E0428.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0428.md
rename to compiler/rustc_error_codes/src/error_codes/E0428.md
diff --git a/src/librustc_error_codes/error_codes/E0429.md b/compiler/rustc_error_codes/src/error_codes/E0429.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0429.md
rename to compiler/rustc_error_codes/src/error_codes/E0429.md
diff --git a/src/librustc_error_codes/error_codes/E0430.md b/compiler/rustc_error_codes/src/error_codes/E0430.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0430.md
rename to compiler/rustc_error_codes/src/error_codes/E0430.md
diff --git a/src/librustc_error_codes/error_codes/E0431.md b/compiler/rustc_error_codes/src/error_codes/E0431.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0431.md
rename to compiler/rustc_error_codes/src/error_codes/E0431.md
diff --git a/src/librustc_error_codes/error_codes/E0432.md b/compiler/rustc_error_codes/src/error_codes/E0432.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0432.md
rename to compiler/rustc_error_codes/src/error_codes/E0432.md
diff --git a/src/librustc_error_codes/error_codes/E0433.md b/compiler/rustc_error_codes/src/error_codes/E0433.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0433.md
rename to compiler/rustc_error_codes/src/error_codes/E0433.md
diff --git a/src/librustc_error_codes/error_codes/E0434.md b/compiler/rustc_error_codes/src/error_codes/E0434.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0434.md
rename to compiler/rustc_error_codes/src/error_codes/E0434.md
diff --git a/src/librustc_error_codes/error_codes/E0435.md b/compiler/rustc_error_codes/src/error_codes/E0435.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0435.md
rename to compiler/rustc_error_codes/src/error_codes/E0435.md
diff --git a/src/librustc_error_codes/error_codes/E0436.md b/compiler/rustc_error_codes/src/error_codes/E0436.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0436.md
rename to compiler/rustc_error_codes/src/error_codes/E0436.md
diff --git a/src/librustc_error_codes/error_codes/E0437.md b/compiler/rustc_error_codes/src/error_codes/E0437.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0437.md
rename to compiler/rustc_error_codes/src/error_codes/E0437.md
diff --git a/src/librustc_error_codes/error_codes/E0438.md b/compiler/rustc_error_codes/src/error_codes/E0438.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0438.md
rename to compiler/rustc_error_codes/src/error_codes/E0438.md
diff --git a/src/librustc_error_codes/error_codes/E0439.md b/compiler/rustc_error_codes/src/error_codes/E0439.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0439.md
rename to compiler/rustc_error_codes/src/error_codes/E0439.md
diff --git a/src/librustc_error_codes/error_codes/E0445.md b/compiler/rustc_error_codes/src/error_codes/E0445.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0445.md
rename to compiler/rustc_error_codes/src/error_codes/E0445.md
diff --git a/src/librustc_error_codes/error_codes/E0446.md b/compiler/rustc_error_codes/src/error_codes/E0446.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0446.md
rename to compiler/rustc_error_codes/src/error_codes/E0446.md
diff --git a/src/librustc_error_codes/error_codes/E0447.md b/compiler/rustc_error_codes/src/error_codes/E0447.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0447.md
rename to compiler/rustc_error_codes/src/error_codes/E0447.md
diff --git a/src/librustc_error_codes/error_codes/E0448.md b/compiler/rustc_error_codes/src/error_codes/E0448.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0448.md
rename to compiler/rustc_error_codes/src/error_codes/E0448.md
diff --git a/src/librustc_error_codes/error_codes/E0449.md b/compiler/rustc_error_codes/src/error_codes/E0449.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0449.md
rename to compiler/rustc_error_codes/src/error_codes/E0449.md
diff --git a/src/librustc_error_codes/error_codes/E0451.md b/compiler/rustc_error_codes/src/error_codes/E0451.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0451.md
rename to compiler/rustc_error_codes/src/error_codes/E0451.md
diff --git a/src/librustc_error_codes/error_codes/E0452.md b/compiler/rustc_error_codes/src/error_codes/E0452.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0452.md
rename to compiler/rustc_error_codes/src/error_codes/E0452.md
diff --git a/src/librustc_error_codes/error_codes/E0453.md b/compiler/rustc_error_codes/src/error_codes/E0453.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0453.md
rename to compiler/rustc_error_codes/src/error_codes/E0453.md
diff --git a/src/librustc_error_codes/error_codes/E0454.md b/compiler/rustc_error_codes/src/error_codes/E0454.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0454.md
rename to compiler/rustc_error_codes/src/error_codes/E0454.md
diff --git a/src/librustc_error_codes/error_codes/E0455.md b/compiler/rustc_error_codes/src/error_codes/E0455.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0455.md
rename to compiler/rustc_error_codes/src/error_codes/E0455.md
diff --git a/src/librustc_error_codes/error_codes/E0458.md b/compiler/rustc_error_codes/src/error_codes/E0458.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0458.md
rename to compiler/rustc_error_codes/src/error_codes/E0458.md
diff --git a/src/librustc_error_codes/error_codes/E0459.md b/compiler/rustc_error_codes/src/error_codes/E0459.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0459.md
rename to compiler/rustc_error_codes/src/error_codes/E0459.md
diff --git a/src/librustc_error_codes/error_codes/E0463.md b/compiler/rustc_error_codes/src/error_codes/E0463.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0463.md
rename to compiler/rustc_error_codes/src/error_codes/E0463.md
diff --git a/src/librustc_error_codes/error_codes/E0466.md b/compiler/rustc_error_codes/src/error_codes/E0466.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0466.md
rename to compiler/rustc_error_codes/src/error_codes/E0466.md
diff --git a/src/librustc_error_codes/error_codes/E0468.md b/compiler/rustc_error_codes/src/error_codes/E0468.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0468.md
rename to compiler/rustc_error_codes/src/error_codes/E0468.md
diff --git a/src/librustc_error_codes/error_codes/E0469.md b/compiler/rustc_error_codes/src/error_codes/E0469.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0469.md
rename to compiler/rustc_error_codes/src/error_codes/E0469.md
diff --git a/src/librustc_error_codes/error_codes/E0477.md b/compiler/rustc_error_codes/src/error_codes/E0477.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0477.md
rename to compiler/rustc_error_codes/src/error_codes/E0477.md
diff --git a/src/librustc_error_codes/error_codes/E0478.md b/compiler/rustc_error_codes/src/error_codes/E0478.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0478.md
rename to compiler/rustc_error_codes/src/error_codes/E0478.md
diff --git a/src/librustc_error_codes/error_codes/E0491.md b/compiler/rustc_error_codes/src/error_codes/E0491.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0491.md
rename to compiler/rustc_error_codes/src/error_codes/E0491.md
diff --git a/src/librustc_error_codes/error_codes/E0492.md b/compiler/rustc_error_codes/src/error_codes/E0492.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0492.md
rename to compiler/rustc_error_codes/src/error_codes/E0492.md
diff --git a/src/librustc_error_codes/error_codes/E0493.md b/compiler/rustc_error_codes/src/error_codes/E0493.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0493.md
rename to compiler/rustc_error_codes/src/error_codes/E0493.md
diff --git a/src/librustc_error_codes/error_codes/E0495.md b/compiler/rustc_error_codes/src/error_codes/E0495.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0495.md
rename to compiler/rustc_error_codes/src/error_codes/E0495.md
diff --git a/src/librustc_error_codes/error_codes/E0496.md b/compiler/rustc_error_codes/src/error_codes/E0496.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0496.md
rename to compiler/rustc_error_codes/src/error_codes/E0496.md
diff --git a/src/librustc_error_codes/error_codes/E0497.md b/compiler/rustc_error_codes/src/error_codes/E0497.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0497.md
rename to compiler/rustc_error_codes/src/error_codes/E0497.md
diff --git a/src/librustc_error_codes/error_codes/E0499.md b/compiler/rustc_error_codes/src/error_codes/E0499.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0499.md
rename to compiler/rustc_error_codes/src/error_codes/E0499.md
diff --git a/src/librustc_error_codes/error_codes/E0500.md b/compiler/rustc_error_codes/src/error_codes/E0500.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0500.md
rename to compiler/rustc_error_codes/src/error_codes/E0500.md
diff --git a/src/librustc_error_codes/error_codes/E0501.md b/compiler/rustc_error_codes/src/error_codes/E0501.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0501.md
rename to compiler/rustc_error_codes/src/error_codes/E0501.md
diff --git a/src/librustc_error_codes/error_codes/E0502.md b/compiler/rustc_error_codes/src/error_codes/E0502.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0502.md
rename to compiler/rustc_error_codes/src/error_codes/E0502.md
diff --git a/src/librustc_error_codes/error_codes/E0503.md b/compiler/rustc_error_codes/src/error_codes/E0503.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0503.md
rename to compiler/rustc_error_codes/src/error_codes/E0503.md
diff --git a/src/librustc_error_codes/error_codes/E0504.md b/compiler/rustc_error_codes/src/error_codes/E0504.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0504.md
rename to compiler/rustc_error_codes/src/error_codes/E0504.md
diff --git a/src/librustc_error_codes/error_codes/E0505.md b/compiler/rustc_error_codes/src/error_codes/E0505.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0505.md
rename to compiler/rustc_error_codes/src/error_codes/E0505.md
diff --git a/src/librustc_error_codes/error_codes/E0506.md b/compiler/rustc_error_codes/src/error_codes/E0506.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0506.md
rename to compiler/rustc_error_codes/src/error_codes/E0506.md
diff --git a/src/librustc_error_codes/error_codes/E0507.md b/compiler/rustc_error_codes/src/error_codes/E0507.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0507.md
rename to compiler/rustc_error_codes/src/error_codes/E0507.md
diff --git a/src/librustc_error_codes/error_codes/E0508.md b/compiler/rustc_error_codes/src/error_codes/E0508.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0508.md
rename to compiler/rustc_error_codes/src/error_codes/E0508.md
diff --git a/src/librustc_error_codes/error_codes/E0509.md b/compiler/rustc_error_codes/src/error_codes/E0509.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0509.md
rename to compiler/rustc_error_codes/src/error_codes/E0509.md
diff --git a/src/librustc_error_codes/error_codes/E0510.md b/compiler/rustc_error_codes/src/error_codes/E0510.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0510.md
rename to compiler/rustc_error_codes/src/error_codes/E0510.md
diff --git a/src/librustc_error_codes/error_codes/E0511.md b/compiler/rustc_error_codes/src/error_codes/E0511.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0511.md
rename to compiler/rustc_error_codes/src/error_codes/E0511.md
diff --git a/src/librustc_error_codes/error_codes/E0512.md b/compiler/rustc_error_codes/src/error_codes/E0512.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0512.md
rename to compiler/rustc_error_codes/src/error_codes/E0512.md
diff --git a/src/librustc_error_codes/error_codes/E0515.md b/compiler/rustc_error_codes/src/error_codes/E0515.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0515.md
rename to compiler/rustc_error_codes/src/error_codes/E0515.md
diff --git a/src/librustc_error_codes/error_codes/E0516.md b/compiler/rustc_error_codes/src/error_codes/E0516.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0516.md
rename to compiler/rustc_error_codes/src/error_codes/E0516.md
diff --git a/src/librustc_error_codes/error_codes/E0517.md b/compiler/rustc_error_codes/src/error_codes/E0517.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0517.md
rename to compiler/rustc_error_codes/src/error_codes/E0517.md
diff --git a/src/librustc_error_codes/error_codes/E0518.md b/compiler/rustc_error_codes/src/error_codes/E0518.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0518.md
rename to compiler/rustc_error_codes/src/error_codes/E0518.md
diff --git a/src/librustc_error_codes/error_codes/E0520.md b/compiler/rustc_error_codes/src/error_codes/E0520.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0520.md
rename to compiler/rustc_error_codes/src/error_codes/E0520.md
diff --git a/src/librustc_error_codes/error_codes/E0522.md b/compiler/rustc_error_codes/src/error_codes/E0522.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0522.md
rename to compiler/rustc_error_codes/src/error_codes/E0522.md
diff --git a/src/librustc_error_codes/error_codes/E0524.md b/compiler/rustc_error_codes/src/error_codes/E0524.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0524.md
rename to compiler/rustc_error_codes/src/error_codes/E0524.md
diff --git a/src/librustc_error_codes/error_codes/E0525.md b/compiler/rustc_error_codes/src/error_codes/E0525.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0525.md
rename to compiler/rustc_error_codes/src/error_codes/E0525.md
diff --git a/src/librustc_error_codes/error_codes/E0527.md b/compiler/rustc_error_codes/src/error_codes/E0527.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0527.md
rename to compiler/rustc_error_codes/src/error_codes/E0527.md
diff --git a/src/librustc_error_codes/error_codes/E0528.md b/compiler/rustc_error_codes/src/error_codes/E0528.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0528.md
rename to compiler/rustc_error_codes/src/error_codes/E0528.md
diff --git a/src/librustc_error_codes/error_codes/E0529.md b/compiler/rustc_error_codes/src/error_codes/E0529.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0529.md
rename to compiler/rustc_error_codes/src/error_codes/E0529.md
diff --git a/src/librustc_error_codes/error_codes/E0530.md b/compiler/rustc_error_codes/src/error_codes/E0530.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0530.md
rename to compiler/rustc_error_codes/src/error_codes/E0530.md
diff --git a/src/librustc_error_codes/error_codes/E0531.md b/compiler/rustc_error_codes/src/error_codes/E0531.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0531.md
rename to compiler/rustc_error_codes/src/error_codes/E0531.md
diff --git a/src/librustc_error_codes/error_codes/E0532.md b/compiler/rustc_error_codes/src/error_codes/E0532.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0532.md
rename to compiler/rustc_error_codes/src/error_codes/E0532.md
diff --git a/src/librustc_error_codes/error_codes/E0533.md b/compiler/rustc_error_codes/src/error_codes/E0533.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0533.md
rename to compiler/rustc_error_codes/src/error_codes/E0533.md
diff --git a/src/librustc_error_codes/error_codes/E0534.md b/compiler/rustc_error_codes/src/error_codes/E0534.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0534.md
rename to compiler/rustc_error_codes/src/error_codes/E0534.md
diff --git a/src/librustc_error_codes/error_codes/E0535.md b/compiler/rustc_error_codes/src/error_codes/E0535.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0535.md
rename to compiler/rustc_error_codes/src/error_codes/E0535.md
diff --git a/src/librustc_error_codes/error_codes/E0536.md b/compiler/rustc_error_codes/src/error_codes/E0536.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0536.md
rename to compiler/rustc_error_codes/src/error_codes/E0536.md
diff --git a/src/librustc_error_codes/error_codes/E0537.md b/compiler/rustc_error_codes/src/error_codes/E0537.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0537.md
rename to compiler/rustc_error_codes/src/error_codes/E0537.md
diff --git a/src/librustc_error_codes/error_codes/E0538.md b/compiler/rustc_error_codes/src/error_codes/E0538.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0538.md
rename to compiler/rustc_error_codes/src/error_codes/E0538.md
diff --git a/src/librustc_error_codes/error_codes/E0539.md b/compiler/rustc_error_codes/src/error_codes/E0539.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0539.md
rename to compiler/rustc_error_codes/src/error_codes/E0539.md
diff --git a/src/librustc_error_codes/error_codes/E0541.md b/compiler/rustc_error_codes/src/error_codes/E0541.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0541.md
rename to compiler/rustc_error_codes/src/error_codes/E0541.md
diff --git a/src/librustc_error_codes/error_codes/E0550.md b/compiler/rustc_error_codes/src/error_codes/E0550.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0550.md
rename to compiler/rustc_error_codes/src/error_codes/E0550.md
diff --git a/src/librustc_error_codes/error_codes/E0551.md b/compiler/rustc_error_codes/src/error_codes/E0551.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0551.md
rename to compiler/rustc_error_codes/src/error_codes/E0551.md
diff --git a/src/librustc_error_codes/error_codes/E0552.md b/compiler/rustc_error_codes/src/error_codes/E0552.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0552.md
rename to compiler/rustc_error_codes/src/error_codes/E0552.md
diff --git a/src/librustc_error_codes/error_codes/E0554.md b/compiler/rustc_error_codes/src/error_codes/E0554.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0554.md
rename to compiler/rustc_error_codes/src/error_codes/E0554.md
diff --git a/src/librustc_error_codes/error_codes/E0556.md b/compiler/rustc_error_codes/src/error_codes/E0556.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0556.md
rename to compiler/rustc_error_codes/src/error_codes/E0556.md
diff --git a/src/librustc_error_codes/error_codes/E0557.md b/compiler/rustc_error_codes/src/error_codes/E0557.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0557.md
rename to compiler/rustc_error_codes/src/error_codes/E0557.md
diff --git a/src/librustc_error_codes/error_codes/E0559.md b/compiler/rustc_error_codes/src/error_codes/E0559.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0559.md
rename to compiler/rustc_error_codes/src/error_codes/E0559.md
diff --git a/src/librustc_error_codes/error_codes/E0560.md b/compiler/rustc_error_codes/src/error_codes/E0560.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0560.md
rename to compiler/rustc_error_codes/src/error_codes/E0560.md
diff --git a/src/librustc_error_codes/error_codes/E0561.md b/compiler/rustc_error_codes/src/error_codes/E0561.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0561.md
rename to compiler/rustc_error_codes/src/error_codes/E0561.md
diff --git a/src/librustc_error_codes/error_codes/E0562.md b/compiler/rustc_error_codes/src/error_codes/E0562.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0562.md
rename to compiler/rustc_error_codes/src/error_codes/E0562.md
diff --git a/src/librustc_error_codes/error_codes/E0565.md b/compiler/rustc_error_codes/src/error_codes/E0565.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0565.md
rename to compiler/rustc_error_codes/src/error_codes/E0565.md
diff --git a/src/librustc_error_codes/error_codes/E0566.md b/compiler/rustc_error_codes/src/error_codes/E0566.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0566.md
rename to compiler/rustc_error_codes/src/error_codes/E0566.md
diff --git a/src/librustc_error_codes/error_codes/E0567.md b/compiler/rustc_error_codes/src/error_codes/E0567.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0567.md
rename to compiler/rustc_error_codes/src/error_codes/E0567.md
diff --git a/src/librustc_error_codes/error_codes/E0568.md b/compiler/rustc_error_codes/src/error_codes/E0568.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0568.md
rename to compiler/rustc_error_codes/src/error_codes/E0568.md
diff --git a/src/librustc_error_codes/error_codes/E0569.md b/compiler/rustc_error_codes/src/error_codes/E0569.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0569.md
rename to compiler/rustc_error_codes/src/error_codes/E0569.md
diff --git a/src/librustc_error_codes/error_codes/E0570.md b/compiler/rustc_error_codes/src/error_codes/E0570.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0570.md
rename to compiler/rustc_error_codes/src/error_codes/E0570.md
diff --git a/src/librustc_error_codes/error_codes/E0571.md b/compiler/rustc_error_codes/src/error_codes/E0571.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0571.md
rename to compiler/rustc_error_codes/src/error_codes/E0571.md
diff --git a/src/librustc_error_codes/error_codes/E0572.md b/compiler/rustc_error_codes/src/error_codes/E0572.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0572.md
rename to compiler/rustc_error_codes/src/error_codes/E0572.md
diff --git a/src/librustc_error_codes/error_codes/E0573.md b/compiler/rustc_error_codes/src/error_codes/E0573.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0573.md
rename to compiler/rustc_error_codes/src/error_codes/E0573.md
diff --git a/src/librustc_error_codes/error_codes/E0574.md b/compiler/rustc_error_codes/src/error_codes/E0574.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0574.md
rename to compiler/rustc_error_codes/src/error_codes/E0574.md
diff --git a/src/librustc_error_codes/error_codes/E0575.md b/compiler/rustc_error_codes/src/error_codes/E0575.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0575.md
rename to compiler/rustc_error_codes/src/error_codes/E0575.md
diff --git a/src/librustc_error_codes/error_codes/E0576.md b/compiler/rustc_error_codes/src/error_codes/E0576.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0576.md
rename to compiler/rustc_error_codes/src/error_codes/E0576.md
diff --git a/src/librustc_error_codes/error_codes/E0577.md b/compiler/rustc_error_codes/src/error_codes/E0577.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0577.md
rename to compiler/rustc_error_codes/src/error_codes/E0577.md
diff --git a/src/librustc_error_codes/error_codes/E0578.md b/compiler/rustc_error_codes/src/error_codes/E0578.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0578.md
rename to compiler/rustc_error_codes/src/error_codes/E0578.md
diff --git a/src/librustc_error_codes/error_codes/E0579.md b/compiler/rustc_error_codes/src/error_codes/E0579.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0579.md
rename to compiler/rustc_error_codes/src/error_codes/E0579.md
diff --git a/src/librustc_error_codes/error_codes/E0580.md b/compiler/rustc_error_codes/src/error_codes/E0580.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0580.md
rename to compiler/rustc_error_codes/src/error_codes/E0580.md
diff --git a/src/librustc_error_codes/error_codes/E0581.md b/compiler/rustc_error_codes/src/error_codes/E0581.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0581.md
rename to compiler/rustc_error_codes/src/error_codes/E0581.md
diff --git a/src/librustc_error_codes/error_codes/E0582.md b/compiler/rustc_error_codes/src/error_codes/E0582.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0582.md
rename to compiler/rustc_error_codes/src/error_codes/E0582.md
diff --git a/src/librustc_error_codes/error_codes/E0583.md b/compiler/rustc_error_codes/src/error_codes/E0583.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0583.md
rename to compiler/rustc_error_codes/src/error_codes/E0583.md
diff --git a/src/librustc_error_codes/error_codes/E0584.md b/compiler/rustc_error_codes/src/error_codes/E0584.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0584.md
rename to compiler/rustc_error_codes/src/error_codes/E0584.md
diff --git a/src/librustc_error_codes/error_codes/E0585.md b/compiler/rustc_error_codes/src/error_codes/E0585.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0585.md
rename to compiler/rustc_error_codes/src/error_codes/E0585.md
diff --git a/src/librustc_error_codes/error_codes/E0586.md b/compiler/rustc_error_codes/src/error_codes/E0586.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0586.md
rename to compiler/rustc_error_codes/src/error_codes/E0586.md
diff --git a/src/librustc_error_codes/error_codes/E0587.md b/compiler/rustc_error_codes/src/error_codes/E0587.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0587.md
rename to compiler/rustc_error_codes/src/error_codes/E0587.md
diff --git a/src/librustc_error_codes/error_codes/E0588.md b/compiler/rustc_error_codes/src/error_codes/E0588.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0588.md
rename to compiler/rustc_error_codes/src/error_codes/E0588.md
diff --git a/src/librustc_error_codes/error_codes/E0589.md b/compiler/rustc_error_codes/src/error_codes/E0589.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0589.md
rename to compiler/rustc_error_codes/src/error_codes/E0589.md
diff --git a/src/librustc_error_codes/error_codes/E0590.md b/compiler/rustc_error_codes/src/error_codes/E0590.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0590.md
rename to compiler/rustc_error_codes/src/error_codes/E0590.md
diff --git a/src/librustc_error_codes/error_codes/E0591.md b/compiler/rustc_error_codes/src/error_codes/E0591.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0591.md
rename to compiler/rustc_error_codes/src/error_codes/E0591.md
diff --git a/src/librustc_error_codes/error_codes/E0592.md b/compiler/rustc_error_codes/src/error_codes/E0592.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0592.md
rename to compiler/rustc_error_codes/src/error_codes/E0592.md
diff --git a/src/librustc_error_codes/error_codes/E0593.md b/compiler/rustc_error_codes/src/error_codes/E0593.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0593.md
rename to compiler/rustc_error_codes/src/error_codes/E0593.md
diff --git a/src/librustc_error_codes/error_codes/E0594.md b/compiler/rustc_error_codes/src/error_codes/E0594.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0594.md
rename to compiler/rustc_error_codes/src/error_codes/E0594.md
diff --git a/src/librustc_error_codes/error_codes/E0595.md b/compiler/rustc_error_codes/src/error_codes/E0595.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0595.md
rename to compiler/rustc_error_codes/src/error_codes/E0595.md
diff --git a/src/librustc_error_codes/error_codes/E0596.md b/compiler/rustc_error_codes/src/error_codes/E0596.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0596.md
rename to compiler/rustc_error_codes/src/error_codes/E0596.md
diff --git a/src/librustc_error_codes/error_codes/E0597.md b/compiler/rustc_error_codes/src/error_codes/E0597.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0597.md
rename to compiler/rustc_error_codes/src/error_codes/E0597.md
diff --git a/src/librustc_error_codes/error_codes/E0599.md b/compiler/rustc_error_codes/src/error_codes/E0599.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0599.md
rename to compiler/rustc_error_codes/src/error_codes/E0599.md
diff --git a/src/librustc_error_codes/error_codes/E0600.md b/compiler/rustc_error_codes/src/error_codes/E0600.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0600.md
rename to compiler/rustc_error_codes/src/error_codes/E0600.md
diff --git a/src/librustc_error_codes/error_codes/E0601.md b/compiler/rustc_error_codes/src/error_codes/E0601.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0601.md
rename to compiler/rustc_error_codes/src/error_codes/E0601.md
diff --git a/src/librustc_error_codes/error_codes/E0602.md b/compiler/rustc_error_codes/src/error_codes/E0602.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0602.md
rename to compiler/rustc_error_codes/src/error_codes/E0602.md
diff --git a/src/librustc_error_codes/error_codes/E0603.md b/compiler/rustc_error_codes/src/error_codes/E0603.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0603.md
rename to compiler/rustc_error_codes/src/error_codes/E0603.md
diff --git a/src/librustc_error_codes/error_codes/E0604.md b/compiler/rustc_error_codes/src/error_codes/E0604.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0604.md
rename to compiler/rustc_error_codes/src/error_codes/E0604.md
diff --git a/src/librustc_error_codes/error_codes/E0605.md b/compiler/rustc_error_codes/src/error_codes/E0605.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0605.md
rename to compiler/rustc_error_codes/src/error_codes/E0605.md
diff --git a/src/librustc_error_codes/error_codes/E0606.md b/compiler/rustc_error_codes/src/error_codes/E0606.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0606.md
rename to compiler/rustc_error_codes/src/error_codes/E0606.md
diff --git a/src/librustc_error_codes/error_codes/E0607.md b/compiler/rustc_error_codes/src/error_codes/E0607.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0607.md
rename to compiler/rustc_error_codes/src/error_codes/E0607.md
diff --git a/src/librustc_error_codes/error_codes/E0608.md b/compiler/rustc_error_codes/src/error_codes/E0608.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0608.md
rename to compiler/rustc_error_codes/src/error_codes/E0608.md
diff --git a/src/librustc_error_codes/error_codes/E0609.md b/compiler/rustc_error_codes/src/error_codes/E0609.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0609.md
rename to compiler/rustc_error_codes/src/error_codes/E0609.md
diff --git a/src/librustc_error_codes/error_codes/E0610.md b/compiler/rustc_error_codes/src/error_codes/E0610.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0610.md
rename to compiler/rustc_error_codes/src/error_codes/E0610.md
diff --git a/src/librustc_error_codes/error_codes/E0614.md b/compiler/rustc_error_codes/src/error_codes/E0614.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0614.md
rename to compiler/rustc_error_codes/src/error_codes/E0614.md
diff --git a/src/librustc_error_codes/error_codes/E0615.md b/compiler/rustc_error_codes/src/error_codes/E0615.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0615.md
rename to compiler/rustc_error_codes/src/error_codes/E0615.md
diff --git a/src/librustc_error_codes/error_codes/E0616.md b/compiler/rustc_error_codes/src/error_codes/E0616.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0616.md
rename to compiler/rustc_error_codes/src/error_codes/E0616.md
diff --git a/src/librustc_error_codes/error_codes/E0617.md b/compiler/rustc_error_codes/src/error_codes/E0617.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0617.md
rename to compiler/rustc_error_codes/src/error_codes/E0617.md
diff --git a/src/librustc_error_codes/error_codes/E0618.md b/compiler/rustc_error_codes/src/error_codes/E0618.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0618.md
rename to compiler/rustc_error_codes/src/error_codes/E0618.md
diff --git a/src/librustc_error_codes/error_codes/E0619.md b/compiler/rustc_error_codes/src/error_codes/E0619.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0619.md
rename to compiler/rustc_error_codes/src/error_codes/E0619.md
diff --git a/src/librustc_error_codes/error_codes/E0620.md b/compiler/rustc_error_codes/src/error_codes/E0620.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0620.md
rename to compiler/rustc_error_codes/src/error_codes/E0620.md
diff --git a/src/librustc_error_codes/error_codes/E0621.md b/compiler/rustc_error_codes/src/error_codes/E0621.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0621.md
rename to compiler/rustc_error_codes/src/error_codes/E0621.md
diff --git a/src/librustc_error_codes/error_codes/E0622.md b/compiler/rustc_error_codes/src/error_codes/E0622.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0622.md
rename to compiler/rustc_error_codes/src/error_codes/E0622.md
diff --git a/src/librustc_error_codes/error_codes/E0623.md b/compiler/rustc_error_codes/src/error_codes/E0623.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0623.md
rename to compiler/rustc_error_codes/src/error_codes/E0623.md
diff --git a/src/librustc_error_codes/error_codes/E0624.md b/compiler/rustc_error_codes/src/error_codes/E0624.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0624.md
rename to compiler/rustc_error_codes/src/error_codes/E0624.md
diff --git a/src/librustc_error_codes/error_codes/E0626.md b/compiler/rustc_error_codes/src/error_codes/E0626.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0626.md
rename to compiler/rustc_error_codes/src/error_codes/E0626.md
diff --git a/src/librustc_error_codes/error_codes/E0627.md b/compiler/rustc_error_codes/src/error_codes/E0627.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0627.md
rename to compiler/rustc_error_codes/src/error_codes/E0627.md
diff --git a/src/librustc_error_codes/error_codes/E0628.md b/compiler/rustc_error_codes/src/error_codes/E0628.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0628.md
rename to compiler/rustc_error_codes/src/error_codes/E0628.md
diff --git a/src/librustc_error_codes/error_codes/E0631.md b/compiler/rustc_error_codes/src/error_codes/E0631.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0631.md
rename to compiler/rustc_error_codes/src/error_codes/E0631.md
diff --git a/src/librustc_error_codes/error_codes/E0633.md b/compiler/rustc_error_codes/src/error_codes/E0633.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0633.md
rename to compiler/rustc_error_codes/src/error_codes/E0633.md
diff --git a/src/librustc_error_codes/error_codes/E0634.md b/compiler/rustc_error_codes/src/error_codes/E0634.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0634.md
rename to compiler/rustc_error_codes/src/error_codes/E0634.md
diff --git a/src/librustc_error_codes/error_codes/E0635.md b/compiler/rustc_error_codes/src/error_codes/E0635.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0635.md
rename to compiler/rustc_error_codes/src/error_codes/E0635.md
diff --git a/src/librustc_error_codes/error_codes/E0636.md b/compiler/rustc_error_codes/src/error_codes/E0636.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0636.md
rename to compiler/rustc_error_codes/src/error_codes/E0636.md
diff --git a/src/librustc_error_codes/error_codes/E0637.md b/compiler/rustc_error_codes/src/error_codes/E0637.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0637.md
rename to compiler/rustc_error_codes/src/error_codes/E0637.md
diff --git a/src/librustc_error_codes/error_codes/E0638.md b/compiler/rustc_error_codes/src/error_codes/E0638.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0638.md
rename to compiler/rustc_error_codes/src/error_codes/E0638.md
diff --git a/src/librustc_error_codes/error_codes/E0639.md b/compiler/rustc_error_codes/src/error_codes/E0639.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0639.md
rename to compiler/rustc_error_codes/src/error_codes/E0639.md
diff --git a/src/librustc_error_codes/error_codes/E0641.md b/compiler/rustc_error_codes/src/error_codes/E0641.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0641.md
rename to compiler/rustc_error_codes/src/error_codes/E0641.md
diff --git a/src/librustc_error_codes/error_codes/E0642.md b/compiler/rustc_error_codes/src/error_codes/E0642.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0642.md
rename to compiler/rustc_error_codes/src/error_codes/E0642.md
diff --git a/src/librustc_error_codes/error_codes/E0643.md b/compiler/rustc_error_codes/src/error_codes/E0643.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0643.md
rename to compiler/rustc_error_codes/src/error_codes/E0643.md
diff --git a/src/librustc_error_codes/error_codes/E0644.md b/compiler/rustc_error_codes/src/error_codes/E0644.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0644.md
rename to compiler/rustc_error_codes/src/error_codes/E0644.md
diff --git a/src/librustc_error_codes/error_codes/E0646.md b/compiler/rustc_error_codes/src/error_codes/E0646.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0646.md
rename to compiler/rustc_error_codes/src/error_codes/E0646.md
diff --git a/src/librustc_error_codes/error_codes/E0647.md b/compiler/rustc_error_codes/src/error_codes/E0647.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0647.md
rename to compiler/rustc_error_codes/src/error_codes/E0647.md
diff --git a/src/librustc_error_codes/error_codes/E0648.md b/compiler/rustc_error_codes/src/error_codes/E0648.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0648.md
rename to compiler/rustc_error_codes/src/error_codes/E0648.md
diff --git a/src/librustc_error_codes/error_codes/E0657.md b/compiler/rustc_error_codes/src/error_codes/E0657.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0657.md
rename to compiler/rustc_error_codes/src/error_codes/E0657.md
diff --git a/src/librustc_error_codes/error_codes/E0658.md b/compiler/rustc_error_codes/src/error_codes/E0658.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0658.md
rename to compiler/rustc_error_codes/src/error_codes/E0658.md
diff --git a/src/librustc_error_codes/error_codes/E0659.md b/compiler/rustc_error_codes/src/error_codes/E0659.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0659.md
rename to compiler/rustc_error_codes/src/error_codes/E0659.md
diff --git a/src/librustc_error_codes/error_codes/E0660.md b/compiler/rustc_error_codes/src/error_codes/E0660.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0660.md
rename to compiler/rustc_error_codes/src/error_codes/E0660.md
diff --git a/src/librustc_error_codes/error_codes/E0661.md b/compiler/rustc_error_codes/src/error_codes/E0661.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0661.md
rename to compiler/rustc_error_codes/src/error_codes/E0661.md
diff --git a/src/librustc_error_codes/error_codes/E0662.md b/compiler/rustc_error_codes/src/error_codes/E0662.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0662.md
rename to compiler/rustc_error_codes/src/error_codes/E0662.md
diff --git a/src/librustc_error_codes/error_codes/E0663.md b/compiler/rustc_error_codes/src/error_codes/E0663.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0663.md
rename to compiler/rustc_error_codes/src/error_codes/E0663.md
diff --git a/src/librustc_error_codes/error_codes/E0664.md b/compiler/rustc_error_codes/src/error_codes/E0664.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0664.md
rename to compiler/rustc_error_codes/src/error_codes/E0664.md
diff --git a/src/librustc_error_codes/error_codes/E0665.md b/compiler/rustc_error_codes/src/error_codes/E0665.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0665.md
rename to compiler/rustc_error_codes/src/error_codes/E0665.md
diff --git a/src/librustc_error_codes/error_codes/E0666.md b/compiler/rustc_error_codes/src/error_codes/E0666.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0666.md
rename to compiler/rustc_error_codes/src/error_codes/E0666.md
diff --git a/src/librustc_error_codes/error_codes/E0668.md b/compiler/rustc_error_codes/src/error_codes/E0668.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0668.md
rename to compiler/rustc_error_codes/src/error_codes/E0668.md
diff --git a/src/librustc_error_codes/error_codes/E0669.md b/compiler/rustc_error_codes/src/error_codes/E0669.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0669.md
rename to compiler/rustc_error_codes/src/error_codes/E0669.md
diff --git a/src/librustc_error_codes/error_codes/E0670.md b/compiler/rustc_error_codes/src/error_codes/E0670.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0670.md
rename to compiler/rustc_error_codes/src/error_codes/E0670.md
diff --git a/src/librustc_error_codes/error_codes/E0671.md b/compiler/rustc_error_codes/src/error_codes/E0671.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0671.md
rename to compiler/rustc_error_codes/src/error_codes/E0671.md
diff --git a/src/librustc_error_codes/error_codes/E0687.md b/compiler/rustc_error_codes/src/error_codes/E0687.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0687.md
rename to compiler/rustc_error_codes/src/error_codes/E0687.md
diff --git a/src/librustc_error_codes/error_codes/E0688.md b/compiler/rustc_error_codes/src/error_codes/E0688.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0688.md
rename to compiler/rustc_error_codes/src/error_codes/E0688.md
diff --git a/src/librustc_error_codes/error_codes/E0689.md b/compiler/rustc_error_codes/src/error_codes/E0689.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0689.md
rename to compiler/rustc_error_codes/src/error_codes/E0689.md
diff --git a/src/librustc_error_codes/error_codes/E0690.md b/compiler/rustc_error_codes/src/error_codes/E0690.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0690.md
rename to compiler/rustc_error_codes/src/error_codes/E0690.md
diff --git a/src/librustc_error_codes/error_codes/E0691.md b/compiler/rustc_error_codes/src/error_codes/E0691.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0691.md
rename to compiler/rustc_error_codes/src/error_codes/E0691.md
diff --git a/src/librustc_error_codes/error_codes/E0692.md b/compiler/rustc_error_codes/src/error_codes/E0692.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0692.md
rename to compiler/rustc_error_codes/src/error_codes/E0692.md
diff --git a/src/librustc_error_codes/error_codes/E0693.md b/compiler/rustc_error_codes/src/error_codes/E0693.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0693.md
rename to compiler/rustc_error_codes/src/error_codes/E0693.md
diff --git a/src/librustc_error_codes/error_codes/E0695.md b/compiler/rustc_error_codes/src/error_codes/E0695.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0695.md
rename to compiler/rustc_error_codes/src/error_codes/E0695.md
diff --git a/src/librustc_error_codes/error_codes/E0696.md b/compiler/rustc_error_codes/src/error_codes/E0696.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0696.md
rename to compiler/rustc_error_codes/src/error_codes/E0696.md
diff --git a/src/librustc_error_codes/error_codes/E0697.md b/compiler/rustc_error_codes/src/error_codes/E0697.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0697.md
rename to compiler/rustc_error_codes/src/error_codes/E0697.md
diff --git a/src/librustc_error_codes/error_codes/E0698.md b/compiler/rustc_error_codes/src/error_codes/E0698.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0698.md
rename to compiler/rustc_error_codes/src/error_codes/E0698.md
diff --git a/src/librustc_error_codes/error_codes/E0699.md b/compiler/rustc_error_codes/src/error_codes/E0699.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0699.md
rename to compiler/rustc_error_codes/src/error_codes/E0699.md
diff --git a/src/librustc_error_codes/error_codes/E0700.md b/compiler/rustc_error_codes/src/error_codes/E0700.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0700.md
rename to compiler/rustc_error_codes/src/error_codes/E0700.md
diff --git a/src/librustc_error_codes/error_codes/E0701.md b/compiler/rustc_error_codes/src/error_codes/E0701.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0701.md
rename to compiler/rustc_error_codes/src/error_codes/E0701.md
diff --git a/src/librustc_error_codes/error_codes/E0703.md b/compiler/rustc_error_codes/src/error_codes/E0703.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0703.md
rename to compiler/rustc_error_codes/src/error_codes/E0703.md
diff --git a/src/librustc_error_codes/error_codes/E0704.md b/compiler/rustc_error_codes/src/error_codes/E0704.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0704.md
rename to compiler/rustc_error_codes/src/error_codes/E0704.md
diff --git a/src/librustc_error_codes/error_codes/E0705.md b/compiler/rustc_error_codes/src/error_codes/E0705.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0705.md
rename to compiler/rustc_error_codes/src/error_codes/E0705.md
diff --git a/src/librustc_error_codes/error_codes/E0706.md b/compiler/rustc_error_codes/src/error_codes/E0706.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0706.md
rename to compiler/rustc_error_codes/src/error_codes/E0706.md
diff --git a/src/librustc_error_codes/error_codes/E0708.md b/compiler/rustc_error_codes/src/error_codes/E0708.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0708.md
rename to compiler/rustc_error_codes/src/error_codes/E0708.md
diff --git a/src/librustc_error_codes/error_codes/E0710.md b/compiler/rustc_error_codes/src/error_codes/E0710.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0710.md
rename to compiler/rustc_error_codes/src/error_codes/E0710.md
diff --git a/src/librustc_error_codes/error_codes/E0712.md b/compiler/rustc_error_codes/src/error_codes/E0712.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0712.md
rename to compiler/rustc_error_codes/src/error_codes/E0712.md
diff --git a/src/librustc_error_codes/error_codes/E0713.md b/compiler/rustc_error_codes/src/error_codes/E0713.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0713.md
rename to compiler/rustc_error_codes/src/error_codes/E0713.md
diff --git a/src/librustc_error_codes/error_codes/E0714.md b/compiler/rustc_error_codes/src/error_codes/E0714.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0714.md
rename to compiler/rustc_error_codes/src/error_codes/E0714.md
diff --git a/src/librustc_error_codes/error_codes/E0715.md b/compiler/rustc_error_codes/src/error_codes/E0715.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0715.md
rename to compiler/rustc_error_codes/src/error_codes/E0715.md
diff --git a/src/librustc_error_codes/error_codes/E0716.md b/compiler/rustc_error_codes/src/error_codes/E0716.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0716.md
rename to compiler/rustc_error_codes/src/error_codes/E0716.md
diff --git a/src/librustc_error_codes/error_codes/E0718.md b/compiler/rustc_error_codes/src/error_codes/E0718.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0718.md
rename to compiler/rustc_error_codes/src/error_codes/E0718.md
diff --git a/src/librustc_error_codes/error_codes/E0719.md b/compiler/rustc_error_codes/src/error_codes/E0719.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0719.md
rename to compiler/rustc_error_codes/src/error_codes/E0719.md
diff --git a/src/librustc_error_codes/error_codes/E0720.md b/compiler/rustc_error_codes/src/error_codes/E0720.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0720.md
rename to compiler/rustc_error_codes/src/error_codes/E0720.md
diff --git a/src/librustc_error_codes/error_codes/E0723.md b/compiler/rustc_error_codes/src/error_codes/E0723.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0723.md
rename to compiler/rustc_error_codes/src/error_codes/E0723.md
diff --git a/src/librustc_error_codes/error_codes/E0724.md b/compiler/rustc_error_codes/src/error_codes/E0724.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0724.md
rename to compiler/rustc_error_codes/src/error_codes/E0724.md
diff --git a/src/librustc_error_codes/error_codes/E0725.md b/compiler/rustc_error_codes/src/error_codes/E0725.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0725.md
rename to compiler/rustc_error_codes/src/error_codes/E0725.md
diff --git a/src/librustc_error_codes/error_codes/E0727.md b/compiler/rustc_error_codes/src/error_codes/E0727.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0727.md
rename to compiler/rustc_error_codes/src/error_codes/E0727.md
diff --git a/src/librustc_error_codes/error_codes/E0728.md b/compiler/rustc_error_codes/src/error_codes/E0728.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0728.md
rename to compiler/rustc_error_codes/src/error_codes/E0728.md
diff --git a/src/librustc_error_codes/error_codes/E0729.md b/compiler/rustc_error_codes/src/error_codes/E0729.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0729.md
rename to compiler/rustc_error_codes/src/error_codes/E0729.md
diff --git a/src/librustc_error_codes/error_codes/E0730.md b/compiler/rustc_error_codes/src/error_codes/E0730.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0730.md
rename to compiler/rustc_error_codes/src/error_codes/E0730.md
diff --git a/src/librustc_error_codes/error_codes/E0731.md b/compiler/rustc_error_codes/src/error_codes/E0731.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0731.md
rename to compiler/rustc_error_codes/src/error_codes/E0731.md
diff --git a/src/librustc_error_codes/error_codes/E0732.md b/compiler/rustc_error_codes/src/error_codes/E0732.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0732.md
rename to compiler/rustc_error_codes/src/error_codes/E0732.md
diff --git a/src/librustc_error_codes/error_codes/E0733.md b/compiler/rustc_error_codes/src/error_codes/E0733.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0733.md
rename to compiler/rustc_error_codes/src/error_codes/E0733.md
diff --git a/src/librustc_error_codes/error_codes/E0734.md b/compiler/rustc_error_codes/src/error_codes/E0734.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0734.md
rename to compiler/rustc_error_codes/src/error_codes/E0734.md
diff --git a/src/librustc_error_codes/error_codes/E0735.md b/compiler/rustc_error_codes/src/error_codes/E0735.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0735.md
rename to compiler/rustc_error_codes/src/error_codes/E0735.md
diff --git a/src/librustc_error_codes/error_codes/E0736.md b/compiler/rustc_error_codes/src/error_codes/E0736.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0736.md
rename to compiler/rustc_error_codes/src/error_codes/E0736.md
diff --git a/src/librustc_error_codes/error_codes/E0737.md b/compiler/rustc_error_codes/src/error_codes/E0737.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0737.md
rename to compiler/rustc_error_codes/src/error_codes/E0737.md
diff --git a/src/librustc_error_codes/error_codes/E0739.md b/compiler/rustc_error_codes/src/error_codes/E0739.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0739.md
rename to compiler/rustc_error_codes/src/error_codes/E0739.md
diff --git a/src/librustc_error_codes/error_codes/E0740.md b/compiler/rustc_error_codes/src/error_codes/E0740.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0740.md
rename to compiler/rustc_error_codes/src/error_codes/E0740.md
diff --git a/src/librustc_error_codes/error_codes/E0741.md b/compiler/rustc_error_codes/src/error_codes/E0741.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0741.md
rename to compiler/rustc_error_codes/src/error_codes/E0741.md
diff --git a/src/librustc_error_codes/error_codes/E0742.md b/compiler/rustc_error_codes/src/error_codes/E0742.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0742.md
rename to compiler/rustc_error_codes/src/error_codes/E0742.md
diff --git a/src/librustc_error_codes/error_codes/E0743.md b/compiler/rustc_error_codes/src/error_codes/E0743.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0743.md
rename to compiler/rustc_error_codes/src/error_codes/E0743.md
diff --git a/src/librustc_error_codes/error_codes/E0744.md b/compiler/rustc_error_codes/src/error_codes/E0744.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0744.md
rename to compiler/rustc_error_codes/src/error_codes/E0744.md
diff --git a/src/librustc_error_codes/error_codes/E0745.md b/compiler/rustc_error_codes/src/error_codes/E0745.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0745.md
rename to compiler/rustc_error_codes/src/error_codes/E0745.md
diff --git a/src/librustc_error_codes/error_codes/E0746.md b/compiler/rustc_error_codes/src/error_codes/E0746.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0746.md
rename to compiler/rustc_error_codes/src/error_codes/E0746.md
diff --git a/src/librustc_error_codes/error_codes/E0747.md b/compiler/rustc_error_codes/src/error_codes/E0747.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0747.md
rename to compiler/rustc_error_codes/src/error_codes/E0747.md
diff --git a/src/librustc_error_codes/error_codes/E0748.md b/compiler/rustc_error_codes/src/error_codes/E0748.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0748.md
rename to compiler/rustc_error_codes/src/error_codes/E0748.md
diff --git a/src/librustc_error_codes/error_codes/E0749.md b/compiler/rustc_error_codes/src/error_codes/E0749.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0749.md
rename to compiler/rustc_error_codes/src/error_codes/E0749.md
diff --git a/src/librustc_error_codes/error_codes/E0750.md b/compiler/rustc_error_codes/src/error_codes/E0750.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0750.md
rename to compiler/rustc_error_codes/src/error_codes/E0750.md
diff --git a/src/librustc_error_codes/error_codes/E0751.md b/compiler/rustc_error_codes/src/error_codes/E0751.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0751.md
rename to compiler/rustc_error_codes/src/error_codes/E0751.md
diff --git a/src/librustc_error_codes/error_codes/E0752.md b/compiler/rustc_error_codes/src/error_codes/E0752.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0752.md
rename to compiler/rustc_error_codes/src/error_codes/E0752.md
diff --git a/src/librustc_error_codes/error_codes/E0753.md b/compiler/rustc_error_codes/src/error_codes/E0753.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0753.md
rename to compiler/rustc_error_codes/src/error_codes/E0753.md
diff --git a/src/librustc_error_codes/error_codes/E0754.md b/compiler/rustc_error_codes/src/error_codes/E0754.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0754.md
rename to compiler/rustc_error_codes/src/error_codes/E0754.md
diff --git a/src/librustc_error_codes/error_codes/E0758.md b/compiler/rustc_error_codes/src/error_codes/E0758.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0758.md
rename to compiler/rustc_error_codes/src/error_codes/E0758.md
diff --git a/src/librustc_error_codes/error_codes/E0759.md b/compiler/rustc_error_codes/src/error_codes/E0759.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0759.md
rename to compiler/rustc_error_codes/src/error_codes/E0759.md
diff --git a/src/librustc_error_codes/error_codes/E0760.md b/compiler/rustc_error_codes/src/error_codes/E0760.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0760.md
rename to compiler/rustc_error_codes/src/error_codes/E0760.md
diff --git a/src/librustc_error_codes/error_codes/E0761.md b/compiler/rustc_error_codes/src/error_codes/E0761.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0761.md
rename to compiler/rustc_error_codes/src/error_codes/E0761.md
diff --git a/src/librustc_error_codes/error_codes/E0762.md b/compiler/rustc_error_codes/src/error_codes/E0762.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0762.md
rename to compiler/rustc_error_codes/src/error_codes/E0762.md
diff --git a/src/librustc_error_codes/error_codes/E0763.md b/compiler/rustc_error_codes/src/error_codes/E0763.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0763.md
rename to compiler/rustc_error_codes/src/error_codes/E0763.md
diff --git a/src/librustc_error_codes/error_codes/E0764.md b/compiler/rustc_error_codes/src/error_codes/E0764.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0764.md
rename to compiler/rustc_error_codes/src/error_codes/E0764.md
diff --git a/src/librustc_error_codes/error_codes/E0765.md b/compiler/rustc_error_codes/src/error_codes/E0765.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0765.md
rename to compiler/rustc_error_codes/src/error_codes/E0765.md
diff --git a/src/librustc_error_codes/error_codes/E0766.md b/compiler/rustc_error_codes/src/error_codes/E0766.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0766.md
rename to compiler/rustc_error_codes/src/error_codes/E0766.md
diff --git a/src/librustc_error_codes/error_codes/E0767.md b/compiler/rustc_error_codes/src/error_codes/E0767.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0767.md
rename to compiler/rustc_error_codes/src/error_codes/E0767.md
diff --git a/src/librustc_error_codes/error_codes/E0768.md b/compiler/rustc_error_codes/src/error_codes/E0768.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0768.md
rename to compiler/rustc_error_codes/src/error_codes/E0768.md
diff --git a/src/librustc_error_codes/error_codes/E0769.md b/compiler/rustc_error_codes/src/error_codes/E0769.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0769.md
rename to compiler/rustc_error_codes/src/error_codes/E0769.md
diff --git a/src/librustc_error_codes/error_codes/E0770.md b/compiler/rustc_error_codes/src/error_codes/E0770.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0770.md
rename to compiler/rustc_error_codes/src/error_codes/E0770.md
diff --git a/src/librustc_error_codes/error_codes/E0771.md b/compiler/rustc_error_codes/src/error_codes/E0771.md
similarity index 100%
rename from src/librustc_error_codes/error_codes/E0771.md
rename to compiler/rustc_error_codes/src/error_codes/E0771.md
diff --git a/src/librustc_error_codes/lib.rs b/compiler/rustc_error_codes/src/lib.rs
similarity index 100%
rename from src/librustc_error_codes/lib.rs
rename to compiler/rustc_error_codes/src/lib.rs
diff --git a/src/librustc_errors/Cargo.toml b/compiler/rustc_errors/Cargo.toml
similarity index 60%
rename from src/librustc_errors/Cargo.toml
rename to compiler/rustc_errors/Cargo.toml
index 7c794bcd98f2c..e4dbb8db38104 100644
--- a/src/librustc_errors/Cargo.toml
+++ b/compiler/rustc_errors/Cargo.toml
@@ -5,16 +5,14 @@ version = "0.0.0"
 edition = "2018"
 
 [lib]
-name = "rustc_errors"
-path = "lib.rs"
 doctest = false
 
 [dependencies]
 tracing = "0.1"
-rustc_serialize = { path = "../librustc_serialize" }
-rustc_span = { path = "../librustc_span" }
-rustc_macros = { path = "../librustc_macros" }
-rustc_data_structures = { path = "../librustc_data_structures" }
+rustc_serialize = { path = "../rustc_serialize" }
+rustc_span = { path = "../rustc_span" }
+rustc_macros = { path = "../rustc_macros" }
+rustc_data_structures = { path = "../rustc_data_structures" }
 unicode-width = "0.1.4"
 atty = "0.2"
 termcolor = "1.0"
diff --git a/src/librustc_errors/annotate_snippet_emitter_writer.rs b/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs
similarity index 100%
rename from src/librustc_errors/annotate_snippet_emitter_writer.rs
rename to compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs
diff --git a/src/librustc_errors/diagnostic.rs b/compiler/rustc_errors/src/diagnostic.rs
similarity index 100%
rename from src/librustc_errors/diagnostic.rs
rename to compiler/rustc_errors/src/diagnostic.rs
diff --git a/src/librustc_errors/diagnostic_builder.rs b/compiler/rustc_errors/src/diagnostic_builder.rs
similarity index 100%
rename from src/librustc_errors/diagnostic_builder.rs
rename to compiler/rustc_errors/src/diagnostic_builder.rs
diff --git a/src/librustc_errors/emitter.rs b/compiler/rustc_errors/src/emitter.rs
similarity index 100%
rename from src/librustc_errors/emitter.rs
rename to compiler/rustc_errors/src/emitter.rs
diff --git a/src/librustc_errors/json.rs b/compiler/rustc_errors/src/json.rs
similarity index 100%
rename from src/librustc_errors/json.rs
rename to compiler/rustc_errors/src/json.rs
diff --git a/src/librustc_errors/json/tests.rs b/compiler/rustc_errors/src/json/tests.rs
similarity index 100%
rename from src/librustc_errors/json/tests.rs
rename to compiler/rustc_errors/src/json/tests.rs
diff --git a/src/librustc_errors/lib.rs b/compiler/rustc_errors/src/lib.rs
similarity index 100%
rename from src/librustc_errors/lib.rs
rename to compiler/rustc_errors/src/lib.rs
diff --git a/src/librustc_errors/lock.rs b/compiler/rustc_errors/src/lock.rs
similarity index 100%
rename from src/librustc_errors/lock.rs
rename to compiler/rustc_errors/src/lock.rs
diff --git a/src/librustc_errors/registry.rs b/compiler/rustc_errors/src/registry.rs
similarity index 100%
rename from src/librustc_errors/registry.rs
rename to compiler/rustc_errors/src/registry.rs
diff --git a/src/librustc_errors/snippet.rs b/compiler/rustc_errors/src/snippet.rs
similarity index 100%
rename from src/librustc_errors/snippet.rs
rename to compiler/rustc_errors/src/snippet.rs
diff --git a/src/librustc_errors/styled_buffer.rs b/compiler/rustc_errors/src/styled_buffer.rs
similarity index 100%
rename from src/librustc_errors/styled_buffer.rs
rename to compiler/rustc_errors/src/styled_buffer.rs
diff --git a/compiler/rustc_expand/Cargo.toml b/compiler/rustc_expand/Cargo.toml
new file mode 100644
index 0000000000000..25c2851f6de59
--- /dev/null
+++ b/compiler/rustc_expand/Cargo.toml
@@ -0,0 +1,26 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_expand"
+version = "0.0.0"
+edition = "2018"
+build = false
+
+[lib]
+doctest = false
+
+[dependencies]
+rustc_serialize = { path = "../rustc_serialize" }
+tracing = "0.1"
+rustc_span = { path = "../rustc_span" }
+rustc_ast_pretty = { path = "../rustc_ast_pretty" }
+rustc_ast_passes = { path = "../rustc_ast_passes" }
+rustc_attr = { path = "../rustc_attr" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_feature = { path = "../rustc_feature" }
+rustc_macros = { path = "../rustc_macros" }
+rustc_lexer = { path = "../rustc_lexer" }
+rustc_parse = { path = "../rustc_parse" }
+rustc_session = { path = "../rustc_session" }
+smallvec = { version = "1.0", features = ["union", "may_dangle"] }
+rustc_ast = { path = "../rustc_ast" }
diff --git a/src/librustc_expand/base.rs b/compiler/rustc_expand/src/base.rs
similarity index 100%
rename from src/librustc_expand/base.rs
rename to compiler/rustc_expand/src/base.rs
diff --git a/src/librustc_expand/build.rs b/compiler/rustc_expand/src/build.rs
similarity index 100%
rename from src/librustc_expand/build.rs
rename to compiler/rustc_expand/src/build.rs
diff --git a/src/librustc_expand/config.rs b/compiler/rustc_expand/src/config.rs
similarity index 100%
rename from src/librustc_expand/config.rs
rename to compiler/rustc_expand/src/config.rs
diff --git a/src/librustc_expand/expand.rs b/compiler/rustc_expand/src/expand.rs
similarity index 100%
rename from src/librustc_expand/expand.rs
rename to compiler/rustc_expand/src/expand.rs
diff --git a/src/librustc_expand/lib.rs b/compiler/rustc_expand/src/lib.rs
similarity index 100%
rename from src/librustc_expand/lib.rs
rename to compiler/rustc_expand/src/lib.rs
diff --git a/src/librustc_expand/mbe.rs b/compiler/rustc_expand/src/mbe.rs
similarity index 100%
rename from src/librustc_expand/mbe.rs
rename to compiler/rustc_expand/src/mbe.rs
diff --git a/src/librustc_expand/mbe/macro_check.rs b/compiler/rustc_expand/src/mbe/macro_check.rs
similarity index 100%
rename from src/librustc_expand/mbe/macro_check.rs
rename to compiler/rustc_expand/src/mbe/macro_check.rs
diff --git a/src/librustc_expand/mbe/macro_parser.rs b/compiler/rustc_expand/src/mbe/macro_parser.rs
similarity index 100%
rename from src/librustc_expand/mbe/macro_parser.rs
rename to compiler/rustc_expand/src/mbe/macro_parser.rs
diff --git a/src/librustc_expand/mbe/macro_rules.rs b/compiler/rustc_expand/src/mbe/macro_rules.rs
similarity index 100%
rename from src/librustc_expand/mbe/macro_rules.rs
rename to compiler/rustc_expand/src/mbe/macro_rules.rs
diff --git a/src/librustc_expand/mbe/quoted.rs b/compiler/rustc_expand/src/mbe/quoted.rs
similarity index 100%
rename from src/librustc_expand/mbe/quoted.rs
rename to compiler/rustc_expand/src/mbe/quoted.rs
diff --git a/src/librustc_expand/mbe/transcribe.rs b/compiler/rustc_expand/src/mbe/transcribe.rs
similarity index 100%
rename from src/librustc_expand/mbe/transcribe.rs
rename to compiler/rustc_expand/src/mbe/transcribe.rs
diff --git a/src/librustc_expand/module.rs b/compiler/rustc_expand/src/module.rs
similarity index 100%
rename from src/librustc_expand/module.rs
rename to compiler/rustc_expand/src/module.rs
diff --git a/src/librustc_expand/mut_visit/tests.rs b/compiler/rustc_expand/src/mut_visit/tests.rs
similarity index 100%
rename from src/librustc_expand/mut_visit/tests.rs
rename to compiler/rustc_expand/src/mut_visit/tests.rs
diff --git a/src/librustc_expand/parse/lexer/tests.rs b/compiler/rustc_expand/src/parse/lexer/tests.rs
similarity index 100%
rename from src/librustc_expand/parse/lexer/tests.rs
rename to compiler/rustc_expand/src/parse/lexer/tests.rs
diff --git a/src/librustc_expand/parse/tests.rs b/compiler/rustc_expand/src/parse/tests.rs
similarity index 100%
rename from src/librustc_expand/parse/tests.rs
rename to compiler/rustc_expand/src/parse/tests.rs
diff --git a/src/librustc_expand/placeholders.rs b/compiler/rustc_expand/src/placeholders.rs
similarity index 100%
rename from src/librustc_expand/placeholders.rs
rename to compiler/rustc_expand/src/placeholders.rs
diff --git a/src/librustc_expand/proc_macro.rs b/compiler/rustc_expand/src/proc_macro.rs
similarity index 100%
rename from src/librustc_expand/proc_macro.rs
rename to compiler/rustc_expand/src/proc_macro.rs
diff --git a/src/librustc_expand/proc_macro_server.rs b/compiler/rustc_expand/src/proc_macro_server.rs
similarity index 100%
rename from src/librustc_expand/proc_macro_server.rs
rename to compiler/rustc_expand/src/proc_macro_server.rs
diff --git a/src/librustc_expand/tests.rs b/compiler/rustc_expand/src/tests.rs
similarity index 100%
rename from src/librustc_expand/tests.rs
rename to compiler/rustc_expand/src/tests.rs
diff --git a/src/librustc_expand/tokenstream/tests.rs b/compiler/rustc_expand/src/tokenstream/tests.rs
similarity index 100%
rename from src/librustc_expand/tokenstream/tests.rs
rename to compiler/rustc_expand/src/tokenstream/tests.rs
diff --git a/src/librustc_feature/Cargo.toml b/compiler/rustc_feature/Cargo.toml
similarity index 53%
rename from src/librustc_feature/Cargo.toml
rename to compiler/rustc_feature/Cargo.toml
index 96fd15ef3044c..3f8047e931e9b 100644
--- a/src/librustc_feature/Cargo.toml
+++ b/compiler/rustc_feature/Cargo.toml
@@ -5,11 +5,9 @@ version = "0.0.0"
 edition = "2018"
 
 [lib]
-name = "rustc_feature"
-path = "lib.rs"
 doctest = false
 
 [dependencies]
-rustc_data_structures = { path = "../librustc_data_structures" }
+rustc_data_structures = { path = "../rustc_data_structures" }
 lazy_static = "1.0.0"
-rustc_span = { path = "../librustc_span" }
+rustc_span = { path = "../rustc_span" }
diff --git a/src/librustc_feature/accepted.rs b/compiler/rustc_feature/src/accepted.rs
similarity index 100%
rename from src/librustc_feature/accepted.rs
rename to compiler/rustc_feature/src/accepted.rs
diff --git a/src/librustc_feature/active.rs b/compiler/rustc_feature/src/active.rs
similarity index 100%
rename from src/librustc_feature/active.rs
rename to compiler/rustc_feature/src/active.rs
diff --git a/src/librustc_feature/builtin_attrs.rs b/compiler/rustc_feature/src/builtin_attrs.rs
similarity index 100%
rename from src/librustc_feature/builtin_attrs.rs
rename to compiler/rustc_feature/src/builtin_attrs.rs
diff --git a/src/librustc_feature/lib.rs b/compiler/rustc_feature/src/lib.rs
similarity index 100%
rename from src/librustc_feature/lib.rs
rename to compiler/rustc_feature/src/lib.rs
diff --git a/src/librustc_feature/removed.rs b/compiler/rustc_feature/src/removed.rs
similarity index 100%
rename from src/librustc_feature/removed.rs
rename to compiler/rustc_feature/src/removed.rs
diff --git a/src/librustc_fs_util/Cargo.toml b/compiler/rustc_fs_util/Cargo.toml
similarity index 63%
rename from src/librustc_fs_util/Cargo.toml
rename to compiler/rustc_fs_util/Cargo.toml
index e74e3809927a0..e4414c788a70b 100644
--- a/src/librustc_fs_util/Cargo.toml
+++ b/compiler/rustc_fs_util/Cargo.toml
@@ -3,9 +3,3 @@ authors = ["The Rust Project Developers"]
 name = "rustc_fs_util"
 version = "0.0.0"
 edition = "2018"
-
-[lib]
-name = "rustc_fs_util"
-path = "lib.rs"
-
-[dependencies]
diff --git a/src/librustc_fs_util/lib.rs b/compiler/rustc_fs_util/src/lib.rs
similarity index 100%
rename from src/librustc_fs_util/lib.rs
rename to compiler/rustc_fs_util/src/lib.rs
diff --git a/src/librustc_graphviz/Cargo.toml b/compiler/rustc_graphviz/Cargo.toml
similarity index 70%
rename from src/librustc_graphviz/Cargo.toml
rename to compiler/rustc_graphviz/Cargo.toml
index 9a5e78a560cf0..d07b75a5c8f1c 100644
--- a/src/librustc_graphviz/Cargo.toml
+++ b/compiler/rustc_graphviz/Cargo.toml
@@ -3,7 +3,3 @@ authors = ["The Rust Project Developers"]
 name = "rustc_graphviz"
 version = "0.0.0"
 edition = "2018"
-
-[lib]
-name = "rustc_graphviz"
-path = "lib.rs"
diff --git a/src/librustc_graphviz/lib.rs b/compiler/rustc_graphviz/src/lib.rs
similarity index 100%
rename from src/librustc_graphviz/lib.rs
rename to compiler/rustc_graphviz/src/lib.rs
diff --git a/src/librustc_graphviz/tests.rs b/compiler/rustc_graphviz/src/tests.rs
similarity index 100%
rename from src/librustc_graphviz/tests.rs
rename to compiler/rustc_graphviz/src/tests.rs
diff --git a/compiler/rustc_hir/Cargo.toml b/compiler/rustc_hir/Cargo.toml
new file mode 100644
index 0000000000000..ed295ff005839
--- /dev/null
+++ b/compiler/rustc_hir/Cargo.toml
@@ -0,0 +1,20 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_hir"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+rustc_target = { path = "../rustc_target" }
+rustc_macros = { path = "../rustc_macros" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_index = { path = "../rustc_index" }
+rustc_span = { path = "../rustc_span" }
+rustc_serialize = { path = "../rustc_serialize" }
+rustc_ast = { path = "../rustc_ast" }
+lazy_static = "1"
+tracing = "0.1"
+smallvec = { version = "1.0", features = ["union", "may_dangle"] }
diff --git a/src/librustc_hir/arena.rs b/compiler/rustc_hir/src/arena.rs
similarity index 100%
rename from src/librustc_hir/arena.rs
rename to compiler/rustc_hir/src/arena.rs
diff --git a/src/librustc_hir/def.rs b/compiler/rustc_hir/src/def.rs
similarity index 100%
rename from src/librustc_hir/def.rs
rename to compiler/rustc_hir/src/def.rs
diff --git a/src/librustc_hir/definitions.rs b/compiler/rustc_hir/src/definitions.rs
similarity index 100%
rename from src/librustc_hir/definitions.rs
rename to compiler/rustc_hir/src/definitions.rs
diff --git a/src/librustc_hir/hir.rs b/compiler/rustc_hir/src/hir.rs
similarity index 100%
rename from src/librustc_hir/hir.rs
rename to compiler/rustc_hir/src/hir.rs
diff --git a/src/librustc_hir/hir_id.rs b/compiler/rustc_hir/src/hir_id.rs
similarity index 100%
rename from src/librustc_hir/hir_id.rs
rename to compiler/rustc_hir/src/hir_id.rs
diff --git a/src/librustc_hir/intravisit.rs b/compiler/rustc_hir/src/intravisit.rs
similarity index 100%
rename from src/librustc_hir/intravisit.rs
rename to compiler/rustc_hir/src/intravisit.rs
diff --git a/src/librustc_hir/itemlikevisit.rs b/compiler/rustc_hir/src/itemlikevisit.rs
similarity index 100%
rename from src/librustc_hir/itemlikevisit.rs
rename to compiler/rustc_hir/src/itemlikevisit.rs
diff --git a/src/librustc_hir/lang_items.rs b/compiler/rustc_hir/src/lang_items.rs
similarity index 100%
rename from src/librustc_hir/lang_items.rs
rename to compiler/rustc_hir/src/lang_items.rs
diff --git a/src/librustc_hir/lib.rs b/compiler/rustc_hir/src/lib.rs
similarity index 100%
rename from src/librustc_hir/lib.rs
rename to compiler/rustc_hir/src/lib.rs
diff --git a/src/librustc_hir/pat_util.rs b/compiler/rustc_hir/src/pat_util.rs
similarity index 100%
rename from src/librustc_hir/pat_util.rs
rename to compiler/rustc_hir/src/pat_util.rs
diff --git a/src/librustc_hir/stable_hash_impls.rs b/compiler/rustc_hir/src/stable_hash_impls.rs
similarity index 100%
rename from src/librustc_hir/stable_hash_impls.rs
rename to compiler/rustc_hir/src/stable_hash_impls.rs
diff --git a/src/librustc_hir/target.rs b/compiler/rustc_hir/src/target.rs
similarity index 100%
rename from src/librustc_hir/target.rs
rename to compiler/rustc_hir/src/target.rs
diff --git a/src/librustc_hir/weak_lang_items.rs b/compiler/rustc_hir/src/weak_lang_items.rs
similarity index 100%
rename from src/librustc_hir/weak_lang_items.rs
rename to compiler/rustc_hir/src/weak_lang_items.rs
diff --git a/compiler/rustc_hir_pretty/Cargo.toml b/compiler/rustc_hir_pretty/Cargo.toml
new file mode 100644
index 0000000000000..1f7643e9fb496
--- /dev/null
+++ b/compiler/rustc_hir_pretty/Cargo.toml
@@ -0,0 +1,15 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_hir_pretty"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+rustc_ast_pretty = { path = "../rustc_ast_pretty" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_target = { path = "../rustc_target" }
+rustc_span = { path = "../rustc_span" }
+rustc_ast = { path = "../rustc_ast" }
diff --git a/src/librustc_hir_pretty/lib.rs b/compiler/rustc_hir_pretty/src/lib.rs
similarity index 100%
rename from src/librustc_hir_pretty/lib.rs
rename to compiler/rustc_hir_pretty/src/lib.rs
diff --git a/compiler/rustc_incremental/Cargo.toml b/compiler/rustc_incremental/Cargo.toml
new file mode 100644
index 0000000000000..049e5b8b72284
--- /dev/null
+++ b/compiler/rustc_incremental/Cargo.toml
@@ -0,0 +1,22 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_incremental"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+rustc_graphviz = { path = "../rustc_graphviz" }
+tracing = "0.1"
+rand = "0.7"
+rustc_middle = { path = "../rustc_middle" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_serialize = { path = "../rustc_serialize" }
+rustc_ast = { path = "../rustc_ast" }
+rustc_macros = { path = "../rustc_macros" }
+rustc_span = { path = "../rustc_span" }
+rustc_fs_util = { path = "../rustc_fs_util" }
+rustc_session = { path = "../rustc_session" }
diff --git a/src/librustc_incremental/assert_dep_graph.rs b/compiler/rustc_incremental/src/assert_dep_graph.rs
similarity index 100%
rename from src/librustc_incremental/assert_dep_graph.rs
rename to compiler/rustc_incremental/src/assert_dep_graph.rs
diff --git a/src/librustc_incremental/assert_module_sources.rs b/compiler/rustc_incremental/src/assert_module_sources.rs
similarity index 100%
rename from src/librustc_incremental/assert_module_sources.rs
rename to compiler/rustc_incremental/src/assert_module_sources.rs
diff --git a/src/librustc_incremental/lib.rs b/compiler/rustc_incremental/src/lib.rs
similarity index 100%
rename from src/librustc_incremental/lib.rs
rename to compiler/rustc_incremental/src/lib.rs
diff --git a/src/librustc_incremental/persist/README.md b/compiler/rustc_incremental/src/persist/README.md
similarity index 100%
rename from src/librustc_incremental/persist/README.md
rename to compiler/rustc_incremental/src/persist/README.md
diff --git a/src/librustc_incremental/persist/data.rs b/compiler/rustc_incremental/src/persist/data.rs
similarity index 100%
rename from src/librustc_incremental/persist/data.rs
rename to compiler/rustc_incremental/src/persist/data.rs
diff --git a/src/librustc_incremental/persist/dirty_clean.rs b/compiler/rustc_incremental/src/persist/dirty_clean.rs
similarity index 100%
rename from src/librustc_incremental/persist/dirty_clean.rs
rename to compiler/rustc_incremental/src/persist/dirty_clean.rs
diff --git a/src/librustc_incremental/persist/file_format.rs b/compiler/rustc_incremental/src/persist/file_format.rs
similarity index 100%
rename from src/librustc_incremental/persist/file_format.rs
rename to compiler/rustc_incremental/src/persist/file_format.rs
diff --git a/src/librustc_incremental/persist/fs.rs b/compiler/rustc_incremental/src/persist/fs.rs
similarity index 100%
rename from src/librustc_incremental/persist/fs.rs
rename to compiler/rustc_incremental/src/persist/fs.rs
diff --git a/src/librustc_incremental/persist/fs/tests.rs b/compiler/rustc_incremental/src/persist/fs/tests.rs
similarity index 100%
rename from src/librustc_incremental/persist/fs/tests.rs
rename to compiler/rustc_incremental/src/persist/fs/tests.rs
diff --git a/src/librustc_incremental/persist/load.rs b/compiler/rustc_incremental/src/persist/load.rs
similarity index 100%
rename from src/librustc_incremental/persist/load.rs
rename to compiler/rustc_incremental/src/persist/load.rs
diff --git a/src/librustc_incremental/persist/mod.rs b/compiler/rustc_incremental/src/persist/mod.rs
similarity index 100%
rename from src/librustc_incremental/persist/mod.rs
rename to compiler/rustc_incremental/src/persist/mod.rs
diff --git a/src/librustc_incremental/persist/save.rs b/compiler/rustc_incremental/src/persist/save.rs
similarity index 100%
rename from src/librustc_incremental/persist/save.rs
rename to compiler/rustc_incremental/src/persist/save.rs
diff --git a/src/librustc_incremental/persist/work_product.rs b/compiler/rustc_incremental/src/persist/work_product.rs
similarity index 100%
rename from src/librustc_incremental/persist/work_product.rs
rename to compiler/rustc_incremental/src/persist/work_product.rs
diff --git a/src/librustc_index/Cargo.toml b/compiler/rustc_index/Cargo.toml
similarity index 54%
rename from src/librustc_index/Cargo.toml
rename to compiler/rustc_index/Cargo.toml
index 8aaf1cb9cbc58..6ac7c06ee838c 100644
--- a/src/librustc_index/Cargo.toml
+++ b/compiler/rustc_index/Cargo.toml
@@ -5,11 +5,9 @@ version = "0.0.0"
 edition = "2018"
 
 [lib]
-name = "rustc_index"
-path = "lib.rs"
 doctest = false
 
 [dependencies]
 arrayvec = "0.5.1"
-rustc_serialize = { path = "../librustc_serialize" }
-rustc_macros = { path = "../librustc_macros" }
+rustc_serialize = { path = "../rustc_serialize" }
+rustc_macros = { path = "../rustc_macros" }
diff --git a/src/librustc_index/bit_set.rs b/compiler/rustc_index/src/bit_set.rs
similarity index 100%
rename from src/librustc_index/bit_set.rs
rename to compiler/rustc_index/src/bit_set.rs
diff --git a/src/librustc_index/bit_set/tests.rs b/compiler/rustc_index/src/bit_set/tests.rs
similarity index 100%
rename from src/librustc_index/bit_set/tests.rs
rename to compiler/rustc_index/src/bit_set/tests.rs
diff --git a/src/librustc_index/lib.rs b/compiler/rustc_index/src/lib.rs
similarity index 100%
rename from src/librustc_index/lib.rs
rename to compiler/rustc_index/src/lib.rs
diff --git a/src/librustc_index/vec.rs b/compiler/rustc_index/src/vec.rs
similarity index 100%
rename from src/librustc_index/vec.rs
rename to compiler/rustc_index/src/vec.rs
diff --git a/src/librustc_index/vec/tests.rs b/compiler/rustc_index/src/vec/tests.rs
similarity index 100%
rename from src/librustc_index/vec/tests.rs
rename to compiler/rustc_index/src/vec/tests.rs
diff --git a/compiler/rustc_infer/Cargo.toml b/compiler/rustc_infer/Cargo.toml
new file mode 100644
index 0000000000000..5dba4106c9423
--- /dev/null
+++ b/compiler/rustc_infer/Cargo.toml
@@ -0,0 +1,24 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_infer"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+rustc_graphviz = { path = "../rustc_graphviz" }
+tracing = "0.1"
+rustc_middle = { path = "../rustc_middle" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_index = { path = "../rustc_index" }
+rustc_macros = { path = "../rustc_macros" }
+rustc_session = { path = "../rustc_session" }
+rustc_serialize = { path = "../rustc_serialize" }
+rustc_span = { path = "../rustc_span" }
+rustc_target = { path = "../rustc_target" }
+smallvec = { version = "1.0", features = ["union", "may_dangle"] }
+rustc_ast = { path = "../rustc_ast" }
diff --git a/src/librustc_infer/infer/at.rs b/compiler/rustc_infer/src/infer/at.rs
similarity index 100%
rename from src/librustc_infer/infer/at.rs
rename to compiler/rustc_infer/src/infer/at.rs
diff --git a/src/librustc_infer/infer/canonical/canonicalizer.rs b/compiler/rustc_infer/src/infer/canonical/canonicalizer.rs
similarity index 100%
rename from src/librustc_infer/infer/canonical/canonicalizer.rs
rename to compiler/rustc_infer/src/infer/canonical/canonicalizer.rs
diff --git a/src/librustc_infer/infer/canonical/mod.rs b/compiler/rustc_infer/src/infer/canonical/mod.rs
similarity index 100%
rename from src/librustc_infer/infer/canonical/mod.rs
rename to compiler/rustc_infer/src/infer/canonical/mod.rs
diff --git a/src/librustc_infer/infer/canonical/query_response.rs b/compiler/rustc_infer/src/infer/canonical/query_response.rs
similarity index 100%
rename from src/librustc_infer/infer/canonical/query_response.rs
rename to compiler/rustc_infer/src/infer/canonical/query_response.rs
diff --git a/src/librustc_infer/infer/canonical/substitute.rs b/compiler/rustc_infer/src/infer/canonical/substitute.rs
similarity index 100%
rename from src/librustc_infer/infer/canonical/substitute.rs
rename to compiler/rustc_infer/src/infer/canonical/substitute.rs
diff --git a/src/librustc_infer/infer/combine.rs b/compiler/rustc_infer/src/infer/combine.rs
similarity index 100%
rename from src/librustc_infer/infer/combine.rs
rename to compiler/rustc_infer/src/infer/combine.rs
diff --git a/src/librustc_infer/infer/equate.rs b/compiler/rustc_infer/src/infer/equate.rs
similarity index 100%
rename from src/librustc_infer/infer/equate.rs
rename to compiler/rustc_infer/src/infer/equate.rs
diff --git a/src/librustc_infer/infer/error_reporting/mod.rs b/compiler/rustc_infer/src/infer/error_reporting/mod.rs
similarity index 100%
rename from src/librustc_infer/infer/error_reporting/mod.rs
rename to compiler/rustc_infer/src/infer/error_reporting/mod.rs
diff --git a/src/librustc_infer/infer/error_reporting/need_type_info.rs b/compiler/rustc_infer/src/infer/error_reporting/need_type_info.rs
similarity index 100%
rename from src/librustc_infer/infer/error_reporting/need_type_info.rs
rename to compiler/rustc_infer/src/infer/error_reporting/need_type_info.rs
diff --git a/src/librustc_infer/infer/error_reporting/nice_region_error/different_lifetimes.rs b/compiler/rustc_infer/src/infer/error_reporting/nice_region_error/different_lifetimes.rs
similarity index 100%
rename from src/librustc_infer/infer/error_reporting/nice_region_error/different_lifetimes.rs
rename to compiler/rustc_infer/src/infer/error_reporting/nice_region_error/different_lifetimes.rs
diff --git a/src/librustc_infer/infer/error_reporting/nice_region_error/find_anon_type.rs b/compiler/rustc_infer/src/infer/error_reporting/nice_region_error/find_anon_type.rs
similarity index 100%
rename from src/librustc_infer/infer/error_reporting/nice_region_error/find_anon_type.rs
rename to compiler/rustc_infer/src/infer/error_reporting/nice_region_error/find_anon_type.rs
diff --git a/src/librustc_infer/infer/error_reporting/nice_region_error/mod.rs b/compiler/rustc_infer/src/infer/error_reporting/nice_region_error/mod.rs
similarity index 100%
rename from src/librustc_infer/infer/error_reporting/nice_region_error/mod.rs
rename to compiler/rustc_infer/src/infer/error_reporting/nice_region_error/mod.rs
diff --git a/src/librustc_infer/infer/error_reporting/nice_region_error/named_anon_conflict.rs b/compiler/rustc_infer/src/infer/error_reporting/nice_region_error/named_anon_conflict.rs
similarity index 100%
rename from src/librustc_infer/infer/error_reporting/nice_region_error/named_anon_conflict.rs
rename to compiler/rustc_infer/src/infer/error_reporting/nice_region_error/named_anon_conflict.rs
diff --git a/src/librustc_infer/infer/error_reporting/nice_region_error/placeholder_error.rs b/compiler/rustc_infer/src/infer/error_reporting/nice_region_error/placeholder_error.rs
similarity index 100%
rename from src/librustc_infer/infer/error_reporting/nice_region_error/placeholder_error.rs
rename to compiler/rustc_infer/src/infer/error_reporting/nice_region_error/placeholder_error.rs
diff --git a/src/librustc_infer/infer/error_reporting/nice_region_error/static_impl_trait.rs b/compiler/rustc_infer/src/infer/error_reporting/nice_region_error/static_impl_trait.rs
similarity index 100%
rename from src/librustc_infer/infer/error_reporting/nice_region_error/static_impl_trait.rs
rename to compiler/rustc_infer/src/infer/error_reporting/nice_region_error/static_impl_trait.rs
diff --git a/src/librustc_infer/infer/error_reporting/nice_region_error/trait_impl_difference.rs b/compiler/rustc_infer/src/infer/error_reporting/nice_region_error/trait_impl_difference.rs
similarity index 100%
rename from src/librustc_infer/infer/error_reporting/nice_region_error/trait_impl_difference.rs
rename to compiler/rustc_infer/src/infer/error_reporting/nice_region_error/trait_impl_difference.rs
diff --git a/src/librustc_infer/infer/error_reporting/nice_region_error/util.rs b/compiler/rustc_infer/src/infer/error_reporting/nice_region_error/util.rs
similarity index 100%
rename from src/librustc_infer/infer/error_reporting/nice_region_error/util.rs
rename to compiler/rustc_infer/src/infer/error_reporting/nice_region_error/util.rs
diff --git a/src/librustc_infer/infer/error_reporting/note.rs b/compiler/rustc_infer/src/infer/error_reporting/note.rs
similarity index 100%
rename from src/librustc_infer/infer/error_reporting/note.rs
rename to compiler/rustc_infer/src/infer/error_reporting/note.rs
diff --git a/src/librustc_infer/infer/free_regions.rs b/compiler/rustc_infer/src/infer/free_regions.rs
similarity index 100%
rename from src/librustc_infer/infer/free_regions.rs
rename to compiler/rustc_infer/src/infer/free_regions.rs
diff --git a/src/librustc_infer/infer/freshen.rs b/compiler/rustc_infer/src/infer/freshen.rs
similarity index 100%
rename from src/librustc_infer/infer/freshen.rs
rename to compiler/rustc_infer/src/infer/freshen.rs
diff --git a/src/librustc_infer/infer/fudge.rs b/compiler/rustc_infer/src/infer/fudge.rs
similarity index 100%
rename from src/librustc_infer/infer/fudge.rs
rename to compiler/rustc_infer/src/infer/fudge.rs
diff --git a/src/librustc_infer/infer/glb.rs b/compiler/rustc_infer/src/infer/glb.rs
similarity index 100%
rename from src/librustc_infer/infer/glb.rs
rename to compiler/rustc_infer/src/infer/glb.rs
diff --git a/src/librustc_infer/infer/higher_ranked/README.md b/compiler/rustc_infer/src/infer/higher_ranked/README.md
similarity index 100%
rename from src/librustc_infer/infer/higher_ranked/README.md
rename to compiler/rustc_infer/src/infer/higher_ranked/README.md
diff --git a/src/librustc_infer/infer/higher_ranked/mod.rs b/compiler/rustc_infer/src/infer/higher_ranked/mod.rs
similarity index 100%
rename from src/librustc_infer/infer/higher_ranked/mod.rs
rename to compiler/rustc_infer/src/infer/higher_ranked/mod.rs
diff --git a/src/librustc_infer/infer/lattice.rs b/compiler/rustc_infer/src/infer/lattice.rs
similarity index 100%
rename from src/librustc_infer/infer/lattice.rs
rename to compiler/rustc_infer/src/infer/lattice.rs
diff --git a/src/librustc_infer/infer/lexical_region_resolve/README.md b/compiler/rustc_infer/src/infer/lexical_region_resolve/README.md
similarity index 100%
rename from src/librustc_infer/infer/lexical_region_resolve/README.md
rename to compiler/rustc_infer/src/infer/lexical_region_resolve/README.md
diff --git a/src/librustc_infer/infer/lexical_region_resolve/mod.rs b/compiler/rustc_infer/src/infer/lexical_region_resolve/mod.rs
similarity index 100%
rename from src/librustc_infer/infer/lexical_region_resolve/mod.rs
rename to compiler/rustc_infer/src/infer/lexical_region_resolve/mod.rs
diff --git a/src/librustc_infer/infer/lub.rs b/compiler/rustc_infer/src/infer/lub.rs
similarity index 100%
rename from src/librustc_infer/infer/lub.rs
rename to compiler/rustc_infer/src/infer/lub.rs
diff --git a/src/librustc_infer/infer/mod.rs b/compiler/rustc_infer/src/infer/mod.rs
similarity index 100%
rename from src/librustc_infer/infer/mod.rs
rename to compiler/rustc_infer/src/infer/mod.rs
diff --git a/src/librustc_infer/infer/nll_relate/mod.rs b/compiler/rustc_infer/src/infer/nll_relate/mod.rs
similarity index 100%
rename from src/librustc_infer/infer/nll_relate/mod.rs
rename to compiler/rustc_infer/src/infer/nll_relate/mod.rs
diff --git a/src/librustc_infer/infer/outlives/env.rs b/compiler/rustc_infer/src/infer/outlives/env.rs
similarity index 100%
rename from src/librustc_infer/infer/outlives/env.rs
rename to compiler/rustc_infer/src/infer/outlives/env.rs
diff --git a/src/librustc_infer/infer/outlives/mod.rs b/compiler/rustc_infer/src/infer/outlives/mod.rs
similarity index 100%
rename from src/librustc_infer/infer/outlives/mod.rs
rename to compiler/rustc_infer/src/infer/outlives/mod.rs
diff --git a/src/librustc_infer/infer/outlives/obligations.rs b/compiler/rustc_infer/src/infer/outlives/obligations.rs
similarity index 100%
rename from src/librustc_infer/infer/outlives/obligations.rs
rename to compiler/rustc_infer/src/infer/outlives/obligations.rs
diff --git a/src/librustc_infer/infer/outlives/verify.rs b/compiler/rustc_infer/src/infer/outlives/verify.rs
similarity index 100%
rename from src/librustc_infer/infer/outlives/verify.rs
rename to compiler/rustc_infer/src/infer/outlives/verify.rs
diff --git a/src/librustc_infer/infer/region_constraints/README.md b/compiler/rustc_infer/src/infer/region_constraints/README.md
similarity index 100%
rename from src/librustc_infer/infer/region_constraints/README.md
rename to compiler/rustc_infer/src/infer/region_constraints/README.md
diff --git a/src/librustc_infer/infer/region_constraints/leak_check.rs b/compiler/rustc_infer/src/infer/region_constraints/leak_check.rs
similarity index 100%
rename from src/librustc_infer/infer/region_constraints/leak_check.rs
rename to compiler/rustc_infer/src/infer/region_constraints/leak_check.rs
diff --git a/src/librustc_infer/infer/region_constraints/mod.rs b/compiler/rustc_infer/src/infer/region_constraints/mod.rs
similarity index 100%
rename from src/librustc_infer/infer/region_constraints/mod.rs
rename to compiler/rustc_infer/src/infer/region_constraints/mod.rs
diff --git a/src/librustc_infer/infer/resolve.rs b/compiler/rustc_infer/src/infer/resolve.rs
similarity index 100%
rename from src/librustc_infer/infer/resolve.rs
rename to compiler/rustc_infer/src/infer/resolve.rs
diff --git a/src/librustc_infer/infer/sub.rs b/compiler/rustc_infer/src/infer/sub.rs
similarity index 100%
rename from src/librustc_infer/infer/sub.rs
rename to compiler/rustc_infer/src/infer/sub.rs
diff --git a/src/librustc_infer/infer/type_variable.rs b/compiler/rustc_infer/src/infer/type_variable.rs
similarity index 100%
rename from src/librustc_infer/infer/type_variable.rs
rename to compiler/rustc_infer/src/infer/type_variable.rs
diff --git a/src/librustc_infer/infer/undo_log.rs b/compiler/rustc_infer/src/infer/undo_log.rs
similarity index 100%
rename from src/librustc_infer/infer/undo_log.rs
rename to compiler/rustc_infer/src/infer/undo_log.rs
diff --git a/src/librustc_infer/lib.rs b/compiler/rustc_infer/src/lib.rs
similarity index 100%
rename from src/librustc_infer/lib.rs
rename to compiler/rustc_infer/src/lib.rs
diff --git a/src/librustc_infer/traits/engine.rs b/compiler/rustc_infer/src/traits/engine.rs
similarity index 100%
rename from src/librustc_infer/traits/engine.rs
rename to compiler/rustc_infer/src/traits/engine.rs
diff --git a/src/librustc_infer/traits/error_reporting/mod.rs b/compiler/rustc_infer/src/traits/error_reporting/mod.rs
similarity index 100%
rename from src/librustc_infer/traits/error_reporting/mod.rs
rename to compiler/rustc_infer/src/traits/error_reporting/mod.rs
diff --git a/src/librustc_infer/traits/mod.rs b/compiler/rustc_infer/src/traits/mod.rs
similarity index 100%
rename from src/librustc_infer/traits/mod.rs
rename to compiler/rustc_infer/src/traits/mod.rs
diff --git a/src/librustc_infer/traits/project.rs b/compiler/rustc_infer/src/traits/project.rs
similarity index 100%
rename from src/librustc_infer/traits/project.rs
rename to compiler/rustc_infer/src/traits/project.rs
diff --git a/src/librustc_infer/traits/structural_impls.rs b/compiler/rustc_infer/src/traits/structural_impls.rs
similarity index 100%
rename from src/librustc_infer/traits/structural_impls.rs
rename to compiler/rustc_infer/src/traits/structural_impls.rs
diff --git a/src/librustc_infer/traits/util.rs b/compiler/rustc_infer/src/traits/util.rs
similarity index 100%
rename from src/librustc_infer/traits/util.rs
rename to compiler/rustc_infer/src/traits/util.rs
diff --git a/compiler/rustc_interface/Cargo.toml b/compiler/rustc_interface/Cargo.toml
new file mode 100644
index 0000000000000..9affe4ec6d8a1
--- /dev/null
+++ b/compiler/rustc_interface/Cargo.toml
@@ -0,0 +1,55 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_interface"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+libc = "0.2"
+tracing = "0.1"
+rayon = { version = "0.3.0", package = "rustc-rayon" }
+smallvec = { version = "1.0", features = ["union", "may_dangle"] }
+rustc_ast = { path = "../rustc_ast" }
+rustc_attr = { path = "../rustc_attr" }
+rustc_builtin_macros = { path = "../rustc_builtin_macros" }
+rustc_expand = { path = "../rustc_expand" }
+rustc_parse = { path = "../rustc_parse" }
+rustc_session = { path = "../rustc_session" }
+rustc_span = { path = "../rustc_span" }
+rustc_serialize = { path = "../rustc_serialize" }
+rustc_middle = { path = "../rustc_middle" }
+rustc_ast_lowering = { path = "../rustc_ast_lowering" }
+rustc_ast_passes = { path = "../rustc_ast_passes" }
+rustc_incremental = { path = "../rustc_incremental" }
+rustc_traits = { path = "../rustc_traits" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_codegen_ssa = { path = "../rustc_codegen_ssa" }
+rustc_symbol_mangling = { path = "../rustc_symbol_mangling" }
+rustc_codegen_llvm = { path = "../rustc_codegen_llvm", optional = true }
+rustc_hir = { path = "../rustc_hir" }
+rustc_metadata = { path = "../rustc_metadata" }
+rustc_mir = { path = "../rustc_mir" }
+rustc_mir_build = { path = "../rustc_mir_build" }
+rustc_passes = { path = "../rustc_passes" }
+rustc_typeck = { path = "../rustc_typeck" }
+rustc_lint = { path = "../rustc_lint" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_plugin_impl = { path = "../rustc_plugin_impl" }
+rustc_privacy = { path = "../rustc_privacy" }
+rustc_resolve = { path = "../rustc_resolve" }
+rustc_trait_selection = { path = "../rustc_trait_selection" }
+rustc_ty = { path = "../rustc_ty" }
+tempfile = "3.0.5"
+once_cell = "1"
+
+[target.'cfg(windows)'.dependencies]
+winapi = { version = "0.3", features = ["libloaderapi"] }
+
+[dev-dependencies]
+rustc_target = { path = "../rustc_target" }
+
+[features]
+llvm = ['rustc_codegen_llvm']
diff --git a/src/librustc_interface/callbacks.rs b/compiler/rustc_interface/src/callbacks.rs
similarity index 100%
rename from src/librustc_interface/callbacks.rs
rename to compiler/rustc_interface/src/callbacks.rs
diff --git a/src/librustc_interface/interface.rs b/compiler/rustc_interface/src/interface.rs
similarity index 100%
rename from src/librustc_interface/interface.rs
rename to compiler/rustc_interface/src/interface.rs
diff --git a/src/librustc_interface/lib.rs b/compiler/rustc_interface/src/lib.rs
similarity index 100%
rename from src/librustc_interface/lib.rs
rename to compiler/rustc_interface/src/lib.rs
diff --git a/src/librustc_interface/passes.rs b/compiler/rustc_interface/src/passes.rs
similarity index 100%
rename from src/librustc_interface/passes.rs
rename to compiler/rustc_interface/src/passes.rs
diff --git a/src/librustc_interface/proc_macro_decls.rs b/compiler/rustc_interface/src/proc_macro_decls.rs
similarity index 100%
rename from src/librustc_interface/proc_macro_decls.rs
rename to compiler/rustc_interface/src/proc_macro_decls.rs
diff --git a/src/librustc_interface/queries.rs b/compiler/rustc_interface/src/queries.rs
similarity index 100%
rename from src/librustc_interface/queries.rs
rename to compiler/rustc_interface/src/queries.rs
diff --git a/src/librustc_interface/tests.rs b/compiler/rustc_interface/src/tests.rs
similarity index 100%
rename from src/librustc_interface/tests.rs
rename to compiler/rustc_interface/src/tests.rs
diff --git a/src/librustc_interface/util.rs b/compiler/rustc_interface/src/util.rs
similarity index 100%
rename from src/librustc_interface/util.rs
rename to compiler/rustc_interface/src/util.rs
diff --git a/src/librustc_lexer/Cargo.toml b/compiler/rustc_lexer/Cargo.toml
similarity index 100%
rename from src/librustc_lexer/Cargo.toml
rename to compiler/rustc_lexer/Cargo.toml
diff --git a/src/librustc_lexer/src/cursor.rs b/compiler/rustc_lexer/src/cursor.rs
similarity index 100%
rename from src/librustc_lexer/src/cursor.rs
rename to compiler/rustc_lexer/src/cursor.rs
diff --git a/src/librustc_lexer/src/lib.rs b/compiler/rustc_lexer/src/lib.rs
similarity index 100%
rename from src/librustc_lexer/src/lib.rs
rename to compiler/rustc_lexer/src/lib.rs
diff --git a/src/librustc_lexer/src/tests.rs b/compiler/rustc_lexer/src/tests.rs
similarity index 100%
rename from src/librustc_lexer/src/tests.rs
rename to compiler/rustc_lexer/src/tests.rs
diff --git a/src/librustc_lexer/src/unescape.rs b/compiler/rustc_lexer/src/unescape.rs
similarity index 100%
rename from src/librustc_lexer/src/unescape.rs
rename to compiler/rustc_lexer/src/unescape.rs
diff --git a/src/librustc_lexer/src/unescape/tests.rs b/compiler/rustc_lexer/src/unescape/tests.rs
similarity index 100%
rename from src/librustc_lexer/src/unescape/tests.rs
rename to compiler/rustc_lexer/src/unescape/tests.rs
diff --git a/compiler/rustc_lint/Cargo.toml b/compiler/rustc_lint/Cargo.toml
new file mode 100644
index 0000000000000..760a8e385d680
--- /dev/null
+++ b/compiler/rustc_lint/Cargo.toml
@@ -0,0 +1,22 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_lint"
+version = "0.0.0"
+edition = "2018"
+
+[dependencies]
+tracing = "0.1"
+unicode-security = "0.0.5"
+rustc_middle = { path = "../rustc_middle" }
+rustc_ast_pretty = { path = "../rustc_ast_pretty" }
+rustc_attr = { path = "../rustc_attr" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_target = { path = "../rustc_target" }
+rustc_ast = { path = "../rustc_ast" }
+rustc_span = { path = "../rustc_span" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_feature = { path = "../rustc_feature" }
+rustc_index = { path = "../rustc_index" }
+rustc_session = { path = "../rustc_session" }
+rustc_trait_selection = { path = "../rustc_trait_selection" }
diff --git a/src/librustc_lint/array_into_iter.rs b/compiler/rustc_lint/src/array_into_iter.rs
similarity index 100%
rename from src/librustc_lint/array_into_iter.rs
rename to compiler/rustc_lint/src/array_into_iter.rs
diff --git a/src/librustc_lint/builtin.rs b/compiler/rustc_lint/src/builtin.rs
similarity index 100%
rename from src/librustc_lint/builtin.rs
rename to compiler/rustc_lint/src/builtin.rs
diff --git a/src/librustc_lint/context.rs b/compiler/rustc_lint/src/context.rs
similarity index 100%
rename from src/librustc_lint/context.rs
rename to compiler/rustc_lint/src/context.rs
diff --git a/src/librustc_lint/early.rs b/compiler/rustc_lint/src/early.rs
similarity index 100%
rename from src/librustc_lint/early.rs
rename to compiler/rustc_lint/src/early.rs
diff --git a/src/librustc_lint/internal.rs b/compiler/rustc_lint/src/internal.rs
similarity index 100%
rename from src/librustc_lint/internal.rs
rename to compiler/rustc_lint/src/internal.rs
diff --git a/src/librustc_lint/late.rs b/compiler/rustc_lint/src/late.rs
similarity index 100%
rename from src/librustc_lint/late.rs
rename to compiler/rustc_lint/src/late.rs
diff --git a/src/librustc_lint/levels.rs b/compiler/rustc_lint/src/levels.rs
similarity index 100%
rename from src/librustc_lint/levels.rs
rename to compiler/rustc_lint/src/levels.rs
diff --git a/src/librustc_lint/lib.rs b/compiler/rustc_lint/src/lib.rs
similarity index 100%
rename from src/librustc_lint/lib.rs
rename to compiler/rustc_lint/src/lib.rs
diff --git a/src/librustc_lint/non_ascii_idents.rs b/compiler/rustc_lint/src/non_ascii_idents.rs
similarity index 100%
rename from src/librustc_lint/non_ascii_idents.rs
rename to compiler/rustc_lint/src/non_ascii_idents.rs
diff --git a/src/librustc_lint/nonstandard_style.rs b/compiler/rustc_lint/src/nonstandard_style.rs
similarity index 100%
rename from src/librustc_lint/nonstandard_style.rs
rename to compiler/rustc_lint/src/nonstandard_style.rs
diff --git a/src/librustc_lint/nonstandard_style/tests.rs b/compiler/rustc_lint/src/nonstandard_style/tests.rs
similarity index 100%
rename from src/librustc_lint/nonstandard_style/tests.rs
rename to compiler/rustc_lint/src/nonstandard_style/tests.rs
diff --git a/src/librustc_lint/passes.rs b/compiler/rustc_lint/src/passes.rs
similarity index 100%
rename from src/librustc_lint/passes.rs
rename to compiler/rustc_lint/src/passes.rs
diff --git a/src/librustc_lint/redundant_semicolon.rs b/compiler/rustc_lint/src/redundant_semicolon.rs
similarity index 100%
rename from src/librustc_lint/redundant_semicolon.rs
rename to compiler/rustc_lint/src/redundant_semicolon.rs
diff --git a/src/librustc_lint/types.rs b/compiler/rustc_lint/src/types.rs
similarity index 100%
rename from src/librustc_lint/types.rs
rename to compiler/rustc_lint/src/types.rs
diff --git a/src/librustc_lint/unused.rs b/compiler/rustc_lint/src/unused.rs
similarity index 100%
rename from src/librustc_lint/unused.rs
rename to compiler/rustc_lint/src/unused.rs
diff --git a/src/librustc_macros/Cargo.toml b/compiler/rustc_macros/Cargo.toml
similarity index 100%
rename from src/librustc_macros/Cargo.toml
rename to compiler/rustc_macros/Cargo.toml
diff --git a/src/librustc_macros/src/hash_stable.rs b/compiler/rustc_macros/src/hash_stable.rs
similarity index 100%
rename from src/librustc_macros/src/hash_stable.rs
rename to compiler/rustc_macros/src/hash_stable.rs
diff --git a/src/librustc_macros/src/lib.rs b/compiler/rustc_macros/src/lib.rs
similarity index 100%
rename from src/librustc_macros/src/lib.rs
rename to compiler/rustc_macros/src/lib.rs
diff --git a/src/librustc_macros/src/lift.rs b/compiler/rustc_macros/src/lift.rs
similarity index 100%
rename from src/librustc_macros/src/lift.rs
rename to compiler/rustc_macros/src/lift.rs
diff --git a/src/librustc_macros/src/query.rs b/compiler/rustc_macros/src/query.rs
similarity index 100%
rename from src/librustc_macros/src/query.rs
rename to compiler/rustc_macros/src/query.rs
diff --git a/src/librustc_macros/src/serialize.rs b/compiler/rustc_macros/src/serialize.rs
similarity index 100%
rename from src/librustc_macros/src/serialize.rs
rename to compiler/rustc_macros/src/serialize.rs
diff --git a/src/librustc_macros/src/symbols.rs b/compiler/rustc_macros/src/symbols.rs
similarity index 100%
rename from src/librustc_macros/src/symbols.rs
rename to compiler/rustc_macros/src/symbols.rs
diff --git a/src/librustc_macros/src/type_foldable.rs b/compiler/rustc_macros/src/type_foldable.rs
similarity index 100%
rename from src/librustc_macros/src/type_foldable.rs
rename to compiler/rustc_macros/src/type_foldable.rs
diff --git a/compiler/rustc_metadata/Cargo.toml b/compiler/rustc_metadata/Cargo.toml
new file mode 100644
index 0000000000000..4b144f94ea70b
--- /dev/null
+++ b/compiler/rustc_metadata/Cargo.toml
@@ -0,0 +1,33 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_metadata"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+libc = "0.2"
+snap = "1"
+tracing = "0.1"
+memmap = "0.7"
+smallvec = { version = "1.0", features = ["union", "may_dangle"] }
+rustc_middle = { path = "../rustc_middle" }
+rustc_attr = { path = "../rustc_attr" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_hir_pretty = { path = "../rustc_hir_pretty" }
+rustc_target = { path = "../rustc_target" }
+rustc_index = { path = "../rustc_index" }
+rustc_macros = { path = "../rustc_macros" }
+rustc_serialize = { path = "../rustc_serialize" }
+stable_deref_trait = "1.0.0"
+rustc_ast = { path = "../rustc_ast" }
+rustc_expand = { path = "../rustc_expand" }
+rustc_span = { path = "../rustc_span" }
+rustc_session = { path = "../rustc_session" }
+
+[target.'cfg(windows)'.dependencies]
+winapi = { version = "0.3", features = ["errhandlingapi", "libloaderapi"] }
diff --git a/src/librustc_metadata/creader.rs b/compiler/rustc_metadata/src/creader.rs
similarity index 100%
rename from src/librustc_metadata/creader.rs
rename to compiler/rustc_metadata/src/creader.rs
diff --git a/src/librustc_metadata/dependency_format.rs b/compiler/rustc_metadata/src/dependency_format.rs
similarity index 100%
rename from src/librustc_metadata/dependency_format.rs
rename to compiler/rustc_metadata/src/dependency_format.rs
diff --git a/src/librustc_metadata/dynamic_lib.rs b/compiler/rustc_metadata/src/dynamic_lib.rs
similarity index 100%
rename from src/librustc_metadata/dynamic_lib.rs
rename to compiler/rustc_metadata/src/dynamic_lib.rs
diff --git a/src/librustc_metadata/dynamic_lib/tests.rs b/compiler/rustc_metadata/src/dynamic_lib/tests.rs
similarity index 100%
rename from src/librustc_metadata/dynamic_lib/tests.rs
rename to compiler/rustc_metadata/src/dynamic_lib/tests.rs
diff --git a/src/librustc_metadata/foreign_modules.rs b/compiler/rustc_metadata/src/foreign_modules.rs
similarity index 100%
rename from src/librustc_metadata/foreign_modules.rs
rename to compiler/rustc_metadata/src/foreign_modules.rs
diff --git a/src/librustc_metadata/lib.rs b/compiler/rustc_metadata/src/lib.rs
similarity index 100%
rename from src/librustc_metadata/lib.rs
rename to compiler/rustc_metadata/src/lib.rs
diff --git a/src/librustc_metadata/link_args.rs b/compiler/rustc_metadata/src/link_args.rs
similarity index 100%
rename from src/librustc_metadata/link_args.rs
rename to compiler/rustc_metadata/src/link_args.rs
diff --git a/src/librustc_metadata/locator.rs b/compiler/rustc_metadata/src/locator.rs
similarity index 100%
rename from src/librustc_metadata/locator.rs
rename to compiler/rustc_metadata/src/locator.rs
diff --git a/src/librustc_metadata/native_libs.rs b/compiler/rustc_metadata/src/native_libs.rs
similarity index 100%
rename from src/librustc_metadata/native_libs.rs
rename to compiler/rustc_metadata/src/native_libs.rs
diff --git a/src/librustc_metadata/rmeta/decoder.rs b/compiler/rustc_metadata/src/rmeta/decoder.rs
similarity index 100%
rename from src/librustc_metadata/rmeta/decoder.rs
rename to compiler/rustc_metadata/src/rmeta/decoder.rs
diff --git a/src/librustc_metadata/rmeta/decoder/cstore_impl.rs b/compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs
similarity index 100%
rename from src/librustc_metadata/rmeta/decoder/cstore_impl.rs
rename to compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs
diff --git a/src/librustc_metadata/rmeta/encoder.rs b/compiler/rustc_metadata/src/rmeta/encoder.rs
similarity index 100%
rename from src/librustc_metadata/rmeta/encoder.rs
rename to compiler/rustc_metadata/src/rmeta/encoder.rs
diff --git a/src/librustc_metadata/rmeta/mod.rs b/compiler/rustc_metadata/src/rmeta/mod.rs
similarity index 100%
rename from src/librustc_metadata/rmeta/mod.rs
rename to compiler/rustc_metadata/src/rmeta/mod.rs
diff --git a/src/librustc_metadata/rmeta/table.rs b/compiler/rustc_metadata/src/rmeta/table.rs
similarity index 100%
rename from src/librustc_metadata/rmeta/table.rs
rename to compiler/rustc_metadata/src/rmeta/table.rs
diff --git a/compiler/rustc_middle/Cargo.toml b/compiler/rustc_middle/Cargo.toml
new file mode 100644
index 0000000000000..5a82cbf2997df
--- /dev/null
+++ b/compiler/rustc_middle/Cargo.toml
@@ -0,0 +1,33 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_middle"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+rustc_arena = { path = "../rustc_arena" }
+bitflags = "1.2.1"
+tracing = "0.1"
+rustc-rayon-core = "0.3.0"
+polonius-engine = "0.12.0"
+rustc_apfloat = { path = "../rustc_apfloat" }
+rustc_attr = { path = "../rustc_attr" }
+rustc_feature = { path = "../rustc_feature" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_target = { path = "../rustc_target" }
+rustc_macros = { path = "../rustc_macros" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_query_system = { path = "../rustc_query_system" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_index = { path = "../rustc_index" }
+rustc_serialize = { path = "../rustc_serialize" }
+rustc_ast = { path = "../rustc_ast" }
+rustc_span = { path = "../rustc_span" }
+byteorder = { version = "1.3" }
+chalk-ir = "0.14.0"
+smallvec = { version = "1.0", features = ["union", "may_dangle"] }
+measureme = "0.7.1"
+rustc_session = { path = "../rustc_session" }
diff --git a/src/librustc_middle/README.md b/compiler/rustc_middle/README.md
similarity index 100%
rename from src/librustc_middle/README.md
rename to compiler/rustc_middle/README.md
diff --git a/src/librustc_middle/benches/lib.rs b/compiler/rustc_middle/benches/lib.rs
similarity index 100%
rename from src/librustc_middle/benches/lib.rs
rename to compiler/rustc_middle/benches/lib.rs
diff --git a/src/librustc_middle/arena.rs b/compiler/rustc_middle/src/arena.rs
similarity index 100%
rename from src/librustc_middle/arena.rs
rename to compiler/rustc_middle/src/arena.rs
diff --git a/src/librustc_middle/dep_graph/dep_node.rs b/compiler/rustc_middle/src/dep_graph/dep_node.rs
similarity index 100%
rename from src/librustc_middle/dep_graph/dep_node.rs
rename to compiler/rustc_middle/src/dep_graph/dep_node.rs
diff --git a/src/librustc_middle/dep_graph/mod.rs b/compiler/rustc_middle/src/dep_graph/mod.rs
similarity index 100%
rename from src/librustc_middle/dep_graph/mod.rs
rename to compiler/rustc_middle/src/dep_graph/mod.rs
diff --git a/src/librustc_middle/hir/exports.rs b/compiler/rustc_middle/src/hir/exports.rs
similarity index 100%
rename from src/librustc_middle/hir/exports.rs
rename to compiler/rustc_middle/src/hir/exports.rs
diff --git a/src/librustc_middle/hir/map/blocks.rs b/compiler/rustc_middle/src/hir/map/blocks.rs
similarity index 100%
rename from src/librustc_middle/hir/map/blocks.rs
rename to compiler/rustc_middle/src/hir/map/blocks.rs
diff --git a/src/librustc_middle/hir/map/collector.rs b/compiler/rustc_middle/src/hir/map/collector.rs
similarity index 100%
rename from src/librustc_middle/hir/map/collector.rs
rename to compiler/rustc_middle/src/hir/map/collector.rs
diff --git a/src/librustc_middle/hir/map/mod.rs b/compiler/rustc_middle/src/hir/map/mod.rs
similarity index 100%
rename from src/librustc_middle/hir/map/mod.rs
rename to compiler/rustc_middle/src/hir/map/mod.rs
diff --git a/src/librustc_middle/hir/mod.rs b/compiler/rustc_middle/src/hir/mod.rs
similarity index 100%
rename from src/librustc_middle/hir/mod.rs
rename to compiler/rustc_middle/src/hir/mod.rs
diff --git a/src/librustc_middle/hir/place.rs b/compiler/rustc_middle/src/hir/place.rs
similarity index 100%
rename from src/librustc_middle/hir/place.rs
rename to compiler/rustc_middle/src/hir/place.rs
diff --git a/src/librustc_middle/ich/hcx.rs b/compiler/rustc_middle/src/ich/hcx.rs
similarity index 100%
rename from src/librustc_middle/ich/hcx.rs
rename to compiler/rustc_middle/src/ich/hcx.rs
diff --git a/src/librustc_middle/ich/impls_hir.rs b/compiler/rustc_middle/src/ich/impls_hir.rs
similarity index 100%
rename from src/librustc_middle/ich/impls_hir.rs
rename to compiler/rustc_middle/src/ich/impls_hir.rs
diff --git a/src/librustc_middle/ich/impls_syntax.rs b/compiler/rustc_middle/src/ich/impls_syntax.rs
similarity index 100%
rename from src/librustc_middle/ich/impls_syntax.rs
rename to compiler/rustc_middle/src/ich/impls_syntax.rs
diff --git a/src/librustc_middle/ich/impls_ty.rs b/compiler/rustc_middle/src/ich/impls_ty.rs
similarity index 100%
rename from src/librustc_middle/ich/impls_ty.rs
rename to compiler/rustc_middle/src/ich/impls_ty.rs
diff --git a/src/librustc_middle/ich/mod.rs b/compiler/rustc_middle/src/ich/mod.rs
similarity index 100%
rename from src/librustc_middle/ich/mod.rs
rename to compiler/rustc_middle/src/ich/mod.rs
diff --git a/src/librustc_middle/infer/canonical.rs b/compiler/rustc_middle/src/infer/canonical.rs
similarity index 100%
rename from src/librustc_middle/infer/canonical.rs
rename to compiler/rustc_middle/src/infer/canonical.rs
diff --git a/src/librustc_middle/infer/mod.rs b/compiler/rustc_middle/src/infer/mod.rs
similarity index 100%
rename from src/librustc_middle/infer/mod.rs
rename to compiler/rustc_middle/src/infer/mod.rs
diff --git a/src/librustc_middle/infer/unify_key.rs b/compiler/rustc_middle/src/infer/unify_key.rs
similarity index 100%
rename from src/librustc_middle/infer/unify_key.rs
rename to compiler/rustc_middle/src/infer/unify_key.rs
diff --git a/src/librustc_middle/lib.rs b/compiler/rustc_middle/src/lib.rs
similarity index 100%
rename from src/librustc_middle/lib.rs
rename to compiler/rustc_middle/src/lib.rs
diff --git a/src/librustc_middle/lint.rs b/compiler/rustc_middle/src/lint.rs
similarity index 100%
rename from src/librustc_middle/lint.rs
rename to compiler/rustc_middle/src/lint.rs
diff --git a/src/librustc_middle/macros.rs b/compiler/rustc_middle/src/macros.rs
similarity index 100%
rename from src/librustc_middle/macros.rs
rename to compiler/rustc_middle/src/macros.rs
diff --git a/src/librustc_middle/middle/codegen_fn_attrs.rs b/compiler/rustc_middle/src/middle/codegen_fn_attrs.rs
similarity index 100%
rename from src/librustc_middle/middle/codegen_fn_attrs.rs
rename to compiler/rustc_middle/src/middle/codegen_fn_attrs.rs
diff --git a/src/librustc_middle/middle/cstore.rs b/compiler/rustc_middle/src/middle/cstore.rs
similarity index 100%
rename from src/librustc_middle/middle/cstore.rs
rename to compiler/rustc_middle/src/middle/cstore.rs
diff --git a/src/librustc_middle/middle/dependency_format.rs b/compiler/rustc_middle/src/middle/dependency_format.rs
similarity index 100%
rename from src/librustc_middle/middle/dependency_format.rs
rename to compiler/rustc_middle/src/middle/dependency_format.rs
diff --git a/src/librustc_middle/middle/exported_symbols.rs b/compiler/rustc_middle/src/middle/exported_symbols.rs
similarity index 100%
rename from src/librustc_middle/middle/exported_symbols.rs
rename to compiler/rustc_middle/src/middle/exported_symbols.rs
diff --git a/src/librustc_middle/middle/lang_items.rs b/compiler/rustc_middle/src/middle/lang_items.rs
similarity index 100%
rename from src/librustc_middle/middle/lang_items.rs
rename to compiler/rustc_middle/src/middle/lang_items.rs
diff --git a/src/librustc_middle/middle/limits.rs b/compiler/rustc_middle/src/middle/limits.rs
similarity index 100%
rename from src/librustc_middle/middle/limits.rs
rename to compiler/rustc_middle/src/middle/limits.rs
diff --git a/src/librustc_middle/middle/mod.rs b/compiler/rustc_middle/src/middle/mod.rs
similarity index 100%
rename from src/librustc_middle/middle/mod.rs
rename to compiler/rustc_middle/src/middle/mod.rs
diff --git a/src/librustc_middle/middle/privacy.rs b/compiler/rustc_middle/src/middle/privacy.rs
similarity index 100%
rename from src/librustc_middle/middle/privacy.rs
rename to compiler/rustc_middle/src/middle/privacy.rs
diff --git a/src/librustc_middle/middle/region.rs b/compiler/rustc_middle/src/middle/region.rs
similarity index 100%
rename from src/librustc_middle/middle/region.rs
rename to compiler/rustc_middle/src/middle/region.rs
diff --git a/src/librustc_middle/middle/resolve_lifetime.rs b/compiler/rustc_middle/src/middle/resolve_lifetime.rs
similarity index 100%
rename from src/librustc_middle/middle/resolve_lifetime.rs
rename to compiler/rustc_middle/src/middle/resolve_lifetime.rs
diff --git a/src/librustc_middle/middle/stability.rs b/compiler/rustc_middle/src/middle/stability.rs
similarity index 100%
rename from src/librustc_middle/middle/stability.rs
rename to compiler/rustc_middle/src/middle/stability.rs
diff --git a/src/librustc_middle/mir/coverage/mod.rs b/compiler/rustc_middle/src/mir/coverage/mod.rs
similarity index 100%
rename from src/librustc_middle/mir/coverage/mod.rs
rename to compiler/rustc_middle/src/mir/coverage/mod.rs
diff --git a/src/librustc_middle/mir/interpret/allocation.rs b/compiler/rustc_middle/src/mir/interpret/allocation.rs
similarity index 100%
rename from src/librustc_middle/mir/interpret/allocation.rs
rename to compiler/rustc_middle/src/mir/interpret/allocation.rs
diff --git a/src/librustc_middle/mir/interpret/error.rs b/compiler/rustc_middle/src/mir/interpret/error.rs
similarity index 100%
rename from src/librustc_middle/mir/interpret/error.rs
rename to compiler/rustc_middle/src/mir/interpret/error.rs
diff --git a/src/librustc_middle/mir/interpret/mod.rs b/compiler/rustc_middle/src/mir/interpret/mod.rs
similarity index 100%
rename from src/librustc_middle/mir/interpret/mod.rs
rename to compiler/rustc_middle/src/mir/interpret/mod.rs
diff --git a/src/librustc_middle/mir/interpret/pointer.rs b/compiler/rustc_middle/src/mir/interpret/pointer.rs
similarity index 100%
rename from src/librustc_middle/mir/interpret/pointer.rs
rename to compiler/rustc_middle/src/mir/interpret/pointer.rs
diff --git a/src/librustc_middle/mir/interpret/queries.rs b/compiler/rustc_middle/src/mir/interpret/queries.rs
similarity index 100%
rename from src/librustc_middle/mir/interpret/queries.rs
rename to compiler/rustc_middle/src/mir/interpret/queries.rs
diff --git a/src/librustc_middle/mir/interpret/value.rs b/compiler/rustc_middle/src/mir/interpret/value.rs
similarity index 100%
rename from src/librustc_middle/mir/interpret/value.rs
rename to compiler/rustc_middle/src/mir/interpret/value.rs
diff --git a/src/librustc_middle/mir/mod.rs b/compiler/rustc_middle/src/mir/mod.rs
similarity index 100%
rename from src/librustc_middle/mir/mod.rs
rename to compiler/rustc_middle/src/mir/mod.rs
diff --git a/src/librustc_middle/mir/mono.rs b/compiler/rustc_middle/src/mir/mono.rs
similarity index 100%
rename from src/librustc_middle/mir/mono.rs
rename to compiler/rustc_middle/src/mir/mono.rs
diff --git a/src/librustc_middle/mir/predecessors.rs b/compiler/rustc_middle/src/mir/predecessors.rs
similarity index 100%
rename from src/librustc_middle/mir/predecessors.rs
rename to compiler/rustc_middle/src/mir/predecessors.rs
diff --git a/src/librustc_middle/mir/query.rs b/compiler/rustc_middle/src/mir/query.rs
similarity index 100%
rename from src/librustc_middle/mir/query.rs
rename to compiler/rustc_middle/src/mir/query.rs
diff --git a/src/librustc_middle/mir/tcx.rs b/compiler/rustc_middle/src/mir/tcx.rs
similarity index 100%
rename from src/librustc_middle/mir/tcx.rs
rename to compiler/rustc_middle/src/mir/tcx.rs
diff --git a/src/librustc_middle/mir/terminator/mod.rs b/compiler/rustc_middle/src/mir/terminator/mod.rs
similarity index 100%
rename from src/librustc_middle/mir/terminator/mod.rs
rename to compiler/rustc_middle/src/mir/terminator/mod.rs
diff --git a/src/librustc_middle/mir/traversal.rs b/compiler/rustc_middle/src/mir/traversal.rs
similarity index 100%
rename from src/librustc_middle/mir/traversal.rs
rename to compiler/rustc_middle/src/mir/traversal.rs
diff --git a/src/librustc_middle/mir/type_foldable.rs b/compiler/rustc_middle/src/mir/type_foldable.rs
similarity index 100%
rename from src/librustc_middle/mir/type_foldable.rs
rename to compiler/rustc_middle/src/mir/type_foldable.rs
diff --git a/src/librustc_middle/mir/visit.rs b/compiler/rustc_middle/src/mir/visit.rs
similarity index 100%
rename from src/librustc_middle/mir/visit.rs
rename to compiler/rustc_middle/src/mir/visit.rs
diff --git a/src/librustc_middle/query/mod.rs b/compiler/rustc_middle/src/query/mod.rs
similarity index 100%
rename from src/librustc_middle/query/mod.rs
rename to compiler/rustc_middle/src/query/mod.rs
diff --git a/src/librustc_middle/tests.rs b/compiler/rustc_middle/src/tests.rs
similarity index 100%
rename from src/librustc_middle/tests.rs
rename to compiler/rustc_middle/src/tests.rs
diff --git a/src/librustc_middle/traits/chalk.rs b/compiler/rustc_middle/src/traits/chalk.rs
similarity index 100%
rename from src/librustc_middle/traits/chalk.rs
rename to compiler/rustc_middle/src/traits/chalk.rs
diff --git a/src/librustc_middle/traits/mod.rs b/compiler/rustc_middle/src/traits/mod.rs
similarity index 100%
rename from src/librustc_middle/traits/mod.rs
rename to compiler/rustc_middle/src/traits/mod.rs
diff --git a/src/librustc_middle/traits/query.rs b/compiler/rustc_middle/src/traits/query.rs
similarity index 100%
rename from src/librustc_middle/traits/query.rs
rename to compiler/rustc_middle/src/traits/query.rs
diff --git a/src/librustc_middle/traits/select.rs b/compiler/rustc_middle/src/traits/select.rs
similarity index 100%
rename from src/librustc_middle/traits/select.rs
rename to compiler/rustc_middle/src/traits/select.rs
diff --git a/src/librustc_middle/traits/specialization_graph.rs b/compiler/rustc_middle/src/traits/specialization_graph.rs
similarity index 100%
rename from src/librustc_middle/traits/specialization_graph.rs
rename to compiler/rustc_middle/src/traits/specialization_graph.rs
diff --git a/src/librustc_middle/traits/structural_impls.rs b/compiler/rustc_middle/src/traits/structural_impls.rs
similarity index 100%
rename from src/librustc_middle/traits/structural_impls.rs
rename to compiler/rustc_middle/src/traits/structural_impls.rs
diff --git a/src/librustc_middle/ty/_match.rs b/compiler/rustc_middle/src/ty/_match.rs
similarity index 100%
rename from src/librustc_middle/ty/_match.rs
rename to compiler/rustc_middle/src/ty/_match.rs
diff --git a/src/librustc_middle/ty/adjustment.rs b/compiler/rustc_middle/src/ty/adjustment.rs
similarity index 100%
rename from src/librustc_middle/ty/adjustment.rs
rename to compiler/rustc_middle/src/ty/adjustment.rs
diff --git a/src/librustc_middle/ty/binding.rs b/compiler/rustc_middle/src/ty/binding.rs
similarity index 100%
rename from src/librustc_middle/ty/binding.rs
rename to compiler/rustc_middle/src/ty/binding.rs
diff --git a/src/librustc_middle/ty/cast.rs b/compiler/rustc_middle/src/ty/cast.rs
similarity index 100%
rename from src/librustc_middle/ty/cast.rs
rename to compiler/rustc_middle/src/ty/cast.rs
diff --git a/src/librustc_middle/ty/codec.rs b/compiler/rustc_middle/src/ty/codec.rs
similarity index 100%
rename from src/librustc_middle/ty/codec.rs
rename to compiler/rustc_middle/src/ty/codec.rs
diff --git a/src/librustc_middle/ty/consts.rs b/compiler/rustc_middle/src/ty/consts.rs
similarity index 100%
rename from src/librustc_middle/ty/consts.rs
rename to compiler/rustc_middle/src/ty/consts.rs
diff --git a/src/librustc_middle/ty/consts/int.rs b/compiler/rustc_middle/src/ty/consts/int.rs
similarity index 100%
rename from src/librustc_middle/ty/consts/int.rs
rename to compiler/rustc_middle/src/ty/consts/int.rs
diff --git a/src/librustc_middle/ty/consts/kind.rs b/compiler/rustc_middle/src/ty/consts/kind.rs
similarity index 100%
rename from src/librustc_middle/ty/consts/kind.rs
rename to compiler/rustc_middle/src/ty/consts/kind.rs
diff --git a/src/librustc_middle/ty/context.rs b/compiler/rustc_middle/src/ty/context.rs
similarity index 100%
rename from src/librustc_middle/ty/context.rs
rename to compiler/rustc_middle/src/ty/context.rs
diff --git a/src/librustc_middle/ty/diagnostics.rs b/compiler/rustc_middle/src/ty/diagnostics.rs
similarity index 100%
rename from src/librustc_middle/ty/diagnostics.rs
rename to compiler/rustc_middle/src/ty/diagnostics.rs
diff --git a/src/librustc_middle/ty/erase_regions.rs b/compiler/rustc_middle/src/ty/erase_regions.rs
similarity index 100%
rename from src/librustc_middle/ty/erase_regions.rs
rename to compiler/rustc_middle/src/ty/erase_regions.rs
diff --git a/src/librustc_middle/ty/error.rs b/compiler/rustc_middle/src/ty/error.rs
similarity index 100%
rename from src/librustc_middle/ty/error.rs
rename to compiler/rustc_middle/src/ty/error.rs
diff --git a/src/librustc_middle/ty/fast_reject.rs b/compiler/rustc_middle/src/ty/fast_reject.rs
similarity index 100%
rename from src/librustc_middle/ty/fast_reject.rs
rename to compiler/rustc_middle/src/ty/fast_reject.rs
diff --git a/src/librustc_middle/ty/flags.rs b/compiler/rustc_middle/src/ty/flags.rs
similarity index 100%
rename from src/librustc_middle/ty/flags.rs
rename to compiler/rustc_middle/src/ty/flags.rs
diff --git a/src/librustc_middle/ty/fold.rs b/compiler/rustc_middle/src/ty/fold.rs
similarity index 100%
rename from src/librustc_middle/ty/fold.rs
rename to compiler/rustc_middle/src/ty/fold.rs
diff --git a/src/librustc_middle/ty/inhabitedness/def_id_forest.rs b/compiler/rustc_middle/src/ty/inhabitedness/def_id_forest.rs
similarity index 100%
rename from src/librustc_middle/ty/inhabitedness/def_id_forest.rs
rename to compiler/rustc_middle/src/ty/inhabitedness/def_id_forest.rs
diff --git a/src/librustc_middle/ty/inhabitedness/mod.rs b/compiler/rustc_middle/src/ty/inhabitedness/mod.rs
similarity index 100%
rename from src/librustc_middle/ty/inhabitedness/mod.rs
rename to compiler/rustc_middle/src/ty/inhabitedness/mod.rs
diff --git a/src/librustc_middle/ty/instance.rs b/compiler/rustc_middle/src/ty/instance.rs
similarity index 100%
rename from src/librustc_middle/ty/instance.rs
rename to compiler/rustc_middle/src/ty/instance.rs
diff --git a/src/librustc_middle/ty/layout.rs b/compiler/rustc_middle/src/ty/layout.rs
similarity index 100%
rename from src/librustc_middle/ty/layout.rs
rename to compiler/rustc_middle/src/ty/layout.rs
diff --git a/src/librustc_middle/ty/list.rs b/compiler/rustc_middle/src/ty/list.rs
similarity index 100%
rename from src/librustc_middle/ty/list.rs
rename to compiler/rustc_middle/src/ty/list.rs
diff --git a/src/librustc_middle/ty/mod.rs b/compiler/rustc_middle/src/ty/mod.rs
similarity index 100%
rename from src/librustc_middle/ty/mod.rs
rename to compiler/rustc_middle/src/ty/mod.rs
diff --git a/src/librustc_middle/ty/normalize_erasing_regions.rs b/compiler/rustc_middle/src/ty/normalize_erasing_regions.rs
similarity index 100%
rename from src/librustc_middle/ty/normalize_erasing_regions.rs
rename to compiler/rustc_middle/src/ty/normalize_erasing_regions.rs
diff --git a/src/librustc_middle/ty/outlives.rs b/compiler/rustc_middle/src/ty/outlives.rs
similarity index 100%
rename from src/librustc_middle/ty/outlives.rs
rename to compiler/rustc_middle/src/ty/outlives.rs
diff --git a/src/librustc_middle/ty/print/mod.rs b/compiler/rustc_middle/src/ty/print/mod.rs
similarity index 100%
rename from src/librustc_middle/ty/print/mod.rs
rename to compiler/rustc_middle/src/ty/print/mod.rs
diff --git a/src/librustc_middle/ty/print/obsolete.rs b/compiler/rustc_middle/src/ty/print/obsolete.rs
similarity index 100%
rename from src/librustc_middle/ty/print/obsolete.rs
rename to compiler/rustc_middle/src/ty/print/obsolete.rs
diff --git a/src/librustc_middle/ty/print/pretty.rs b/compiler/rustc_middle/src/ty/print/pretty.rs
similarity index 100%
rename from src/librustc_middle/ty/print/pretty.rs
rename to compiler/rustc_middle/src/ty/print/pretty.rs
diff --git a/src/librustc_middle/ty/query/README.md b/compiler/rustc_middle/src/ty/query/README.md
similarity index 100%
rename from src/librustc_middle/ty/query/README.md
rename to compiler/rustc_middle/src/ty/query/README.md
diff --git a/src/librustc_middle/ty/query/job.rs b/compiler/rustc_middle/src/ty/query/job.rs
similarity index 100%
rename from src/librustc_middle/ty/query/job.rs
rename to compiler/rustc_middle/src/ty/query/job.rs
diff --git a/src/librustc_middle/ty/query/keys.rs b/compiler/rustc_middle/src/ty/query/keys.rs
similarity index 100%
rename from src/librustc_middle/ty/query/keys.rs
rename to compiler/rustc_middle/src/ty/query/keys.rs
diff --git a/src/librustc_middle/ty/query/mod.rs b/compiler/rustc_middle/src/ty/query/mod.rs
similarity index 100%
rename from src/librustc_middle/ty/query/mod.rs
rename to compiler/rustc_middle/src/ty/query/mod.rs
diff --git a/src/librustc_middle/ty/query/on_disk_cache.rs b/compiler/rustc_middle/src/ty/query/on_disk_cache.rs
similarity index 100%
rename from src/librustc_middle/ty/query/on_disk_cache.rs
rename to compiler/rustc_middle/src/ty/query/on_disk_cache.rs
diff --git a/src/librustc_middle/ty/query/plumbing.rs b/compiler/rustc_middle/src/ty/query/plumbing.rs
similarity index 100%
rename from src/librustc_middle/ty/query/plumbing.rs
rename to compiler/rustc_middle/src/ty/query/plumbing.rs
diff --git a/src/librustc_middle/ty/query/profiling_support.rs b/compiler/rustc_middle/src/ty/query/profiling_support.rs
similarity index 100%
rename from src/librustc_middle/ty/query/profiling_support.rs
rename to compiler/rustc_middle/src/ty/query/profiling_support.rs
diff --git a/src/librustc_middle/ty/query/stats.rs b/compiler/rustc_middle/src/ty/query/stats.rs
similarity index 100%
rename from src/librustc_middle/ty/query/stats.rs
rename to compiler/rustc_middle/src/ty/query/stats.rs
diff --git a/src/librustc_middle/ty/query/values.rs b/compiler/rustc_middle/src/ty/query/values.rs
similarity index 100%
rename from src/librustc_middle/ty/query/values.rs
rename to compiler/rustc_middle/src/ty/query/values.rs
diff --git a/src/librustc_middle/ty/relate.rs b/compiler/rustc_middle/src/ty/relate.rs
similarity index 100%
rename from src/librustc_middle/ty/relate.rs
rename to compiler/rustc_middle/src/ty/relate.rs
diff --git a/src/librustc_middle/ty/steal.rs b/compiler/rustc_middle/src/ty/steal.rs
similarity index 100%
rename from src/librustc_middle/ty/steal.rs
rename to compiler/rustc_middle/src/ty/steal.rs
diff --git a/src/librustc_middle/ty/structural_impls.rs b/compiler/rustc_middle/src/ty/structural_impls.rs
similarity index 100%
rename from src/librustc_middle/ty/structural_impls.rs
rename to compiler/rustc_middle/src/ty/structural_impls.rs
diff --git a/src/librustc_middle/ty/sty.rs b/compiler/rustc_middle/src/ty/sty.rs
similarity index 100%
rename from src/librustc_middle/ty/sty.rs
rename to compiler/rustc_middle/src/ty/sty.rs
diff --git a/src/librustc_middle/ty/subst.rs b/compiler/rustc_middle/src/ty/subst.rs
similarity index 100%
rename from src/librustc_middle/ty/subst.rs
rename to compiler/rustc_middle/src/ty/subst.rs
diff --git a/src/librustc_middle/ty/trait_def.rs b/compiler/rustc_middle/src/ty/trait_def.rs
similarity index 100%
rename from src/librustc_middle/ty/trait_def.rs
rename to compiler/rustc_middle/src/ty/trait_def.rs
diff --git a/src/librustc_middle/ty/util.rs b/compiler/rustc_middle/src/ty/util.rs
similarity index 100%
rename from src/librustc_middle/ty/util.rs
rename to compiler/rustc_middle/src/ty/util.rs
diff --git a/src/librustc_middle/ty/walk.rs b/compiler/rustc_middle/src/ty/walk.rs
similarity index 100%
rename from src/librustc_middle/ty/walk.rs
rename to compiler/rustc_middle/src/ty/walk.rs
diff --git a/src/librustc_middle/util/bug.rs b/compiler/rustc_middle/src/util/bug.rs
similarity index 100%
rename from src/librustc_middle/util/bug.rs
rename to compiler/rustc_middle/src/util/bug.rs
diff --git a/src/librustc_middle/util/common.rs b/compiler/rustc_middle/src/util/common.rs
similarity index 100%
rename from src/librustc_middle/util/common.rs
rename to compiler/rustc_middle/src/util/common.rs
diff --git a/src/librustc_middle/util/common/tests.rs b/compiler/rustc_middle/src/util/common/tests.rs
similarity index 100%
rename from src/librustc_middle/util/common/tests.rs
rename to compiler/rustc_middle/src/util/common/tests.rs
diff --git a/compiler/rustc_mir/Cargo.toml b/compiler/rustc_mir/Cargo.toml
new file mode 100644
index 0000000000000..6b0412ece7a1b
--- /dev/null
+++ b/compiler/rustc_mir/Cargo.toml
@@ -0,0 +1,33 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_mir"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+either = "1.5.0"
+rustc_graphviz = { path = "../rustc_graphviz" }
+itertools = "0.8"
+tracing = "0.1"
+log_settings = "0.1.1"
+polonius-engine = "0.12.0"
+rustc_middle = { path = "../rustc_middle" }
+rustc_attr = { path = "../rustc_attr" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_index = { path = "../rustc_index" }
+rustc_infer = { path = "../rustc_infer" }
+rustc_lexer = { path = "../rustc_lexer" }
+rustc_macros = { path = "../rustc_macros" }
+rustc_serialize = { path = "../rustc_serialize" }
+rustc_session = { path = "../rustc_session" }
+rustc_target = { path = "../rustc_target" }
+rustc_trait_selection = { path = "../rustc_trait_selection" }
+rustc_ast = { path = "../rustc_ast" }
+rustc_span = { path = "../rustc_span" }
+rustc_apfloat = { path = "../rustc_apfloat" }
+smallvec = { version = "1.0", features = ["union", "may_dangle"] }
diff --git a/src/librustc_mir/borrow_check/borrow_set.rs b/compiler/rustc_mir/src/borrow_check/borrow_set.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/borrow_set.rs
rename to compiler/rustc_mir/src/borrow_check/borrow_set.rs
diff --git a/src/librustc_mir/borrow_check/constraint_generation.rs b/compiler/rustc_mir/src/borrow_check/constraint_generation.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/constraint_generation.rs
rename to compiler/rustc_mir/src/borrow_check/constraint_generation.rs
diff --git a/src/librustc_mir/borrow_check/constraints/graph.rs b/compiler/rustc_mir/src/borrow_check/constraints/graph.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/constraints/graph.rs
rename to compiler/rustc_mir/src/borrow_check/constraints/graph.rs
diff --git a/src/librustc_mir/borrow_check/constraints/mod.rs b/compiler/rustc_mir/src/borrow_check/constraints/mod.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/constraints/mod.rs
rename to compiler/rustc_mir/src/borrow_check/constraints/mod.rs
diff --git a/src/librustc_mir/borrow_check/def_use.rs b/compiler/rustc_mir/src/borrow_check/def_use.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/def_use.rs
rename to compiler/rustc_mir/src/borrow_check/def_use.rs
diff --git a/src/librustc_mir/borrow_check/diagnostics/conflict_errors.rs b/compiler/rustc_mir/src/borrow_check/diagnostics/conflict_errors.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/diagnostics/conflict_errors.rs
rename to compiler/rustc_mir/src/borrow_check/diagnostics/conflict_errors.rs
diff --git a/src/librustc_mir/borrow_check/diagnostics/explain_borrow.rs b/compiler/rustc_mir/src/borrow_check/diagnostics/explain_borrow.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/diagnostics/explain_borrow.rs
rename to compiler/rustc_mir/src/borrow_check/diagnostics/explain_borrow.rs
diff --git a/src/librustc_mir/borrow_check/diagnostics/find_use.rs b/compiler/rustc_mir/src/borrow_check/diagnostics/find_use.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/diagnostics/find_use.rs
rename to compiler/rustc_mir/src/borrow_check/diagnostics/find_use.rs
diff --git a/src/librustc_mir/borrow_check/diagnostics/mod.rs b/compiler/rustc_mir/src/borrow_check/diagnostics/mod.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/diagnostics/mod.rs
rename to compiler/rustc_mir/src/borrow_check/diagnostics/mod.rs
diff --git a/src/librustc_mir/borrow_check/diagnostics/move_errors.rs b/compiler/rustc_mir/src/borrow_check/diagnostics/move_errors.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/diagnostics/move_errors.rs
rename to compiler/rustc_mir/src/borrow_check/diagnostics/move_errors.rs
diff --git a/src/librustc_mir/borrow_check/diagnostics/mutability_errors.rs b/compiler/rustc_mir/src/borrow_check/diagnostics/mutability_errors.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/diagnostics/mutability_errors.rs
rename to compiler/rustc_mir/src/borrow_check/diagnostics/mutability_errors.rs
diff --git a/src/librustc_mir/borrow_check/diagnostics/outlives_suggestion.rs b/compiler/rustc_mir/src/borrow_check/diagnostics/outlives_suggestion.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/diagnostics/outlives_suggestion.rs
rename to compiler/rustc_mir/src/borrow_check/diagnostics/outlives_suggestion.rs
diff --git a/src/librustc_mir/borrow_check/diagnostics/region_errors.rs b/compiler/rustc_mir/src/borrow_check/diagnostics/region_errors.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/diagnostics/region_errors.rs
rename to compiler/rustc_mir/src/borrow_check/diagnostics/region_errors.rs
diff --git a/src/librustc_mir/borrow_check/diagnostics/region_name.rs b/compiler/rustc_mir/src/borrow_check/diagnostics/region_name.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/diagnostics/region_name.rs
rename to compiler/rustc_mir/src/borrow_check/diagnostics/region_name.rs
diff --git a/src/librustc_mir/borrow_check/diagnostics/var_name.rs b/compiler/rustc_mir/src/borrow_check/diagnostics/var_name.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/diagnostics/var_name.rs
rename to compiler/rustc_mir/src/borrow_check/diagnostics/var_name.rs
diff --git a/src/librustc_mir/borrow_check/facts.rs b/compiler/rustc_mir/src/borrow_check/facts.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/facts.rs
rename to compiler/rustc_mir/src/borrow_check/facts.rs
diff --git a/src/librustc_mir/borrow_check/invalidation.rs b/compiler/rustc_mir/src/borrow_check/invalidation.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/invalidation.rs
rename to compiler/rustc_mir/src/borrow_check/invalidation.rs
diff --git a/src/librustc_mir/borrow_check/location.rs b/compiler/rustc_mir/src/borrow_check/location.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/location.rs
rename to compiler/rustc_mir/src/borrow_check/location.rs
diff --git a/src/librustc_mir/borrow_check/member_constraints.rs b/compiler/rustc_mir/src/borrow_check/member_constraints.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/member_constraints.rs
rename to compiler/rustc_mir/src/borrow_check/member_constraints.rs
diff --git a/src/librustc_mir/borrow_check/mod.rs b/compiler/rustc_mir/src/borrow_check/mod.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/mod.rs
rename to compiler/rustc_mir/src/borrow_check/mod.rs
diff --git a/src/librustc_mir/borrow_check/nll.rs b/compiler/rustc_mir/src/borrow_check/nll.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/nll.rs
rename to compiler/rustc_mir/src/borrow_check/nll.rs
diff --git a/src/librustc_mir/borrow_check/path_utils.rs b/compiler/rustc_mir/src/borrow_check/path_utils.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/path_utils.rs
rename to compiler/rustc_mir/src/borrow_check/path_utils.rs
diff --git a/src/librustc_mir/borrow_check/place_ext.rs b/compiler/rustc_mir/src/borrow_check/place_ext.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/place_ext.rs
rename to compiler/rustc_mir/src/borrow_check/place_ext.rs
diff --git a/src/librustc_mir/borrow_check/places_conflict.rs b/compiler/rustc_mir/src/borrow_check/places_conflict.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/places_conflict.rs
rename to compiler/rustc_mir/src/borrow_check/places_conflict.rs
diff --git a/src/librustc_mir/borrow_check/prefixes.rs b/compiler/rustc_mir/src/borrow_check/prefixes.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/prefixes.rs
rename to compiler/rustc_mir/src/borrow_check/prefixes.rs
diff --git a/src/librustc_mir/borrow_check/region_infer/dump_mir.rs b/compiler/rustc_mir/src/borrow_check/region_infer/dump_mir.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/region_infer/dump_mir.rs
rename to compiler/rustc_mir/src/borrow_check/region_infer/dump_mir.rs
diff --git a/src/librustc_mir/borrow_check/region_infer/graphviz.rs b/compiler/rustc_mir/src/borrow_check/region_infer/graphviz.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/region_infer/graphviz.rs
rename to compiler/rustc_mir/src/borrow_check/region_infer/graphviz.rs
diff --git a/src/librustc_mir/borrow_check/region_infer/mod.rs b/compiler/rustc_mir/src/borrow_check/region_infer/mod.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/region_infer/mod.rs
rename to compiler/rustc_mir/src/borrow_check/region_infer/mod.rs
diff --git a/src/librustc_mir/borrow_check/region_infer/opaque_types.rs b/compiler/rustc_mir/src/borrow_check/region_infer/opaque_types.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/region_infer/opaque_types.rs
rename to compiler/rustc_mir/src/borrow_check/region_infer/opaque_types.rs
diff --git a/src/librustc_mir/borrow_check/region_infer/reverse_sccs.rs b/compiler/rustc_mir/src/borrow_check/region_infer/reverse_sccs.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/region_infer/reverse_sccs.rs
rename to compiler/rustc_mir/src/borrow_check/region_infer/reverse_sccs.rs
diff --git a/src/librustc_mir/borrow_check/region_infer/values.rs b/compiler/rustc_mir/src/borrow_check/region_infer/values.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/region_infer/values.rs
rename to compiler/rustc_mir/src/borrow_check/region_infer/values.rs
diff --git a/src/librustc_mir/borrow_check/renumber.rs b/compiler/rustc_mir/src/borrow_check/renumber.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/renumber.rs
rename to compiler/rustc_mir/src/borrow_check/renumber.rs
diff --git a/src/librustc_mir/borrow_check/type_check/constraint_conversion.rs b/compiler/rustc_mir/src/borrow_check/type_check/constraint_conversion.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/type_check/constraint_conversion.rs
rename to compiler/rustc_mir/src/borrow_check/type_check/constraint_conversion.rs
diff --git a/src/librustc_mir/borrow_check/type_check/free_region_relations.rs b/compiler/rustc_mir/src/borrow_check/type_check/free_region_relations.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/type_check/free_region_relations.rs
rename to compiler/rustc_mir/src/borrow_check/type_check/free_region_relations.rs
diff --git a/src/librustc_mir/borrow_check/type_check/input_output.rs b/compiler/rustc_mir/src/borrow_check/type_check/input_output.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/type_check/input_output.rs
rename to compiler/rustc_mir/src/borrow_check/type_check/input_output.rs
diff --git a/src/librustc_mir/borrow_check/type_check/liveness/local_use_map.rs b/compiler/rustc_mir/src/borrow_check/type_check/liveness/local_use_map.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/type_check/liveness/local_use_map.rs
rename to compiler/rustc_mir/src/borrow_check/type_check/liveness/local_use_map.rs
diff --git a/src/librustc_mir/borrow_check/type_check/liveness/mod.rs b/compiler/rustc_mir/src/borrow_check/type_check/liveness/mod.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/type_check/liveness/mod.rs
rename to compiler/rustc_mir/src/borrow_check/type_check/liveness/mod.rs
diff --git a/src/librustc_mir/borrow_check/type_check/liveness/polonius.rs b/compiler/rustc_mir/src/borrow_check/type_check/liveness/polonius.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/type_check/liveness/polonius.rs
rename to compiler/rustc_mir/src/borrow_check/type_check/liveness/polonius.rs
diff --git a/src/librustc_mir/borrow_check/type_check/liveness/trace.rs b/compiler/rustc_mir/src/borrow_check/type_check/liveness/trace.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/type_check/liveness/trace.rs
rename to compiler/rustc_mir/src/borrow_check/type_check/liveness/trace.rs
diff --git a/src/librustc_mir/borrow_check/type_check/mod.rs b/compiler/rustc_mir/src/borrow_check/type_check/mod.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/type_check/mod.rs
rename to compiler/rustc_mir/src/borrow_check/type_check/mod.rs
diff --git a/src/librustc_mir/borrow_check/type_check/relate_tys.rs b/compiler/rustc_mir/src/borrow_check/type_check/relate_tys.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/type_check/relate_tys.rs
rename to compiler/rustc_mir/src/borrow_check/type_check/relate_tys.rs
diff --git a/src/librustc_mir/borrow_check/universal_regions.rs b/compiler/rustc_mir/src/borrow_check/universal_regions.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/universal_regions.rs
rename to compiler/rustc_mir/src/borrow_check/universal_regions.rs
diff --git a/src/librustc_mir/borrow_check/used_muts.rs b/compiler/rustc_mir/src/borrow_check/used_muts.rs
similarity index 100%
rename from src/librustc_mir/borrow_check/used_muts.rs
rename to compiler/rustc_mir/src/borrow_check/used_muts.rs
diff --git a/src/librustc_mir/const_eval/error.rs b/compiler/rustc_mir/src/const_eval/error.rs
similarity index 100%
rename from src/librustc_mir/const_eval/error.rs
rename to compiler/rustc_mir/src/const_eval/error.rs
diff --git a/src/librustc_mir/const_eval/eval_queries.rs b/compiler/rustc_mir/src/const_eval/eval_queries.rs
similarity index 100%
rename from src/librustc_mir/const_eval/eval_queries.rs
rename to compiler/rustc_mir/src/const_eval/eval_queries.rs
diff --git a/src/librustc_mir/const_eval/fn_queries.rs b/compiler/rustc_mir/src/const_eval/fn_queries.rs
similarity index 100%
rename from src/librustc_mir/const_eval/fn_queries.rs
rename to compiler/rustc_mir/src/const_eval/fn_queries.rs
diff --git a/src/librustc_mir/const_eval/machine.rs b/compiler/rustc_mir/src/const_eval/machine.rs
similarity index 100%
rename from src/librustc_mir/const_eval/machine.rs
rename to compiler/rustc_mir/src/const_eval/machine.rs
diff --git a/src/librustc_mir/const_eval/mod.rs b/compiler/rustc_mir/src/const_eval/mod.rs
similarity index 100%
rename from src/librustc_mir/const_eval/mod.rs
rename to compiler/rustc_mir/src/const_eval/mod.rs
diff --git a/src/librustc_mir/dataflow/drop_flag_effects.rs b/compiler/rustc_mir/src/dataflow/drop_flag_effects.rs
similarity index 100%
rename from src/librustc_mir/dataflow/drop_flag_effects.rs
rename to compiler/rustc_mir/src/dataflow/drop_flag_effects.rs
diff --git a/src/librustc_mir/dataflow/framework/cursor.rs b/compiler/rustc_mir/src/dataflow/framework/cursor.rs
similarity index 100%
rename from src/librustc_mir/dataflow/framework/cursor.rs
rename to compiler/rustc_mir/src/dataflow/framework/cursor.rs
diff --git a/src/librustc_mir/dataflow/framework/direction.rs b/compiler/rustc_mir/src/dataflow/framework/direction.rs
similarity index 100%
rename from src/librustc_mir/dataflow/framework/direction.rs
rename to compiler/rustc_mir/src/dataflow/framework/direction.rs
diff --git a/src/librustc_mir/dataflow/framework/engine.rs b/compiler/rustc_mir/src/dataflow/framework/engine.rs
similarity index 100%
rename from src/librustc_mir/dataflow/framework/engine.rs
rename to compiler/rustc_mir/src/dataflow/framework/engine.rs
diff --git a/src/librustc_mir/dataflow/framework/graphviz.rs b/compiler/rustc_mir/src/dataflow/framework/graphviz.rs
similarity index 100%
rename from src/librustc_mir/dataflow/framework/graphviz.rs
rename to compiler/rustc_mir/src/dataflow/framework/graphviz.rs
diff --git a/src/librustc_mir/dataflow/framework/mod.rs b/compiler/rustc_mir/src/dataflow/framework/mod.rs
similarity index 100%
rename from src/librustc_mir/dataflow/framework/mod.rs
rename to compiler/rustc_mir/src/dataflow/framework/mod.rs
diff --git a/src/librustc_mir/dataflow/framework/tests.rs b/compiler/rustc_mir/src/dataflow/framework/tests.rs
similarity index 100%
rename from src/librustc_mir/dataflow/framework/tests.rs
rename to compiler/rustc_mir/src/dataflow/framework/tests.rs
diff --git a/src/librustc_mir/dataflow/framework/visitor.rs b/compiler/rustc_mir/src/dataflow/framework/visitor.rs
similarity index 100%
rename from src/librustc_mir/dataflow/framework/visitor.rs
rename to compiler/rustc_mir/src/dataflow/framework/visitor.rs
diff --git a/src/librustc_mir/dataflow/impls/borrowed_locals.rs b/compiler/rustc_mir/src/dataflow/impls/borrowed_locals.rs
similarity index 100%
rename from src/librustc_mir/dataflow/impls/borrowed_locals.rs
rename to compiler/rustc_mir/src/dataflow/impls/borrowed_locals.rs
diff --git a/src/librustc_mir/dataflow/impls/borrows.rs b/compiler/rustc_mir/src/dataflow/impls/borrows.rs
similarity index 100%
rename from src/librustc_mir/dataflow/impls/borrows.rs
rename to compiler/rustc_mir/src/dataflow/impls/borrows.rs
diff --git a/src/librustc_mir/dataflow/impls/init_locals.rs b/compiler/rustc_mir/src/dataflow/impls/init_locals.rs
similarity index 100%
rename from src/librustc_mir/dataflow/impls/init_locals.rs
rename to compiler/rustc_mir/src/dataflow/impls/init_locals.rs
diff --git a/src/librustc_mir/dataflow/impls/liveness.rs b/compiler/rustc_mir/src/dataflow/impls/liveness.rs
similarity index 100%
rename from src/librustc_mir/dataflow/impls/liveness.rs
rename to compiler/rustc_mir/src/dataflow/impls/liveness.rs
diff --git a/src/librustc_mir/dataflow/impls/mod.rs b/compiler/rustc_mir/src/dataflow/impls/mod.rs
similarity index 100%
rename from src/librustc_mir/dataflow/impls/mod.rs
rename to compiler/rustc_mir/src/dataflow/impls/mod.rs
diff --git a/src/librustc_mir/dataflow/impls/storage_liveness.rs b/compiler/rustc_mir/src/dataflow/impls/storage_liveness.rs
similarity index 100%
rename from src/librustc_mir/dataflow/impls/storage_liveness.rs
rename to compiler/rustc_mir/src/dataflow/impls/storage_liveness.rs
diff --git a/src/librustc_mir/dataflow/mod.rs b/compiler/rustc_mir/src/dataflow/mod.rs
similarity index 100%
rename from src/librustc_mir/dataflow/mod.rs
rename to compiler/rustc_mir/src/dataflow/mod.rs
diff --git a/src/librustc_mir/dataflow/move_paths/abs_domain.rs b/compiler/rustc_mir/src/dataflow/move_paths/abs_domain.rs
similarity index 100%
rename from src/librustc_mir/dataflow/move_paths/abs_domain.rs
rename to compiler/rustc_mir/src/dataflow/move_paths/abs_domain.rs
diff --git a/src/librustc_mir/dataflow/move_paths/builder.rs b/compiler/rustc_mir/src/dataflow/move_paths/builder.rs
similarity index 100%
rename from src/librustc_mir/dataflow/move_paths/builder.rs
rename to compiler/rustc_mir/src/dataflow/move_paths/builder.rs
diff --git a/src/librustc_mir/dataflow/move_paths/mod.rs b/compiler/rustc_mir/src/dataflow/move_paths/mod.rs
similarity index 100%
rename from src/librustc_mir/dataflow/move_paths/mod.rs
rename to compiler/rustc_mir/src/dataflow/move_paths/mod.rs
diff --git a/src/librustc_mir/interpret/cast.rs b/compiler/rustc_mir/src/interpret/cast.rs
similarity index 100%
rename from src/librustc_mir/interpret/cast.rs
rename to compiler/rustc_mir/src/interpret/cast.rs
diff --git a/src/librustc_mir/interpret/eval_context.rs b/compiler/rustc_mir/src/interpret/eval_context.rs
similarity index 100%
rename from src/librustc_mir/interpret/eval_context.rs
rename to compiler/rustc_mir/src/interpret/eval_context.rs
diff --git a/src/librustc_mir/interpret/intern.rs b/compiler/rustc_mir/src/interpret/intern.rs
similarity index 100%
rename from src/librustc_mir/interpret/intern.rs
rename to compiler/rustc_mir/src/interpret/intern.rs
diff --git a/src/librustc_mir/interpret/intrinsics.rs b/compiler/rustc_mir/src/interpret/intrinsics.rs
similarity index 100%
rename from src/librustc_mir/interpret/intrinsics.rs
rename to compiler/rustc_mir/src/interpret/intrinsics.rs
diff --git a/src/librustc_mir/interpret/intrinsics/caller_location.rs b/compiler/rustc_mir/src/interpret/intrinsics/caller_location.rs
similarity index 100%
rename from src/librustc_mir/interpret/intrinsics/caller_location.rs
rename to compiler/rustc_mir/src/interpret/intrinsics/caller_location.rs
diff --git a/src/librustc_mir/interpret/intrinsics/type_name.rs b/compiler/rustc_mir/src/interpret/intrinsics/type_name.rs
similarity index 100%
rename from src/librustc_mir/interpret/intrinsics/type_name.rs
rename to compiler/rustc_mir/src/interpret/intrinsics/type_name.rs
diff --git a/src/librustc_mir/interpret/machine.rs b/compiler/rustc_mir/src/interpret/machine.rs
similarity index 100%
rename from src/librustc_mir/interpret/machine.rs
rename to compiler/rustc_mir/src/interpret/machine.rs
diff --git a/src/librustc_mir/interpret/memory.rs b/compiler/rustc_mir/src/interpret/memory.rs
similarity index 100%
rename from src/librustc_mir/interpret/memory.rs
rename to compiler/rustc_mir/src/interpret/memory.rs
diff --git a/src/librustc_mir/interpret/mod.rs b/compiler/rustc_mir/src/interpret/mod.rs
similarity index 100%
rename from src/librustc_mir/interpret/mod.rs
rename to compiler/rustc_mir/src/interpret/mod.rs
diff --git a/src/librustc_mir/interpret/operand.rs b/compiler/rustc_mir/src/interpret/operand.rs
similarity index 100%
rename from src/librustc_mir/interpret/operand.rs
rename to compiler/rustc_mir/src/interpret/operand.rs
diff --git a/src/librustc_mir/interpret/operator.rs b/compiler/rustc_mir/src/interpret/operator.rs
similarity index 100%
rename from src/librustc_mir/interpret/operator.rs
rename to compiler/rustc_mir/src/interpret/operator.rs
diff --git a/src/librustc_mir/interpret/place.rs b/compiler/rustc_mir/src/interpret/place.rs
similarity index 100%
rename from src/librustc_mir/interpret/place.rs
rename to compiler/rustc_mir/src/interpret/place.rs
diff --git a/src/librustc_mir/interpret/step.rs b/compiler/rustc_mir/src/interpret/step.rs
similarity index 100%
rename from src/librustc_mir/interpret/step.rs
rename to compiler/rustc_mir/src/interpret/step.rs
diff --git a/src/librustc_mir/interpret/terminator.rs b/compiler/rustc_mir/src/interpret/terminator.rs
similarity index 100%
rename from src/librustc_mir/interpret/terminator.rs
rename to compiler/rustc_mir/src/interpret/terminator.rs
diff --git a/src/librustc_mir/interpret/traits.rs b/compiler/rustc_mir/src/interpret/traits.rs
similarity index 100%
rename from src/librustc_mir/interpret/traits.rs
rename to compiler/rustc_mir/src/interpret/traits.rs
diff --git a/src/librustc_mir/interpret/util.rs b/compiler/rustc_mir/src/interpret/util.rs
similarity index 100%
rename from src/librustc_mir/interpret/util.rs
rename to compiler/rustc_mir/src/interpret/util.rs
diff --git a/src/librustc_mir/interpret/validity.rs b/compiler/rustc_mir/src/interpret/validity.rs
similarity index 100%
rename from src/librustc_mir/interpret/validity.rs
rename to compiler/rustc_mir/src/interpret/validity.rs
diff --git a/src/librustc_mir/interpret/visitor.rs b/compiler/rustc_mir/src/interpret/visitor.rs
similarity index 100%
rename from src/librustc_mir/interpret/visitor.rs
rename to compiler/rustc_mir/src/interpret/visitor.rs
diff --git a/src/librustc_mir/lib.rs b/compiler/rustc_mir/src/lib.rs
similarity index 100%
rename from src/librustc_mir/lib.rs
rename to compiler/rustc_mir/src/lib.rs
diff --git a/src/librustc_mir/monomorphize/collector.rs b/compiler/rustc_mir/src/monomorphize/collector.rs
similarity index 100%
rename from src/librustc_mir/monomorphize/collector.rs
rename to compiler/rustc_mir/src/monomorphize/collector.rs
diff --git a/src/librustc_mir/monomorphize/mod.rs b/compiler/rustc_mir/src/monomorphize/mod.rs
similarity index 100%
rename from src/librustc_mir/monomorphize/mod.rs
rename to compiler/rustc_mir/src/monomorphize/mod.rs
diff --git a/src/librustc_mir/monomorphize/partitioning/default.rs b/compiler/rustc_mir/src/monomorphize/partitioning/default.rs
similarity index 100%
rename from src/librustc_mir/monomorphize/partitioning/default.rs
rename to compiler/rustc_mir/src/monomorphize/partitioning/default.rs
diff --git a/src/librustc_mir/monomorphize/partitioning/merging.rs b/compiler/rustc_mir/src/monomorphize/partitioning/merging.rs
similarity index 100%
rename from src/librustc_mir/monomorphize/partitioning/merging.rs
rename to compiler/rustc_mir/src/monomorphize/partitioning/merging.rs
diff --git a/src/librustc_mir/monomorphize/partitioning/mod.rs b/compiler/rustc_mir/src/monomorphize/partitioning/mod.rs
similarity index 100%
rename from src/librustc_mir/monomorphize/partitioning/mod.rs
rename to compiler/rustc_mir/src/monomorphize/partitioning/mod.rs
diff --git a/src/librustc_mir/monomorphize/polymorphize.rs b/compiler/rustc_mir/src/monomorphize/polymorphize.rs
similarity index 100%
rename from src/librustc_mir/monomorphize/polymorphize.rs
rename to compiler/rustc_mir/src/monomorphize/polymorphize.rs
diff --git a/src/librustc_mir/shim.rs b/compiler/rustc_mir/src/shim.rs
similarity index 100%
rename from src/librustc_mir/shim.rs
rename to compiler/rustc_mir/src/shim.rs
diff --git a/src/librustc_mir/transform/add_call_guards.rs b/compiler/rustc_mir/src/transform/add_call_guards.rs
similarity index 100%
rename from src/librustc_mir/transform/add_call_guards.rs
rename to compiler/rustc_mir/src/transform/add_call_guards.rs
diff --git a/src/librustc_mir/transform/add_moves_for_packed_drops.rs b/compiler/rustc_mir/src/transform/add_moves_for_packed_drops.rs
similarity index 100%
rename from src/librustc_mir/transform/add_moves_for_packed_drops.rs
rename to compiler/rustc_mir/src/transform/add_moves_for_packed_drops.rs
diff --git a/src/librustc_mir/transform/add_retag.rs b/compiler/rustc_mir/src/transform/add_retag.rs
similarity index 100%
rename from src/librustc_mir/transform/add_retag.rs
rename to compiler/rustc_mir/src/transform/add_retag.rs
diff --git a/src/librustc_mir/transform/check_consts/mod.rs b/compiler/rustc_mir/src/transform/check_consts/mod.rs
similarity index 100%
rename from src/librustc_mir/transform/check_consts/mod.rs
rename to compiler/rustc_mir/src/transform/check_consts/mod.rs
diff --git a/src/librustc_mir/transform/check_consts/ops.rs b/compiler/rustc_mir/src/transform/check_consts/ops.rs
similarity index 100%
rename from src/librustc_mir/transform/check_consts/ops.rs
rename to compiler/rustc_mir/src/transform/check_consts/ops.rs
diff --git a/src/librustc_mir/transform/check_consts/post_drop_elaboration.rs b/compiler/rustc_mir/src/transform/check_consts/post_drop_elaboration.rs
similarity index 100%
rename from src/librustc_mir/transform/check_consts/post_drop_elaboration.rs
rename to compiler/rustc_mir/src/transform/check_consts/post_drop_elaboration.rs
diff --git a/src/librustc_mir/transform/check_consts/qualifs.rs b/compiler/rustc_mir/src/transform/check_consts/qualifs.rs
similarity index 100%
rename from src/librustc_mir/transform/check_consts/qualifs.rs
rename to compiler/rustc_mir/src/transform/check_consts/qualifs.rs
diff --git a/src/librustc_mir/transform/check_consts/resolver.rs b/compiler/rustc_mir/src/transform/check_consts/resolver.rs
similarity index 100%
rename from src/librustc_mir/transform/check_consts/resolver.rs
rename to compiler/rustc_mir/src/transform/check_consts/resolver.rs
diff --git a/src/librustc_mir/transform/check_consts/validation.rs b/compiler/rustc_mir/src/transform/check_consts/validation.rs
similarity index 100%
rename from src/librustc_mir/transform/check_consts/validation.rs
rename to compiler/rustc_mir/src/transform/check_consts/validation.rs
diff --git a/src/librustc_mir/transform/check_packed_ref.rs b/compiler/rustc_mir/src/transform/check_packed_ref.rs
similarity index 100%
rename from src/librustc_mir/transform/check_packed_ref.rs
rename to compiler/rustc_mir/src/transform/check_packed_ref.rs
diff --git a/src/librustc_mir/transform/check_unsafety.rs b/compiler/rustc_mir/src/transform/check_unsafety.rs
similarity index 100%
rename from src/librustc_mir/transform/check_unsafety.rs
rename to compiler/rustc_mir/src/transform/check_unsafety.rs
diff --git a/src/librustc_mir/transform/cleanup_post_borrowck.rs b/compiler/rustc_mir/src/transform/cleanup_post_borrowck.rs
similarity index 100%
rename from src/librustc_mir/transform/cleanup_post_borrowck.rs
rename to compiler/rustc_mir/src/transform/cleanup_post_borrowck.rs
diff --git a/src/librustc_mir/transform/const_prop.rs b/compiler/rustc_mir/src/transform/const_prop.rs
similarity index 100%
rename from src/librustc_mir/transform/const_prop.rs
rename to compiler/rustc_mir/src/transform/const_prop.rs
diff --git a/src/librustc_mir/transform/copy_prop.rs b/compiler/rustc_mir/src/transform/copy_prop.rs
similarity index 100%
rename from src/librustc_mir/transform/copy_prop.rs
rename to compiler/rustc_mir/src/transform/copy_prop.rs
diff --git a/src/librustc_mir/transform/deaggregator.rs b/compiler/rustc_mir/src/transform/deaggregator.rs
similarity index 100%
rename from src/librustc_mir/transform/deaggregator.rs
rename to compiler/rustc_mir/src/transform/deaggregator.rs
diff --git a/src/librustc_mir/transform/dump_mir.rs b/compiler/rustc_mir/src/transform/dump_mir.rs
similarity index 100%
rename from src/librustc_mir/transform/dump_mir.rs
rename to compiler/rustc_mir/src/transform/dump_mir.rs
diff --git a/src/librustc_mir/transform/elaborate_drops.rs b/compiler/rustc_mir/src/transform/elaborate_drops.rs
similarity index 100%
rename from src/librustc_mir/transform/elaborate_drops.rs
rename to compiler/rustc_mir/src/transform/elaborate_drops.rs
diff --git a/src/librustc_mir/transform/generator.rs b/compiler/rustc_mir/src/transform/generator.rs
similarity index 100%
rename from src/librustc_mir/transform/generator.rs
rename to compiler/rustc_mir/src/transform/generator.rs
diff --git a/src/librustc_mir/transform/inline.rs b/compiler/rustc_mir/src/transform/inline.rs
similarity index 100%
rename from src/librustc_mir/transform/inline.rs
rename to compiler/rustc_mir/src/transform/inline.rs
diff --git a/src/librustc_mir/transform/instcombine.rs b/compiler/rustc_mir/src/transform/instcombine.rs
similarity index 100%
rename from src/librustc_mir/transform/instcombine.rs
rename to compiler/rustc_mir/src/transform/instcombine.rs
diff --git a/src/librustc_mir/transform/instrument_coverage.rs b/compiler/rustc_mir/src/transform/instrument_coverage.rs
similarity index 100%
rename from src/librustc_mir/transform/instrument_coverage.rs
rename to compiler/rustc_mir/src/transform/instrument_coverage.rs
diff --git a/src/librustc_mir/transform/match_branches.rs b/compiler/rustc_mir/src/transform/match_branches.rs
similarity index 100%
rename from src/librustc_mir/transform/match_branches.rs
rename to compiler/rustc_mir/src/transform/match_branches.rs
diff --git a/src/librustc_mir/transform/mod.rs b/compiler/rustc_mir/src/transform/mod.rs
similarity index 100%
rename from src/librustc_mir/transform/mod.rs
rename to compiler/rustc_mir/src/transform/mod.rs
diff --git a/src/librustc_mir/transform/no_landing_pads.rs b/compiler/rustc_mir/src/transform/no_landing_pads.rs
similarity index 100%
rename from src/librustc_mir/transform/no_landing_pads.rs
rename to compiler/rustc_mir/src/transform/no_landing_pads.rs
diff --git a/src/librustc_mir/transform/nrvo.rs b/compiler/rustc_mir/src/transform/nrvo.rs
similarity index 100%
rename from src/librustc_mir/transform/nrvo.rs
rename to compiler/rustc_mir/src/transform/nrvo.rs
diff --git a/src/librustc_mir/transform/promote_consts.rs b/compiler/rustc_mir/src/transform/promote_consts.rs
similarity index 100%
rename from src/librustc_mir/transform/promote_consts.rs
rename to compiler/rustc_mir/src/transform/promote_consts.rs
diff --git a/src/librustc_mir/transform/qualify_min_const_fn.rs b/compiler/rustc_mir/src/transform/qualify_min_const_fn.rs
similarity index 100%
rename from src/librustc_mir/transform/qualify_min_const_fn.rs
rename to compiler/rustc_mir/src/transform/qualify_min_const_fn.rs
diff --git a/src/librustc_mir/transform/remove_noop_landing_pads.rs b/compiler/rustc_mir/src/transform/remove_noop_landing_pads.rs
similarity index 100%
rename from src/librustc_mir/transform/remove_noop_landing_pads.rs
rename to compiler/rustc_mir/src/transform/remove_noop_landing_pads.rs
diff --git a/src/librustc_mir/transform/required_consts.rs b/compiler/rustc_mir/src/transform/required_consts.rs
similarity index 100%
rename from src/librustc_mir/transform/required_consts.rs
rename to compiler/rustc_mir/src/transform/required_consts.rs
diff --git a/src/librustc_mir/transform/rustc_peek.rs b/compiler/rustc_mir/src/transform/rustc_peek.rs
similarity index 100%
rename from src/librustc_mir/transform/rustc_peek.rs
rename to compiler/rustc_mir/src/transform/rustc_peek.rs
diff --git a/src/librustc_mir/transform/simplify.rs b/compiler/rustc_mir/src/transform/simplify.rs
similarity index 100%
rename from src/librustc_mir/transform/simplify.rs
rename to compiler/rustc_mir/src/transform/simplify.rs
diff --git a/src/librustc_mir/transform/simplify_branches.rs b/compiler/rustc_mir/src/transform/simplify_branches.rs
similarity index 100%
rename from src/librustc_mir/transform/simplify_branches.rs
rename to compiler/rustc_mir/src/transform/simplify_branches.rs
diff --git a/src/librustc_mir/transform/simplify_comparison_integral.rs b/compiler/rustc_mir/src/transform/simplify_comparison_integral.rs
similarity index 100%
rename from src/librustc_mir/transform/simplify_comparison_integral.rs
rename to compiler/rustc_mir/src/transform/simplify_comparison_integral.rs
diff --git a/src/librustc_mir/transform/simplify_try.rs b/compiler/rustc_mir/src/transform/simplify_try.rs
similarity index 100%
rename from src/librustc_mir/transform/simplify_try.rs
rename to compiler/rustc_mir/src/transform/simplify_try.rs
diff --git a/src/librustc_mir/transform/uninhabited_enum_branching.rs b/compiler/rustc_mir/src/transform/uninhabited_enum_branching.rs
similarity index 100%
rename from src/librustc_mir/transform/uninhabited_enum_branching.rs
rename to compiler/rustc_mir/src/transform/uninhabited_enum_branching.rs
diff --git a/src/librustc_mir/transform/unreachable_prop.rs b/compiler/rustc_mir/src/transform/unreachable_prop.rs
similarity index 100%
rename from src/librustc_mir/transform/unreachable_prop.rs
rename to compiler/rustc_mir/src/transform/unreachable_prop.rs
diff --git a/src/librustc_mir/transform/validate.rs b/compiler/rustc_mir/src/transform/validate.rs
similarity index 100%
rename from src/librustc_mir/transform/validate.rs
rename to compiler/rustc_mir/src/transform/validate.rs
diff --git a/src/librustc_mir/util/aggregate.rs b/compiler/rustc_mir/src/util/aggregate.rs
similarity index 100%
rename from src/librustc_mir/util/aggregate.rs
rename to compiler/rustc_mir/src/util/aggregate.rs
diff --git a/src/librustc_mir/util/alignment.rs b/compiler/rustc_mir/src/util/alignment.rs
similarity index 100%
rename from src/librustc_mir/util/alignment.rs
rename to compiler/rustc_mir/src/util/alignment.rs
diff --git a/src/librustc_mir/util/borrowck_errors.rs b/compiler/rustc_mir/src/util/borrowck_errors.rs
similarity index 100%
rename from src/librustc_mir/util/borrowck_errors.rs
rename to compiler/rustc_mir/src/util/borrowck_errors.rs
diff --git a/src/librustc_mir/util/collect_writes.rs b/compiler/rustc_mir/src/util/collect_writes.rs
similarity index 100%
rename from src/librustc_mir/util/collect_writes.rs
rename to compiler/rustc_mir/src/util/collect_writes.rs
diff --git a/src/librustc_mir/util/def_use.rs b/compiler/rustc_mir/src/util/def_use.rs
similarity index 100%
rename from src/librustc_mir/util/def_use.rs
rename to compiler/rustc_mir/src/util/def_use.rs
diff --git a/src/librustc_mir/util/elaborate_drops.rs b/compiler/rustc_mir/src/util/elaborate_drops.rs
similarity index 100%
rename from src/librustc_mir/util/elaborate_drops.rs
rename to compiler/rustc_mir/src/util/elaborate_drops.rs
diff --git a/src/librustc_mir/util/graphviz.rs b/compiler/rustc_mir/src/util/graphviz.rs
similarity index 100%
rename from src/librustc_mir/util/graphviz.rs
rename to compiler/rustc_mir/src/util/graphviz.rs
diff --git a/src/librustc_mir/util/mod.rs b/compiler/rustc_mir/src/util/mod.rs
similarity index 100%
rename from src/librustc_mir/util/mod.rs
rename to compiler/rustc_mir/src/util/mod.rs
diff --git a/src/librustc_mir/util/patch.rs b/compiler/rustc_mir/src/util/patch.rs
similarity index 100%
rename from src/librustc_mir/util/patch.rs
rename to compiler/rustc_mir/src/util/patch.rs
diff --git a/src/librustc_mir/util/pretty.rs b/compiler/rustc_mir/src/util/pretty.rs
similarity index 100%
rename from src/librustc_mir/util/pretty.rs
rename to compiler/rustc_mir/src/util/pretty.rs
diff --git a/src/librustc_mir/util/storage.rs b/compiler/rustc_mir/src/util/storage.rs
similarity index 100%
rename from src/librustc_mir/util/storage.rs
rename to compiler/rustc_mir/src/util/storage.rs
diff --git a/compiler/rustc_mir_build/Cargo.toml b/compiler/rustc_mir_build/Cargo.toml
new file mode 100644
index 0000000000000..2dd894a67a6a1
--- /dev/null
+++ b/compiler/rustc_mir_build/Cargo.toml
@@ -0,0 +1,27 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_mir_build"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+rustc_arena = { path = "../rustc_arena" }
+tracing = "0.1"
+rustc_middle = { path = "../rustc_middle" }
+rustc_apfloat = { path = "../rustc_apfloat" }
+rustc_attr = { path = "../rustc_attr" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_index = { path = "../rustc_index" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_infer = { path = "../rustc_infer" }
+rustc_serialize = { path = "../rustc_serialize" }
+rustc_session = { path = "../rustc_session" }
+rustc_span = { path = "../rustc_span" }
+rustc_target = { path = "../rustc_target" }
+rustc_trait_selection = { path = "../rustc_trait_selection" }
+rustc_ast = { path = "../rustc_ast" }
+smallvec = { version = "1.0", features = ["union", "may_dangle"] }
diff --git a/src/librustc_mir_build/build/block.rs b/compiler/rustc_mir_build/src/build/block.rs
similarity index 100%
rename from src/librustc_mir_build/build/block.rs
rename to compiler/rustc_mir_build/src/build/block.rs
diff --git a/src/librustc_mir_build/build/cfg.rs b/compiler/rustc_mir_build/src/build/cfg.rs
similarity index 100%
rename from src/librustc_mir_build/build/cfg.rs
rename to compiler/rustc_mir_build/src/build/cfg.rs
diff --git a/src/librustc_mir_build/build/expr/as_constant.rs b/compiler/rustc_mir_build/src/build/expr/as_constant.rs
similarity index 100%
rename from src/librustc_mir_build/build/expr/as_constant.rs
rename to compiler/rustc_mir_build/src/build/expr/as_constant.rs
diff --git a/src/librustc_mir_build/build/expr/as_operand.rs b/compiler/rustc_mir_build/src/build/expr/as_operand.rs
similarity index 100%
rename from src/librustc_mir_build/build/expr/as_operand.rs
rename to compiler/rustc_mir_build/src/build/expr/as_operand.rs
diff --git a/src/librustc_mir_build/build/expr/as_place.rs b/compiler/rustc_mir_build/src/build/expr/as_place.rs
similarity index 100%
rename from src/librustc_mir_build/build/expr/as_place.rs
rename to compiler/rustc_mir_build/src/build/expr/as_place.rs
diff --git a/src/librustc_mir_build/build/expr/as_rvalue.rs b/compiler/rustc_mir_build/src/build/expr/as_rvalue.rs
similarity index 100%
rename from src/librustc_mir_build/build/expr/as_rvalue.rs
rename to compiler/rustc_mir_build/src/build/expr/as_rvalue.rs
diff --git a/src/librustc_mir_build/build/expr/as_temp.rs b/compiler/rustc_mir_build/src/build/expr/as_temp.rs
similarity index 100%
rename from src/librustc_mir_build/build/expr/as_temp.rs
rename to compiler/rustc_mir_build/src/build/expr/as_temp.rs
diff --git a/src/librustc_mir_build/build/expr/category.rs b/compiler/rustc_mir_build/src/build/expr/category.rs
similarity index 100%
rename from src/librustc_mir_build/build/expr/category.rs
rename to compiler/rustc_mir_build/src/build/expr/category.rs
diff --git a/src/librustc_mir_build/build/expr/into.rs b/compiler/rustc_mir_build/src/build/expr/into.rs
similarity index 100%
rename from src/librustc_mir_build/build/expr/into.rs
rename to compiler/rustc_mir_build/src/build/expr/into.rs
diff --git a/src/librustc_mir_build/build/expr/mod.rs b/compiler/rustc_mir_build/src/build/expr/mod.rs
similarity index 100%
rename from src/librustc_mir_build/build/expr/mod.rs
rename to compiler/rustc_mir_build/src/build/expr/mod.rs
diff --git a/src/librustc_mir_build/build/expr/stmt.rs b/compiler/rustc_mir_build/src/build/expr/stmt.rs
similarity index 100%
rename from src/librustc_mir_build/build/expr/stmt.rs
rename to compiler/rustc_mir_build/src/build/expr/stmt.rs
diff --git a/src/librustc_mir_build/build/into.rs b/compiler/rustc_mir_build/src/build/into.rs
similarity index 100%
rename from src/librustc_mir_build/build/into.rs
rename to compiler/rustc_mir_build/src/build/into.rs
diff --git a/src/librustc_mir_build/build/matches/mod.rs b/compiler/rustc_mir_build/src/build/matches/mod.rs
similarity index 100%
rename from src/librustc_mir_build/build/matches/mod.rs
rename to compiler/rustc_mir_build/src/build/matches/mod.rs
diff --git a/src/librustc_mir_build/build/matches/simplify.rs b/compiler/rustc_mir_build/src/build/matches/simplify.rs
similarity index 100%
rename from src/librustc_mir_build/build/matches/simplify.rs
rename to compiler/rustc_mir_build/src/build/matches/simplify.rs
diff --git a/src/librustc_mir_build/build/matches/test.rs b/compiler/rustc_mir_build/src/build/matches/test.rs
similarity index 100%
rename from src/librustc_mir_build/build/matches/test.rs
rename to compiler/rustc_mir_build/src/build/matches/test.rs
diff --git a/src/librustc_mir_build/build/matches/util.rs b/compiler/rustc_mir_build/src/build/matches/util.rs
similarity index 100%
rename from src/librustc_mir_build/build/matches/util.rs
rename to compiler/rustc_mir_build/src/build/matches/util.rs
diff --git a/src/librustc_mir_build/build/misc.rs b/compiler/rustc_mir_build/src/build/misc.rs
similarity index 100%
rename from src/librustc_mir_build/build/misc.rs
rename to compiler/rustc_mir_build/src/build/misc.rs
diff --git a/src/librustc_mir_build/build/mod.rs b/compiler/rustc_mir_build/src/build/mod.rs
similarity index 100%
rename from src/librustc_mir_build/build/mod.rs
rename to compiler/rustc_mir_build/src/build/mod.rs
diff --git a/src/librustc_mir_build/build/scope.rs b/compiler/rustc_mir_build/src/build/scope.rs
similarity index 100%
rename from src/librustc_mir_build/build/scope.rs
rename to compiler/rustc_mir_build/src/build/scope.rs
diff --git a/src/librustc_mir_build/lib.rs b/compiler/rustc_mir_build/src/lib.rs
similarity index 100%
rename from src/librustc_mir_build/lib.rs
rename to compiler/rustc_mir_build/src/lib.rs
diff --git a/src/librustc_mir_build/lints.rs b/compiler/rustc_mir_build/src/lints.rs
similarity index 100%
rename from src/librustc_mir_build/lints.rs
rename to compiler/rustc_mir_build/src/lints.rs
diff --git a/src/librustc_mir_build/thir/constant.rs b/compiler/rustc_mir_build/src/thir/constant.rs
similarity index 100%
rename from src/librustc_mir_build/thir/constant.rs
rename to compiler/rustc_mir_build/src/thir/constant.rs
diff --git a/src/librustc_mir_build/thir/cx/block.rs b/compiler/rustc_mir_build/src/thir/cx/block.rs
similarity index 100%
rename from src/librustc_mir_build/thir/cx/block.rs
rename to compiler/rustc_mir_build/src/thir/cx/block.rs
diff --git a/src/librustc_mir_build/thir/cx/expr.rs b/compiler/rustc_mir_build/src/thir/cx/expr.rs
similarity index 100%
rename from src/librustc_mir_build/thir/cx/expr.rs
rename to compiler/rustc_mir_build/src/thir/cx/expr.rs
diff --git a/src/librustc_mir_build/thir/cx/mod.rs b/compiler/rustc_mir_build/src/thir/cx/mod.rs
similarity index 100%
rename from src/librustc_mir_build/thir/cx/mod.rs
rename to compiler/rustc_mir_build/src/thir/cx/mod.rs
diff --git a/src/librustc_mir_build/thir/cx/to_ref.rs b/compiler/rustc_mir_build/src/thir/cx/to_ref.rs
similarity index 100%
rename from src/librustc_mir_build/thir/cx/to_ref.rs
rename to compiler/rustc_mir_build/src/thir/cx/to_ref.rs
diff --git a/src/librustc_mir_build/thir/mod.rs b/compiler/rustc_mir_build/src/thir/mod.rs
similarity index 100%
rename from src/librustc_mir_build/thir/mod.rs
rename to compiler/rustc_mir_build/src/thir/mod.rs
diff --git a/src/librustc_mir_build/thir/pattern/_match.rs b/compiler/rustc_mir_build/src/thir/pattern/_match.rs
similarity index 100%
rename from src/librustc_mir_build/thir/pattern/_match.rs
rename to compiler/rustc_mir_build/src/thir/pattern/_match.rs
diff --git a/src/librustc_mir_build/thir/pattern/check_match.rs b/compiler/rustc_mir_build/src/thir/pattern/check_match.rs
similarity index 100%
rename from src/librustc_mir_build/thir/pattern/check_match.rs
rename to compiler/rustc_mir_build/src/thir/pattern/check_match.rs
diff --git a/src/librustc_mir_build/thir/pattern/const_to_pat.rs b/compiler/rustc_mir_build/src/thir/pattern/const_to_pat.rs
similarity index 100%
rename from src/librustc_mir_build/thir/pattern/const_to_pat.rs
rename to compiler/rustc_mir_build/src/thir/pattern/const_to_pat.rs
diff --git a/src/librustc_mir_build/thir/pattern/mod.rs b/compiler/rustc_mir_build/src/thir/pattern/mod.rs
similarity index 100%
rename from src/librustc_mir_build/thir/pattern/mod.rs
rename to compiler/rustc_mir_build/src/thir/pattern/mod.rs
diff --git a/src/librustc_mir_build/thir/util.rs b/compiler/rustc_mir_build/src/thir/util.rs
similarity index 100%
rename from src/librustc_mir_build/thir/util.rs
rename to compiler/rustc_mir_build/src/thir/util.rs
diff --git a/compiler/rustc_parse/Cargo.toml b/compiler/rustc_parse/Cargo.toml
new file mode 100644
index 0000000000000..52835e5c8a94d
--- /dev/null
+++ b/compiler/rustc_parse/Cargo.toml
@@ -0,0 +1,22 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_parse"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+bitflags = "1.0"
+tracing = "0.1"
+rustc_ast_pretty = { path = "../rustc_ast_pretty" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_feature = { path = "../rustc_feature" }
+rustc_lexer = { path = "../rustc_lexer" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_session = { path = "../rustc_session" }
+rustc_span = { path = "../rustc_span" }
+rustc_ast = { path = "../rustc_ast" }
+unicode-normalization = "0.1.11"
+smallvec = { version = "1.0", features = ["union", "may_dangle"] }
diff --git a/src/librustc_parse/lexer/mod.rs b/compiler/rustc_parse/src/lexer/mod.rs
similarity index 100%
rename from src/librustc_parse/lexer/mod.rs
rename to compiler/rustc_parse/src/lexer/mod.rs
diff --git a/src/librustc_parse/lexer/tokentrees.rs b/compiler/rustc_parse/src/lexer/tokentrees.rs
similarity index 100%
rename from src/librustc_parse/lexer/tokentrees.rs
rename to compiler/rustc_parse/src/lexer/tokentrees.rs
diff --git a/src/librustc_parse/lexer/unescape_error_reporting.rs b/compiler/rustc_parse/src/lexer/unescape_error_reporting.rs
similarity index 100%
rename from src/librustc_parse/lexer/unescape_error_reporting.rs
rename to compiler/rustc_parse/src/lexer/unescape_error_reporting.rs
diff --git a/src/librustc_parse/lexer/unicode_chars.rs b/compiler/rustc_parse/src/lexer/unicode_chars.rs
similarity index 100%
rename from src/librustc_parse/lexer/unicode_chars.rs
rename to compiler/rustc_parse/src/lexer/unicode_chars.rs
diff --git a/src/librustc_parse/lib.rs b/compiler/rustc_parse/src/lib.rs
similarity index 100%
rename from src/librustc_parse/lib.rs
rename to compiler/rustc_parse/src/lib.rs
diff --git a/src/librustc_parse/parser/attr.rs b/compiler/rustc_parse/src/parser/attr.rs
similarity index 100%
rename from src/librustc_parse/parser/attr.rs
rename to compiler/rustc_parse/src/parser/attr.rs
diff --git a/src/librustc_parse/parser/diagnostics.rs b/compiler/rustc_parse/src/parser/diagnostics.rs
similarity index 100%
rename from src/librustc_parse/parser/diagnostics.rs
rename to compiler/rustc_parse/src/parser/diagnostics.rs
diff --git a/src/librustc_parse/parser/expr.rs b/compiler/rustc_parse/src/parser/expr.rs
similarity index 100%
rename from src/librustc_parse/parser/expr.rs
rename to compiler/rustc_parse/src/parser/expr.rs
diff --git a/src/librustc_parse/parser/generics.rs b/compiler/rustc_parse/src/parser/generics.rs
similarity index 100%
rename from src/librustc_parse/parser/generics.rs
rename to compiler/rustc_parse/src/parser/generics.rs
diff --git a/src/librustc_parse/parser/item.rs b/compiler/rustc_parse/src/parser/item.rs
similarity index 100%
rename from src/librustc_parse/parser/item.rs
rename to compiler/rustc_parse/src/parser/item.rs
diff --git a/src/librustc_parse/parser/mod.rs b/compiler/rustc_parse/src/parser/mod.rs
similarity index 100%
rename from src/librustc_parse/parser/mod.rs
rename to compiler/rustc_parse/src/parser/mod.rs
diff --git a/src/librustc_parse/parser/nonterminal.rs b/compiler/rustc_parse/src/parser/nonterminal.rs
similarity index 100%
rename from src/librustc_parse/parser/nonterminal.rs
rename to compiler/rustc_parse/src/parser/nonterminal.rs
diff --git a/src/librustc_parse/parser/pat.rs b/compiler/rustc_parse/src/parser/pat.rs
similarity index 100%
rename from src/librustc_parse/parser/pat.rs
rename to compiler/rustc_parse/src/parser/pat.rs
diff --git a/src/librustc_parse/parser/path.rs b/compiler/rustc_parse/src/parser/path.rs
similarity index 100%
rename from src/librustc_parse/parser/path.rs
rename to compiler/rustc_parse/src/parser/path.rs
diff --git a/src/librustc_parse/parser/stmt.rs b/compiler/rustc_parse/src/parser/stmt.rs
similarity index 100%
rename from src/librustc_parse/parser/stmt.rs
rename to compiler/rustc_parse/src/parser/stmt.rs
diff --git a/src/librustc_parse/parser/ty.rs b/compiler/rustc_parse/src/parser/ty.rs
similarity index 100%
rename from src/librustc_parse/parser/ty.rs
rename to compiler/rustc_parse/src/parser/ty.rs
diff --git a/src/librustc_parse/validate_attr.rs b/compiler/rustc_parse/src/validate_attr.rs
similarity index 100%
rename from src/librustc_parse/validate_attr.rs
rename to compiler/rustc_parse/src/validate_attr.rs
diff --git a/compiler/rustc_parse_format/Cargo.toml b/compiler/rustc_parse_format/Cargo.toml
new file mode 100644
index 0000000000000..c2317d91a6e95
--- /dev/null
+++ b/compiler/rustc_parse_format/Cargo.toml
@@ -0,0 +1,9 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_parse_format"
+version = "0.0.0"
+edition = "2018"
+
+[dependencies]
+rustc_span = { path = "../rustc_span" }
+rustc_lexer = { path = "../rustc_lexer" }
diff --git a/src/librustc_parse_format/lib.rs b/compiler/rustc_parse_format/src/lib.rs
similarity index 100%
rename from src/librustc_parse_format/lib.rs
rename to compiler/rustc_parse_format/src/lib.rs
diff --git a/src/librustc_parse_format/tests.rs b/compiler/rustc_parse_format/src/tests.rs
similarity index 100%
rename from src/librustc_parse_format/tests.rs
rename to compiler/rustc_parse_format/src/tests.rs
diff --git a/compiler/rustc_passes/Cargo.toml b/compiler/rustc_passes/Cargo.toml
new file mode 100644
index 0000000000000..4c3a96eed04c4
--- /dev/null
+++ b/compiler/rustc_passes/Cargo.toml
@@ -0,0 +1,19 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_passes"
+version = "0.0.0"
+edition = "2018"
+
+[dependencies]
+tracing = "0.1"
+rustc_middle = { path = "../rustc_middle" }
+rustc_attr = { path = "../rustc_attr" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_index = { path = "../rustc_index" }
+rustc_session = { path = "../rustc_session" }
+rustc_target = { path = "../rustc_target" }
+rustc_ast = { path = "../rustc_ast" }
+rustc_span = { path = "../rustc_span" }
+rustc_trait_selection = { path = "../rustc_trait_selection" }
diff --git a/src/librustc_passes/check_attr.rs b/compiler/rustc_passes/src/check_attr.rs
similarity index 100%
rename from src/librustc_passes/check_attr.rs
rename to compiler/rustc_passes/src/check_attr.rs
diff --git a/src/librustc_passes/check_const.rs b/compiler/rustc_passes/src/check_const.rs
similarity index 100%
rename from src/librustc_passes/check_const.rs
rename to compiler/rustc_passes/src/check_const.rs
diff --git a/src/librustc_passes/dead.rs b/compiler/rustc_passes/src/dead.rs
similarity index 100%
rename from src/librustc_passes/dead.rs
rename to compiler/rustc_passes/src/dead.rs
diff --git a/src/librustc_passes/diagnostic_items.rs b/compiler/rustc_passes/src/diagnostic_items.rs
similarity index 100%
rename from src/librustc_passes/diagnostic_items.rs
rename to compiler/rustc_passes/src/diagnostic_items.rs
diff --git a/src/librustc_passes/entry.rs b/compiler/rustc_passes/src/entry.rs
similarity index 100%
rename from src/librustc_passes/entry.rs
rename to compiler/rustc_passes/src/entry.rs
diff --git a/src/librustc_passes/hir_id_validator.rs b/compiler/rustc_passes/src/hir_id_validator.rs
similarity index 100%
rename from src/librustc_passes/hir_id_validator.rs
rename to compiler/rustc_passes/src/hir_id_validator.rs
diff --git a/src/librustc_passes/hir_stats.rs b/compiler/rustc_passes/src/hir_stats.rs
similarity index 100%
rename from src/librustc_passes/hir_stats.rs
rename to compiler/rustc_passes/src/hir_stats.rs
diff --git a/src/librustc_passes/intrinsicck.rs b/compiler/rustc_passes/src/intrinsicck.rs
similarity index 100%
rename from src/librustc_passes/intrinsicck.rs
rename to compiler/rustc_passes/src/intrinsicck.rs
diff --git a/src/librustc_passes/lang_items.rs b/compiler/rustc_passes/src/lang_items.rs
similarity index 100%
rename from src/librustc_passes/lang_items.rs
rename to compiler/rustc_passes/src/lang_items.rs
diff --git a/src/librustc_passes/layout_test.rs b/compiler/rustc_passes/src/layout_test.rs
similarity index 100%
rename from src/librustc_passes/layout_test.rs
rename to compiler/rustc_passes/src/layout_test.rs
diff --git a/src/librustc_passes/lib.rs b/compiler/rustc_passes/src/lib.rs
similarity index 100%
rename from src/librustc_passes/lib.rs
rename to compiler/rustc_passes/src/lib.rs
diff --git a/src/librustc_passes/lib_features.rs b/compiler/rustc_passes/src/lib_features.rs
similarity index 100%
rename from src/librustc_passes/lib_features.rs
rename to compiler/rustc_passes/src/lib_features.rs
diff --git a/src/librustc_passes/liveness.rs b/compiler/rustc_passes/src/liveness.rs
similarity index 100%
rename from src/librustc_passes/liveness.rs
rename to compiler/rustc_passes/src/liveness.rs
diff --git a/src/librustc_passes/loops.rs b/compiler/rustc_passes/src/loops.rs
similarity index 100%
rename from src/librustc_passes/loops.rs
rename to compiler/rustc_passes/src/loops.rs
diff --git a/src/librustc_passes/reachable.rs b/compiler/rustc_passes/src/reachable.rs
similarity index 100%
rename from src/librustc_passes/reachable.rs
rename to compiler/rustc_passes/src/reachable.rs
diff --git a/src/librustc_passes/region.rs b/compiler/rustc_passes/src/region.rs
similarity index 100%
rename from src/librustc_passes/region.rs
rename to compiler/rustc_passes/src/region.rs
diff --git a/src/librustc_passes/stability.rs b/compiler/rustc_passes/src/stability.rs
similarity index 100%
rename from src/librustc_passes/stability.rs
rename to compiler/rustc_passes/src/stability.rs
diff --git a/src/librustc_passes/upvars.rs b/compiler/rustc_passes/src/upvars.rs
similarity index 100%
rename from src/librustc_passes/upvars.rs
rename to compiler/rustc_passes/src/upvars.rs
diff --git a/src/librustc_passes/weak_lang_items.rs b/compiler/rustc_passes/src/weak_lang_items.rs
similarity index 100%
rename from src/librustc_passes/weak_lang_items.rs
rename to compiler/rustc_passes/src/weak_lang_items.rs
diff --git a/compiler/rustc_plugin_impl/Cargo.toml b/compiler/rustc_plugin_impl/Cargo.toml
new file mode 100644
index 0000000000000..500d13a8c1647
--- /dev/null
+++ b/compiler/rustc_plugin_impl/Cargo.toml
@@ -0,0 +1,19 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_plugin_impl"
+version = "0.0.0"
+build = false
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+rustc_middle = { path = "../rustc_middle" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_lint = { path = "../rustc_lint" }
+rustc_metadata = { path = "../rustc_metadata" }
+rustc_ast = { path = "../rustc_ast" }
+rustc_session = { path = "../rustc_session" }
+rustc_span = { path = "../rustc_span" }
diff --git a/src/librustc_plugin_impl/build.rs b/compiler/rustc_plugin_impl/src/build.rs
similarity index 100%
rename from src/librustc_plugin_impl/build.rs
rename to compiler/rustc_plugin_impl/src/build.rs
diff --git a/src/librustc_plugin_impl/lib.rs b/compiler/rustc_plugin_impl/src/lib.rs
similarity index 100%
rename from src/librustc_plugin_impl/lib.rs
rename to compiler/rustc_plugin_impl/src/lib.rs
diff --git a/src/librustc_plugin_impl/load.rs b/compiler/rustc_plugin_impl/src/load.rs
similarity index 100%
rename from src/librustc_plugin_impl/load.rs
rename to compiler/rustc_plugin_impl/src/load.rs
diff --git a/compiler/rustc_privacy/Cargo.toml b/compiler/rustc_privacy/Cargo.toml
new file mode 100644
index 0000000000000..ce83dc1de78c7
--- /dev/null
+++ b/compiler/rustc_privacy/Cargo.toml
@@ -0,0 +1,16 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_privacy"
+version = "0.0.0"
+edition = "2018"
+
+[dependencies]
+rustc_middle = { path = "../rustc_middle" }
+rustc_attr = { path = "../rustc_attr" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_typeck = { path = "../rustc_typeck" }
+rustc_session = { path = "../rustc_session" }
+rustc_span = { path = "../rustc_span" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+tracing = "0.1"
diff --git a/src/librustc_privacy/lib.rs b/compiler/rustc_privacy/src/lib.rs
similarity index 100%
rename from src/librustc_privacy/lib.rs
rename to compiler/rustc_privacy/src/lib.rs
diff --git a/compiler/rustc_query_system/Cargo.toml b/compiler/rustc_query_system/Cargo.toml
new file mode 100644
index 0000000000000..7defb00a8813e
--- /dev/null
+++ b/compiler/rustc_query_system/Cargo.toml
@@ -0,0 +1,21 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_query_system"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+rustc_arena = { path = "../rustc_arena" }
+tracing = "0.1"
+rustc-rayon-core = "0.3.0"
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_macros = { path = "../rustc_macros" }
+rustc_index = { path = "../rustc_index" }
+rustc_serialize = { path = "../rustc_serialize" }
+rustc_span = { path = "../rustc_span" }
+parking_lot = "0.10"
+smallvec = { version = "1.0", features = ["union", "may_dangle"] }
diff --git a/src/librustc_query_system/cache.rs b/compiler/rustc_query_system/src/cache.rs
similarity index 100%
rename from src/librustc_query_system/cache.rs
rename to compiler/rustc_query_system/src/cache.rs
diff --git a/src/librustc_query_system/dep_graph/README.md b/compiler/rustc_query_system/src/dep_graph/README.md
similarity index 100%
rename from src/librustc_query_system/dep_graph/README.md
rename to compiler/rustc_query_system/src/dep_graph/README.md
diff --git a/src/librustc_query_system/dep_graph/debug.rs b/compiler/rustc_query_system/src/dep_graph/debug.rs
similarity index 100%
rename from src/librustc_query_system/dep_graph/debug.rs
rename to compiler/rustc_query_system/src/dep_graph/debug.rs
diff --git a/src/librustc_query_system/dep_graph/dep_node.rs b/compiler/rustc_query_system/src/dep_graph/dep_node.rs
similarity index 100%
rename from src/librustc_query_system/dep_graph/dep_node.rs
rename to compiler/rustc_query_system/src/dep_graph/dep_node.rs
diff --git a/src/librustc_query_system/dep_graph/graph.rs b/compiler/rustc_query_system/src/dep_graph/graph.rs
similarity index 100%
rename from src/librustc_query_system/dep_graph/graph.rs
rename to compiler/rustc_query_system/src/dep_graph/graph.rs
diff --git a/src/librustc_query_system/dep_graph/mod.rs b/compiler/rustc_query_system/src/dep_graph/mod.rs
similarity index 100%
rename from src/librustc_query_system/dep_graph/mod.rs
rename to compiler/rustc_query_system/src/dep_graph/mod.rs
diff --git a/src/librustc_query_system/dep_graph/prev.rs b/compiler/rustc_query_system/src/dep_graph/prev.rs
similarity index 100%
rename from src/librustc_query_system/dep_graph/prev.rs
rename to compiler/rustc_query_system/src/dep_graph/prev.rs
diff --git a/src/librustc_query_system/dep_graph/query.rs b/compiler/rustc_query_system/src/dep_graph/query.rs
similarity index 100%
rename from src/librustc_query_system/dep_graph/query.rs
rename to compiler/rustc_query_system/src/dep_graph/query.rs
diff --git a/src/librustc_query_system/dep_graph/serialized.rs b/compiler/rustc_query_system/src/dep_graph/serialized.rs
similarity index 100%
rename from src/librustc_query_system/dep_graph/serialized.rs
rename to compiler/rustc_query_system/src/dep_graph/serialized.rs
diff --git a/src/librustc_query_system/lib.rs b/compiler/rustc_query_system/src/lib.rs
similarity index 100%
rename from src/librustc_query_system/lib.rs
rename to compiler/rustc_query_system/src/lib.rs
diff --git a/src/librustc_query_system/query/README.md b/compiler/rustc_query_system/src/query/README.md
similarity index 100%
rename from src/librustc_query_system/query/README.md
rename to compiler/rustc_query_system/src/query/README.md
diff --git a/src/librustc_query_system/query/caches.rs b/compiler/rustc_query_system/src/query/caches.rs
similarity index 100%
rename from src/librustc_query_system/query/caches.rs
rename to compiler/rustc_query_system/src/query/caches.rs
diff --git a/src/librustc_query_system/query/config.rs b/compiler/rustc_query_system/src/query/config.rs
similarity index 100%
rename from src/librustc_query_system/query/config.rs
rename to compiler/rustc_query_system/src/query/config.rs
diff --git a/src/librustc_query_system/query/job.rs b/compiler/rustc_query_system/src/query/job.rs
similarity index 100%
rename from src/librustc_query_system/query/job.rs
rename to compiler/rustc_query_system/src/query/job.rs
diff --git a/src/librustc_query_system/query/mod.rs b/compiler/rustc_query_system/src/query/mod.rs
similarity index 100%
rename from src/librustc_query_system/query/mod.rs
rename to compiler/rustc_query_system/src/query/mod.rs
diff --git a/src/librustc_query_system/query/plumbing.rs b/compiler/rustc_query_system/src/query/plumbing.rs
similarity index 100%
rename from src/librustc_query_system/query/plumbing.rs
rename to compiler/rustc_query_system/src/query/plumbing.rs
diff --git a/compiler/rustc_resolve/Cargo.toml b/compiler/rustc_resolve/Cargo.toml
new file mode 100644
index 0000000000000..821f9ea4738fe
--- /dev/null
+++ b/compiler/rustc_resolve/Cargo.toml
@@ -0,0 +1,29 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_resolve"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+test = false
+doctest = false
+
+[dependencies]
+bitflags = "1.2.1"
+tracing = "0.1"
+rustc_ast = { path = "../rustc_ast" }
+rustc_arena = { path = "../rustc_arena" }
+rustc_middle = { path = "../rustc_middle" }
+rustc_ast_lowering = { path = "../rustc_ast_lowering" }
+rustc_ast_pretty = { path = "../rustc_ast_pretty" }
+rustc_attr = { path = "../rustc_attr" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_expand = { path = "../rustc_expand" }
+rustc_feature = { path = "../rustc_feature" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_index = { path = "../rustc_index" }
+rustc_metadata = { path = "../rustc_metadata" }
+rustc_session = { path = "../rustc_session" }
+rustc_span = { path = "../rustc_span" }
+smallvec = { version = "1.0", features = ["union", "may_dangle"] }
diff --git a/src/librustc_resolve/build_reduced_graph.rs b/compiler/rustc_resolve/src/build_reduced_graph.rs
similarity index 100%
rename from src/librustc_resolve/build_reduced_graph.rs
rename to compiler/rustc_resolve/src/build_reduced_graph.rs
diff --git a/src/librustc_resolve/check_unused.rs b/compiler/rustc_resolve/src/check_unused.rs
similarity index 100%
rename from src/librustc_resolve/check_unused.rs
rename to compiler/rustc_resolve/src/check_unused.rs
diff --git a/src/librustc_resolve/def_collector.rs b/compiler/rustc_resolve/src/def_collector.rs
similarity index 100%
rename from src/librustc_resolve/def_collector.rs
rename to compiler/rustc_resolve/src/def_collector.rs
diff --git a/src/librustc_resolve/diagnostics.rs b/compiler/rustc_resolve/src/diagnostics.rs
similarity index 100%
rename from src/librustc_resolve/diagnostics.rs
rename to compiler/rustc_resolve/src/diagnostics.rs
diff --git a/src/librustc_resolve/imports.rs b/compiler/rustc_resolve/src/imports.rs
similarity index 100%
rename from src/librustc_resolve/imports.rs
rename to compiler/rustc_resolve/src/imports.rs
diff --git a/src/librustc_resolve/late.rs b/compiler/rustc_resolve/src/late.rs
similarity index 100%
rename from src/librustc_resolve/late.rs
rename to compiler/rustc_resolve/src/late.rs
diff --git a/src/librustc_resolve/late/diagnostics.rs b/compiler/rustc_resolve/src/late/diagnostics.rs
similarity index 100%
rename from src/librustc_resolve/late/diagnostics.rs
rename to compiler/rustc_resolve/src/late/diagnostics.rs
diff --git a/src/librustc_resolve/late/lifetimes.rs b/compiler/rustc_resolve/src/late/lifetimes.rs
similarity index 100%
rename from src/librustc_resolve/late/lifetimes.rs
rename to compiler/rustc_resolve/src/late/lifetimes.rs
diff --git a/src/librustc_resolve/lib.rs b/compiler/rustc_resolve/src/lib.rs
similarity index 100%
rename from src/librustc_resolve/lib.rs
rename to compiler/rustc_resolve/src/lib.rs
diff --git a/src/librustc_resolve/macros.rs b/compiler/rustc_resolve/src/macros.rs
similarity index 100%
rename from src/librustc_resolve/macros.rs
rename to compiler/rustc_resolve/src/macros.rs
diff --git a/compiler/rustc_save_analysis/Cargo.toml b/compiler/rustc_save_analysis/Cargo.toml
new file mode 100644
index 0000000000000..da1bed37a96cb
--- /dev/null
+++ b/compiler/rustc_save_analysis/Cargo.toml
@@ -0,0 +1,20 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_save_analysis"
+version = "0.0.0"
+edition = "2018"
+
+[dependencies]
+tracing = "0.1"
+rustc_middle = { path = "../rustc_middle" }
+rustc_ast = { path = "../rustc_ast" }
+rustc_ast_pretty = { path = "../rustc_ast_pretty" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_hir_pretty = { path = "../rustc_hir_pretty" }
+rustc_lexer = { path = "../rustc_lexer" }
+serde_json = "1"
+rustc_session = { path = "../rustc_session" }
+rustc_span = { path = "../rustc_span" }
+rls-data = "0.19"
+rls-span = "0.5"
diff --git a/src/librustc_save_analysis/dump_visitor.rs b/compiler/rustc_save_analysis/src/dump_visitor.rs
similarity index 100%
rename from src/librustc_save_analysis/dump_visitor.rs
rename to compiler/rustc_save_analysis/src/dump_visitor.rs
diff --git a/src/librustc_save_analysis/dumper.rs b/compiler/rustc_save_analysis/src/dumper.rs
similarity index 100%
rename from src/librustc_save_analysis/dumper.rs
rename to compiler/rustc_save_analysis/src/dumper.rs
diff --git a/src/librustc_save_analysis/lib.rs b/compiler/rustc_save_analysis/src/lib.rs
similarity index 100%
rename from src/librustc_save_analysis/lib.rs
rename to compiler/rustc_save_analysis/src/lib.rs
diff --git a/src/librustc_save_analysis/sig.rs b/compiler/rustc_save_analysis/src/sig.rs
similarity index 100%
rename from src/librustc_save_analysis/sig.rs
rename to compiler/rustc_save_analysis/src/sig.rs
diff --git a/src/librustc_save_analysis/span_utils.rs b/compiler/rustc_save_analysis/src/span_utils.rs
similarity index 100%
rename from src/librustc_save_analysis/span_utils.rs
rename to compiler/rustc_save_analysis/src/span_utils.rs
diff --git a/src/librustc_serialize/Cargo.toml b/compiler/rustc_serialize/Cargo.toml
similarity index 70%
rename from src/librustc_serialize/Cargo.toml
rename to compiler/rustc_serialize/Cargo.toml
index 939e6a59ba099..16c5dff734126 100644
--- a/src/librustc_serialize/Cargo.toml
+++ b/compiler/rustc_serialize/Cargo.toml
@@ -4,13 +4,9 @@ name = "rustc_serialize"
 version = "0.0.0"
 edition = "2018"
 
-[lib]
-name = "rustc_serialize"
-path = "lib.rs"
-
 [dependencies]
 indexmap = "1"
 smallvec = { version = "1.0", features = ["union", "may_dangle"] }
 
 [dev-dependencies]
-rustc_macros = { path = "../librustc_macros" }
+rustc_macros = { path = "../rustc_macros" }
diff --git a/src/librustc_serialize/collection_impls.rs b/compiler/rustc_serialize/src/collection_impls.rs
similarity index 100%
rename from src/librustc_serialize/collection_impls.rs
rename to compiler/rustc_serialize/src/collection_impls.rs
diff --git a/src/librustc_serialize/json.rs b/compiler/rustc_serialize/src/json.rs
similarity index 100%
rename from src/librustc_serialize/json.rs
rename to compiler/rustc_serialize/src/json.rs
diff --git a/src/librustc_serialize/json/tests.rs b/compiler/rustc_serialize/src/json/tests.rs
similarity index 100%
rename from src/librustc_serialize/json/tests.rs
rename to compiler/rustc_serialize/src/json/tests.rs
diff --git a/src/librustc_serialize/leb128.rs b/compiler/rustc_serialize/src/leb128.rs
similarity index 100%
rename from src/librustc_serialize/leb128.rs
rename to compiler/rustc_serialize/src/leb128.rs
diff --git a/src/librustc_serialize/lib.rs b/compiler/rustc_serialize/src/lib.rs
similarity index 100%
rename from src/librustc_serialize/lib.rs
rename to compiler/rustc_serialize/src/lib.rs
diff --git a/src/librustc_serialize/opaque.rs b/compiler/rustc_serialize/src/opaque.rs
similarity index 100%
rename from src/librustc_serialize/opaque.rs
rename to compiler/rustc_serialize/src/opaque.rs
diff --git a/src/librustc_serialize/serialize.rs b/compiler/rustc_serialize/src/serialize.rs
similarity index 100%
rename from src/librustc_serialize/serialize.rs
rename to compiler/rustc_serialize/src/serialize.rs
diff --git a/src/librustc_serialize/tests/json.rs b/compiler/rustc_serialize/tests/json.rs
similarity index 100%
rename from src/librustc_serialize/tests/json.rs
rename to compiler/rustc_serialize/tests/json.rs
diff --git a/src/librustc_serialize/tests/leb128.rs b/compiler/rustc_serialize/tests/leb128.rs
similarity index 100%
rename from src/librustc_serialize/tests/leb128.rs
rename to compiler/rustc_serialize/tests/leb128.rs
diff --git a/src/librustc_serialize/tests/opaque.rs b/compiler/rustc_serialize/tests/opaque.rs
similarity index 100%
rename from src/librustc_serialize/tests/opaque.rs
rename to compiler/rustc_serialize/tests/opaque.rs
diff --git a/compiler/rustc_session/Cargo.toml b/compiler/rustc_session/Cargo.toml
new file mode 100644
index 0000000000000..cdff1662fdb0e
--- /dev/null
+++ b/compiler/rustc_session/Cargo.toml
@@ -0,0 +1,20 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_session"
+version = "0.0.0"
+edition = "2018"
+
+[dependencies]
+bitflags = "1.2.1"
+getopts = "0.2"
+rustc_macros = { path = "../rustc_macros" }
+tracing = "0.1"
+rustc_errors = { path = "../rustc_errors" }
+rustc_feature = { path = "../rustc_feature" }
+rustc_target = { path = "../rustc_target" }
+rustc_serialize = { path = "../rustc_serialize" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_span = { path = "../rustc_span" }
+rustc_fs_util = { path = "../rustc_fs_util" }
+num_cpus = "1.0"
+rustc_ast = { path = "../rustc_ast" }
diff --git a/src/librustc_session/cgu_reuse_tracker.rs b/compiler/rustc_session/src/cgu_reuse_tracker.rs
similarity index 100%
rename from src/librustc_session/cgu_reuse_tracker.rs
rename to compiler/rustc_session/src/cgu_reuse_tracker.rs
diff --git a/src/librustc_session/code_stats.rs b/compiler/rustc_session/src/code_stats.rs
similarity index 100%
rename from src/librustc_session/code_stats.rs
rename to compiler/rustc_session/src/code_stats.rs
diff --git a/src/librustc_session/config.rs b/compiler/rustc_session/src/config.rs
similarity index 100%
rename from src/librustc_session/config.rs
rename to compiler/rustc_session/src/config.rs
diff --git a/src/librustc_session/filesearch.rs b/compiler/rustc_session/src/filesearch.rs
similarity index 100%
rename from src/librustc_session/filesearch.rs
rename to compiler/rustc_session/src/filesearch.rs
diff --git a/src/librustc_session/lib.rs b/compiler/rustc_session/src/lib.rs
similarity index 100%
rename from src/librustc_session/lib.rs
rename to compiler/rustc_session/src/lib.rs
diff --git a/src/librustc_session/lint.rs b/compiler/rustc_session/src/lint.rs
similarity index 100%
rename from src/librustc_session/lint.rs
rename to compiler/rustc_session/src/lint.rs
diff --git a/src/librustc_session/lint/builtin.rs b/compiler/rustc_session/src/lint/builtin.rs
similarity index 100%
rename from src/librustc_session/lint/builtin.rs
rename to compiler/rustc_session/src/lint/builtin.rs
diff --git a/src/librustc_session/options.rs b/compiler/rustc_session/src/options.rs
similarity index 100%
rename from src/librustc_session/options.rs
rename to compiler/rustc_session/src/options.rs
diff --git a/src/librustc_session/output.rs b/compiler/rustc_session/src/output.rs
similarity index 100%
rename from src/librustc_session/output.rs
rename to compiler/rustc_session/src/output.rs
diff --git a/src/librustc_session/parse.rs b/compiler/rustc_session/src/parse.rs
similarity index 100%
rename from src/librustc_session/parse.rs
rename to compiler/rustc_session/src/parse.rs
diff --git a/src/librustc_session/search_paths.rs b/compiler/rustc_session/src/search_paths.rs
similarity index 100%
rename from src/librustc_session/search_paths.rs
rename to compiler/rustc_session/src/search_paths.rs
diff --git a/src/librustc_session/session.rs b/compiler/rustc_session/src/session.rs
similarity index 100%
rename from src/librustc_session/session.rs
rename to compiler/rustc_session/src/session.rs
diff --git a/src/librustc_session/utils.rs b/compiler/rustc_session/src/utils.rs
similarity index 100%
rename from src/librustc_session/utils.rs
rename to compiler/rustc_session/src/utils.rs
diff --git a/compiler/rustc_span/Cargo.toml b/compiler/rustc_span/Cargo.toml
new file mode 100644
index 0000000000000..1abfd50f00364
--- /dev/null
+++ b/compiler/rustc_span/Cargo.toml
@@ -0,0 +1,21 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_span"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+rustc_serialize = { path = "../rustc_serialize" }
+rustc_macros = { path = "../rustc_macros" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_index = { path = "../rustc_index" }
+rustc_arena = { path = "../rustc_arena" }
+scoped-tls = "1.0"
+unicode-width = "0.1.4"
+cfg-if = "0.1.2"
+tracing = "0.1"
+sha-1 = "0.8"
+md-5 = "0.8"
diff --git a/src/librustc_span/analyze_source_file.rs b/compiler/rustc_span/src/analyze_source_file.rs
similarity index 100%
rename from src/librustc_span/analyze_source_file.rs
rename to compiler/rustc_span/src/analyze_source_file.rs
diff --git a/src/librustc_span/analyze_source_file/tests.rs b/compiler/rustc_span/src/analyze_source_file/tests.rs
similarity index 100%
rename from src/librustc_span/analyze_source_file/tests.rs
rename to compiler/rustc_span/src/analyze_source_file/tests.rs
diff --git a/src/librustc_span/caching_source_map_view.rs b/compiler/rustc_span/src/caching_source_map_view.rs
similarity index 100%
rename from src/librustc_span/caching_source_map_view.rs
rename to compiler/rustc_span/src/caching_source_map_view.rs
diff --git a/src/librustc_span/def_id.rs b/compiler/rustc_span/src/def_id.rs
similarity index 100%
rename from src/librustc_span/def_id.rs
rename to compiler/rustc_span/src/def_id.rs
diff --git a/src/librustc_span/edition.rs b/compiler/rustc_span/src/edition.rs
similarity index 100%
rename from src/librustc_span/edition.rs
rename to compiler/rustc_span/src/edition.rs
diff --git a/src/librustc_span/fatal_error.rs b/compiler/rustc_span/src/fatal_error.rs
similarity index 100%
rename from src/librustc_span/fatal_error.rs
rename to compiler/rustc_span/src/fatal_error.rs
diff --git a/src/librustc_span/hygiene.rs b/compiler/rustc_span/src/hygiene.rs
similarity index 100%
rename from src/librustc_span/hygiene.rs
rename to compiler/rustc_span/src/hygiene.rs
diff --git a/src/librustc_span/lib.rs b/compiler/rustc_span/src/lib.rs
similarity index 100%
rename from src/librustc_span/lib.rs
rename to compiler/rustc_span/src/lib.rs
diff --git a/src/librustc_span/source_map.rs b/compiler/rustc_span/src/source_map.rs
similarity index 100%
rename from src/librustc_span/source_map.rs
rename to compiler/rustc_span/src/source_map.rs
diff --git a/src/librustc_span/source_map/tests.rs b/compiler/rustc_span/src/source_map/tests.rs
similarity index 100%
rename from src/librustc_span/source_map/tests.rs
rename to compiler/rustc_span/src/source_map/tests.rs
diff --git a/src/librustc_span/span_encoding.rs b/compiler/rustc_span/src/span_encoding.rs
similarity index 100%
rename from src/librustc_span/span_encoding.rs
rename to compiler/rustc_span/src/span_encoding.rs
diff --git a/src/librustc_span/symbol.rs b/compiler/rustc_span/src/symbol.rs
similarity index 100%
rename from src/librustc_span/symbol.rs
rename to compiler/rustc_span/src/symbol.rs
diff --git a/src/librustc_span/symbol/tests.rs b/compiler/rustc_span/src/symbol/tests.rs
similarity index 100%
rename from src/librustc_span/symbol/tests.rs
rename to compiler/rustc_span/src/symbol/tests.rs
diff --git a/src/librustc_span/tests.rs b/compiler/rustc_span/src/tests.rs
similarity index 100%
rename from src/librustc_span/tests.rs
rename to compiler/rustc_span/src/tests.rs
diff --git a/compiler/rustc_symbol_mangling/Cargo.toml b/compiler/rustc_symbol_mangling/Cargo.toml
new file mode 100644
index 0000000000000..c0dacd24c38e6
--- /dev/null
+++ b/compiler/rustc_symbol_mangling/Cargo.toml
@@ -0,0 +1,21 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_symbol_mangling"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+tracing = "0.1"
+punycode = "0.4.0"
+rustc-demangle = "0.1.16"
+
+rustc_ast = { path = "../rustc_ast" }
+rustc_span = { path = "../rustc_span" }
+rustc_middle = { path = "../rustc_middle" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_target = { path = "../rustc_target" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_session = { path = "../rustc_session" }
diff --git a/src/librustc_symbol_mangling/legacy.rs b/compiler/rustc_symbol_mangling/src/legacy.rs
similarity index 100%
rename from src/librustc_symbol_mangling/legacy.rs
rename to compiler/rustc_symbol_mangling/src/legacy.rs
diff --git a/src/librustc_symbol_mangling/lib.rs b/compiler/rustc_symbol_mangling/src/lib.rs
similarity index 100%
rename from src/librustc_symbol_mangling/lib.rs
rename to compiler/rustc_symbol_mangling/src/lib.rs
diff --git a/src/librustc_symbol_mangling/test.rs b/compiler/rustc_symbol_mangling/src/test.rs
similarity index 100%
rename from src/librustc_symbol_mangling/test.rs
rename to compiler/rustc_symbol_mangling/src/test.rs
diff --git a/src/librustc_symbol_mangling/v0.rs b/compiler/rustc_symbol_mangling/src/v0.rs
similarity index 100%
rename from src/librustc_symbol_mangling/v0.rs
rename to compiler/rustc_symbol_mangling/src/v0.rs
diff --git a/compiler/rustc_target/Cargo.toml b/compiler/rustc_target/Cargo.toml
new file mode 100644
index 0000000000000..2d7d9f1d82d27
--- /dev/null
+++ b/compiler/rustc_target/Cargo.toml
@@ -0,0 +1,14 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_target"
+version = "0.0.0"
+edition = "2018"
+
+[dependencies]
+bitflags = "1.2.1"
+tracing = "0.1"
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_macros = { path = "../rustc_macros" }
+rustc_serialize = { path = "../rustc_serialize" }
+rustc_span = { path = "../rustc_span" }
+rustc_index = { path = "../rustc_index" }
diff --git a/src/librustc_target/README.md b/compiler/rustc_target/README.md
similarity index 100%
rename from src/librustc_target/README.md
rename to compiler/rustc_target/README.md
diff --git a/src/librustc_target/abi/call/aarch64.rs b/compiler/rustc_target/src/abi/call/aarch64.rs
similarity index 100%
rename from src/librustc_target/abi/call/aarch64.rs
rename to compiler/rustc_target/src/abi/call/aarch64.rs
diff --git a/src/librustc_target/abi/call/amdgpu.rs b/compiler/rustc_target/src/abi/call/amdgpu.rs
similarity index 100%
rename from src/librustc_target/abi/call/amdgpu.rs
rename to compiler/rustc_target/src/abi/call/amdgpu.rs
diff --git a/src/librustc_target/abi/call/arm.rs b/compiler/rustc_target/src/abi/call/arm.rs
similarity index 100%
rename from src/librustc_target/abi/call/arm.rs
rename to compiler/rustc_target/src/abi/call/arm.rs
diff --git a/src/librustc_target/abi/call/avr.rs b/compiler/rustc_target/src/abi/call/avr.rs
similarity index 100%
rename from src/librustc_target/abi/call/avr.rs
rename to compiler/rustc_target/src/abi/call/avr.rs
diff --git a/src/librustc_target/abi/call/hexagon.rs b/compiler/rustc_target/src/abi/call/hexagon.rs
similarity index 100%
rename from src/librustc_target/abi/call/hexagon.rs
rename to compiler/rustc_target/src/abi/call/hexagon.rs
diff --git a/src/librustc_target/abi/call/mips.rs b/compiler/rustc_target/src/abi/call/mips.rs
similarity index 100%
rename from src/librustc_target/abi/call/mips.rs
rename to compiler/rustc_target/src/abi/call/mips.rs
diff --git a/src/librustc_target/abi/call/mips64.rs b/compiler/rustc_target/src/abi/call/mips64.rs
similarity index 100%
rename from src/librustc_target/abi/call/mips64.rs
rename to compiler/rustc_target/src/abi/call/mips64.rs
diff --git a/src/librustc_target/abi/call/mod.rs b/compiler/rustc_target/src/abi/call/mod.rs
similarity index 100%
rename from src/librustc_target/abi/call/mod.rs
rename to compiler/rustc_target/src/abi/call/mod.rs
diff --git a/src/librustc_target/abi/call/msp430.rs b/compiler/rustc_target/src/abi/call/msp430.rs
similarity index 100%
rename from src/librustc_target/abi/call/msp430.rs
rename to compiler/rustc_target/src/abi/call/msp430.rs
diff --git a/src/librustc_target/abi/call/nvptx.rs b/compiler/rustc_target/src/abi/call/nvptx.rs
similarity index 100%
rename from src/librustc_target/abi/call/nvptx.rs
rename to compiler/rustc_target/src/abi/call/nvptx.rs
diff --git a/src/librustc_target/abi/call/nvptx64.rs b/compiler/rustc_target/src/abi/call/nvptx64.rs
similarity index 100%
rename from src/librustc_target/abi/call/nvptx64.rs
rename to compiler/rustc_target/src/abi/call/nvptx64.rs
diff --git a/src/librustc_target/abi/call/powerpc.rs b/compiler/rustc_target/src/abi/call/powerpc.rs
similarity index 100%
rename from src/librustc_target/abi/call/powerpc.rs
rename to compiler/rustc_target/src/abi/call/powerpc.rs
diff --git a/src/librustc_target/abi/call/powerpc64.rs b/compiler/rustc_target/src/abi/call/powerpc64.rs
similarity index 100%
rename from src/librustc_target/abi/call/powerpc64.rs
rename to compiler/rustc_target/src/abi/call/powerpc64.rs
diff --git a/src/librustc_target/abi/call/riscv.rs b/compiler/rustc_target/src/abi/call/riscv.rs
similarity index 100%
rename from src/librustc_target/abi/call/riscv.rs
rename to compiler/rustc_target/src/abi/call/riscv.rs
diff --git a/src/librustc_target/abi/call/s390x.rs b/compiler/rustc_target/src/abi/call/s390x.rs
similarity index 100%
rename from src/librustc_target/abi/call/s390x.rs
rename to compiler/rustc_target/src/abi/call/s390x.rs
diff --git a/src/librustc_target/abi/call/sparc.rs b/compiler/rustc_target/src/abi/call/sparc.rs
similarity index 100%
rename from src/librustc_target/abi/call/sparc.rs
rename to compiler/rustc_target/src/abi/call/sparc.rs
diff --git a/src/librustc_target/abi/call/sparc64.rs b/compiler/rustc_target/src/abi/call/sparc64.rs
similarity index 100%
rename from src/librustc_target/abi/call/sparc64.rs
rename to compiler/rustc_target/src/abi/call/sparc64.rs
diff --git a/src/librustc_target/abi/call/wasm32.rs b/compiler/rustc_target/src/abi/call/wasm32.rs
similarity index 100%
rename from src/librustc_target/abi/call/wasm32.rs
rename to compiler/rustc_target/src/abi/call/wasm32.rs
diff --git a/src/librustc_target/abi/call/wasm32_bindgen_compat.rs b/compiler/rustc_target/src/abi/call/wasm32_bindgen_compat.rs
similarity index 100%
rename from src/librustc_target/abi/call/wasm32_bindgen_compat.rs
rename to compiler/rustc_target/src/abi/call/wasm32_bindgen_compat.rs
diff --git a/src/librustc_target/abi/call/x86.rs b/compiler/rustc_target/src/abi/call/x86.rs
similarity index 100%
rename from src/librustc_target/abi/call/x86.rs
rename to compiler/rustc_target/src/abi/call/x86.rs
diff --git a/src/librustc_target/abi/call/x86_64.rs b/compiler/rustc_target/src/abi/call/x86_64.rs
similarity index 100%
rename from src/librustc_target/abi/call/x86_64.rs
rename to compiler/rustc_target/src/abi/call/x86_64.rs
diff --git a/src/librustc_target/abi/call/x86_win64.rs b/compiler/rustc_target/src/abi/call/x86_win64.rs
similarity index 100%
rename from src/librustc_target/abi/call/x86_win64.rs
rename to compiler/rustc_target/src/abi/call/x86_win64.rs
diff --git a/src/librustc_target/abi/mod.rs b/compiler/rustc_target/src/abi/mod.rs
similarity index 100%
rename from src/librustc_target/abi/mod.rs
rename to compiler/rustc_target/src/abi/mod.rs
diff --git a/src/librustc_target/asm/aarch64.rs b/compiler/rustc_target/src/asm/aarch64.rs
similarity index 100%
rename from src/librustc_target/asm/aarch64.rs
rename to compiler/rustc_target/src/asm/aarch64.rs
diff --git a/src/librustc_target/asm/arm.rs b/compiler/rustc_target/src/asm/arm.rs
similarity index 100%
rename from src/librustc_target/asm/arm.rs
rename to compiler/rustc_target/src/asm/arm.rs
diff --git a/src/librustc_target/asm/hexagon.rs b/compiler/rustc_target/src/asm/hexagon.rs
similarity index 100%
rename from src/librustc_target/asm/hexagon.rs
rename to compiler/rustc_target/src/asm/hexagon.rs
diff --git a/src/librustc_target/asm/mod.rs b/compiler/rustc_target/src/asm/mod.rs
similarity index 100%
rename from src/librustc_target/asm/mod.rs
rename to compiler/rustc_target/src/asm/mod.rs
diff --git a/src/librustc_target/asm/nvptx.rs b/compiler/rustc_target/src/asm/nvptx.rs
similarity index 100%
rename from src/librustc_target/asm/nvptx.rs
rename to compiler/rustc_target/src/asm/nvptx.rs
diff --git a/src/librustc_target/asm/riscv.rs b/compiler/rustc_target/src/asm/riscv.rs
similarity index 100%
rename from src/librustc_target/asm/riscv.rs
rename to compiler/rustc_target/src/asm/riscv.rs
diff --git a/src/librustc_target/asm/x86.rs b/compiler/rustc_target/src/asm/x86.rs
similarity index 100%
rename from src/librustc_target/asm/x86.rs
rename to compiler/rustc_target/src/asm/x86.rs
diff --git a/src/librustc_target/lib.rs b/compiler/rustc_target/src/lib.rs
similarity index 100%
rename from src/librustc_target/lib.rs
rename to compiler/rustc_target/src/lib.rs
diff --git a/src/librustc_target/spec/aarch64_apple_darwin.rs b/compiler/rustc_target/src/spec/aarch64_apple_darwin.rs
similarity index 100%
rename from src/librustc_target/spec/aarch64_apple_darwin.rs
rename to compiler/rustc_target/src/spec/aarch64_apple_darwin.rs
diff --git a/src/librustc_target/spec/aarch64_apple_ios.rs b/compiler/rustc_target/src/spec/aarch64_apple_ios.rs
similarity index 100%
rename from src/librustc_target/spec/aarch64_apple_ios.rs
rename to compiler/rustc_target/src/spec/aarch64_apple_ios.rs
diff --git a/src/librustc_target/spec/aarch64_apple_tvos.rs b/compiler/rustc_target/src/spec/aarch64_apple_tvos.rs
similarity index 100%
rename from src/librustc_target/spec/aarch64_apple_tvos.rs
rename to compiler/rustc_target/src/spec/aarch64_apple_tvos.rs
diff --git a/src/librustc_target/spec/aarch64_fuchsia.rs b/compiler/rustc_target/src/spec/aarch64_fuchsia.rs
similarity index 100%
rename from src/librustc_target/spec/aarch64_fuchsia.rs
rename to compiler/rustc_target/src/spec/aarch64_fuchsia.rs
diff --git a/src/librustc_target/spec/aarch64_linux_android.rs b/compiler/rustc_target/src/spec/aarch64_linux_android.rs
similarity index 100%
rename from src/librustc_target/spec/aarch64_linux_android.rs
rename to compiler/rustc_target/src/spec/aarch64_linux_android.rs
diff --git a/src/librustc_target/spec/aarch64_pc_windows_msvc.rs b/compiler/rustc_target/src/spec/aarch64_pc_windows_msvc.rs
similarity index 100%
rename from src/librustc_target/spec/aarch64_pc_windows_msvc.rs
rename to compiler/rustc_target/src/spec/aarch64_pc_windows_msvc.rs
diff --git a/src/librustc_target/spec/aarch64_unknown_cloudabi.rs b/compiler/rustc_target/src/spec/aarch64_unknown_cloudabi.rs
similarity index 100%
rename from src/librustc_target/spec/aarch64_unknown_cloudabi.rs
rename to compiler/rustc_target/src/spec/aarch64_unknown_cloudabi.rs
diff --git a/src/librustc_target/spec/aarch64_unknown_freebsd.rs b/compiler/rustc_target/src/spec/aarch64_unknown_freebsd.rs
similarity index 100%
rename from src/librustc_target/spec/aarch64_unknown_freebsd.rs
rename to compiler/rustc_target/src/spec/aarch64_unknown_freebsd.rs
diff --git a/src/librustc_target/spec/aarch64_unknown_hermit.rs b/compiler/rustc_target/src/spec/aarch64_unknown_hermit.rs
similarity index 100%
rename from src/librustc_target/spec/aarch64_unknown_hermit.rs
rename to compiler/rustc_target/src/spec/aarch64_unknown_hermit.rs
diff --git a/src/librustc_target/spec/aarch64_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/aarch64_unknown_linux_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/aarch64_unknown_linux_gnu.rs
rename to compiler/rustc_target/src/spec/aarch64_unknown_linux_gnu.rs
diff --git a/src/librustc_target/spec/aarch64_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/aarch64_unknown_linux_musl.rs
similarity index 100%
rename from src/librustc_target/spec/aarch64_unknown_linux_musl.rs
rename to compiler/rustc_target/src/spec/aarch64_unknown_linux_musl.rs
diff --git a/src/librustc_target/spec/aarch64_unknown_netbsd.rs b/compiler/rustc_target/src/spec/aarch64_unknown_netbsd.rs
similarity index 100%
rename from src/librustc_target/spec/aarch64_unknown_netbsd.rs
rename to compiler/rustc_target/src/spec/aarch64_unknown_netbsd.rs
diff --git a/src/librustc_target/spec/aarch64_unknown_none.rs b/compiler/rustc_target/src/spec/aarch64_unknown_none.rs
similarity index 100%
rename from src/librustc_target/spec/aarch64_unknown_none.rs
rename to compiler/rustc_target/src/spec/aarch64_unknown_none.rs
diff --git a/src/librustc_target/spec/aarch64_unknown_none_softfloat.rs b/compiler/rustc_target/src/spec/aarch64_unknown_none_softfloat.rs
similarity index 100%
rename from src/librustc_target/spec/aarch64_unknown_none_softfloat.rs
rename to compiler/rustc_target/src/spec/aarch64_unknown_none_softfloat.rs
diff --git a/src/librustc_target/spec/aarch64_unknown_openbsd.rs b/compiler/rustc_target/src/spec/aarch64_unknown_openbsd.rs
similarity index 100%
rename from src/librustc_target/spec/aarch64_unknown_openbsd.rs
rename to compiler/rustc_target/src/spec/aarch64_unknown_openbsd.rs
diff --git a/src/librustc_target/spec/aarch64_unknown_redox.rs b/compiler/rustc_target/src/spec/aarch64_unknown_redox.rs
similarity index 100%
rename from src/librustc_target/spec/aarch64_unknown_redox.rs
rename to compiler/rustc_target/src/spec/aarch64_unknown_redox.rs
diff --git a/src/librustc_target/spec/aarch64_uwp_windows_msvc.rs b/compiler/rustc_target/src/spec/aarch64_uwp_windows_msvc.rs
similarity index 100%
rename from src/librustc_target/spec/aarch64_uwp_windows_msvc.rs
rename to compiler/rustc_target/src/spec/aarch64_uwp_windows_msvc.rs
diff --git a/src/librustc_target/spec/aarch64_wrs_vxworks.rs b/compiler/rustc_target/src/spec/aarch64_wrs_vxworks.rs
similarity index 100%
rename from src/librustc_target/spec/aarch64_wrs_vxworks.rs
rename to compiler/rustc_target/src/spec/aarch64_wrs_vxworks.rs
diff --git a/src/librustc_target/spec/abi.rs b/compiler/rustc_target/src/spec/abi.rs
similarity index 100%
rename from src/librustc_target/spec/abi.rs
rename to compiler/rustc_target/src/spec/abi.rs
diff --git a/src/librustc_target/spec/abi/tests.rs b/compiler/rustc_target/src/spec/abi/tests.rs
similarity index 100%
rename from src/librustc_target/spec/abi/tests.rs
rename to compiler/rustc_target/src/spec/abi/tests.rs
diff --git a/src/librustc_target/spec/android_base.rs b/compiler/rustc_target/src/spec/android_base.rs
similarity index 100%
rename from src/librustc_target/spec/android_base.rs
rename to compiler/rustc_target/src/spec/android_base.rs
diff --git a/src/librustc_target/spec/apple_base.rs b/compiler/rustc_target/src/spec/apple_base.rs
similarity index 100%
rename from src/librustc_target/spec/apple_base.rs
rename to compiler/rustc_target/src/spec/apple_base.rs
diff --git a/src/librustc_target/spec/apple_sdk_base.rs b/compiler/rustc_target/src/spec/apple_sdk_base.rs
similarity index 100%
rename from src/librustc_target/spec/apple_sdk_base.rs
rename to compiler/rustc_target/src/spec/apple_sdk_base.rs
diff --git a/src/librustc_target/spec/arm_base.rs b/compiler/rustc_target/src/spec/arm_base.rs
similarity index 100%
rename from src/librustc_target/spec/arm_base.rs
rename to compiler/rustc_target/src/spec/arm_base.rs
diff --git a/src/librustc_target/spec/arm_linux_androideabi.rs b/compiler/rustc_target/src/spec/arm_linux_androideabi.rs
similarity index 100%
rename from src/librustc_target/spec/arm_linux_androideabi.rs
rename to compiler/rustc_target/src/spec/arm_linux_androideabi.rs
diff --git a/src/librustc_target/spec/arm_unknown_linux_gnueabi.rs b/compiler/rustc_target/src/spec/arm_unknown_linux_gnueabi.rs
similarity index 100%
rename from src/librustc_target/spec/arm_unknown_linux_gnueabi.rs
rename to compiler/rustc_target/src/spec/arm_unknown_linux_gnueabi.rs
diff --git a/src/librustc_target/spec/arm_unknown_linux_gnueabihf.rs b/compiler/rustc_target/src/spec/arm_unknown_linux_gnueabihf.rs
similarity index 100%
rename from src/librustc_target/spec/arm_unknown_linux_gnueabihf.rs
rename to compiler/rustc_target/src/spec/arm_unknown_linux_gnueabihf.rs
diff --git a/src/librustc_target/spec/arm_unknown_linux_musleabi.rs b/compiler/rustc_target/src/spec/arm_unknown_linux_musleabi.rs
similarity index 100%
rename from src/librustc_target/spec/arm_unknown_linux_musleabi.rs
rename to compiler/rustc_target/src/spec/arm_unknown_linux_musleabi.rs
diff --git a/src/librustc_target/spec/arm_unknown_linux_musleabihf.rs b/compiler/rustc_target/src/spec/arm_unknown_linux_musleabihf.rs
similarity index 100%
rename from src/librustc_target/spec/arm_unknown_linux_musleabihf.rs
rename to compiler/rustc_target/src/spec/arm_unknown_linux_musleabihf.rs
diff --git a/src/librustc_target/spec/armebv7r_none_eabi.rs b/compiler/rustc_target/src/spec/armebv7r_none_eabi.rs
similarity index 100%
rename from src/librustc_target/spec/armebv7r_none_eabi.rs
rename to compiler/rustc_target/src/spec/armebv7r_none_eabi.rs
diff --git a/src/librustc_target/spec/armebv7r_none_eabihf.rs b/compiler/rustc_target/src/spec/armebv7r_none_eabihf.rs
similarity index 100%
rename from src/librustc_target/spec/armebv7r_none_eabihf.rs
rename to compiler/rustc_target/src/spec/armebv7r_none_eabihf.rs
diff --git a/src/librustc_target/spec/armv4t_unknown_linux_gnueabi.rs b/compiler/rustc_target/src/spec/armv4t_unknown_linux_gnueabi.rs
similarity index 100%
rename from src/librustc_target/spec/armv4t_unknown_linux_gnueabi.rs
rename to compiler/rustc_target/src/spec/armv4t_unknown_linux_gnueabi.rs
diff --git a/src/librustc_target/spec/armv5te_unknown_linux_gnueabi.rs b/compiler/rustc_target/src/spec/armv5te_unknown_linux_gnueabi.rs
similarity index 100%
rename from src/librustc_target/spec/armv5te_unknown_linux_gnueabi.rs
rename to compiler/rustc_target/src/spec/armv5te_unknown_linux_gnueabi.rs
diff --git a/src/librustc_target/spec/armv5te_unknown_linux_musleabi.rs b/compiler/rustc_target/src/spec/armv5te_unknown_linux_musleabi.rs
similarity index 100%
rename from src/librustc_target/spec/armv5te_unknown_linux_musleabi.rs
rename to compiler/rustc_target/src/spec/armv5te_unknown_linux_musleabi.rs
diff --git a/src/librustc_target/spec/armv6_unknown_freebsd.rs b/compiler/rustc_target/src/spec/armv6_unknown_freebsd.rs
similarity index 100%
rename from src/librustc_target/spec/armv6_unknown_freebsd.rs
rename to compiler/rustc_target/src/spec/armv6_unknown_freebsd.rs
diff --git a/src/librustc_target/spec/armv6_unknown_netbsd_eabihf.rs b/compiler/rustc_target/src/spec/armv6_unknown_netbsd_eabihf.rs
similarity index 100%
rename from src/librustc_target/spec/armv6_unknown_netbsd_eabihf.rs
rename to compiler/rustc_target/src/spec/armv6_unknown_netbsd_eabihf.rs
diff --git a/src/librustc_target/spec/armv7_apple_ios.rs b/compiler/rustc_target/src/spec/armv7_apple_ios.rs
similarity index 100%
rename from src/librustc_target/spec/armv7_apple_ios.rs
rename to compiler/rustc_target/src/spec/armv7_apple_ios.rs
diff --git a/src/librustc_target/spec/armv7_linux_androideabi.rs b/compiler/rustc_target/src/spec/armv7_linux_androideabi.rs
similarity index 100%
rename from src/librustc_target/spec/armv7_linux_androideabi.rs
rename to compiler/rustc_target/src/spec/armv7_linux_androideabi.rs
diff --git a/src/librustc_target/spec/armv7_unknown_cloudabi_eabihf.rs b/compiler/rustc_target/src/spec/armv7_unknown_cloudabi_eabihf.rs
similarity index 100%
rename from src/librustc_target/spec/armv7_unknown_cloudabi_eabihf.rs
rename to compiler/rustc_target/src/spec/armv7_unknown_cloudabi_eabihf.rs
diff --git a/src/librustc_target/spec/armv7_unknown_freebsd.rs b/compiler/rustc_target/src/spec/armv7_unknown_freebsd.rs
similarity index 100%
rename from src/librustc_target/spec/armv7_unknown_freebsd.rs
rename to compiler/rustc_target/src/spec/armv7_unknown_freebsd.rs
diff --git a/src/librustc_target/spec/armv7_unknown_linux_gnueabi.rs b/compiler/rustc_target/src/spec/armv7_unknown_linux_gnueabi.rs
similarity index 100%
rename from src/librustc_target/spec/armv7_unknown_linux_gnueabi.rs
rename to compiler/rustc_target/src/spec/armv7_unknown_linux_gnueabi.rs
diff --git a/src/librustc_target/spec/armv7_unknown_linux_gnueabihf.rs b/compiler/rustc_target/src/spec/armv7_unknown_linux_gnueabihf.rs
similarity index 100%
rename from src/librustc_target/spec/armv7_unknown_linux_gnueabihf.rs
rename to compiler/rustc_target/src/spec/armv7_unknown_linux_gnueabihf.rs
diff --git a/src/librustc_target/spec/armv7_unknown_linux_musleabi.rs b/compiler/rustc_target/src/spec/armv7_unknown_linux_musleabi.rs
similarity index 100%
rename from src/librustc_target/spec/armv7_unknown_linux_musleabi.rs
rename to compiler/rustc_target/src/spec/armv7_unknown_linux_musleabi.rs
diff --git a/src/librustc_target/spec/armv7_unknown_linux_musleabihf.rs b/compiler/rustc_target/src/spec/armv7_unknown_linux_musleabihf.rs
similarity index 100%
rename from src/librustc_target/spec/armv7_unknown_linux_musleabihf.rs
rename to compiler/rustc_target/src/spec/armv7_unknown_linux_musleabihf.rs
diff --git a/src/librustc_target/spec/armv7_unknown_netbsd_eabihf.rs b/compiler/rustc_target/src/spec/armv7_unknown_netbsd_eabihf.rs
similarity index 100%
rename from src/librustc_target/spec/armv7_unknown_netbsd_eabihf.rs
rename to compiler/rustc_target/src/spec/armv7_unknown_netbsd_eabihf.rs
diff --git a/src/librustc_target/spec/armv7_wrs_vxworks_eabihf.rs b/compiler/rustc_target/src/spec/armv7_wrs_vxworks_eabihf.rs
similarity index 100%
rename from src/librustc_target/spec/armv7_wrs_vxworks_eabihf.rs
rename to compiler/rustc_target/src/spec/armv7_wrs_vxworks_eabihf.rs
diff --git a/src/librustc_target/spec/armv7a_none_eabi.rs b/compiler/rustc_target/src/spec/armv7a_none_eabi.rs
similarity index 100%
rename from src/librustc_target/spec/armv7a_none_eabi.rs
rename to compiler/rustc_target/src/spec/armv7a_none_eabi.rs
diff --git a/src/librustc_target/spec/armv7a_none_eabihf.rs b/compiler/rustc_target/src/spec/armv7a_none_eabihf.rs
similarity index 100%
rename from src/librustc_target/spec/armv7a_none_eabihf.rs
rename to compiler/rustc_target/src/spec/armv7a_none_eabihf.rs
diff --git a/src/librustc_target/spec/armv7r_none_eabi.rs b/compiler/rustc_target/src/spec/armv7r_none_eabi.rs
similarity index 100%
rename from src/librustc_target/spec/armv7r_none_eabi.rs
rename to compiler/rustc_target/src/spec/armv7r_none_eabi.rs
diff --git a/src/librustc_target/spec/armv7r_none_eabihf.rs b/compiler/rustc_target/src/spec/armv7r_none_eabihf.rs
similarity index 100%
rename from src/librustc_target/spec/armv7r_none_eabihf.rs
rename to compiler/rustc_target/src/spec/armv7r_none_eabihf.rs
diff --git a/src/librustc_target/spec/armv7s_apple_ios.rs b/compiler/rustc_target/src/spec/armv7s_apple_ios.rs
similarity index 100%
rename from src/librustc_target/spec/armv7s_apple_ios.rs
rename to compiler/rustc_target/src/spec/armv7s_apple_ios.rs
diff --git a/src/librustc_target/spec/asmjs_unknown_emscripten.rs b/compiler/rustc_target/src/spec/asmjs_unknown_emscripten.rs
similarity index 100%
rename from src/librustc_target/spec/asmjs_unknown_emscripten.rs
rename to compiler/rustc_target/src/spec/asmjs_unknown_emscripten.rs
diff --git a/src/librustc_target/spec/avr_gnu_base.rs b/compiler/rustc_target/src/spec/avr_gnu_base.rs
similarity index 100%
rename from src/librustc_target/spec/avr_gnu_base.rs
rename to compiler/rustc_target/src/spec/avr_gnu_base.rs
diff --git a/src/librustc_target/spec/avr_unknown_gnu_atmega328.rs b/compiler/rustc_target/src/spec/avr_unknown_gnu_atmega328.rs
similarity index 100%
rename from src/librustc_target/spec/avr_unknown_gnu_atmega328.rs
rename to compiler/rustc_target/src/spec/avr_unknown_gnu_atmega328.rs
diff --git a/src/librustc_target/spec/cloudabi_base.rs b/compiler/rustc_target/src/spec/cloudabi_base.rs
similarity index 100%
rename from src/librustc_target/spec/cloudabi_base.rs
rename to compiler/rustc_target/src/spec/cloudabi_base.rs
diff --git a/src/librustc_target/spec/crt_objects.rs b/compiler/rustc_target/src/spec/crt_objects.rs
similarity index 100%
rename from src/librustc_target/spec/crt_objects.rs
rename to compiler/rustc_target/src/spec/crt_objects.rs
diff --git a/src/librustc_target/spec/dragonfly_base.rs b/compiler/rustc_target/src/spec/dragonfly_base.rs
similarity index 100%
rename from src/librustc_target/spec/dragonfly_base.rs
rename to compiler/rustc_target/src/spec/dragonfly_base.rs
diff --git a/src/librustc_target/spec/freebsd_base.rs b/compiler/rustc_target/src/spec/freebsd_base.rs
similarity index 100%
rename from src/librustc_target/spec/freebsd_base.rs
rename to compiler/rustc_target/src/spec/freebsd_base.rs
diff --git a/src/librustc_target/spec/fuchsia_base.rs b/compiler/rustc_target/src/spec/fuchsia_base.rs
similarity index 100%
rename from src/librustc_target/spec/fuchsia_base.rs
rename to compiler/rustc_target/src/spec/fuchsia_base.rs
diff --git a/src/librustc_target/spec/haiku_base.rs b/compiler/rustc_target/src/spec/haiku_base.rs
similarity index 100%
rename from src/librustc_target/spec/haiku_base.rs
rename to compiler/rustc_target/src/spec/haiku_base.rs
diff --git a/src/librustc_target/spec/hermit_base.rs b/compiler/rustc_target/src/spec/hermit_base.rs
similarity index 100%
rename from src/librustc_target/spec/hermit_base.rs
rename to compiler/rustc_target/src/spec/hermit_base.rs
diff --git a/src/librustc_target/spec/hermit_kernel_base.rs b/compiler/rustc_target/src/spec/hermit_kernel_base.rs
similarity index 100%
rename from src/librustc_target/spec/hermit_kernel_base.rs
rename to compiler/rustc_target/src/spec/hermit_kernel_base.rs
diff --git a/src/librustc_target/spec/hexagon_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/hexagon_unknown_linux_musl.rs
similarity index 100%
rename from src/librustc_target/spec/hexagon_unknown_linux_musl.rs
rename to compiler/rustc_target/src/spec/hexagon_unknown_linux_musl.rs
diff --git a/src/librustc_target/spec/i386_apple_ios.rs b/compiler/rustc_target/src/spec/i386_apple_ios.rs
similarity index 100%
rename from src/librustc_target/spec/i386_apple_ios.rs
rename to compiler/rustc_target/src/spec/i386_apple_ios.rs
diff --git a/src/librustc_target/spec/i586_pc_windows_msvc.rs b/compiler/rustc_target/src/spec/i586_pc_windows_msvc.rs
similarity index 100%
rename from src/librustc_target/spec/i586_pc_windows_msvc.rs
rename to compiler/rustc_target/src/spec/i586_pc_windows_msvc.rs
diff --git a/src/librustc_target/spec/i586_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/i586_unknown_linux_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/i586_unknown_linux_gnu.rs
rename to compiler/rustc_target/src/spec/i586_unknown_linux_gnu.rs
diff --git a/src/librustc_target/spec/i586_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/i586_unknown_linux_musl.rs
similarity index 100%
rename from src/librustc_target/spec/i586_unknown_linux_musl.rs
rename to compiler/rustc_target/src/spec/i586_unknown_linux_musl.rs
diff --git a/src/librustc_target/spec/i686_apple_darwin.rs b/compiler/rustc_target/src/spec/i686_apple_darwin.rs
similarity index 100%
rename from src/librustc_target/spec/i686_apple_darwin.rs
rename to compiler/rustc_target/src/spec/i686_apple_darwin.rs
diff --git a/src/librustc_target/spec/i686_linux_android.rs b/compiler/rustc_target/src/spec/i686_linux_android.rs
similarity index 100%
rename from src/librustc_target/spec/i686_linux_android.rs
rename to compiler/rustc_target/src/spec/i686_linux_android.rs
diff --git a/src/librustc_target/spec/i686_pc_windows_gnu.rs b/compiler/rustc_target/src/spec/i686_pc_windows_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/i686_pc_windows_gnu.rs
rename to compiler/rustc_target/src/spec/i686_pc_windows_gnu.rs
diff --git a/src/librustc_target/spec/i686_pc_windows_msvc.rs b/compiler/rustc_target/src/spec/i686_pc_windows_msvc.rs
similarity index 100%
rename from src/librustc_target/spec/i686_pc_windows_msvc.rs
rename to compiler/rustc_target/src/spec/i686_pc_windows_msvc.rs
diff --git a/src/librustc_target/spec/i686_unknown_cloudabi.rs b/compiler/rustc_target/src/spec/i686_unknown_cloudabi.rs
similarity index 100%
rename from src/librustc_target/spec/i686_unknown_cloudabi.rs
rename to compiler/rustc_target/src/spec/i686_unknown_cloudabi.rs
diff --git a/src/librustc_target/spec/i686_unknown_freebsd.rs b/compiler/rustc_target/src/spec/i686_unknown_freebsd.rs
similarity index 100%
rename from src/librustc_target/spec/i686_unknown_freebsd.rs
rename to compiler/rustc_target/src/spec/i686_unknown_freebsd.rs
diff --git a/src/librustc_target/spec/i686_unknown_haiku.rs b/compiler/rustc_target/src/spec/i686_unknown_haiku.rs
similarity index 100%
rename from src/librustc_target/spec/i686_unknown_haiku.rs
rename to compiler/rustc_target/src/spec/i686_unknown_haiku.rs
diff --git a/src/librustc_target/spec/i686_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/i686_unknown_linux_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/i686_unknown_linux_gnu.rs
rename to compiler/rustc_target/src/spec/i686_unknown_linux_gnu.rs
diff --git a/src/librustc_target/spec/i686_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/i686_unknown_linux_musl.rs
similarity index 100%
rename from src/librustc_target/spec/i686_unknown_linux_musl.rs
rename to compiler/rustc_target/src/spec/i686_unknown_linux_musl.rs
diff --git a/src/librustc_target/spec/i686_unknown_netbsd.rs b/compiler/rustc_target/src/spec/i686_unknown_netbsd.rs
similarity index 100%
rename from src/librustc_target/spec/i686_unknown_netbsd.rs
rename to compiler/rustc_target/src/spec/i686_unknown_netbsd.rs
diff --git a/src/librustc_target/spec/i686_unknown_openbsd.rs b/compiler/rustc_target/src/spec/i686_unknown_openbsd.rs
similarity index 100%
rename from src/librustc_target/spec/i686_unknown_openbsd.rs
rename to compiler/rustc_target/src/spec/i686_unknown_openbsd.rs
diff --git a/src/librustc_target/spec/i686_unknown_uefi.rs b/compiler/rustc_target/src/spec/i686_unknown_uefi.rs
similarity index 100%
rename from src/librustc_target/spec/i686_unknown_uefi.rs
rename to compiler/rustc_target/src/spec/i686_unknown_uefi.rs
diff --git a/src/librustc_target/spec/i686_uwp_windows_gnu.rs b/compiler/rustc_target/src/spec/i686_uwp_windows_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/i686_uwp_windows_gnu.rs
rename to compiler/rustc_target/src/spec/i686_uwp_windows_gnu.rs
diff --git a/src/librustc_target/spec/i686_uwp_windows_msvc.rs b/compiler/rustc_target/src/spec/i686_uwp_windows_msvc.rs
similarity index 100%
rename from src/librustc_target/spec/i686_uwp_windows_msvc.rs
rename to compiler/rustc_target/src/spec/i686_uwp_windows_msvc.rs
diff --git a/src/librustc_target/spec/i686_wrs_vxworks.rs b/compiler/rustc_target/src/spec/i686_wrs_vxworks.rs
similarity index 100%
rename from src/librustc_target/spec/i686_wrs_vxworks.rs
rename to compiler/rustc_target/src/spec/i686_wrs_vxworks.rs
diff --git a/src/librustc_target/spec/illumos_base.rs b/compiler/rustc_target/src/spec/illumos_base.rs
similarity index 100%
rename from src/librustc_target/spec/illumos_base.rs
rename to compiler/rustc_target/src/spec/illumos_base.rs
diff --git a/src/librustc_target/spec/l4re_base.rs b/compiler/rustc_target/src/spec/l4re_base.rs
similarity index 100%
rename from src/librustc_target/spec/l4re_base.rs
rename to compiler/rustc_target/src/spec/l4re_base.rs
diff --git a/src/librustc_target/spec/linux_base.rs b/compiler/rustc_target/src/spec/linux_base.rs
similarity index 100%
rename from src/librustc_target/spec/linux_base.rs
rename to compiler/rustc_target/src/spec/linux_base.rs
diff --git a/src/librustc_target/spec/linux_kernel_base.rs b/compiler/rustc_target/src/spec/linux_kernel_base.rs
similarity index 100%
rename from src/librustc_target/spec/linux_kernel_base.rs
rename to compiler/rustc_target/src/spec/linux_kernel_base.rs
diff --git a/src/librustc_target/spec/linux_musl_base.rs b/compiler/rustc_target/src/spec/linux_musl_base.rs
similarity index 100%
rename from src/librustc_target/spec/linux_musl_base.rs
rename to compiler/rustc_target/src/spec/linux_musl_base.rs
diff --git a/src/librustc_target/spec/mips64_unknown_linux_gnuabi64.rs b/compiler/rustc_target/src/spec/mips64_unknown_linux_gnuabi64.rs
similarity index 100%
rename from src/librustc_target/spec/mips64_unknown_linux_gnuabi64.rs
rename to compiler/rustc_target/src/spec/mips64_unknown_linux_gnuabi64.rs
diff --git a/src/librustc_target/spec/mips64_unknown_linux_muslabi64.rs b/compiler/rustc_target/src/spec/mips64_unknown_linux_muslabi64.rs
similarity index 100%
rename from src/librustc_target/spec/mips64_unknown_linux_muslabi64.rs
rename to compiler/rustc_target/src/spec/mips64_unknown_linux_muslabi64.rs
diff --git a/src/librustc_target/spec/mips64el_unknown_linux_gnuabi64.rs b/compiler/rustc_target/src/spec/mips64el_unknown_linux_gnuabi64.rs
similarity index 100%
rename from src/librustc_target/spec/mips64el_unknown_linux_gnuabi64.rs
rename to compiler/rustc_target/src/spec/mips64el_unknown_linux_gnuabi64.rs
diff --git a/src/librustc_target/spec/mips64el_unknown_linux_muslabi64.rs b/compiler/rustc_target/src/spec/mips64el_unknown_linux_muslabi64.rs
similarity index 100%
rename from src/librustc_target/spec/mips64el_unknown_linux_muslabi64.rs
rename to compiler/rustc_target/src/spec/mips64el_unknown_linux_muslabi64.rs
diff --git a/src/librustc_target/spec/mips_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/mips_unknown_linux_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/mips_unknown_linux_gnu.rs
rename to compiler/rustc_target/src/spec/mips_unknown_linux_gnu.rs
diff --git a/src/librustc_target/spec/mips_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/mips_unknown_linux_musl.rs
similarity index 100%
rename from src/librustc_target/spec/mips_unknown_linux_musl.rs
rename to compiler/rustc_target/src/spec/mips_unknown_linux_musl.rs
diff --git a/src/librustc_target/spec/mips_unknown_linux_uclibc.rs b/compiler/rustc_target/src/spec/mips_unknown_linux_uclibc.rs
similarity index 100%
rename from src/librustc_target/spec/mips_unknown_linux_uclibc.rs
rename to compiler/rustc_target/src/spec/mips_unknown_linux_uclibc.rs
diff --git a/src/librustc_target/spec/mipsel_sony_psp.rs b/compiler/rustc_target/src/spec/mipsel_sony_psp.rs
similarity index 100%
rename from src/librustc_target/spec/mipsel_sony_psp.rs
rename to compiler/rustc_target/src/spec/mipsel_sony_psp.rs
diff --git a/src/librustc_target/spec/mipsel_sony_psp_linker_script.ld b/compiler/rustc_target/src/spec/mipsel_sony_psp_linker_script.ld
similarity index 100%
rename from src/librustc_target/spec/mipsel_sony_psp_linker_script.ld
rename to compiler/rustc_target/src/spec/mipsel_sony_psp_linker_script.ld
diff --git a/src/librustc_target/spec/mipsel_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/mipsel_unknown_linux_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/mipsel_unknown_linux_gnu.rs
rename to compiler/rustc_target/src/spec/mipsel_unknown_linux_gnu.rs
diff --git a/src/librustc_target/spec/mipsel_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/mipsel_unknown_linux_musl.rs
similarity index 100%
rename from src/librustc_target/spec/mipsel_unknown_linux_musl.rs
rename to compiler/rustc_target/src/spec/mipsel_unknown_linux_musl.rs
diff --git a/src/librustc_target/spec/mipsel_unknown_linux_uclibc.rs b/compiler/rustc_target/src/spec/mipsel_unknown_linux_uclibc.rs
similarity index 100%
rename from src/librustc_target/spec/mipsel_unknown_linux_uclibc.rs
rename to compiler/rustc_target/src/spec/mipsel_unknown_linux_uclibc.rs
diff --git a/src/librustc_target/spec/mipsisa32r6_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/mipsisa32r6_unknown_linux_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/mipsisa32r6_unknown_linux_gnu.rs
rename to compiler/rustc_target/src/spec/mipsisa32r6_unknown_linux_gnu.rs
diff --git a/src/librustc_target/spec/mipsisa32r6el_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/mipsisa32r6el_unknown_linux_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/mipsisa32r6el_unknown_linux_gnu.rs
rename to compiler/rustc_target/src/spec/mipsisa32r6el_unknown_linux_gnu.rs
diff --git a/src/librustc_target/spec/mipsisa64r6_unknown_linux_gnuabi64.rs b/compiler/rustc_target/src/spec/mipsisa64r6_unknown_linux_gnuabi64.rs
similarity index 100%
rename from src/librustc_target/spec/mipsisa64r6_unknown_linux_gnuabi64.rs
rename to compiler/rustc_target/src/spec/mipsisa64r6_unknown_linux_gnuabi64.rs
diff --git a/src/librustc_target/spec/mipsisa64r6el_unknown_linux_gnuabi64.rs b/compiler/rustc_target/src/spec/mipsisa64r6el_unknown_linux_gnuabi64.rs
similarity index 100%
rename from src/librustc_target/spec/mipsisa64r6el_unknown_linux_gnuabi64.rs
rename to compiler/rustc_target/src/spec/mipsisa64r6el_unknown_linux_gnuabi64.rs
diff --git a/src/librustc_target/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs
similarity index 100%
rename from src/librustc_target/spec/mod.rs
rename to compiler/rustc_target/src/spec/mod.rs
diff --git a/src/librustc_target/spec/msp430_none_elf.rs b/compiler/rustc_target/src/spec/msp430_none_elf.rs
similarity index 100%
rename from src/librustc_target/spec/msp430_none_elf.rs
rename to compiler/rustc_target/src/spec/msp430_none_elf.rs
diff --git a/src/librustc_target/spec/msvc_base.rs b/compiler/rustc_target/src/spec/msvc_base.rs
similarity index 100%
rename from src/librustc_target/spec/msvc_base.rs
rename to compiler/rustc_target/src/spec/msvc_base.rs
diff --git a/src/librustc_target/spec/netbsd_base.rs b/compiler/rustc_target/src/spec/netbsd_base.rs
similarity index 100%
rename from src/librustc_target/spec/netbsd_base.rs
rename to compiler/rustc_target/src/spec/netbsd_base.rs
diff --git a/src/librustc_target/spec/nvptx64_nvidia_cuda.rs b/compiler/rustc_target/src/spec/nvptx64_nvidia_cuda.rs
similarity index 100%
rename from src/librustc_target/spec/nvptx64_nvidia_cuda.rs
rename to compiler/rustc_target/src/spec/nvptx64_nvidia_cuda.rs
diff --git a/src/librustc_target/spec/openbsd_base.rs b/compiler/rustc_target/src/spec/openbsd_base.rs
similarity index 100%
rename from src/librustc_target/spec/openbsd_base.rs
rename to compiler/rustc_target/src/spec/openbsd_base.rs
diff --git a/src/librustc_target/spec/powerpc64_unknown_freebsd.rs b/compiler/rustc_target/src/spec/powerpc64_unknown_freebsd.rs
similarity index 100%
rename from src/librustc_target/spec/powerpc64_unknown_freebsd.rs
rename to compiler/rustc_target/src/spec/powerpc64_unknown_freebsd.rs
diff --git a/src/librustc_target/spec/powerpc64_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/powerpc64_unknown_linux_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/powerpc64_unknown_linux_gnu.rs
rename to compiler/rustc_target/src/spec/powerpc64_unknown_linux_gnu.rs
diff --git a/src/librustc_target/spec/powerpc64_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/powerpc64_unknown_linux_musl.rs
similarity index 100%
rename from src/librustc_target/spec/powerpc64_unknown_linux_musl.rs
rename to compiler/rustc_target/src/spec/powerpc64_unknown_linux_musl.rs
diff --git a/src/librustc_target/spec/powerpc64_wrs_vxworks.rs b/compiler/rustc_target/src/spec/powerpc64_wrs_vxworks.rs
similarity index 100%
rename from src/librustc_target/spec/powerpc64_wrs_vxworks.rs
rename to compiler/rustc_target/src/spec/powerpc64_wrs_vxworks.rs
diff --git a/src/librustc_target/spec/powerpc64le_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/powerpc64le_unknown_linux_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/powerpc64le_unknown_linux_gnu.rs
rename to compiler/rustc_target/src/spec/powerpc64le_unknown_linux_gnu.rs
diff --git a/src/librustc_target/spec/powerpc64le_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/powerpc64le_unknown_linux_musl.rs
similarity index 100%
rename from src/librustc_target/spec/powerpc64le_unknown_linux_musl.rs
rename to compiler/rustc_target/src/spec/powerpc64le_unknown_linux_musl.rs
diff --git a/src/librustc_target/spec/powerpc_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/powerpc_unknown_linux_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/powerpc_unknown_linux_gnu.rs
rename to compiler/rustc_target/src/spec/powerpc_unknown_linux_gnu.rs
diff --git a/src/librustc_target/spec/powerpc_unknown_linux_gnuspe.rs b/compiler/rustc_target/src/spec/powerpc_unknown_linux_gnuspe.rs
similarity index 100%
rename from src/librustc_target/spec/powerpc_unknown_linux_gnuspe.rs
rename to compiler/rustc_target/src/spec/powerpc_unknown_linux_gnuspe.rs
diff --git a/src/librustc_target/spec/powerpc_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/powerpc_unknown_linux_musl.rs
similarity index 100%
rename from src/librustc_target/spec/powerpc_unknown_linux_musl.rs
rename to compiler/rustc_target/src/spec/powerpc_unknown_linux_musl.rs
diff --git a/src/librustc_target/spec/powerpc_unknown_netbsd.rs b/compiler/rustc_target/src/spec/powerpc_unknown_netbsd.rs
similarity index 100%
rename from src/librustc_target/spec/powerpc_unknown_netbsd.rs
rename to compiler/rustc_target/src/spec/powerpc_unknown_netbsd.rs
diff --git a/src/librustc_target/spec/powerpc_wrs_vxworks.rs b/compiler/rustc_target/src/spec/powerpc_wrs_vxworks.rs
similarity index 100%
rename from src/librustc_target/spec/powerpc_wrs_vxworks.rs
rename to compiler/rustc_target/src/spec/powerpc_wrs_vxworks.rs
diff --git a/src/librustc_target/spec/powerpc_wrs_vxworks_spe.rs b/compiler/rustc_target/src/spec/powerpc_wrs_vxworks_spe.rs
similarity index 100%
rename from src/librustc_target/spec/powerpc_wrs_vxworks_spe.rs
rename to compiler/rustc_target/src/spec/powerpc_wrs_vxworks_spe.rs
diff --git a/src/librustc_target/spec/redox_base.rs b/compiler/rustc_target/src/spec/redox_base.rs
similarity index 100%
rename from src/librustc_target/spec/redox_base.rs
rename to compiler/rustc_target/src/spec/redox_base.rs
diff --git a/src/librustc_target/spec/riscv32i_unknown_none_elf.rs b/compiler/rustc_target/src/spec/riscv32i_unknown_none_elf.rs
similarity index 100%
rename from src/librustc_target/spec/riscv32i_unknown_none_elf.rs
rename to compiler/rustc_target/src/spec/riscv32i_unknown_none_elf.rs
diff --git a/src/librustc_target/spec/riscv32imac_unknown_none_elf.rs b/compiler/rustc_target/src/spec/riscv32imac_unknown_none_elf.rs
similarity index 100%
rename from src/librustc_target/spec/riscv32imac_unknown_none_elf.rs
rename to compiler/rustc_target/src/spec/riscv32imac_unknown_none_elf.rs
diff --git a/src/librustc_target/spec/riscv32imc_unknown_none_elf.rs b/compiler/rustc_target/src/spec/riscv32imc_unknown_none_elf.rs
similarity index 100%
rename from src/librustc_target/spec/riscv32imc_unknown_none_elf.rs
rename to compiler/rustc_target/src/spec/riscv32imc_unknown_none_elf.rs
diff --git a/src/librustc_target/spec/riscv64gc_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/riscv64gc_unknown_linux_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/riscv64gc_unknown_linux_gnu.rs
rename to compiler/rustc_target/src/spec/riscv64gc_unknown_linux_gnu.rs
diff --git a/src/librustc_target/spec/riscv64gc_unknown_none_elf.rs b/compiler/rustc_target/src/spec/riscv64gc_unknown_none_elf.rs
similarity index 100%
rename from src/librustc_target/spec/riscv64gc_unknown_none_elf.rs
rename to compiler/rustc_target/src/spec/riscv64gc_unknown_none_elf.rs
diff --git a/src/librustc_target/spec/riscv64imac_unknown_none_elf.rs b/compiler/rustc_target/src/spec/riscv64imac_unknown_none_elf.rs
similarity index 100%
rename from src/librustc_target/spec/riscv64imac_unknown_none_elf.rs
rename to compiler/rustc_target/src/spec/riscv64imac_unknown_none_elf.rs
diff --git a/src/librustc_target/spec/riscv_base.rs b/compiler/rustc_target/src/spec/riscv_base.rs
similarity index 100%
rename from src/librustc_target/spec/riscv_base.rs
rename to compiler/rustc_target/src/spec/riscv_base.rs
diff --git a/src/librustc_target/spec/s390x_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/s390x_unknown_linux_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/s390x_unknown_linux_gnu.rs
rename to compiler/rustc_target/src/spec/s390x_unknown_linux_gnu.rs
diff --git a/src/librustc_target/spec/solaris_base.rs b/compiler/rustc_target/src/spec/solaris_base.rs
similarity index 100%
rename from src/librustc_target/spec/solaris_base.rs
rename to compiler/rustc_target/src/spec/solaris_base.rs
diff --git a/src/librustc_target/spec/sparc64_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/sparc64_unknown_linux_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/sparc64_unknown_linux_gnu.rs
rename to compiler/rustc_target/src/spec/sparc64_unknown_linux_gnu.rs
diff --git a/src/librustc_target/spec/sparc64_unknown_netbsd.rs b/compiler/rustc_target/src/spec/sparc64_unknown_netbsd.rs
similarity index 100%
rename from src/librustc_target/spec/sparc64_unknown_netbsd.rs
rename to compiler/rustc_target/src/spec/sparc64_unknown_netbsd.rs
diff --git a/src/librustc_target/spec/sparc64_unknown_openbsd.rs b/compiler/rustc_target/src/spec/sparc64_unknown_openbsd.rs
similarity index 100%
rename from src/librustc_target/spec/sparc64_unknown_openbsd.rs
rename to compiler/rustc_target/src/spec/sparc64_unknown_openbsd.rs
diff --git a/src/librustc_target/spec/sparc_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/sparc_unknown_linux_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/sparc_unknown_linux_gnu.rs
rename to compiler/rustc_target/src/spec/sparc_unknown_linux_gnu.rs
diff --git a/src/librustc_target/spec/sparcv9_sun_solaris.rs b/compiler/rustc_target/src/spec/sparcv9_sun_solaris.rs
similarity index 100%
rename from src/librustc_target/spec/sparcv9_sun_solaris.rs
rename to compiler/rustc_target/src/spec/sparcv9_sun_solaris.rs
diff --git a/src/librustc_target/spec/tests/tests_impl.rs b/compiler/rustc_target/src/spec/tests/tests_impl.rs
similarity index 100%
rename from src/librustc_target/spec/tests/tests_impl.rs
rename to compiler/rustc_target/src/spec/tests/tests_impl.rs
diff --git a/src/librustc_target/spec/thumb_base.rs b/compiler/rustc_target/src/spec/thumb_base.rs
similarity index 100%
rename from src/librustc_target/spec/thumb_base.rs
rename to compiler/rustc_target/src/spec/thumb_base.rs
diff --git a/src/librustc_target/spec/thumbv4t_none_eabi.rs b/compiler/rustc_target/src/spec/thumbv4t_none_eabi.rs
similarity index 100%
rename from src/librustc_target/spec/thumbv4t_none_eabi.rs
rename to compiler/rustc_target/src/spec/thumbv4t_none_eabi.rs
diff --git a/src/librustc_target/spec/thumbv6m_none_eabi.rs b/compiler/rustc_target/src/spec/thumbv6m_none_eabi.rs
similarity index 100%
rename from src/librustc_target/spec/thumbv6m_none_eabi.rs
rename to compiler/rustc_target/src/spec/thumbv6m_none_eabi.rs
diff --git a/src/librustc_target/spec/thumbv7a_pc_windows_msvc.rs b/compiler/rustc_target/src/spec/thumbv7a_pc_windows_msvc.rs
similarity index 100%
rename from src/librustc_target/spec/thumbv7a_pc_windows_msvc.rs
rename to compiler/rustc_target/src/spec/thumbv7a_pc_windows_msvc.rs
diff --git a/src/librustc_target/spec/thumbv7a_uwp_windows_msvc.rs b/compiler/rustc_target/src/spec/thumbv7a_uwp_windows_msvc.rs
similarity index 100%
rename from src/librustc_target/spec/thumbv7a_uwp_windows_msvc.rs
rename to compiler/rustc_target/src/spec/thumbv7a_uwp_windows_msvc.rs
diff --git a/src/librustc_target/spec/thumbv7em_none_eabi.rs b/compiler/rustc_target/src/spec/thumbv7em_none_eabi.rs
similarity index 100%
rename from src/librustc_target/spec/thumbv7em_none_eabi.rs
rename to compiler/rustc_target/src/spec/thumbv7em_none_eabi.rs
diff --git a/src/librustc_target/spec/thumbv7em_none_eabihf.rs b/compiler/rustc_target/src/spec/thumbv7em_none_eabihf.rs
similarity index 100%
rename from src/librustc_target/spec/thumbv7em_none_eabihf.rs
rename to compiler/rustc_target/src/spec/thumbv7em_none_eabihf.rs
diff --git a/src/librustc_target/spec/thumbv7m_none_eabi.rs b/compiler/rustc_target/src/spec/thumbv7m_none_eabi.rs
similarity index 100%
rename from src/librustc_target/spec/thumbv7m_none_eabi.rs
rename to compiler/rustc_target/src/spec/thumbv7m_none_eabi.rs
diff --git a/src/librustc_target/spec/thumbv7neon_linux_androideabi.rs b/compiler/rustc_target/src/spec/thumbv7neon_linux_androideabi.rs
similarity index 100%
rename from src/librustc_target/spec/thumbv7neon_linux_androideabi.rs
rename to compiler/rustc_target/src/spec/thumbv7neon_linux_androideabi.rs
diff --git a/src/librustc_target/spec/thumbv7neon_unknown_linux_gnueabihf.rs b/compiler/rustc_target/src/spec/thumbv7neon_unknown_linux_gnueabihf.rs
similarity index 100%
rename from src/librustc_target/spec/thumbv7neon_unknown_linux_gnueabihf.rs
rename to compiler/rustc_target/src/spec/thumbv7neon_unknown_linux_gnueabihf.rs
diff --git a/src/librustc_target/spec/thumbv7neon_unknown_linux_musleabihf.rs b/compiler/rustc_target/src/spec/thumbv7neon_unknown_linux_musleabihf.rs
similarity index 100%
rename from src/librustc_target/spec/thumbv7neon_unknown_linux_musleabihf.rs
rename to compiler/rustc_target/src/spec/thumbv7neon_unknown_linux_musleabihf.rs
diff --git a/src/librustc_target/spec/thumbv8m_base_none_eabi.rs b/compiler/rustc_target/src/spec/thumbv8m_base_none_eabi.rs
similarity index 100%
rename from src/librustc_target/spec/thumbv8m_base_none_eabi.rs
rename to compiler/rustc_target/src/spec/thumbv8m_base_none_eabi.rs
diff --git a/src/librustc_target/spec/thumbv8m_main_none_eabi.rs b/compiler/rustc_target/src/spec/thumbv8m_main_none_eabi.rs
similarity index 100%
rename from src/librustc_target/spec/thumbv8m_main_none_eabi.rs
rename to compiler/rustc_target/src/spec/thumbv8m_main_none_eabi.rs
diff --git a/src/librustc_target/spec/thumbv8m_main_none_eabihf.rs b/compiler/rustc_target/src/spec/thumbv8m_main_none_eabihf.rs
similarity index 100%
rename from src/librustc_target/spec/thumbv8m_main_none_eabihf.rs
rename to compiler/rustc_target/src/spec/thumbv8m_main_none_eabihf.rs
diff --git a/src/librustc_target/spec/uefi_msvc_base.rs b/compiler/rustc_target/src/spec/uefi_msvc_base.rs
similarity index 100%
rename from src/librustc_target/spec/uefi_msvc_base.rs
rename to compiler/rustc_target/src/spec/uefi_msvc_base.rs
diff --git a/src/librustc_target/spec/vxworks_base.rs b/compiler/rustc_target/src/spec/vxworks_base.rs
similarity index 100%
rename from src/librustc_target/spec/vxworks_base.rs
rename to compiler/rustc_target/src/spec/vxworks_base.rs
diff --git a/src/librustc_target/spec/wasm32_base.rs b/compiler/rustc_target/src/spec/wasm32_base.rs
similarity index 100%
rename from src/librustc_target/spec/wasm32_base.rs
rename to compiler/rustc_target/src/spec/wasm32_base.rs
diff --git a/src/librustc_target/spec/wasm32_unknown_emscripten.rs b/compiler/rustc_target/src/spec/wasm32_unknown_emscripten.rs
similarity index 100%
rename from src/librustc_target/spec/wasm32_unknown_emscripten.rs
rename to compiler/rustc_target/src/spec/wasm32_unknown_emscripten.rs
diff --git a/src/librustc_target/spec/wasm32_unknown_unknown.rs b/compiler/rustc_target/src/spec/wasm32_unknown_unknown.rs
similarity index 100%
rename from src/librustc_target/spec/wasm32_unknown_unknown.rs
rename to compiler/rustc_target/src/spec/wasm32_unknown_unknown.rs
diff --git a/src/librustc_target/spec/wasm32_wasi.rs b/compiler/rustc_target/src/spec/wasm32_wasi.rs
similarity index 100%
rename from src/librustc_target/spec/wasm32_wasi.rs
rename to compiler/rustc_target/src/spec/wasm32_wasi.rs
diff --git a/src/librustc_target/spec/windows_gnu_base.rs b/compiler/rustc_target/src/spec/windows_gnu_base.rs
similarity index 100%
rename from src/librustc_target/spec/windows_gnu_base.rs
rename to compiler/rustc_target/src/spec/windows_gnu_base.rs
diff --git a/src/librustc_target/spec/windows_msvc_base.rs b/compiler/rustc_target/src/spec/windows_msvc_base.rs
similarity index 100%
rename from src/librustc_target/spec/windows_msvc_base.rs
rename to compiler/rustc_target/src/spec/windows_msvc_base.rs
diff --git a/src/librustc_target/spec/windows_uwp_gnu_base.rs b/compiler/rustc_target/src/spec/windows_uwp_gnu_base.rs
similarity index 100%
rename from src/librustc_target/spec/windows_uwp_gnu_base.rs
rename to compiler/rustc_target/src/spec/windows_uwp_gnu_base.rs
diff --git a/src/librustc_target/spec/windows_uwp_msvc_base.rs b/compiler/rustc_target/src/spec/windows_uwp_msvc_base.rs
similarity index 100%
rename from src/librustc_target/spec/windows_uwp_msvc_base.rs
rename to compiler/rustc_target/src/spec/windows_uwp_msvc_base.rs
diff --git a/src/librustc_target/spec/x86_64_apple_darwin.rs b/compiler/rustc_target/src/spec/x86_64_apple_darwin.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_apple_darwin.rs
rename to compiler/rustc_target/src/spec/x86_64_apple_darwin.rs
diff --git a/src/librustc_target/spec/x86_64_apple_ios.rs b/compiler/rustc_target/src/spec/x86_64_apple_ios.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_apple_ios.rs
rename to compiler/rustc_target/src/spec/x86_64_apple_ios.rs
diff --git a/src/librustc_target/spec/x86_64_apple_ios_macabi.rs b/compiler/rustc_target/src/spec/x86_64_apple_ios_macabi.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_apple_ios_macabi.rs
rename to compiler/rustc_target/src/spec/x86_64_apple_ios_macabi.rs
diff --git a/src/librustc_target/spec/x86_64_apple_tvos.rs b/compiler/rustc_target/src/spec/x86_64_apple_tvos.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_apple_tvos.rs
rename to compiler/rustc_target/src/spec/x86_64_apple_tvos.rs
diff --git a/src/librustc_target/spec/x86_64_fortanix_unknown_sgx.rs b/compiler/rustc_target/src/spec/x86_64_fortanix_unknown_sgx.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_fortanix_unknown_sgx.rs
rename to compiler/rustc_target/src/spec/x86_64_fortanix_unknown_sgx.rs
diff --git a/src/librustc_target/spec/x86_64_fuchsia.rs b/compiler/rustc_target/src/spec/x86_64_fuchsia.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_fuchsia.rs
rename to compiler/rustc_target/src/spec/x86_64_fuchsia.rs
diff --git a/src/librustc_target/spec/x86_64_linux_android.rs b/compiler/rustc_target/src/spec/x86_64_linux_android.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_linux_android.rs
rename to compiler/rustc_target/src/spec/x86_64_linux_android.rs
diff --git a/src/librustc_target/spec/x86_64_linux_kernel.rs b/compiler/rustc_target/src/spec/x86_64_linux_kernel.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_linux_kernel.rs
rename to compiler/rustc_target/src/spec/x86_64_linux_kernel.rs
diff --git a/src/librustc_target/spec/x86_64_pc_windows_gnu.rs b/compiler/rustc_target/src/spec/x86_64_pc_windows_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_pc_windows_gnu.rs
rename to compiler/rustc_target/src/spec/x86_64_pc_windows_gnu.rs
diff --git a/src/librustc_target/spec/x86_64_pc_windows_msvc.rs b/compiler/rustc_target/src/spec/x86_64_pc_windows_msvc.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_pc_windows_msvc.rs
rename to compiler/rustc_target/src/spec/x86_64_pc_windows_msvc.rs
diff --git a/src/librustc_target/spec/x86_64_rumprun_netbsd.rs b/compiler/rustc_target/src/spec/x86_64_rumprun_netbsd.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_rumprun_netbsd.rs
rename to compiler/rustc_target/src/spec/x86_64_rumprun_netbsd.rs
diff --git a/src/librustc_target/spec/x86_64_sun_solaris.rs b/compiler/rustc_target/src/spec/x86_64_sun_solaris.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_sun_solaris.rs
rename to compiler/rustc_target/src/spec/x86_64_sun_solaris.rs
diff --git a/src/librustc_target/spec/x86_64_unknown_cloudabi.rs b/compiler/rustc_target/src/spec/x86_64_unknown_cloudabi.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_unknown_cloudabi.rs
rename to compiler/rustc_target/src/spec/x86_64_unknown_cloudabi.rs
diff --git a/src/librustc_target/spec/x86_64_unknown_dragonfly.rs b/compiler/rustc_target/src/spec/x86_64_unknown_dragonfly.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_unknown_dragonfly.rs
rename to compiler/rustc_target/src/spec/x86_64_unknown_dragonfly.rs
diff --git a/src/librustc_target/spec/x86_64_unknown_freebsd.rs b/compiler/rustc_target/src/spec/x86_64_unknown_freebsd.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_unknown_freebsd.rs
rename to compiler/rustc_target/src/spec/x86_64_unknown_freebsd.rs
diff --git a/src/librustc_target/spec/x86_64_unknown_haiku.rs b/compiler/rustc_target/src/spec/x86_64_unknown_haiku.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_unknown_haiku.rs
rename to compiler/rustc_target/src/spec/x86_64_unknown_haiku.rs
diff --git a/src/librustc_target/spec/x86_64_unknown_hermit.rs b/compiler/rustc_target/src/spec/x86_64_unknown_hermit.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_unknown_hermit.rs
rename to compiler/rustc_target/src/spec/x86_64_unknown_hermit.rs
diff --git a/src/librustc_target/spec/x86_64_unknown_hermit_kernel.rs b/compiler/rustc_target/src/spec/x86_64_unknown_hermit_kernel.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_unknown_hermit_kernel.rs
rename to compiler/rustc_target/src/spec/x86_64_unknown_hermit_kernel.rs
diff --git a/src/librustc_target/spec/x86_64_unknown_illumos.rs b/compiler/rustc_target/src/spec/x86_64_unknown_illumos.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_unknown_illumos.rs
rename to compiler/rustc_target/src/spec/x86_64_unknown_illumos.rs
diff --git a/src/librustc_target/spec/x86_64_unknown_l4re_uclibc.rs b/compiler/rustc_target/src/spec/x86_64_unknown_l4re_uclibc.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_unknown_l4re_uclibc.rs
rename to compiler/rustc_target/src/spec/x86_64_unknown_l4re_uclibc.rs
diff --git a/src/librustc_target/spec/x86_64_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_unknown_linux_gnu.rs
rename to compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs
diff --git a/src/librustc_target/spec/x86_64_unknown_linux_gnux32.rs b/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnux32.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_unknown_linux_gnux32.rs
rename to compiler/rustc_target/src/spec/x86_64_unknown_linux_gnux32.rs
diff --git a/src/librustc_target/spec/x86_64_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/x86_64_unknown_linux_musl.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_unknown_linux_musl.rs
rename to compiler/rustc_target/src/spec/x86_64_unknown_linux_musl.rs
diff --git a/src/librustc_target/spec/x86_64_unknown_netbsd.rs b/compiler/rustc_target/src/spec/x86_64_unknown_netbsd.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_unknown_netbsd.rs
rename to compiler/rustc_target/src/spec/x86_64_unknown_netbsd.rs
diff --git a/src/librustc_target/spec/x86_64_unknown_openbsd.rs b/compiler/rustc_target/src/spec/x86_64_unknown_openbsd.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_unknown_openbsd.rs
rename to compiler/rustc_target/src/spec/x86_64_unknown_openbsd.rs
diff --git a/src/librustc_target/spec/x86_64_unknown_redox.rs b/compiler/rustc_target/src/spec/x86_64_unknown_redox.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_unknown_redox.rs
rename to compiler/rustc_target/src/spec/x86_64_unknown_redox.rs
diff --git a/src/librustc_target/spec/x86_64_unknown_uefi.rs b/compiler/rustc_target/src/spec/x86_64_unknown_uefi.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_unknown_uefi.rs
rename to compiler/rustc_target/src/spec/x86_64_unknown_uefi.rs
diff --git a/src/librustc_target/spec/x86_64_uwp_windows_gnu.rs b/compiler/rustc_target/src/spec/x86_64_uwp_windows_gnu.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_uwp_windows_gnu.rs
rename to compiler/rustc_target/src/spec/x86_64_uwp_windows_gnu.rs
diff --git a/src/librustc_target/spec/x86_64_uwp_windows_msvc.rs b/compiler/rustc_target/src/spec/x86_64_uwp_windows_msvc.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_uwp_windows_msvc.rs
rename to compiler/rustc_target/src/spec/x86_64_uwp_windows_msvc.rs
diff --git a/src/librustc_target/spec/x86_64_wrs_vxworks.rs b/compiler/rustc_target/src/spec/x86_64_wrs_vxworks.rs
similarity index 100%
rename from src/librustc_target/spec/x86_64_wrs_vxworks.rs
rename to compiler/rustc_target/src/spec/x86_64_wrs_vxworks.rs
diff --git a/compiler/rustc_trait_selection/Cargo.toml b/compiler/rustc_trait_selection/Cargo.toml
new file mode 100644
index 0000000000000..a72c172918bb0
--- /dev/null
+++ b/compiler/rustc_trait_selection/Cargo.toml
@@ -0,0 +1,25 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_trait_selection"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+doctest = false
+
+[dependencies]
+rustc_parse_format = { path = "../rustc_parse_format" }
+tracing = "0.1"
+rustc_attr = { path = "../rustc_attr" }
+rustc_middle = { path = "../rustc_middle" }
+rustc_ast = { path = "../rustc_ast" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_index = { path = "../rustc_index" }
+rustc_infer = { path = "../rustc_infer" }
+rustc_macros = { path = "../rustc_macros" }
+rustc_session = { path = "../rustc_session" }
+rustc_span = { path = "../rustc_span" }
+rustc_target = { path = "../rustc_target" }
+smallvec = { version = "1.0", features = ["union", "may_dangle"] }
diff --git a/src/librustc_trait_selection/autoderef.rs b/compiler/rustc_trait_selection/src/autoderef.rs
similarity index 100%
rename from src/librustc_trait_selection/autoderef.rs
rename to compiler/rustc_trait_selection/src/autoderef.rs
diff --git a/src/librustc_trait_selection/infer.rs b/compiler/rustc_trait_selection/src/infer.rs
similarity index 100%
rename from src/librustc_trait_selection/infer.rs
rename to compiler/rustc_trait_selection/src/infer.rs
diff --git a/src/librustc_trait_selection/lib.rs b/compiler/rustc_trait_selection/src/lib.rs
similarity index 100%
rename from src/librustc_trait_selection/lib.rs
rename to compiler/rustc_trait_selection/src/lib.rs
diff --git a/src/librustc_trait_selection/opaque_types.rs b/compiler/rustc_trait_selection/src/opaque_types.rs
similarity index 100%
rename from src/librustc_trait_selection/opaque_types.rs
rename to compiler/rustc_trait_selection/src/opaque_types.rs
diff --git a/src/librustc_trait_selection/traits/auto_trait.rs b/compiler/rustc_trait_selection/src/traits/auto_trait.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/auto_trait.rs
rename to compiler/rustc_trait_selection/src/traits/auto_trait.rs
diff --git a/src/librustc_trait_selection/traits/chalk_fulfill.rs b/compiler/rustc_trait_selection/src/traits/chalk_fulfill.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/chalk_fulfill.rs
rename to compiler/rustc_trait_selection/src/traits/chalk_fulfill.rs
diff --git a/src/librustc_trait_selection/traits/codegen/mod.rs b/compiler/rustc_trait_selection/src/traits/codegen/mod.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/codegen/mod.rs
rename to compiler/rustc_trait_selection/src/traits/codegen/mod.rs
diff --git a/src/librustc_trait_selection/traits/coherence.rs b/compiler/rustc_trait_selection/src/traits/coherence.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/coherence.rs
rename to compiler/rustc_trait_selection/src/traits/coherence.rs
diff --git a/src/librustc_trait_selection/traits/engine.rs b/compiler/rustc_trait_selection/src/traits/engine.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/engine.rs
rename to compiler/rustc_trait_selection/src/traits/engine.rs
diff --git a/src/librustc_trait_selection/traits/error_reporting/mod.rs b/compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/error_reporting/mod.rs
rename to compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs
diff --git a/src/librustc_trait_selection/traits/error_reporting/on_unimplemented.rs b/compiler/rustc_trait_selection/src/traits/error_reporting/on_unimplemented.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/error_reporting/on_unimplemented.rs
rename to compiler/rustc_trait_selection/src/traits/error_reporting/on_unimplemented.rs
diff --git a/src/librustc_trait_selection/traits/error_reporting/suggestions.rs b/compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/error_reporting/suggestions.rs
rename to compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs
diff --git a/src/librustc_trait_selection/traits/fulfill.rs b/compiler/rustc_trait_selection/src/traits/fulfill.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/fulfill.rs
rename to compiler/rustc_trait_selection/src/traits/fulfill.rs
diff --git a/src/librustc_trait_selection/traits/misc.rs b/compiler/rustc_trait_selection/src/traits/misc.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/misc.rs
rename to compiler/rustc_trait_selection/src/traits/misc.rs
diff --git a/src/librustc_trait_selection/traits/mod.rs b/compiler/rustc_trait_selection/src/traits/mod.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/mod.rs
rename to compiler/rustc_trait_selection/src/traits/mod.rs
diff --git a/src/librustc_trait_selection/traits/object_safety.rs b/compiler/rustc_trait_selection/src/traits/object_safety.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/object_safety.rs
rename to compiler/rustc_trait_selection/src/traits/object_safety.rs
diff --git a/src/librustc_trait_selection/traits/on_unimplemented.rs b/compiler/rustc_trait_selection/src/traits/on_unimplemented.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/on_unimplemented.rs
rename to compiler/rustc_trait_selection/src/traits/on_unimplemented.rs
diff --git a/src/librustc_trait_selection/traits/project.rs b/compiler/rustc_trait_selection/src/traits/project.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/project.rs
rename to compiler/rustc_trait_selection/src/traits/project.rs
diff --git a/src/librustc_trait_selection/traits/query/dropck_outlives.rs b/compiler/rustc_trait_selection/src/traits/query/dropck_outlives.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/query/dropck_outlives.rs
rename to compiler/rustc_trait_selection/src/traits/query/dropck_outlives.rs
diff --git a/src/librustc_trait_selection/traits/query/evaluate_obligation.rs b/compiler/rustc_trait_selection/src/traits/query/evaluate_obligation.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/query/evaluate_obligation.rs
rename to compiler/rustc_trait_selection/src/traits/query/evaluate_obligation.rs
diff --git a/src/librustc_trait_selection/traits/query/method_autoderef.rs b/compiler/rustc_trait_selection/src/traits/query/method_autoderef.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/query/method_autoderef.rs
rename to compiler/rustc_trait_selection/src/traits/query/method_autoderef.rs
diff --git a/src/librustc_trait_selection/traits/query/mod.rs b/compiler/rustc_trait_selection/src/traits/query/mod.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/query/mod.rs
rename to compiler/rustc_trait_selection/src/traits/query/mod.rs
diff --git a/src/librustc_trait_selection/traits/query/normalize.rs b/compiler/rustc_trait_selection/src/traits/query/normalize.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/query/normalize.rs
rename to compiler/rustc_trait_selection/src/traits/query/normalize.rs
diff --git a/src/librustc_trait_selection/traits/query/outlives_bounds.rs b/compiler/rustc_trait_selection/src/traits/query/outlives_bounds.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/query/outlives_bounds.rs
rename to compiler/rustc_trait_selection/src/traits/query/outlives_bounds.rs
diff --git a/src/librustc_trait_selection/traits/query/type_op/ascribe_user_type.rs b/compiler/rustc_trait_selection/src/traits/query/type_op/ascribe_user_type.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/query/type_op/ascribe_user_type.rs
rename to compiler/rustc_trait_selection/src/traits/query/type_op/ascribe_user_type.rs
diff --git a/src/librustc_trait_selection/traits/query/type_op/custom.rs b/compiler/rustc_trait_selection/src/traits/query/type_op/custom.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/query/type_op/custom.rs
rename to compiler/rustc_trait_selection/src/traits/query/type_op/custom.rs
diff --git a/src/librustc_trait_selection/traits/query/type_op/eq.rs b/compiler/rustc_trait_selection/src/traits/query/type_op/eq.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/query/type_op/eq.rs
rename to compiler/rustc_trait_selection/src/traits/query/type_op/eq.rs
diff --git a/src/librustc_trait_selection/traits/query/type_op/implied_outlives_bounds.rs b/compiler/rustc_trait_selection/src/traits/query/type_op/implied_outlives_bounds.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/query/type_op/implied_outlives_bounds.rs
rename to compiler/rustc_trait_selection/src/traits/query/type_op/implied_outlives_bounds.rs
diff --git a/src/librustc_trait_selection/traits/query/type_op/mod.rs b/compiler/rustc_trait_selection/src/traits/query/type_op/mod.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/query/type_op/mod.rs
rename to compiler/rustc_trait_selection/src/traits/query/type_op/mod.rs
diff --git a/src/librustc_trait_selection/traits/query/type_op/normalize.rs b/compiler/rustc_trait_selection/src/traits/query/type_op/normalize.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/query/type_op/normalize.rs
rename to compiler/rustc_trait_selection/src/traits/query/type_op/normalize.rs
diff --git a/src/librustc_trait_selection/traits/query/type_op/outlives.rs b/compiler/rustc_trait_selection/src/traits/query/type_op/outlives.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/query/type_op/outlives.rs
rename to compiler/rustc_trait_selection/src/traits/query/type_op/outlives.rs
diff --git a/src/librustc_trait_selection/traits/query/type_op/prove_predicate.rs b/compiler/rustc_trait_selection/src/traits/query/type_op/prove_predicate.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/query/type_op/prove_predicate.rs
rename to compiler/rustc_trait_selection/src/traits/query/type_op/prove_predicate.rs
diff --git a/src/librustc_trait_selection/traits/query/type_op/subtype.rs b/compiler/rustc_trait_selection/src/traits/query/type_op/subtype.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/query/type_op/subtype.rs
rename to compiler/rustc_trait_selection/src/traits/query/type_op/subtype.rs
diff --git a/src/librustc_trait_selection/traits/select/candidate_assembly.rs b/compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/select/candidate_assembly.rs
rename to compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs
diff --git a/src/librustc_trait_selection/traits/select/confirmation.rs b/compiler/rustc_trait_selection/src/traits/select/confirmation.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/select/confirmation.rs
rename to compiler/rustc_trait_selection/src/traits/select/confirmation.rs
diff --git a/src/librustc_trait_selection/traits/select/mod.rs b/compiler/rustc_trait_selection/src/traits/select/mod.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/select/mod.rs
rename to compiler/rustc_trait_selection/src/traits/select/mod.rs
diff --git a/src/librustc_trait_selection/traits/specialize/mod.rs b/compiler/rustc_trait_selection/src/traits/specialize/mod.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/specialize/mod.rs
rename to compiler/rustc_trait_selection/src/traits/specialize/mod.rs
diff --git a/src/librustc_trait_selection/traits/specialize/specialization_graph.rs b/compiler/rustc_trait_selection/src/traits/specialize/specialization_graph.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/specialize/specialization_graph.rs
rename to compiler/rustc_trait_selection/src/traits/specialize/specialization_graph.rs
diff --git a/src/librustc_trait_selection/traits/structural_match.rs b/compiler/rustc_trait_selection/src/traits/structural_match.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/structural_match.rs
rename to compiler/rustc_trait_selection/src/traits/structural_match.rs
diff --git a/src/librustc_trait_selection/traits/util.rs b/compiler/rustc_trait_selection/src/traits/util.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/util.rs
rename to compiler/rustc_trait_selection/src/traits/util.rs
diff --git a/src/librustc_trait_selection/traits/wf.rs b/compiler/rustc_trait_selection/src/traits/wf.rs
similarity index 100%
rename from src/librustc_trait_selection/traits/wf.rs
rename to compiler/rustc_trait_selection/src/traits/wf.rs
diff --git a/compiler/rustc_traits/Cargo.toml b/compiler/rustc_traits/Cargo.toml
new file mode 100644
index 0000000000000..2d63fc51220e1
--- /dev/null
+++ b/compiler/rustc_traits/Cargo.toml
@@ -0,0 +1,19 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_traits"
+version = "0.0.0"
+edition = "2018"
+
+[dependencies]
+tracing = "0.1"
+rustc_middle = { path = "../rustc_middle" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_index = { path = "../rustc_index" }
+rustc_ast = { path = "../rustc_ast" }
+rustc_span = { path = "../rustc_span" }
+chalk-ir = "0.14.0"
+chalk-solve = "0.14.0"
+smallvec = { version = "1.0", features = ["union", "may_dangle"] }
+rustc_infer = { path = "../rustc_infer" }
+rustc_trait_selection = { path = "../rustc_trait_selection" }
diff --git a/src/librustc_traits/chalk/db.rs b/compiler/rustc_traits/src/chalk/db.rs
similarity index 100%
rename from src/librustc_traits/chalk/db.rs
rename to compiler/rustc_traits/src/chalk/db.rs
diff --git a/src/librustc_traits/chalk/lowering.rs b/compiler/rustc_traits/src/chalk/lowering.rs
similarity index 100%
rename from src/librustc_traits/chalk/lowering.rs
rename to compiler/rustc_traits/src/chalk/lowering.rs
diff --git a/src/librustc_traits/chalk/mod.rs b/compiler/rustc_traits/src/chalk/mod.rs
similarity index 100%
rename from src/librustc_traits/chalk/mod.rs
rename to compiler/rustc_traits/src/chalk/mod.rs
diff --git a/src/librustc_traits/dropck_outlives.rs b/compiler/rustc_traits/src/dropck_outlives.rs
similarity index 100%
rename from src/librustc_traits/dropck_outlives.rs
rename to compiler/rustc_traits/src/dropck_outlives.rs
diff --git a/src/librustc_traits/evaluate_obligation.rs b/compiler/rustc_traits/src/evaluate_obligation.rs
similarity index 100%
rename from src/librustc_traits/evaluate_obligation.rs
rename to compiler/rustc_traits/src/evaluate_obligation.rs
diff --git a/src/librustc_traits/implied_outlives_bounds.rs b/compiler/rustc_traits/src/implied_outlives_bounds.rs
similarity index 100%
rename from src/librustc_traits/implied_outlives_bounds.rs
rename to compiler/rustc_traits/src/implied_outlives_bounds.rs
diff --git a/src/librustc_traits/lib.rs b/compiler/rustc_traits/src/lib.rs
similarity index 100%
rename from src/librustc_traits/lib.rs
rename to compiler/rustc_traits/src/lib.rs
diff --git a/src/librustc_traits/normalize_erasing_regions.rs b/compiler/rustc_traits/src/normalize_erasing_regions.rs
similarity index 100%
rename from src/librustc_traits/normalize_erasing_regions.rs
rename to compiler/rustc_traits/src/normalize_erasing_regions.rs
diff --git a/src/librustc_traits/normalize_projection_ty.rs b/compiler/rustc_traits/src/normalize_projection_ty.rs
similarity index 100%
rename from src/librustc_traits/normalize_projection_ty.rs
rename to compiler/rustc_traits/src/normalize_projection_ty.rs
diff --git a/src/librustc_traits/type_op.rs b/compiler/rustc_traits/src/type_op.rs
similarity index 100%
rename from src/librustc_traits/type_op.rs
rename to compiler/rustc_traits/src/type_op.rs
diff --git a/compiler/rustc_ty/Cargo.toml b/compiler/rustc_ty/Cargo.toml
new file mode 100644
index 0000000000000..acb011b2dc063
--- /dev/null
+++ b/compiler/rustc_ty/Cargo.toml
@@ -0,0 +1,17 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_ty"
+version = "0.0.0"
+edition = "2018"
+
+[dependencies]
+tracing = "0.1"
+rustc_middle = { path = "../rustc_middle" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_infer = { path = "../rustc_infer" }
+rustc_span = { path = "../rustc_span" }
+rustc_session = { path = "../rustc_session" }
+rustc_target = { path = "../rustc_target" }
+rustc_trait_selection = { path = "../rustc_trait_selection" }
diff --git a/src/librustc_ty/common_traits.rs b/compiler/rustc_ty/src/common_traits.rs
similarity index 100%
rename from src/librustc_ty/common_traits.rs
rename to compiler/rustc_ty/src/common_traits.rs
diff --git a/src/librustc_ty/instance.rs b/compiler/rustc_ty/src/instance.rs
similarity index 100%
rename from src/librustc_ty/instance.rs
rename to compiler/rustc_ty/src/instance.rs
diff --git a/src/librustc_ty/lib.rs b/compiler/rustc_ty/src/lib.rs
similarity index 100%
rename from src/librustc_ty/lib.rs
rename to compiler/rustc_ty/src/lib.rs
diff --git a/src/librustc_ty/needs_drop.rs b/compiler/rustc_ty/src/needs_drop.rs
similarity index 100%
rename from src/librustc_ty/needs_drop.rs
rename to compiler/rustc_ty/src/needs_drop.rs
diff --git a/src/librustc_ty/ty.rs b/compiler/rustc_ty/src/ty.rs
similarity index 100%
rename from src/librustc_ty/ty.rs
rename to compiler/rustc_ty/src/ty.rs
diff --git a/compiler/rustc_typeck/Cargo.toml b/compiler/rustc_typeck/Cargo.toml
new file mode 100644
index 0000000000000..0a6bfaef4319a
--- /dev/null
+++ b/compiler/rustc_typeck/Cargo.toml
@@ -0,0 +1,27 @@
+[package]
+authors = ["The Rust Project Developers"]
+name = "rustc_typeck"
+version = "0.0.0"
+edition = "2018"
+
+[lib]
+test = false
+doctest = false
+
+[dependencies]
+rustc_arena = { path = "../rustc_arena" }
+tracing = "0.1"
+rustc_middle = { path = "../rustc_middle" }
+rustc_attr = { path = "../rustc_attr" }
+rustc_data_structures = { path = "../rustc_data_structures" }
+rustc_errors = { path = "../rustc_errors" }
+rustc_hir = { path = "../rustc_hir" }
+rustc_hir_pretty = { path = "../rustc_hir_pretty" }
+rustc_target = { path = "../rustc_target" }
+rustc_session = { path = "../rustc_session" }
+smallvec = { version = "1.0", features = ["union", "may_dangle"] }
+rustc_ast = { path = "../rustc_ast" }
+rustc_span = { path = "../rustc_span" }
+rustc_index = { path = "../rustc_index" }
+rustc_infer = { path = "../rustc_infer" }
+rustc_trait_selection = { path = "../rustc_trait_selection" }
diff --git a/src/librustc_typeck/README.md b/compiler/rustc_typeck/README.md
similarity index 100%
rename from src/librustc_typeck/README.md
rename to compiler/rustc_typeck/README.md
diff --git a/src/librustc_typeck/astconv/errors.rs b/compiler/rustc_typeck/src/astconv/errors.rs
similarity index 100%
rename from src/librustc_typeck/astconv/errors.rs
rename to compiler/rustc_typeck/src/astconv/errors.rs
diff --git a/src/librustc_typeck/astconv/generics.rs b/compiler/rustc_typeck/src/astconv/generics.rs
similarity index 100%
rename from src/librustc_typeck/astconv/generics.rs
rename to compiler/rustc_typeck/src/astconv/generics.rs
diff --git a/src/librustc_typeck/astconv/mod.rs b/compiler/rustc_typeck/src/astconv/mod.rs
similarity index 100%
rename from src/librustc_typeck/astconv/mod.rs
rename to compiler/rustc_typeck/src/astconv/mod.rs
diff --git a/src/librustc_typeck/bounds.rs b/compiler/rustc_typeck/src/bounds.rs
similarity index 100%
rename from src/librustc_typeck/bounds.rs
rename to compiler/rustc_typeck/src/bounds.rs
diff --git a/src/librustc_typeck/check/_match.rs b/compiler/rustc_typeck/src/check/_match.rs
similarity index 100%
rename from src/librustc_typeck/check/_match.rs
rename to compiler/rustc_typeck/src/check/_match.rs
diff --git a/src/librustc_typeck/check/autoderef.rs b/compiler/rustc_typeck/src/check/autoderef.rs
similarity index 100%
rename from src/librustc_typeck/check/autoderef.rs
rename to compiler/rustc_typeck/src/check/autoderef.rs
diff --git a/src/librustc_typeck/check/callee.rs b/compiler/rustc_typeck/src/check/callee.rs
similarity index 100%
rename from src/librustc_typeck/check/callee.rs
rename to compiler/rustc_typeck/src/check/callee.rs
diff --git a/src/librustc_typeck/check/cast.rs b/compiler/rustc_typeck/src/check/cast.rs
similarity index 100%
rename from src/librustc_typeck/check/cast.rs
rename to compiler/rustc_typeck/src/check/cast.rs
diff --git a/src/librustc_typeck/check/closure.rs b/compiler/rustc_typeck/src/check/closure.rs
similarity index 100%
rename from src/librustc_typeck/check/closure.rs
rename to compiler/rustc_typeck/src/check/closure.rs
diff --git a/src/librustc_typeck/check/coercion.rs b/compiler/rustc_typeck/src/check/coercion.rs
similarity index 100%
rename from src/librustc_typeck/check/coercion.rs
rename to compiler/rustc_typeck/src/check/coercion.rs
diff --git a/src/librustc_typeck/check/compare_method.rs b/compiler/rustc_typeck/src/check/compare_method.rs
similarity index 100%
rename from src/librustc_typeck/check/compare_method.rs
rename to compiler/rustc_typeck/src/check/compare_method.rs
diff --git a/src/librustc_typeck/check/demand.rs b/compiler/rustc_typeck/src/check/demand.rs
similarity index 100%
rename from src/librustc_typeck/check/demand.rs
rename to compiler/rustc_typeck/src/check/demand.rs
diff --git a/src/librustc_typeck/check/dropck.rs b/compiler/rustc_typeck/src/check/dropck.rs
similarity index 100%
rename from src/librustc_typeck/check/dropck.rs
rename to compiler/rustc_typeck/src/check/dropck.rs
diff --git a/src/librustc_typeck/check/expr.rs b/compiler/rustc_typeck/src/check/expr.rs
similarity index 100%
rename from src/librustc_typeck/check/expr.rs
rename to compiler/rustc_typeck/src/check/expr.rs
diff --git a/src/librustc_typeck/check/generator_interior.rs b/compiler/rustc_typeck/src/check/generator_interior.rs
similarity index 100%
rename from src/librustc_typeck/check/generator_interior.rs
rename to compiler/rustc_typeck/src/check/generator_interior.rs
diff --git a/src/librustc_typeck/check/intrinsic.rs b/compiler/rustc_typeck/src/check/intrinsic.rs
similarity index 100%
rename from src/librustc_typeck/check/intrinsic.rs
rename to compiler/rustc_typeck/src/check/intrinsic.rs
diff --git a/src/librustc_typeck/check/method/confirm.rs b/compiler/rustc_typeck/src/check/method/confirm.rs
similarity index 100%
rename from src/librustc_typeck/check/method/confirm.rs
rename to compiler/rustc_typeck/src/check/method/confirm.rs
diff --git a/src/librustc_typeck/check/method/mod.rs b/compiler/rustc_typeck/src/check/method/mod.rs
similarity index 100%
rename from src/librustc_typeck/check/method/mod.rs
rename to compiler/rustc_typeck/src/check/method/mod.rs
diff --git a/src/librustc_typeck/check/method/probe.rs b/compiler/rustc_typeck/src/check/method/probe.rs
similarity index 100%
rename from src/librustc_typeck/check/method/probe.rs
rename to compiler/rustc_typeck/src/check/method/probe.rs
diff --git a/src/librustc_typeck/check/method/suggest.rs b/compiler/rustc_typeck/src/check/method/suggest.rs
similarity index 100%
rename from src/librustc_typeck/check/method/suggest.rs
rename to compiler/rustc_typeck/src/check/method/suggest.rs
diff --git a/src/librustc_typeck/check/mod.rs b/compiler/rustc_typeck/src/check/mod.rs
similarity index 100%
rename from src/librustc_typeck/check/mod.rs
rename to compiler/rustc_typeck/src/check/mod.rs
diff --git a/src/librustc_typeck/check/op.rs b/compiler/rustc_typeck/src/check/op.rs
similarity index 100%
rename from src/librustc_typeck/check/op.rs
rename to compiler/rustc_typeck/src/check/op.rs
diff --git a/src/librustc_typeck/check/pat.rs b/compiler/rustc_typeck/src/check/pat.rs
similarity index 100%
rename from src/librustc_typeck/check/pat.rs
rename to compiler/rustc_typeck/src/check/pat.rs
diff --git a/src/librustc_typeck/check/place_op.rs b/compiler/rustc_typeck/src/check/place_op.rs
similarity index 100%
rename from src/librustc_typeck/check/place_op.rs
rename to compiler/rustc_typeck/src/check/place_op.rs
diff --git a/src/librustc_typeck/check/regionck.rs b/compiler/rustc_typeck/src/check/regionck.rs
similarity index 100%
rename from src/librustc_typeck/check/regionck.rs
rename to compiler/rustc_typeck/src/check/regionck.rs
diff --git a/src/librustc_typeck/check/upvar.rs b/compiler/rustc_typeck/src/check/upvar.rs
similarity index 100%
rename from src/librustc_typeck/check/upvar.rs
rename to compiler/rustc_typeck/src/check/upvar.rs
diff --git a/src/librustc_typeck/check/wfcheck.rs b/compiler/rustc_typeck/src/check/wfcheck.rs
similarity index 100%
rename from src/librustc_typeck/check/wfcheck.rs
rename to compiler/rustc_typeck/src/check/wfcheck.rs
diff --git a/src/librustc_typeck/check/writeback.rs b/compiler/rustc_typeck/src/check/writeback.rs
similarity index 100%
rename from src/librustc_typeck/check/writeback.rs
rename to compiler/rustc_typeck/src/check/writeback.rs
diff --git a/src/librustc_typeck/check_unused.rs b/compiler/rustc_typeck/src/check_unused.rs
similarity index 100%
rename from src/librustc_typeck/check_unused.rs
rename to compiler/rustc_typeck/src/check_unused.rs
diff --git a/src/librustc_typeck/coherence/builtin.rs b/compiler/rustc_typeck/src/coherence/builtin.rs
similarity index 100%
rename from src/librustc_typeck/coherence/builtin.rs
rename to compiler/rustc_typeck/src/coherence/builtin.rs
diff --git a/src/librustc_typeck/coherence/inherent_impls.rs b/compiler/rustc_typeck/src/coherence/inherent_impls.rs
similarity index 100%
rename from src/librustc_typeck/coherence/inherent_impls.rs
rename to compiler/rustc_typeck/src/coherence/inherent_impls.rs
diff --git a/src/librustc_typeck/coherence/inherent_impls_overlap.rs b/compiler/rustc_typeck/src/coherence/inherent_impls_overlap.rs
similarity index 100%
rename from src/librustc_typeck/coherence/inherent_impls_overlap.rs
rename to compiler/rustc_typeck/src/coherence/inherent_impls_overlap.rs
diff --git a/src/librustc_typeck/coherence/mod.rs b/compiler/rustc_typeck/src/coherence/mod.rs
similarity index 100%
rename from src/librustc_typeck/coherence/mod.rs
rename to compiler/rustc_typeck/src/coherence/mod.rs
diff --git a/src/librustc_typeck/coherence/orphan.rs b/compiler/rustc_typeck/src/coherence/orphan.rs
similarity index 100%
rename from src/librustc_typeck/coherence/orphan.rs
rename to compiler/rustc_typeck/src/coherence/orphan.rs
diff --git a/src/librustc_typeck/coherence/unsafety.rs b/compiler/rustc_typeck/src/coherence/unsafety.rs
similarity index 100%
rename from src/librustc_typeck/coherence/unsafety.rs
rename to compiler/rustc_typeck/src/coherence/unsafety.rs
diff --git a/src/librustc_typeck/collect.rs b/compiler/rustc_typeck/src/collect.rs
similarity index 100%
rename from src/librustc_typeck/collect.rs
rename to compiler/rustc_typeck/src/collect.rs
diff --git a/src/librustc_typeck/collect/type_of.rs b/compiler/rustc_typeck/src/collect/type_of.rs
similarity index 100%
rename from src/librustc_typeck/collect/type_of.rs
rename to compiler/rustc_typeck/src/collect/type_of.rs
diff --git a/src/librustc_typeck/constrained_generic_params.rs b/compiler/rustc_typeck/src/constrained_generic_params.rs
similarity index 100%
rename from src/librustc_typeck/constrained_generic_params.rs
rename to compiler/rustc_typeck/src/constrained_generic_params.rs
diff --git a/src/librustc_typeck/expr_use_visitor.rs b/compiler/rustc_typeck/src/expr_use_visitor.rs
similarity index 100%
rename from src/librustc_typeck/expr_use_visitor.rs
rename to compiler/rustc_typeck/src/expr_use_visitor.rs
diff --git a/src/librustc_typeck/impl_wf_check.rs b/compiler/rustc_typeck/src/impl_wf_check.rs
similarity index 100%
rename from src/librustc_typeck/impl_wf_check.rs
rename to compiler/rustc_typeck/src/impl_wf_check.rs
diff --git a/src/librustc_typeck/impl_wf_check/min_specialization.rs b/compiler/rustc_typeck/src/impl_wf_check/min_specialization.rs
similarity index 100%
rename from src/librustc_typeck/impl_wf_check/min_specialization.rs
rename to compiler/rustc_typeck/src/impl_wf_check/min_specialization.rs
diff --git a/src/librustc_typeck/lib.rs b/compiler/rustc_typeck/src/lib.rs
similarity index 100%
rename from src/librustc_typeck/lib.rs
rename to compiler/rustc_typeck/src/lib.rs
diff --git a/src/librustc_typeck/mem_categorization.rs b/compiler/rustc_typeck/src/mem_categorization.rs
similarity index 100%
rename from src/librustc_typeck/mem_categorization.rs
rename to compiler/rustc_typeck/src/mem_categorization.rs
diff --git a/src/librustc_typeck/outlives/explicit.rs b/compiler/rustc_typeck/src/outlives/explicit.rs
similarity index 100%
rename from src/librustc_typeck/outlives/explicit.rs
rename to compiler/rustc_typeck/src/outlives/explicit.rs
diff --git a/src/librustc_typeck/outlives/implicit_infer.rs b/compiler/rustc_typeck/src/outlives/implicit_infer.rs
similarity index 100%
rename from src/librustc_typeck/outlives/implicit_infer.rs
rename to compiler/rustc_typeck/src/outlives/implicit_infer.rs
diff --git a/src/librustc_typeck/outlives/mod.rs b/compiler/rustc_typeck/src/outlives/mod.rs
similarity index 100%
rename from src/librustc_typeck/outlives/mod.rs
rename to compiler/rustc_typeck/src/outlives/mod.rs
diff --git a/src/librustc_typeck/outlives/test.rs b/compiler/rustc_typeck/src/outlives/test.rs
similarity index 100%
rename from src/librustc_typeck/outlives/test.rs
rename to compiler/rustc_typeck/src/outlives/test.rs
diff --git a/src/librustc_typeck/outlives/utils.rs b/compiler/rustc_typeck/src/outlives/utils.rs
similarity index 100%
rename from src/librustc_typeck/outlives/utils.rs
rename to compiler/rustc_typeck/src/outlives/utils.rs
diff --git a/src/librustc_typeck/structured_errors.rs b/compiler/rustc_typeck/src/structured_errors.rs
similarity index 100%
rename from src/librustc_typeck/structured_errors.rs
rename to compiler/rustc_typeck/src/structured_errors.rs
diff --git a/src/librustc_typeck/variance/constraints.rs b/compiler/rustc_typeck/src/variance/constraints.rs
similarity index 100%
rename from src/librustc_typeck/variance/constraints.rs
rename to compiler/rustc_typeck/src/variance/constraints.rs
diff --git a/src/librustc_typeck/variance/mod.rs b/compiler/rustc_typeck/src/variance/mod.rs
similarity index 100%
rename from src/librustc_typeck/variance/mod.rs
rename to compiler/rustc_typeck/src/variance/mod.rs
diff --git a/src/librustc_typeck/variance/solve.rs b/compiler/rustc_typeck/src/variance/solve.rs
similarity index 100%
rename from src/librustc_typeck/variance/solve.rs
rename to compiler/rustc_typeck/src/variance/solve.rs
diff --git a/src/librustc_typeck/variance/terms.rs b/compiler/rustc_typeck/src/variance/terms.rs
similarity index 100%
rename from src/librustc_typeck/variance/terms.rs
rename to compiler/rustc_typeck/src/variance/terms.rs
diff --git a/src/librustc_typeck/variance/test.rs b/compiler/rustc_typeck/src/variance/test.rs
similarity index 100%
rename from src/librustc_typeck/variance/test.rs
rename to compiler/rustc_typeck/src/variance/test.rs
diff --git a/src/librustc_typeck/variance/xform.rs b/compiler/rustc_typeck/src/variance/xform.rs
similarity index 100%
rename from src/librustc_typeck/variance/xform.rs
rename to compiler/rustc_typeck/src/variance/xform.rs
diff --git a/src/bootstrap/README.md b/src/bootstrap/README.md
index 86de3d5c6d8d8..975b8be02c898 100644
--- a/src/bootstrap/README.md
+++ b/src/bootstrap/README.md
@@ -274,7 +274,7 @@ directory, but rather the compiler is split into three different Cargo projects:
 
 * `library/std` - the standard library
 * `library/test` - testing support, depends on libstd
-* `src/rustc` - the actual compiler itself
+* `compiler/rustc` - the actual compiler itself
 
 Each "project" has a corresponding Cargo.lock file with all dependencies, and
 this means that building the compiler involves running Cargo three times. The
diff --git a/src/bootstrap/builder/tests.rs b/src/bootstrap/builder/tests.rs
index 5b6c327896ba8..c395e1da6dd3b 100644
--- a/src/bootstrap/builder/tests.rs
+++ b/src/bootstrap/builder/tests.rs
@@ -371,7 +371,7 @@ mod dist {
         let mut builder = Builder::new(&build);
         builder.run_step_descriptions(
             &Builder::get_step_descriptions(Kind::Build),
-            &["src/rustc".into(), "library/std".into()],
+            &["compiler/rustc".into(), "library/std".into()],
         );
 
         let a = TargetSelection::from_user("A");
diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs
index 373e240cb8e3e..bf06b61d1d781 100644
--- a/src/bootstrap/compile.rs
+++ b/src/bootstrap/compile.rs
@@ -449,7 +449,7 @@ impl Step for Rustc {
     const DEFAULT: bool = false;
 
     fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
-        run.path("src/rustc")
+        run.path("compiler/rustc")
     }
 
     fn make_run(run: RunConfig<'_>) {
@@ -524,7 +524,7 @@ pub fn rustc_cargo(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetSelec
         .arg("--features")
         .arg(builder.rustc_features())
         .arg("--manifest-path")
-        .arg(builder.src.join("src/rustc/Cargo.toml"));
+        .arg(builder.src.join("compiler/rustc/Cargo.toml"));
     rustc_cargo_env(builder, cargo, target);
 }
 
diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs
index d021feafbe416..c1022099a0230 100644
--- a/src/bootstrap/dist.rs
+++ b/src/bootstrap/dist.rs
@@ -1097,7 +1097,7 @@ impl Step for PlainSourceTarball {
             "Cargo.toml",
             "Cargo.lock",
         ];
-        let src_dirs = ["src", "library"];
+        let src_dirs = ["src", "compiler", "library"];
 
         copy_src_dirs(builder, &builder.src, &src_dirs, &[], &plain_dst_src);
 
diff --git a/src/bootstrap/doc.rs b/src/bootstrap/doc.rs
index 2a8f43950db3c..d7f3a888edd89 100644
--- a/src/bootstrap/doc.rs
+++ b/src/bootstrap/doc.rs
@@ -694,6 +694,7 @@ impl Step for UnstableBookGen {
         builder.remove_dir(&out);
         let mut cmd = builder.tool_cmd(Tool::UnstableBookGen);
         cmd.arg(builder.src.join("library"));
+        cmd.arg(builder.src.join("compiler"));
         cmd.arg(builder.src.join("src"));
         cmd.arg(out);
 
diff --git a/src/bootstrap/flags.rs b/src/bootstrap/flags.rs
index 38b3a32e3b5fb..2db4bb07a9ff1 100644
--- a/src/bootstrap/flags.rs
+++ b/src/bootstrap/flags.rs
@@ -385,7 +385,7 @@ Arguments:
         ./x.py test src/test/ui --bless
         ./x.py test src/test/ui --compare-mode nll
 
-    Note that `test src/test/* --stage N` does NOT depend on `build src/rustc --stage N`;
+    Note that `test src/test/* --stage N` does NOT depend on `build compiler/rustc --stage N`;
     just like `build library/std --stage N` it tests the compiler produced by the previous
     stage.
 
diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs
index ac833a55d4c53..a7c9b99f45f3d 100644
--- a/src/bootstrap/test.rs
+++ b/src/bootstrap/test.rs
@@ -734,7 +734,7 @@ impl Step for Tidy {
     /// for the `dev` or `nightly` channels.
     fn run(self, builder: &Builder<'_>) {
         let mut cmd = builder.tool_cmd(Tool::Tidy);
-        cmd.arg(builder.src.join("src"));
+        cmd.arg(&builder.src);
         cmd.arg(&builder.initial_cargo);
         if builder.is_verbose() {
             cmd.arg("--verbose");
diff --git a/src/librustc_ast/Cargo.toml b/src/librustc_ast/Cargo.toml
deleted file mode 100644
index 73c5e33753f29..0000000000000
--- a/src/librustc_ast/Cargo.toml
+++ /dev/null
@@ -1,21 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_ast"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_ast"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-rustc_serialize = { path = "../librustc_serialize" }
-tracing = "0.1"
-rustc_span = { path = "../librustc_span" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_index = { path = "../librustc_index" }
-rustc_lexer = { path = "../librustc_lexer" }
-rustc_macros = { path = "../librustc_macros" }
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
-bitflags = "1.2.1"
diff --git a/src/librustc_ast_lowering/Cargo.toml b/src/librustc_ast_lowering/Cargo.toml
deleted file mode 100644
index bf7e69a31abcb..0000000000000
--- a/src/librustc_ast_lowering/Cargo.toml
+++ /dev/null
@@ -1,24 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_ast_lowering"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_ast_lowering"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-rustc_arena = { path = "../librustc_arena" }
-tracing = "0.1"
-rustc_ast_pretty = { path = "../librustc_ast_pretty" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_target = { path = "../librustc_target" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_index = { path = "../librustc_index" }
-rustc_span = { path = "../librustc_span" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_session = { path = "../librustc_session" }
-rustc_ast = { path = "../librustc_ast" }
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
diff --git a/src/librustc_ast_passes/Cargo.toml b/src/librustc_ast_passes/Cargo.toml
deleted file mode 100644
index 6db9bce3164bb..0000000000000
--- a/src/librustc_ast_passes/Cargo.toml
+++ /dev/null
@@ -1,22 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_ast_passes"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_ast_passes"
-path = "lib.rs"
-
-[dependencies]
-itertools = "0.8"
-tracing = "0.1"
-rustc_ast_pretty = { path = "../librustc_ast_pretty" }
-rustc_attr = { path = "../librustc_attr" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_feature = { path = "../librustc_feature" }
-rustc_parse = { path = "../librustc_parse" }
-rustc_session = { path = "../librustc_session" }
-rustc_span = { path = "../librustc_span" }
-rustc_ast = { path = "../librustc_ast" }
diff --git a/src/librustc_ast_pretty/Cargo.toml b/src/librustc_ast_pretty/Cargo.toml
deleted file mode 100644
index d26205c791dc0..0000000000000
--- a/src/librustc_ast_pretty/Cargo.toml
+++ /dev/null
@@ -1,16 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_ast_pretty"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_ast_pretty"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-tracing = "0.1"
-rustc_span = { path = "../librustc_span" }
-rustc_ast = { path = "../librustc_ast" }
-rustc_target = { path = "../librustc_target" }
diff --git a/src/librustc_attr/Cargo.toml b/src/librustc_attr/Cargo.toml
deleted file mode 100644
index 35bdf747f08d7..0000000000000
--- a/src/librustc_attr/Cargo.toml
+++ /dev/null
@@ -1,23 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_attr"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_attr"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-rustc_ast_pretty = { path = "../librustc_ast_pretty" }
-rustc_serialize = { path = "../librustc_serialize" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_span = { path = "../librustc_span" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_feature = { path = "../librustc_feature" }
-rustc_lexer = { path = "../librustc_lexer" }
-rustc_macros = { path = "../librustc_macros" }
-rustc_session = { path = "../librustc_session" }
-rustc_ast = { path = "../librustc_ast" }
-version_check = "0.9"
diff --git a/src/librustc_builtin_macros/Cargo.toml b/src/librustc_builtin_macros/Cargo.toml
deleted file mode 100644
index dee6fed317e90..0000000000000
--- a/src/librustc_builtin_macros/Cargo.toml
+++ /dev/null
@@ -1,26 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_builtin_macros"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_builtin_macros"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-rustc_parse_format = { path = "../librustc_parse_format" }
-tracing = "0.1"
-rustc_ast_pretty = { path = "../librustc_ast_pretty" }
-rustc_attr = { path = "../librustc_attr" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_feature = { path = "../librustc_feature" }
-rustc_parse = { path = "../librustc_parse" }
-rustc_target = { path = "../librustc_target" }
-rustc_session = { path = "../librustc_session" }
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
-rustc_ast = { path = "../librustc_ast" }
-rustc_expand = { path = "../librustc_expand" }
-rustc_span = { path = "../librustc_span" }
diff --git a/src/librustc_codegen_llvm/Cargo.toml b/src/librustc_codegen_llvm/Cargo.toml
deleted file mode 100644
index d8ccaf16e28bc..0000000000000
--- a/src/librustc_codegen_llvm/Cargo.toml
+++ /dev/null
@@ -1,36 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_codegen_llvm"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_codegen_llvm"
-path = "lib.rs"
-test = false
-doctest = false
-
-[dependencies]
-bitflags = "1.0"
-libc = "0.2"
-measureme = "0.7.1"
-snap = "1"
-tracing = "0.1"
-rustc_middle = { path = "../librustc_middle" }
-rustc-demangle = "0.1"
-rustc_attr = { path = "../librustc_attr" }
-rustc_codegen_ssa = { path = "../librustc_codegen_ssa" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_feature = { path = "../librustc_feature" }
-rustc_fs_util = { path = "../librustc_fs_util" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_incremental = { path = "../librustc_incremental" }
-rustc_index = { path = "../librustc_index" }
-rustc_llvm = { path = "../librustc_llvm" }
-rustc_session = { path = "../librustc_session" }
-rustc_serialize = { path = "../librustc_serialize" }
-rustc_target = { path = "../librustc_target" }
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
-rustc_ast = { path = "../librustc_ast" }
-rustc_span = { path = "../librustc_span" }
diff --git a/src/librustc_codegen_ssa/Cargo.toml b/src/librustc_codegen_ssa/Cargo.toml
deleted file mode 100644
index 5707d3cd0ed21..0000000000000
--- a/src/librustc_codegen_ssa/Cargo.toml
+++ /dev/null
@@ -1,38 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_codegen_ssa"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_codegen_ssa"
-path = "lib.rs"
-test = false
-
-[dependencies]
-bitflags = "1.2.1"
-cc = "1.0.1"
-num_cpus = "1.0"
-memmap = "0.7"
-tracing = "0.1"
-libc = "0.2.50"
-jobserver = "0.1.11"
-tempfile = "3.1"
-pathdiff = "0.2.0"
-
-rustc_serialize = { path = "../librustc_serialize" }
-rustc_ast = { path = "../librustc_ast" }
-rustc_span = { path = "../librustc_span" }
-rustc_middle = { path = "../librustc_middle" }
-rustc_apfloat = { path = "../librustc_apfloat" }
-rustc_attr = { path = "../librustc_attr" }
-rustc_symbol_mangling = { path = "../librustc_symbol_mangling" }
-rustc_data_structures = { path = "../librustc_data_structures"}
-rustc_errors = { path = "../librustc_errors" }
-rustc_fs_util = { path = "../librustc_fs_util" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_incremental = { path = "../librustc_incremental" }
-rustc_index = { path = "../librustc_index" }
-rustc_macros = { path = "../librustc_macros" }
-rustc_target = { path = "../librustc_target" }
-rustc_session = { path = "../librustc_session" }
diff --git a/src/librustc_driver/Cargo.toml b/src/librustc_driver/Cargo.toml
deleted file mode 100644
index 46331c63113f9..0000000000000
--- a/src/librustc_driver/Cargo.toml
+++ /dev/null
@@ -1,43 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_driver"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_driver"
-path = "lib.rs"
-crate-type = ["dylib"]
-
-[dependencies]
-lazy_static = "1.0"
-libc = "0.2"
-tracing = { version = "0.1.18", features = ["release_max_level_info"]  }
-tracing-subscriber = { version = "0.2.10", default-features = false, features = ["fmt", "env-filter", "smallvec", "parking_lot", "ansi"] }
-rustc_middle = { path = "../librustc_middle" }
-rustc_ast_pretty = { path = "../librustc_ast_pretty" }
-rustc_target = { path = "../librustc_target" }
-rustc_lint = { path = "../librustc_lint" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_feature = { path = "../librustc_feature" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_hir_pretty = { path = "../librustc_hir_pretty" }
-rustc_metadata = { path = "../librustc_metadata" }
-rustc_mir = { path = "../librustc_mir" }
-rustc_parse = { path = "../librustc_parse" }
-rustc_plugin_impl = { path = "../librustc_plugin_impl" }
-rustc_save_analysis = { path = "../librustc_save_analysis" }
-rustc_codegen_ssa = { path = "../librustc_codegen_ssa" }
-rustc_session = { path = "../librustc_session" }
-rustc_error_codes = { path = "../librustc_error_codes" }
-rustc_interface = { path = "../librustc_interface" }
-rustc_serialize = { path = "../librustc_serialize" }
-rustc_ast = { path = "../librustc_ast" }
-rustc_span = { path = "../librustc_span" }
-
-[target.'cfg(windows)'.dependencies]
-winapi = { version = "0.3", features = ["consoleapi", "debugapi", "processenv"] }
-
-[features]
-llvm = ['rustc_interface/llvm']
diff --git a/src/librustc_expand/Cargo.toml b/src/librustc_expand/Cargo.toml
deleted file mode 100644
index 55a1862971b67..0000000000000
--- a/src/librustc_expand/Cargo.toml
+++ /dev/null
@@ -1,28 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_expand"
-version = "0.0.0"
-edition = "2018"
-build = false
-
-[lib]
-name = "rustc_expand"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-rustc_serialize = { path = "../librustc_serialize" }
-tracing = "0.1"
-rustc_span = { path = "../librustc_span" }
-rustc_ast_pretty = { path = "../librustc_ast_pretty" }
-rustc_ast_passes = { path = "../librustc_ast_passes" }
-rustc_attr = { path = "../librustc_attr" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_feature = { path = "../librustc_feature" }
-rustc_macros = { path = "../librustc_macros" }
-rustc_lexer = { path = "../librustc_lexer" }
-rustc_parse = { path = "../librustc_parse" }
-rustc_session = { path = "../librustc_session" }
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
-rustc_ast = { path = "../librustc_ast" }
diff --git a/src/librustc_hir/Cargo.toml b/src/librustc_hir/Cargo.toml
deleted file mode 100644
index a473a8edcdd5d..0000000000000
--- a/src/librustc_hir/Cargo.toml
+++ /dev/null
@@ -1,22 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_hir"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_hir"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-rustc_target = { path = "../librustc_target" }
-rustc_macros = { path = "../librustc_macros" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_index = { path = "../librustc_index" }
-rustc_span = { path = "../librustc_span" }
-rustc_serialize = { path = "../librustc_serialize" }
-rustc_ast = { path = "../librustc_ast" }
-lazy_static = "1"
-tracing = "0.1"
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
diff --git a/src/librustc_hir_pretty/Cargo.toml b/src/librustc_hir_pretty/Cargo.toml
deleted file mode 100644
index ccd3e9b6e43c3..0000000000000
--- a/src/librustc_hir_pretty/Cargo.toml
+++ /dev/null
@@ -1,17 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_hir_pretty"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_hir_pretty"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-rustc_ast_pretty = { path = "../librustc_ast_pretty" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_target = { path = "../librustc_target" }
-rustc_span = { path = "../librustc_span" }
-rustc_ast = { path = "../librustc_ast" }
diff --git a/src/librustc_incremental/Cargo.toml b/src/librustc_incremental/Cargo.toml
deleted file mode 100644
index 1f7e3725412a2..0000000000000
--- a/src/librustc_incremental/Cargo.toml
+++ /dev/null
@@ -1,24 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_incremental"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_incremental"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-rustc_graphviz = { path = "../librustc_graphviz" }
-tracing = "0.1"
-rand = "0.7"
-rustc_middle = { path = "../librustc_middle" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_serialize = { path = "../librustc_serialize" }
-rustc_ast = { path = "../librustc_ast" }
-rustc_macros = { path = "../librustc_macros" }
-rustc_span = { path = "../librustc_span" }
-rustc_fs_util = { path = "../librustc_fs_util" }
-rustc_session = { path = "../librustc_session" }
diff --git a/src/librustc_infer/Cargo.toml b/src/librustc_infer/Cargo.toml
deleted file mode 100644
index e1698d66323c3..0000000000000
--- a/src/librustc_infer/Cargo.toml
+++ /dev/null
@@ -1,26 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_infer"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_infer"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-rustc_graphviz = { path = "../librustc_graphviz" }
-tracing = "0.1"
-rustc_middle = { path = "../librustc_middle" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_index = { path = "../librustc_index" }
-rustc_macros = { path = "../librustc_macros" }
-rustc_session = { path = "../librustc_session" }
-rustc_serialize = { path = "../librustc_serialize" }
-rustc_span = { path = "../librustc_span" }
-rustc_target = { path = "../librustc_target" }
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
-rustc_ast = { path = "../librustc_ast" }
diff --git a/src/librustc_interface/Cargo.toml b/src/librustc_interface/Cargo.toml
deleted file mode 100644
index b9837c6ade9a7..0000000000000
--- a/src/librustc_interface/Cargo.toml
+++ /dev/null
@@ -1,57 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_interface"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_interface"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-libc = "0.2"
-tracing = "0.1"
-rayon = { version = "0.3.0", package = "rustc-rayon" }
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
-rustc_ast = { path = "../librustc_ast" }
-rustc_attr = { path = "../librustc_attr" }
-rustc_builtin_macros = { path = "../librustc_builtin_macros" }
-rustc_expand = { path = "../librustc_expand" }
-rustc_parse = { path = "../librustc_parse" }
-rustc_session = { path = "../librustc_session" }
-rustc_span = { path = "../librustc_span" }
-rustc_serialize = { path = "../librustc_serialize" }
-rustc_middle = { path = "../librustc_middle" }
-rustc_ast_lowering = { path = "../librustc_ast_lowering" }
-rustc_ast_passes = { path = "../librustc_ast_passes" }
-rustc_incremental = { path = "../librustc_incremental" }
-rustc_traits = { path = "../librustc_traits" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_codegen_ssa = { path = "../librustc_codegen_ssa" }
-rustc_symbol_mangling = { path = "../librustc_symbol_mangling" }
-rustc_codegen_llvm = { path = "../librustc_codegen_llvm", optional = true }
-rustc_hir = { path = "../librustc_hir" }
-rustc_metadata = { path = "../librustc_metadata" }
-rustc_mir = { path = "../librustc_mir" }
-rustc_mir_build = { path = "../librustc_mir_build" }
-rustc_passes = { path = "../librustc_passes" }
-rustc_typeck = { path = "../librustc_typeck" }
-rustc_lint = { path = "../librustc_lint" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_plugin_impl = { path = "../librustc_plugin_impl" }
-rustc_privacy = { path = "../librustc_privacy" }
-rustc_resolve = { path = "../librustc_resolve" }
-rustc_trait_selection = { path = "../librustc_trait_selection" }
-rustc_ty = { path = "../librustc_ty" }
-tempfile = "3.0.5"
-once_cell = "1"
-
-[target.'cfg(windows)'.dependencies]
-winapi = { version = "0.3", features = ["libloaderapi"] }
-
-[dev-dependencies]
-rustc_target = { path = "../librustc_target" }
-
-[features]
-llvm = ['rustc_codegen_llvm']
diff --git a/src/librustc_lint/Cargo.toml b/src/librustc_lint/Cargo.toml
deleted file mode 100644
index d779f15f19aab..0000000000000
--- a/src/librustc_lint/Cargo.toml
+++ /dev/null
@@ -1,26 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_lint"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_lint"
-path = "lib.rs"
-
-[dependencies]
-tracing = "0.1"
-unicode-security = "0.0.5"
-rustc_middle = { path = "../librustc_middle" }
-rustc_ast_pretty = { path = "../librustc_ast_pretty" }
-rustc_attr = { path = "../librustc_attr" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_target = { path = "../librustc_target" }
-rustc_ast = { path = "../librustc_ast" }
-rustc_span = { path = "../librustc_span" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_feature = { path = "../librustc_feature" }
-rustc_index = { path = "../librustc_index" }
-rustc_session = { path = "../librustc_session" }
-rustc_trait_selection = { path = "../librustc_trait_selection" }
diff --git a/src/librustc_metadata/Cargo.toml b/src/librustc_metadata/Cargo.toml
deleted file mode 100644
index 76e11bd689c5c..0000000000000
--- a/src/librustc_metadata/Cargo.toml
+++ /dev/null
@@ -1,35 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_metadata"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_metadata"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-libc = "0.2"
-snap = "1"
-tracing = "0.1"
-memmap = "0.7"
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
-rustc_middle = { path = "../librustc_middle" }
-rustc_attr = { path = "../librustc_attr" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_hir_pretty = { path = "../librustc_hir_pretty" }
-rustc_target = { path = "../librustc_target" }
-rustc_index = { path = "../librustc_index" }
-rustc_macros = { path = "../librustc_macros" }
-rustc_serialize = { path = "../librustc_serialize" }
-stable_deref_trait = "1.0.0"
-rustc_ast = { path = "../librustc_ast" }
-rustc_expand = { path = "../librustc_expand" }
-rustc_span = { path = "../librustc_span" }
-rustc_session = { path = "../librustc_session" }
-
-[target.'cfg(windows)'.dependencies]
-winapi = { version = "0.3", features = ["errhandlingapi", "libloaderapi"] }
diff --git a/src/librustc_middle/Cargo.toml b/src/librustc_middle/Cargo.toml
deleted file mode 100644
index 311126361bc5b..0000000000000
--- a/src/librustc_middle/Cargo.toml
+++ /dev/null
@@ -1,35 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_middle"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_middle"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-rustc_arena = { path = "../librustc_arena" }
-bitflags = "1.2.1"
-tracing = "0.1"
-rustc-rayon-core = "0.3.0"
-polonius-engine = "0.12.0"
-rustc_apfloat = { path = "../librustc_apfloat" }
-rustc_attr = { path = "../librustc_attr" }
-rustc_feature = { path = "../librustc_feature" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_target = { path = "../librustc_target" }
-rustc_macros = { path = "../librustc_macros" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_query_system = { path = "../librustc_query_system" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_index = { path = "../librustc_index" }
-rustc_serialize = { path = "../librustc_serialize" }
-rustc_ast = { path = "../librustc_ast" }
-rustc_span = { path = "../librustc_span" }
-byteorder = { version = "1.3" }
-chalk-ir = "0.14.0"
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
-measureme = "0.7.1"
-rustc_session = { path = "../librustc_session" }
diff --git a/src/librustc_mir/Cargo.toml b/src/librustc_mir/Cargo.toml
deleted file mode 100644
index 2693d29e41c4c..0000000000000
--- a/src/librustc_mir/Cargo.toml
+++ /dev/null
@@ -1,35 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_mir"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_mir"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-either = "1.5.0"
-rustc_graphviz = { path = "../librustc_graphviz" }
-itertools = "0.8"
-tracing = "0.1"
-log_settings = "0.1.1"
-polonius-engine = "0.12.0"
-rustc_middle = { path = "../librustc_middle" }
-rustc_attr = { path = "../librustc_attr" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_index = { path = "../librustc_index" }
-rustc_infer = { path = "../librustc_infer" }
-rustc_lexer = { path = "../librustc_lexer" }
-rustc_macros = { path = "../librustc_macros" }
-rustc_serialize = { path = "../librustc_serialize" }
-rustc_session = { path = "../librustc_session" }
-rustc_target = { path = "../librustc_target" }
-rustc_trait_selection = { path = "../librustc_trait_selection" }
-rustc_ast = { path = "../librustc_ast" }
-rustc_span = { path = "../librustc_span" }
-rustc_apfloat = { path = "../librustc_apfloat" }
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
diff --git a/src/librustc_mir_build/Cargo.toml b/src/librustc_mir_build/Cargo.toml
deleted file mode 100644
index 97621f205fbb7..0000000000000
--- a/src/librustc_mir_build/Cargo.toml
+++ /dev/null
@@ -1,29 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_mir_build"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_mir_build"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-rustc_arena = { path = "../librustc_arena" }
-tracing = "0.1"
-rustc_middle = { path = "../librustc_middle" }
-rustc_apfloat = { path = "../librustc_apfloat" }
-rustc_attr = { path = "../librustc_attr" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_index = { path = "../librustc_index" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_infer = { path = "../librustc_infer" }
-rustc_serialize = { path = "../librustc_serialize" }
-rustc_session = { path = "../librustc_session" }
-rustc_span = { path = "../librustc_span" }
-rustc_target = { path = "../librustc_target" }
-rustc_trait_selection = { path = "../librustc_trait_selection" }
-rustc_ast = { path = "../librustc_ast" }
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
diff --git a/src/librustc_parse/Cargo.toml b/src/librustc_parse/Cargo.toml
deleted file mode 100644
index 31d858849af48..0000000000000
--- a/src/librustc_parse/Cargo.toml
+++ /dev/null
@@ -1,24 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_parse"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_parse"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-bitflags = "1.0"
-tracing = "0.1"
-rustc_ast_pretty = { path = "../librustc_ast_pretty" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_feature = { path = "../librustc_feature" }
-rustc_lexer = { path = "../librustc_lexer" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_session = { path = "../librustc_session" }
-rustc_span = { path = "../librustc_span" }
-rustc_ast = { path = "../librustc_ast" }
-unicode-normalization = "0.1.11"
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
diff --git a/src/librustc_parse_format/Cargo.toml b/src/librustc_parse_format/Cargo.toml
deleted file mode 100644
index 646509569f3a5..0000000000000
--- a/src/librustc_parse_format/Cargo.toml
+++ /dev/null
@@ -1,13 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_parse_format"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_parse_format"
-path = "lib.rs"
-
-[dependencies]
-rustc_span = { path = "../librustc_span" }
-rustc_lexer = { path = "../librustc_lexer" }
diff --git a/src/librustc_passes/Cargo.toml b/src/librustc_passes/Cargo.toml
deleted file mode 100644
index db481c0d0d4c2..0000000000000
--- a/src/librustc_passes/Cargo.toml
+++ /dev/null
@@ -1,23 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_passes"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_passes"
-path = "lib.rs"
-
-[dependencies]
-tracing = "0.1"
-rustc_middle = { path = "../librustc_middle" }
-rustc_attr = { path = "../librustc_attr" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_index = { path = "../librustc_index" }
-rustc_session = { path = "../librustc_session" }
-rustc_target = { path = "../librustc_target" }
-rustc_ast = { path = "../librustc_ast" }
-rustc_span = { path = "../librustc_span" }
-rustc_trait_selection = { path = "../librustc_trait_selection" }
diff --git a/src/librustc_plugin_impl/Cargo.toml b/src/librustc_plugin_impl/Cargo.toml
deleted file mode 100644
index 38cfbd48de246..0000000000000
--- a/src/librustc_plugin_impl/Cargo.toml
+++ /dev/null
@@ -1,21 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_plugin_impl"
-version = "0.0.0"
-build = false
-edition = "2018"
-
-[lib]
-name = "rustc_plugin_impl"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-rustc_middle = { path = "../librustc_middle" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_lint = { path = "../librustc_lint" }
-rustc_metadata = { path = "../librustc_metadata" }
-rustc_ast = { path = "../librustc_ast" }
-rustc_session = { path = "../librustc_session" }
-rustc_span = { path = "../librustc_span" }
diff --git a/src/librustc_privacy/Cargo.toml b/src/librustc_privacy/Cargo.toml
deleted file mode 100644
index 3641f0f8a3117..0000000000000
--- a/src/librustc_privacy/Cargo.toml
+++ /dev/null
@@ -1,20 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_privacy"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_privacy"
-path = "lib.rs"
-
-[dependencies]
-rustc_middle = { path = "../librustc_middle" }
-rustc_attr = { path = "../librustc_attr" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_typeck = { path = "../librustc_typeck" }
-rustc_session = { path = "../librustc_session" }
-rustc_span = { path = "../librustc_span" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-tracing = "0.1"
diff --git a/src/librustc_query_system/Cargo.toml b/src/librustc_query_system/Cargo.toml
deleted file mode 100644
index 1e89d379cb77c..0000000000000
--- a/src/librustc_query_system/Cargo.toml
+++ /dev/null
@@ -1,23 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_query_system"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_query_system"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-rustc_arena = { path = "../librustc_arena" }
-tracing = "0.1"
-rustc-rayon-core = "0.3.0"
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_macros = { path = "../librustc_macros" }
-rustc_index = { path = "../librustc_index" }
-rustc_serialize = { path = "../librustc_serialize" }
-rustc_span = { path = "../librustc_span" }
-parking_lot = "0.10"
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
diff --git a/src/librustc_resolve/Cargo.toml b/src/librustc_resolve/Cargo.toml
deleted file mode 100644
index e5260866f29e7..0000000000000
--- a/src/librustc_resolve/Cargo.toml
+++ /dev/null
@@ -1,31 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_resolve"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_resolve"
-path = "lib.rs"
-test = false
-doctest = false
-
-[dependencies]
-bitflags = "1.2.1"
-tracing = "0.1"
-rustc_ast = { path = "../librustc_ast" }
-rustc_arena = { path = "../librustc_arena" }
-rustc_middle = { path = "../librustc_middle" }
-rustc_ast_lowering = { path = "../librustc_ast_lowering" }
-rustc_ast_pretty = { path = "../librustc_ast_pretty" }
-rustc_attr = { path = "../librustc_attr" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_expand = { path = "../librustc_expand" }
-rustc_feature = { path = "../librustc_feature" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_index = { path = "../librustc_index" }
-rustc_metadata = { path = "../librustc_metadata" }
-rustc_session = { path = "../librustc_session" }
-rustc_span = { path = "../librustc_span" }
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
diff --git a/src/librustc_save_analysis/Cargo.toml b/src/librustc_save_analysis/Cargo.toml
deleted file mode 100644
index 979a8da2a9f68..0000000000000
--- a/src/librustc_save_analysis/Cargo.toml
+++ /dev/null
@@ -1,24 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_save_analysis"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_save_analysis"
-path = "lib.rs"
-
-[dependencies]
-tracing = "0.1"
-rustc_middle = { path = "../librustc_middle" }
-rustc_ast = { path = "../librustc_ast" }
-rustc_ast_pretty = { path = "../librustc_ast_pretty" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_hir_pretty = { path = "../librustc_hir_pretty" }
-rustc_lexer = { path = "../librustc_lexer" }
-serde_json = "1"
-rustc_session = { path = "../librustc_session" }
-rustc_span = { path = "../librustc_span" }
-rls-data = "0.19"
-rls-span = "0.5"
diff --git a/src/librustc_session/Cargo.toml b/src/librustc_session/Cargo.toml
deleted file mode 100644
index 208bba1d96228..0000000000000
--- a/src/librustc_session/Cargo.toml
+++ /dev/null
@@ -1,24 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_session"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_session"
-path = "lib.rs"
-
-[dependencies]
-bitflags = "1.2.1"
-getopts = "0.2"
-rustc_macros = { path = "../librustc_macros" }
-tracing = "0.1"
-rustc_errors = { path = "../librustc_errors" }
-rustc_feature = { path = "../librustc_feature" }
-rustc_target = { path = "../librustc_target" }
-rustc_serialize = { path = "../librustc_serialize" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_span = { path = "../librustc_span" }
-rustc_fs_util = { path = "../librustc_fs_util" }
-num_cpus = "1.0"
-rustc_ast = { path = "../librustc_ast" }
diff --git a/src/librustc_span/Cargo.toml b/src/librustc_span/Cargo.toml
deleted file mode 100644
index dd4928d4e324b..0000000000000
--- a/src/librustc_span/Cargo.toml
+++ /dev/null
@@ -1,23 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_span"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_span"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-rustc_serialize = { path = "../librustc_serialize" }
-rustc_macros = { path = "../librustc_macros" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_index = { path = "../librustc_index" }
-rustc_arena = { path = "../librustc_arena" }
-scoped-tls = "1.0"
-unicode-width = "0.1.4"
-cfg-if = "0.1.2"
-tracing = "0.1"
-sha-1 = "0.8"
-md-5 = "0.8"
diff --git a/src/librustc_symbol_mangling/Cargo.toml b/src/librustc_symbol_mangling/Cargo.toml
deleted file mode 100644
index b44c0e4e027ce..0000000000000
--- a/src/librustc_symbol_mangling/Cargo.toml
+++ /dev/null
@@ -1,23 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_symbol_mangling"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_symbol_mangling"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-tracing = "0.1"
-punycode = "0.4.0"
-rustc-demangle = "0.1.16"
-
-rustc_ast = { path = "../librustc_ast" }
-rustc_span = { path = "../librustc_span" }
-rustc_middle = { path = "../librustc_middle" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_target = { path = "../librustc_target" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_session = { path = "../librustc_session" }
diff --git a/src/librustc_target/Cargo.toml b/src/librustc_target/Cargo.toml
deleted file mode 100644
index d2b50f44e43d9..0000000000000
--- a/src/librustc_target/Cargo.toml
+++ /dev/null
@@ -1,18 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_target"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_target"
-path = "lib.rs"
-
-[dependencies]
-bitflags = "1.2.1"
-tracing = "0.1"
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_macros = { path = "../librustc_macros" }
-rustc_serialize = { path = "../librustc_serialize" }
-rustc_span = { path = "../librustc_span" }
-rustc_index = { path = "../librustc_index" }
diff --git a/src/librustc_trait_selection/Cargo.toml b/src/librustc_trait_selection/Cargo.toml
deleted file mode 100644
index 444023baa695f..0000000000000
--- a/src/librustc_trait_selection/Cargo.toml
+++ /dev/null
@@ -1,27 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_trait_selection"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_trait_selection"
-path = "lib.rs"
-doctest = false
-
-[dependencies]
-rustc_parse_format = { path = "../librustc_parse_format" }
-tracing = "0.1"
-rustc_attr = { path = "../librustc_attr" }
-rustc_middle = { path = "../librustc_middle" }
-rustc_ast = { path = "../librustc_ast" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_index = { path = "../librustc_index" }
-rustc_infer = { path = "../librustc_infer" }
-rustc_macros = { path = "../librustc_macros" }
-rustc_session = { path = "../librustc_session" }
-rustc_span = { path = "../librustc_span" }
-rustc_target = { path = "../librustc_target" }
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
diff --git a/src/librustc_traits/Cargo.toml b/src/librustc_traits/Cargo.toml
deleted file mode 100644
index f5545f562938f..0000000000000
--- a/src/librustc_traits/Cargo.toml
+++ /dev/null
@@ -1,23 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_traits"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_traits"
-path = "lib.rs"
-
-[dependencies]
-tracing = "0.1"
-rustc_middle = { path = "../librustc_middle" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_index = { path = "../librustc_index" }
-rustc_ast = { path = "../librustc_ast" }
-rustc_span = { path = "../librustc_span" }
-chalk-ir = "0.14.0"
-chalk-solve = "0.14.0"
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
-rustc_infer = { path = "../librustc_infer" }
-rustc_trait_selection = { path = "../librustc_trait_selection" }
diff --git a/src/librustc_ty/Cargo.toml b/src/librustc_ty/Cargo.toml
deleted file mode 100644
index adc9740c2c173..0000000000000
--- a/src/librustc_ty/Cargo.toml
+++ /dev/null
@@ -1,21 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_ty"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_ty"
-path = "lib.rs"
-
-[dependencies]
-tracing = "0.1"
-rustc_middle = { path = "../librustc_middle" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_infer = { path = "../librustc_infer" }
-rustc_span = { path = "../librustc_span" }
-rustc_session = { path = "../librustc_session" }
-rustc_target = { path = "../librustc_target" }
-rustc_trait_selection = { path = "../librustc_trait_selection" }
diff --git a/src/librustc_typeck/Cargo.toml b/src/librustc_typeck/Cargo.toml
deleted file mode 100644
index 82c6ac7a0cd73..0000000000000
--- a/src/librustc_typeck/Cargo.toml
+++ /dev/null
@@ -1,29 +0,0 @@
-[package]
-authors = ["The Rust Project Developers"]
-name = "rustc_typeck"
-version = "0.0.0"
-edition = "2018"
-
-[lib]
-name = "rustc_typeck"
-path = "lib.rs"
-test = false
-doctest = false
-
-[dependencies]
-rustc_arena = { path = "../librustc_arena" }
-tracing = "0.1"
-rustc_middle = { path = "../librustc_middle" }
-rustc_attr = { path = "../librustc_attr" }
-rustc_data_structures = { path = "../librustc_data_structures" }
-rustc_errors = { path = "../librustc_errors" }
-rustc_hir = { path = "../librustc_hir" }
-rustc_hir_pretty = { path = "../librustc_hir_pretty" }
-rustc_target = { path = "../librustc_target" }
-rustc_session = { path = "../librustc_session" }
-smallvec = { version = "1.0", features = ["union", "may_dangle"] }
-rustc_ast = { path = "../librustc_ast" }
-rustc_span = { path = "../librustc_span" }
-rustc_index = { path = "../librustc_index" }
-rustc_infer = { path = "../librustc_infer" }
-rustc_trait_selection = { path = "../librustc_trait_selection" }
diff --git a/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.rs b/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.rs
index 75bf320dd5b1e..7a88c3df2e4e5 100644
--- a/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.rs
+++ b/src/test/ui/borrowck/borrowck-borrow-mut-base-ptr-in-aliasable-loc.rs
@@ -1,7 +1,7 @@
 // Test that attempt to reborrow an `&mut` pointer in an aliasable
 // location yields an error.
 //
-// Example from src/librustc_borrowck/borrowck/README.md
+// Example from compiler/rustc_borrowck/borrowck/README.md
 
 fn foo(t0: & &mut isize) {
     let t1 = t0;
diff --git a/src/test/ui/borrowck/borrowck-borrow-of-mut-base-ptr-safe.rs b/src/test/ui/borrowck/borrowck-borrow-of-mut-base-ptr-safe.rs
index 2839a9195a0e2..5ef282c0ca007 100644
--- a/src/test/ui/borrowck/borrowck-borrow-of-mut-base-ptr-safe.rs
+++ b/src/test/ui/borrowck/borrowck-borrow-of-mut-base-ptr-safe.rs
@@ -5,7 +5,7 @@
 // Test that freezing an `&mut` pointer while referent is
 // frozen is legal.
 //
-// Example from src/librustc_borrowck/borrowck/README.md
+// Example from compiler/rustc_borrowck/borrowck/README.md
 
 // pretty-expanded FIXME #23616
 
diff --git a/src/test/ui/borrowck/borrowck-move-mut-base-ptr.rs b/src/test/ui/borrowck/borrowck-move-mut-base-ptr.rs
index 10fc1437253bd..fa2d5531b1393 100644
--- a/src/test/ui/borrowck/borrowck-move-mut-base-ptr.rs
+++ b/src/test/ui/borrowck/borrowck-move-mut-base-ptr.rs
@@ -1,7 +1,7 @@
 // Test that attempt to move `&mut` pointer while pointee is borrowed
 // yields an error.
 //
-// Example from src/librustc_borrowck/borrowck/README.md
+// Example from compiler/rustc_borrowck/borrowck/README.md
 
 
 
diff --git a/src/test/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.rs b/src/test/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.rs
index 32caa46647593..6174893bae9dd 100644
--- a/src/test/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.rs
+++ b/src/test/ui/borrowck/borrowck-mut-borrow-of-mut-base-ptr.rs
@@ -1,7 +1,7 @@
 // Test that attempt to mutably borrow `&mut` pointer while pointee is
 // borrowed yields an error.
 //
-// Example from src/librustc_borrowck/borrowck/README.md
+// Example from compiler/rustc_borrowck/borrowck/README.md
 
 
 
diff --git a/src/test/ui/borrowck/borrowck-swap-mut-base-ptr.rs b/src/test/ui/borrowck/borrowck-swap-mut-base-ptr.rs
index 3d40d319226a1..8170323efc590 100644
--- a/src/test/ui/borrowck/borrowck-swap-mut-base-ptr.rs
+++ b/src/test/ui/borrowck/borrowck-swap-mut-base-ptr.rs
@@ -1,7 +1,7 @@
 // Test that attempt to swap `&mut` pointer while pointee is borrowed
 // yields an error.
 //
-// Example from src/librustc_borrowck/borrowck/README.md
+// Example from compiler/rustc_borrowck/borrowck/README.md
 
 use std::mem::swap;
 
diff --git a/src/test/ui/pattern/const-pat-ice.stderr b/src/test/ui/pattern/const-pat-ice.stderr
index 2aa0824f30186..6b42c0e0848e9 100644
--- a/src/test/ui/pattern/const-pat-ice.stderr
+++ b/src/test/ui/pattern/const-pat-ice.stderr
@@ -1,4 +1,4 @@
-thread 'rustc' panicked at 'assertion failed: rows.iter().all(|r| r.len() == v.len())', src/librustc_mir_build/thir/pattern/_match.rs:LL:CC
+thread 'rustc' panicked at 'assertion failed: rows.iter().all(|r| r.len() == v.len())', compiler/rustc_mir_build/src/thir/pattern/_match.rs:LL:CC
 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
 
 error: internal compiler error: unexpected panic
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.rs b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.rs
index bc2bf9eca93bd..01769f711536c 100644
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.rs
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.rs
@@ -4,7 +4,7 @@
 // Currently, the `type_alias_impl_trait` feature implicitly
 // depends on `impl_trait_in_bindings` in order to work properly.
 // Specifically, this line requires `impl_trait_in_bindings` to be enabled:
-// https://github.com/rust-lang/rust/blob/481068a707679257e2a738b40987246e0420e787/src/librustc_typeck/check/mod.rs#L856
+// https://github.com/rust-lang/rust/blob/481068a707679257e2a738b40987246e0420e787/compiler/rustc_typeck/check/mod.rs#L856
 #![feature(impl_trait_in_bindings)]
 //~^ WARN the feature `impl_trait_in_bindings` is incomplete
 
diff --git a/src/tools/error_index_generator/build.rs b/src/tools/error_index_generator/build.rs
index efa4177d1d865..caae8c611780b 100644
--- a/src/tools/error_index_generator/build.rs
+++ b/src/tools/error_index_generator/build.rs
@@ -9,7 +9,7 @@ fn main() {
     let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap());
     let dest = out_dir.join("error_codes.rs");
 
-    let error_codes_path = "../../../src/librustc_error_codes/error_codes.rs";
+    let error_codes_path = "../../../compiler/rustc_error_codes/src/error_codes.rs";
 
     println!("cargo:rerun-if-changed={}", error_codes_path);
     let file = fs::read_to_string(error_codes_path)
@@ -19,7 +19,7 @@ fn main() {
     fs::write(&out_dir.join("all_error_codes.rs"), &contents).unwrap();
 
     // We copy the md files as well to the target directory.
-    for entry in WalkDir::new("../../../src/librustc_error_codes/error_codes") {
+    for entry in WalkDir::new("../../../compiler/rustc_error_codes/src/error_codes") {
         let entry = entry.unwrap();
         match entry.path().extension() {
             Some(s) if s == "md" => {}
diff --git a/src/tools/tidy/src/debug_artifacts.rs b/src/tools/tidy/src/debug_artifacts.rs
index 408be83b926e2..ab87230f888ca 100644
--- a/src/tools/tidy/src/debug_artifacts.rs
+++ b/src/tools/tidy/src/debug_artifacts.rs
@@ -1,4 +1,4 @@
-//! Tidy check to prevent creation of unnecessary debug artifacts.
+//! Tidy check to prevent creation of unnecessary debug artifacts while running tests.
 
 use std::path::{Path, PathBuf};
 
diff --git a/src/tools/tidy/src/edition.rs b/src/tools/tidy/src/edition.rs
index 4a2e49fd1c3c7..7761ae64ee0c6 100644
--- a/src/tools/tidy/src/edition.rs
+++ b/src/tools/tidy/src/edition.rs
@@ -1,5 +1,4 @@
 //! Tidy check to ensure that crate `edition` is '2018'
-//!
 
 use std::path::Path;
 
diff --git a/src/tools/tidy/src/features.rs b/src/tools/tidy/src/features.rs
index 678e346bd4f64..d8029ea04f0ba 100644
--- a/src/tools/tidy/src/features.rs
+++ b/src/tools/tidy/src/features.rs
@@ -71,8 +71,14 @@ pub fn collect_lib_features(base_src_path: &Path) -> Features {
     lib_features
 }
 
-pub fn check(src_path: &Path, lib_path: &Path, bad: &mut bool, verbose: bool) -> CollectedFeatures {
-    let mut features = collect_lang_features(src_path, bad);
+pub fn check(
+    src_path: &Path,
+    compiler_path: &Path,
+    lib_path: &Path,
+    bad: &mut bool,
+    verbose: bool,
+) -> CollectedFeatures {
+    let mut features = collect_lang_features(compiler_path, bad);
     assert!(!features.is_empty());
 
     let lib_features = get_and_check_lib_features(lib_path, bad, &features);
@@ -225,15 +231,15 @@ fn test_filen_gate(filen_underscore: &str, features: &mut Features) -> bool {
     false
 }
 
-pub fn collect_lang_features(base_src_path: &Path, bad: &mut bool) -> Features {
-    let mut all = collect_lang_features_in(base_src_path, "active.rs", bad);
-    all.extend(collect_lang_features_in(base_src_path, "accepted.rs", bad));
-    all.extend(collect_lang_features_in(base_src_path, "removed.rs", bad));
+pub fn collect_lang_features(base_compiler_path: &Path, bad: &mut bool) -> Features {
+    let mut all = collect_lang_features_in(base_compiler_path, "active.rs", bad);
+    all.extend(collect_lang_features_in(base_compiler_path, "accepted.rs", bad));
+    all.extend(collect_lang_features_in(base_compiler_path, "removed.rs", bad));
     all
 }
 
 fn collect_lang_features_in(base: &Path, file: &str, bad: &mut bool) -> Features {
-    let path = base.join("librustc_feature").join(file);
+    let path = base.join("rustc_feature").join("src").join(file);
     let contents = t!(fs::read_to_string(&path));
 
     // We allow rustc-internal features to omit a tracking issue.
diff --git a/src/tools/tidy/src/main.rs b/src/tools/tidy/src/main.rs
index 43105188ec477..36c9e58eb9a87 100644
--- a/src/tools/tidy/src/main.rs
+++ b/src/tools/tidy/src/main.rs
@@ -11,44 +11,53 @@ use std::path::PathBuf;
 use std::process;
 
 fn main() {
-    let path: PathBuf = env::args_os().nth(1).expect("need path to src").into();
+    let root_path: PathBuf = env::args_os().nth(1).expect("need path to root of repo").into();
     let cargo: PathBuf = env::args_os().nth(2).expect("need path to cargo").into();
 
-    let library_path: PathBuf = path
-        .join("..")
-        .join("library")
-        .canonicalize()
-        .expect("unable to canonicalize path to library/");
+    let src_path = root_path.join("src");
+    let library_path = root_path.join("library");
+    let compiler_path = root_path.join("compiler");
 
     let args: Vec<String> = env::args().skip(1).collect();
 
     let mut bad = false;
     let verbose = args.iter().any(|s| *s == "--verbose");
 
+    // Checks over tests.
+    debug_artifacts::check(&src_path, &mut bad);
+    ui_tests::check(&src_path, &mut bad);
+
     // Checks that only make sense for the compiler.
-    debug_artifacts::check(&path, &mut bad);
-    errors::check(&path, &mut bad);
-    ui_tests::check(&path, &mut bad);
-    error_codes_check::check(&path, &mut bad);
+    errors::check(&compiler_path, &mut bad);
+    error_codes_check::check(&src_path, &mut bad);
 
     // Checks that only make sense for the std libs.
     pal::check(&library_path, &mut bad);
     unit_tests::check(&library_path, &mut bad);
 
-    // Check that need to be done for both the compiler and std libraries.
-    bins::check(&path, &mut bad);
+    // Checks that need to be done for both the compiler and std libraries.
+    bins::check(&src_path, &mut bad);
+    bins::check(&compiler_path, &mut bad);
     bins::check(&library_path, &mut bad);
-    style::check(&path, &mut bad);
+
+    style::check(&src_path, &mut bad);
+    style::check(&compiler_path, &mut bad);
     style::check(&library_path, &mut bad);
-    cargo::check(&path, &mut bad);
+
+    cargo::check(&src_path, &mut bad);
+    cargo::check(&compiler_path, &mut bad);
     cargo::check(&library_path, &mut bad);
-    edition::check(&path, &mut bad);
+
+    edition::check(&src_path, &mut bad);
+    edition::check(&compiler_path, &mut bad);
     edition::check(&library_path, &mut bad);
 
-    let collected = features::check(&path, &library_path, &mut bad, verbose);
-    unstable_book::check(&path, collected, &mut bad);
-    deps::check(&path.parent().unwrap(), &cargo, &mut bad);
-    extdeps::check(&path.parent().unwrap(), &mut bad);
+    let collected = features::check(&src_path, &compiler_path, &library_path, &mut bad, verbose);
+    unstable_book::check(&src_path, collected, &mut bad);
+
+    // Checks that are done on the cargo workspace.
+    deps::check(&root_path, &cargo, &mut bad);
+    extdeps::check(&root_path, &mut bad);
 
     if bad {
         eprintln!("some tidy checks failed");
diff --git a/src/tools/unstable-book-gen/src/main.rs b/src/tools/unstable-book-gen/src/main.rs
index 5d277e1c41f40..387b2acd1069e 100644
--- a/src/tools/unstable-book-gen/src/main.rs
+++ b/src/tools/unstable-book-gen/src/main.rs
@@ -94,14 +94,16 @@ fn copy_recursive(from: &Path, to: &Path) {
 }
 
 fn main() {
-    let library_path_str = env::args_os().nth(1).expect("library path required");
-    let src_path_str = env::args_os().nth(2).expect("source path required");
-    let dest_path_str = env::args_os().nth(3).expect("destination path required");
+    let library_path_str = env::args_os().nth(1).expect("library/ path required");
+    let compiler_path_str = env::args_os().nth(2).expect("compiler/ path required");
+    let src_path_str = env::args_os().nth(3).expect("src/ path required");
+    let dest_path_str = env::args_os().nth(4).expect("destination path required");
     let library_path = Path::new(&library_path_str);
+    let compiler_path = Path::new(&compiler_path_str);
     let src_path = Path::new(&src_path_str);
     let dest_path = Path::new(&dest_path_str);
 
-    let lang_features = collect_lang_features(src_path, &mut false);
+    let lang_features = collect_lang_features(compiler_path, &mut false);
     let lib_features = collect_lib_features(library_path)
         .into_iter()
         .filter(|&(ref name, _)| !lang_features.contains_key(name))