Eduard-Mihai Burtescu
|
0b8697241f
|
rustc_trans: be more relaxed with non-lvalue consumes, especially ZSTs.
|
2017-11-19 02:43:55 +02:00 |
|
Eduard-Mihai Burtescu
|
c4d9ada701
|
rustc: place ZSTs first during struct field reordering.
|
2017-11-19 02:43:55 +02:00 |
|
Eduard-Mihai Burtescu
|
cdeb4b0d25
|
rustc: encode scalar pairs in layout ABI.
|
2017-11-19 02:43:32 +02:00 |
|
Eduard-Mihai Burtescu
|
f1b7cd9925
|
rustc_trans: restrict "immediate pairs" to pairs of scalars.
|
2017-11-19 02:14:33 +02:00 |
|
Eduard-Mihai Burtescu
|
ac60872077
|
rustc_trans: generate LLVM pointee types based on alignment.
|
2017-11-19 02:14:33 +02:00 |
|
Eduard-Mihai Burtescu
|
f8d5d0c30c
|
rustc_trans: compute better align/dereferenceable attributes from pointees.
|
2017-11-19 02:14:33 +02:00 |
|
Eduard-Mihai Burtescu
|
ced5e04e8b
|
rustc: optimize out uninhabited types and variants.
|
2017-11-19 02:14:33 +02:00 |
|
Eduard-Mihai Burtescu
|
f62e43da28
|
rustc: track validity ranges for layout::Abi::Scalar values.
|
2017-11-19 02:14:33 +02:00 |
|
Eduard-Mihai Burtescu
|
5df25c4aed
|
rustc: remove redundant/unused fields from layout::Abi::Vector.
|
2017-11-19 02:14:33 +02:00 |
|
Eduard-Mihai Burtescu
|
b203a26efb
|
rustc: generalize layout::Variants::NicheFilling to niches other than 0.
|
2017-11-19 02:14:33 +02:00 |
|
Eduard-Mihai Burtescu
|
0190f270c1
|
rustc_trans: check for layout::I1 instead of TyBool.
|
2017-11-19 02:14:33 +02:00 |
|
Eduard-Mihai Burtescu
|
abbc1ddbd0
|
rustc: make TyLayout::field(NonZero<*T>, 0) return &T.
|
2017-11-19 02:14:33 +02:00 |
|
Eduard-Mihai Burtescu
|
de3e581e29
|
rustc: support u128 discriminant ranges.
|
2017-11-19 02:14:32 +02:00 |
|
Eduard-Mihai Burtescu
|
018323ffc2
|
rustc: collapse the remains of Layout into Variants (enums vs everything else).
|
2017-11-19 02:14:32 +02:00 |
|
Eduard-Mihai Burtescu
|
b28f668e26
|
rustc: move size, align & primitive_align from Abi::Aggregate to layout.
|
2017-11-19 02:14:32 +02:00 |
|
Eduard-Mihai Burtescu
|
b723af284a
|
rustc_trans: go through layouts uniformly for fat pointers and variants.
|
2017-11-19 02:14:32 +02:00 |
|
Eduard-Mihai Burtescu
|
026214c858
|
rustc: collapse Layout::FatPointer into Layout::Univariant.
|
2017-11-19 02:14:32 +02:00 |
|
Eduard-Mihai Burtescu
|
3fd6b00082
|
rustc_trans: query LLVM types from a layout instead of a Ty.
|
2017-11-19 02:14:32 +02:00 |
|
Eduard-Mihai Burtescu
|
1477119344
|
rustc_trans: keep a layout instead of a type in {Lvalue,Operand}Ref.
|
2017-11-19 02:14:32 +02:00 |
|
Eduard-Mihai Burtescu
|
88f70323e4
|
rustc_trans: nest abi::ArgType's for fat pointers instead of eagerly flattening.
|
2017-11-19 02:14:31 +02:00 |
|
Eduard-Mihai Burtescu
|
f2e7e17d9e
|
rustc_trans: pass OperandRef arguments to trans_intrinsic_call.
|
2017-11-19 02:14:31 +02:00 |
|
Eduard-Mihai Burtescu
|
b2d52d2132
|
rustc: do not pub use Layout::* in layout.
|
2017-11-19 02:14:31 +02:00 |
|
Eduard-Mihai Burtescu
|
d0ab6e8644
|
rustc_trans: compute LLVM types from type layouts, not Rust types.
|
2017-11-19 02:14:31 +02:00 |
|
Eduard-Mihai Burtescu
|
fad99542c8
|
rustc: split layout::FieldPlacement::Linear back into Union and Array.
|
2017-11-19 02:14:31 +02:00 |
|
Eduard-Mihai Burtescu
|
18d54aa7d5
|
rustc: move layout::Struct into FieldPlacement/Abi.
|
2017-11-19 02:14:31 +02:00 |
|
Eduard-Mihai Burtescu
|
08f9f134fd
|
rustc: hide details in Layout in favor of Abi or FieldPlacement.
|
2017-11-19 02:14:31 +02:00 |
|
Eduard-Mihai Burtescu
|
ed788a62f6
|
rustc: store CachedLayout for each variant of enum Layout's instead of Struct.
|
2017-11-19 02:14:31 +02:00 |
|
Eduard-Mihai Burtescu
|
bd51a2bc19
|
rustc: move size/alignment from Layout into layout::Abi.
|
2017-11-19 02:14:31 +02:00 |
|
Eduard-Mihai Burtescu
|
bd86f3739e
|
rustc: make Layout::NullablePointer a lot more like Layout::General.
|
2017-11-19 02:14:30 +02:00 |
|
Eduard-Mihai Burtescu
|
33a205b56f
|
rustc: collapse Layout::CEnum into Layout::General.
|
2017-11-19 02:14:30 +02:00 |
|
Eduard-Mihai Burtescu
|
658ebfc788
|
rustc: give Layout::CEnum a discriminant field like Layout::General.
|
2017-11-19 02:14:30 +02:00 |
|
Eduard-Mihai Burtescu
|
d318b9c27b
|
rustc: move CEnum's signedness into Primitive::Int.
|
2017-11-19 02:14:30 +02:00 |
|
Eduard-Mihai Burtescu
|
61c2bd9ca4
|
rustc: use Primitive instead of Integer for CEnum and General discriminants.
|
2017-11-19 02:14:30 +02:00 |
|
Eduard-Mihai Burtescu
|
335bd8ea1b
|
rustc: do not track non_zero in Layout.
|
2017-11-19 02:14:30 +02:00 |
|
Eduard-Mihai Burtescu
|
02276e9f49
|
rustc: collapse Layout::{Raw,StructWrapped}NullablePointer into one variant.
|
2017-11-19 02:14:30 +02:00 |
|
Eduard-Mihai Burtescu
|
caef91d7c6
|
rustc: introduce layout::Abi for reduced general ABI "passing style".
|
2017-11-19 02:14:30 +02:00 |
|
Eduard-Mihai Burtescu
|
1dc572b85e
|
rustc: represent the discriminant as a field for Layout::{Raw,StructWrapped}NullablePointer.
|
2017-11-19 02:14:29 +02:00 |
|
Eduard-Mihai Burtescu
|
30710609c0
|
rustc_trans: treat General enums like unions.
|
2017-11-19 02:14:29 +02:00 |
|
Eduard-Mihai Burtescu
|
9a0efea4c2
|
rustc: pre-compute field placements out of Layout.
|
2017-11-19 02:14:29 +02:00 |
|
Eduard-Mihai Burtescu
|
8c4d5af52b
|
rustc: remove Ty::layout and move everything to layout_of.
|
2017-11-19 02:14:29 +02:00 |
|
Eduard-Mihai Burtescu
|
8864668d53
|
rustc: re-complicate the TyLayout API and use better names.
|
2017-11-19 02:14:29 +02:00 |
|
Eduard-Mihai Burtescu
|
aa811d728a
|
rustc: remove source field path from Layout::StructWrappedNullablePointer.
|
2017-11-19 02:14:29 +02:00 |
|
Eduard-Mihai Burtescu
|
bc8e1f7efa
|
rustc: use an offset instead of a field path in Layout::StructWrappedNullablePointer.
|
2017-11-19 02:14:29 +02:00 |
|
Eduard-Mihai Burtescu
|
50a3fd0097
|
rustc: remove useless 0 prefix from Layout::StructWrappedNullablePointer's discrfield.
|
2017-11-19 02:14:29 +02:00 |
|
Eduard-Mihai Burtescu
|
44eef7c9ac
|
rustc: do not inject discriminant fields into Layout::General's variants.
|
2017-11-19 02:14:28 +02:00 |
|
Eduard-Mihai Burtescu
|
8afa3a01e6
|
rustc_trans: always insert alignment padding, even before the first field.
|
2017-11-19 02:14:28 +02:00 |
|
Eduard-Mihai Burtescu
|
0a1fcc32a6
|
rustc_trans: use *[T; 0] for slice data pointers instead of *T.
|
2017-11-19 02:14:28 +02:00 |
|
Eduard-Mihai Burtescu
|
84b5a3d84d
|
rustc_trans: remove the in_memory_type_of distinction.
|
2017-11-19 02:14:28 +02:00 |
|
Eduard-Mihai Burtescu
|
5b1fdaeb80
|
rustc_trans: use more of the trans::mir and ty::layout APIs throughout.
|
2017-11-19 02:14:28 +02:00 |
|
Eduard-Mihai Burtescu
|
260c41b4b8
|
rustc_trans: do not introspect LLVM aggregate field types.
|
2017-11-19 02:14:28 +02:00 |
|