rust/src/librustc_trans
Ariel Ben-Yehuda 34ff9aa83f store the normalized types of statics in MIR Lvalues
The types of statics, like all other items, are stored in the tcx
unnormalized. This is necessarily so, because
    a) Item types other than statics have generics, which can't be
normalized.
    b) Eager normalization causes undesirable on-demand dependencies.

Keeping with the principle that MIR lvalues require no normalization in
order to interpret, this patch stores the normalized type of the statics
in the Lvalue and reads it to get the lvalue type.

Fixes #39367.
2017-03-01 16:56:13 +02:00
..
back Turn off Vectorization for Emscripten 2017-02-20 23:29:02 +01:00
debuginfo more through normalization in typeck & trans 2017-03-01 16:56:08 +02:00
mir store the normalized types of statics in MIR Lvalues 2017-03-01 16:56:13 +02:00
abi.rs rustc: combine BareFnTy and ClosureTy into FnSig. 2017-02-25 17:47:15 +02:00
adt.rs Fix intcast, use it where appropriate 2017-02-10 19:47:09 +02:00
asm.rs emit "align 1" metadata on loads/stores of packed structs 2017-02-08 22:23:21 +01:00
assert_module_sources.rs rustc: rename TyCtxt's map field to hir. 2017-01-26 13:41:28 +02:00
attributes.rs Add new #[target_feature = "..."] attribute. 2016-11-29 20:32:14 -05:00
base.rs more through normalization in typeck & trans 2017-03-01 16:56:08 +02:00
builder.rs Rollup merge of #40025 - est31:master, r=eddyb 2017-02-25 14:13:33 +02:00
cabi_aarch64.rs Move ty_align and ty_size out of most C ABI code 2016-09-24 18:27:39 -06:00
cabi_arm.rs Remove needless allows 2016-12-20 20:02:52 -07:00
cabi_asmjs.rs Use llvm::Attribute API instead of "raw value" APIs, which will be removed in LLVM 4.0. 2016-11-17 21:12:26 +01:00
cabi_mips.rs Move ty_align and ty_size out of most C ABI code 2016-09-24 18:27:39 -06:00
cabi_mips64.rs Move ty_align and ty_size out of most C ABI code 2016-09-24 18:27:39 -06:00
cabi_msp430.rs add cabi_msp430 2016-11-13 11:03:44 -05:00
cabi_nvptx.rs PTX support 2016-12-26 21:06:23 -05:00
cabi_nvptx64.rs PTX support 2016-12-26 21:06:23 -05:00
cabi_powerpc.rs Move ty_align and ty_size out of most C ABI code 2016-09-24 18:27:39 -06:00
cabi_powerpc64.rs Move ty_align and ty_size out of most C ABI code 2016-09-24 18:27:39 -06:00
cabi_s390x.rs Move ty_align and ty_size out of most C ABI code 2016-09-24 18:27:39 -06:00
cabi_sparc.rs implement cabi for 32-bit sparc 2016-12-19 12:23:37 -05:00
cabi_sparc64.rs Add cabi_sparc64 2016-12-29 21:30:01 -05:00
cabi_x86.rs Cleaned up the code and added tests. 2016-12-22 14:54:42 +03:00
cabi_x86_64.rs Use llvm::Attribute API instead of "raw value" APIs, which will be removed in LLVM 4.0. 2016-11-17 21:12:26 +01:00
cabi_x86_win64.rs Windows x64 ABI requires i128 params to be passed as reference 2016-12-30 15:17:29 +01:00
callee.rs more through normalization in typeck & trans 2017-03-01 16:56:08 +02:00
Cargo.toml Add Emscripten-specific linker 2017-02-10 17:31:04 +00:00
cleanup.rs Builder.build_new_block -> Builder.build_sibling_block 2017-01-04 11:38:10 -07:00
collector.rs more through normalization in typeck & trans 2017-03-01 16:56:08 +02:00
common.rs more through normalization in typeck & trans 2017-03-01 16:56:08 +02:00
consts.rs more through normalization in typeck & trans 2017-03-01 16:56:08 +02:00
context.rs rustc: combine BareFnTy and ClosureTy into FnSig. 2017-02-25 17:47:15 +02:00
declare.rs rustc: combine BareFnTy and ClosureTy into FnSig. 2017-02-25 17:47:15 +02:00
diagnostics.rs Small error code explanations improvements 2016-08-26 17:28:47 +02:00
disr.rs rustc: consolidate dep-tracked hashmaps in tcx.maps. 2017-02-25 17:07:59 +02:00
glue.rs rustc_typeck: rework coherence to be almost completely on-demand. 2017-02-25 18:35:26 +02:00
intrinsic.rs rustc: combine BareFnTy and ClosureTy into FnSig. 2017-02-25 17:47:15 +02:00
lib.rs Add Emscripten-specific linker 2017-02-10 17:31:04 +00:00
machine.rs Completely kill represent_type and the adt::Repr type that goes with it. 2016-09-24 18:21:10 -04:00
macros.rs rustc_trans: move the contents of the trans module to top-level. 2016-03-27 01:23:28 +02:00
meth.rs Set metadata for vtable-related loads 2017-02-21 21:08:06 +13:00
monomorphize.rs rustc: simplify constant cross-crate loading and rustc_passes::consts. 2016-12-28 11:29:19 +02:00
partitioning.rs more through normalization in typeck & trans 2017-03-01 16:56:08 +02:00
README.md Rename README.txt to README.md 2016-12-22 12:52:22 -06:00
symbol_map.rs rustc: rename TyCtxt's map field to hir. 2017-01-26 13:41:28 +02:00
symbol_names_test.rs rustc: rename TyCtxt's map field to hir. 2017-01-26 13:41:28 +02:00
trans_item.rs more through normalization in typeck & trans 2017-03-01 16:56:08 +02:00
tvec.rs Builder.build_new_block -> Builder.build_sibling_block 2017-01-04 11:38:10 -07:00
type_.rs Fix rebase fallout 2016-12-30 15:17:27 +01:00
type_of.rs rustc: combine BareFnTy and ClosureTy into FnSig. 2017-02-25 17:47:15 +02:00
value.rs Inline last remaining use of Callee::call and delete unused code 2016-12-20 20:03:31 -07:00