Skip to content

Instantly share code, notes, and snippets.

@solson
Created December 31, 2015 18:46
Show Gist options
  • Select an option

  • Save solson/c0f566b74c5f58ae9d55 to your computer and use it in GitHub Desktop.

Select an option

Save solson/c0f566b74c5f58ae9d55 to your computer and use it in GitHub Desktop.
--- old/factorial_iterative.mir 2015-12-29 21:12:27.958598615 -0600
+++ factorial_iterative.mir 2015-12-31 12:45:45.623293678 -0600
@@ -1,103 +1,103 @@
fn(arg0: usize) -> usize {
let var0: usize; // n
let mut var1: usize; // prod
let var2: (); // _result
let mut var3: core::ops::Range<usize>; // iter
let var4: usize; // x
let tmp0: ();
let tmp1: ();
let tmp2: core::ops::Range<usize>;
let tmp3: core::ops::Range<usize>;
let tmp4: usize;
let tmp5: core::option::Option<usize>;
let tmp6: &mut core::ops::Range<usize>;
let tmp7: &mut core::ops::Range<usize>;
let tmp8: ();
let tmp9: usize;
let tmp10: ();
let tmp11: usize;
bb0: {
var0 = arg0;
var1 = 1;
tmp4 = var0;
- tmp3 = Aggregate<Adt(core::ops::Range, 0, Substs[types=[[usize];[];[]], regions=[[];[];[]]])>[1, tmp4];
+ tmp3 = core::ops::Range { start: 1, end: tmp4 };
tmp2 = core::iter::IntoIterator::into_iter(tmp3) -> [return: bb3, unwind: bb4];
}
bb1: {
return;
}
bb2: {
diverge;
}
bb3: {
var3 = tmp2;
goto -> bb6;
}
bb4: {
drop tmp2;
drop tmp3;
goto -> bb2;
}
bb5: {
drop var3;
drop tmp2;
drop tmp3;
tmp10 = var2;
tmp1 = tmp10;
drop tmp1;
tmp11 = var1;
ReturnPointer = tmp11;
goto -> bb1;
}
bb6: {
tmp7 = &ReScope(CodeExtent(77/Misc(168))) Mut var3;
tmp6 = &ReScope(CodeExtent(77/Misc(168))) Mut (*tmp7);
tmp5 = core::iter::Iterator::next(tmp6) -> [return: bb7, unwind: bb8];
}
bb7: {
switch(tmp5) -> [None: bb11, Some: bb12];
}
bb8: {
drop tmp6;
drop tmp7;
goto -> bb9;
}
bb9: {
drop var3;
goto -> bb4;
}
bb10: {
tmp9 = var4;
var1 = Mul(var1, tmp9);
drop tmp8;
goto -> bb13;
}
bb11: {
drop tmp6;
drop tmp7;
goto -> bb5;
}
bb12: {
var4 = (tmp5 as Some).0;
goto -> bb10;
}
bb13: {
drop tmp6;
drop tmp7;
goto -> bb6;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment