Niko Matsakis
f976e222e9
fix bug in simplify_cfg
with inf. loops
2016-03-23 16:42:53 -04:00
Niko Matsakis
a61c1759c7
allow dumping intermediate IR with -Z dump-mir
2016-03-23 16:42:53 -04:00
Niko Matsakis
3a16f57fbb
extend Terminator into a struct so it can have additional fields
2016-03-23 16:42:52 -04:00
Simonas Kazlauskas
e30ff06756
Change MirPass to also take NodeId
2016-03-07 23:21:39 +02:00
Simonas Kazlauskas
811b874716
Add Pass manager for MIR
2016-03-04 15:20:10 +02:00
Simonas Kazlauskas
b92e2437f5
[MIR] Change SimplifyCfg pass to use bitvec
...
BitVector is much more space efficient.
2016-02-23 11:43:52 +02:00
Ariel Ben-Yehuda
881249aa46
use the FulfillmentContext and InferCtxt more correctly
2016-02-20 02:02:53 +02:00
Oliver Schneider
030b237476
refactor MirPass
to always require a tcx
2016-02-09 16:53:42 +01:00
Simonas Kazlauskas
02365fe753
Change successor{,_mut} to return a Vec
...
This helps to avoid the unpleasant restriction of being unable to have multiple successors in
non-contiguous block of memory.
2016-02-04 15:56:04 +02:00
Simonas Kazlauskas
4e86dcdb72
Remove diverge terminator
...
Unreachable terminator can be contained all within the trans.
2016-01-06 13:57:51 +02:00
Michael Woerister
33d29700b3
MIR: Refactor mir::Terminator to use tuples instead of a fixed-size arrays.
2015-12-10 15:46:40 -05: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
Björn Steinbrink
a4e5c0fe84
Add a MIR pass to simplify the control flow graph
...
For now, this pass does some easy transformations, like eliminating
empty blocks that just jump to another block, some trivial
conversion of If terminators into Gotos and removal of dead blocks.
2015-11-12 14:39:23 +01:00