Okay, hi everybody, I am Scott. My mentor is Nico. I am from Perdue University. I am a PhD student. My talk is on MIR Optimizations. I work on the rust compiler. So this is the "get pumped up!" slide. I'm going to tell you these things and feel free to cheer whenever you're ready. Do you want faster programs? Yeah! [audience cheering "yeah!"] [audience laughs] Do you want longer battery life? [audience cheering "hell yeah!] Do you want more free memory? [audience cheering] We want all these things and how are we going to get them? We're going to get them through compiler optimization. [audience laughs] Okay, so I need to do some background before I jump into what I did this summer, but it's going to be pretty brief and high level, so I'll go fast just so we're all on the same page. We start from the Rust Source, which Cameron talked about Rust in his previous presentation. Basically it's a high level systems programming language. And the compiler doesn't just compile Rust line by line in the machine code, it goes through intermediate steps. It compiles the Rust Source to High Level Intermediate Representation to LLVM Intermediate Remediation, and then to Machine Code. This is pretty much how most compilers work of high level (incoherent) languages. You don't want to go from Source to Machine Code in one step. What we do recently--actually today the Rust team flipped the switch and now MIR is part of the Rust Compiler. MIR stands for "Middle Intermediate Representation" and it's coincidentally the same name of a space ship...that's the space ship. So what did we do? There's now a tiny space ship in the compiler and it's between the High Level and LLVM IR. So, why would we do this? What's MIR good for? Basically, it's the simple core of Rust. It makes things explicit that were not explicit in Rust's code because you wouldn't want the [incoherent] to detect these things out, obviously. Types of variables should be elighted in certain