Eduard Burtescu
5eeda543df
mir: Use usize instead of u32 for indexing slices.
2016-03-17 21:51:55 +02:00
Eduard Burtescu
d9277b163c
trans: Make everything used from within at_start Builder-friendly.
2016-03-17 21:51:54 +02:00
Eduard Burtescu
b38627dafb
mir: Use the right form of GEPi for indexing slices vs arrays.
2016-03-17 21:51:53 +02:00
Eduard Burtescu
56417b3732
mir: Monomorphize LvalueTy's of projections.
2016-03-17 21:51:53 +02:00
Eduard Burtescu
aec63821d0
trans: Handle all function setup for all ABIs via FnType.
2016-03-17 21:51:52 +02:00
Eduard Burtescu
5af3c12cfc
trans: Move static item handling to consts.
2016-03-17 18:19:29 +02:00
Simonas Kazlauskas
ba26efb60c
Implement filling drop in MIR
...
Hopefully the author caught all the cases. For the mir_dynamic_drops_3 test case the ratio of
memsets to other instructions is 12%. On the other hand we actually do not double drop for at least
the test cases provided anymore in MIR.
2016-02-24 21:05:21 +02:00
Ariel Ben-Yehuda
3c6f41026b
store the normalized types of field accesses
...
Fixes #31504
2016-02-20 01:54:58 +02:00
Piotr Czarnecki
06266eb3bd
Refactor the MIR translator to use LLVM Builder directly
2016-02-08 11:41:24 +01:00
Simonas Kazlauskas
ebf6341d1d
Translation part of drop panic recovery
...
With this commit we now finally execute all the leftover drops once some drop panics for some
reason!
2016-02-04 15:56:05 +02:00
Oliver 'ker' Schneider
6fef118bc0
use a newtype for the variant discriminant instead of u64
2016-01-16 16:03:09 +01:00
Jeffrey Seyfried
76021d84b3
Refactor away extension traits RegionEscape and HasTypeFlags
2016-01-07 00:42:12 +00:00
Simonas Kazlauskas
20ec53a0d3
Fix ReturnPointer generation for void return types
...
Fixes #30480
2016-01-06 13:57:52 +02:00
Simonas Kazlauskas
2b2f983523
Fix GEPs for MIR indexing translation
...
Fixes #30474
2015-12-19 20:30:13 +02:00
James Miller
a2557d472e
Align pointers to DST fields properly
...
DST fields, being of an unknown type, are not automatically aligned
properly, so a pointer to the field needs to be aligned using the
information in the vtable.
Fixes #26403 and a number of other DST-related bugs discovered while
implementing this.
2015-12-08 00:03:45 +13:00
Michael Woerister
bbe1d28496
Move the core MIR datastructures to librustc.
...
This is done mostly so that we can refer to MIR types in csearch and other metadata related area.
2015-11-30 10:03:33 +01:00
Michael Woerister
c533902285
MIR: Add pass that erases all regions right before trans
2015-11-18 17:26:24 +01:00
Ariel Ben-Yehuda
e82f5d4f54
implement coercions in MIR
2015-11-14 00:09:36 +02:00
Ariel Ben-Yehuda
c1bfd0ca6b
implement lvalue_len
...
no tests - sorry
2015-11-13 22:47:02 +02:00
Ariel Ben-Yehuda
dcb64b52a2
represent fat ptr operands as 2 separate pointers
...
this does add some complexity, but to do otherwise would require unsized
lvalues to have their own allocas, which would be ugly.
2015-11-13 22:47:02 +02:00
Simonas Kazlauskas
21deb18bfd
[MIR trans] Translate statics
...
Fixes #29578
2015-11-11 00:15:16 +02:00
Niko Matsakis
e84829d51d
Plumbing to omit allocas for temps when possible (currently unused)
2015-11-03 04:35:00 -05:00
Niko Matsakis
02017b30eb
New trans codepath that builds fn body from MIR instead.
2015-11-03 04:35:00 -05:00