Skip to content

Instantly share code, notes, and snippets.

View solson's full-sized avatar

Scott Olson solson

  • Canada/Ireland
  • 07:33 (UTC +01:00)
View GitHub Profile
fn(a0: usize) -> usize {
let v0: usize; // n
let mut v1: usize; // prod
let v2: (); // _result
let mut v3: core::ops::Range<usize>; // iter
let v4: usize; // x
let t0: ();
let t1: ();
let t2: core::ops::Range<usize>;
let t3: core::ops::Range<usize>;
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>;
fn(arg0: &[closure@closure-no-captures.rs:7:14: 7:39 a:&i32], arg1: i32) -> i32 {
let var0: i32; // b
let tmp0: ();
let tmp1: i32;
let tmp2: i32;
bb0: {
var0 = arg0;
tmp1 = (*(*arg0).0);
tmp2 = var0;
error: internal compiler error: Type mismatch in function call of (i1 (i32*, i32*)*:
; Function Attrs: inlinehint uwtable
define internal zeroext i1 @_ZN3cmp5impls14i32.PartialOrd2le20h61123ef2ceb20e9d0HAE(i32* noalias readonly dereferenceable(4), i32* noalias readonly dereferenceable(4)) unnamed_addr #1 {
entry-block:
%self = alloca i32*
%other = alloca i32*
store i32* %0, i32** %self, align 8
store i32* %1, i32** %other, align 8
%2 = load i32*, i32** %self, align 8, !nonnull !0
%3 = load i32, i32* %2, align 4
fn(arg0: &[closure@closure-args.rs:8:14: 8:39 a:&i32], arg1: i32) -> i32 {
let var0: i32; // b
let tmp0: ();
let tmp1: i32;
let tmp2: i32;
bb0: {
var0 = arg1;
tmp1 = (*(*arg0).0);
tmp2 = var0;
@solson
solson / diff
Created December 30, 2015 05:17
--- old 2015-12-29 23:16:32.027926372 -0600
+++ new 2015-12-29 23:16:42.975400757 -0600
@@ -1,22 +1,22 @@
-fn(arg0: &[closure@closure-no-captures.rs:7:14: 7:39 a:&i32], arg1: i32) -> i32 {
+fn(arg0: &[closure@closure-args.rs:8:14: 8:39 a:&i32], arg1: i32) -> i32 {
let var0: i32; // b
let tmp0: ();
let tmp1: i32;
let tmp2: i32;
--- 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: ();
--- old/factorial_fold.mir 2015-12-29 21:12:27.958598615 -0600
+++ factorial_fold.mir 2015-12-31 12:45:45.623293678 -0600
@@ -1,35 +1,35 @@
fn(arg0: usize) -> usize {
let var0: usize; // n
let tmp0: ();
let tmp1: core::ops::Range<usize>;
let tmp2: usize;
let tmp3: [closure@test.rs:37:20: 37:38];
--- old/factorial_fold.mir 2015-12-29 21:12:27.958598615 -0600
+++ factorial_fold.mir 2015-12-31 16:48:40.633604119 -0600
@@ -1,35 +1,35 @@
fn(arg0: usize) -> usize {
let var0: usize; // n
let tmp0: ();
let tmp1: core::ops::Range<usize>;
let tmp2: usize;
let tmp3: [closure@test.rs:37:20: 37:38];