- // MIR for `concrete` before GVN + // MIR for `concrete` after GVN fn concrete() -> () { let mut _0: (); let _1: usize; scope 1 { debug x => _1; let _2: usize; scope 2 { debug y => _2; let _3: usize; scope 3 { debug z0 => _3; let _4: usize; scope 4 { debug z1 => _4; let _5: usize; scope 5 { debug eA0 => _5; let _6: usize; scope 6 { debug eA1 => _6; let _7: usize; scope 7 { debug eC => _7; } } } } } } } bb0: { StorageLive(_1); - _1 = OffsetOf(Alpha, [(0, 0)]); + _1 = const 4_usize; StorageLive(_2); - _2 = OffsetOf(Alpha, [(0, 1)]); + _2 = const 0_usize; StorageLive(_3); - _3 = OffsetOf(Alpha, [(0, 2), (0, 0)]); + _3 = const 2_usize; StorageLive(_4); - _4 = OffsetOf(Alpha, [(0, 2), (0, 1)]); + _4 = const 3_usize; StorageLive(_5); - _5 = OffsetOf(Epsilon, [(0, 0)]); + _5 = const 1_usize; StorageLive(_6); - _6 = OffsetOf(Epsilon, [(0, 1)]); + _6 = const 2_usize; StorageLive(_7); - _7 = OffsetOf(Epsilon, [(2, 0)]); + _7 = const 4_usize; _0 = const (); StorageDead(_7); StorageDead(_6); StorageDead(_5); StorageDead(_4); StorageDead(_3); StorageDead(_2); StorageDead(_1); return; } }