From b7c012155238bd335fa7f55cfcd8e98cd379fb29 Mon Sep 17 00:00:00 2001 From: mark Date: Sat, 4 Apr 2020 12:59:51 -0500 Subject: [PATCH] Improve description of MIR Co-Authored-By: Centril --- src/overview.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/overview.md b/src/overview.md index 8f6d00d7..37a08207 100644 --- a/src/overview.md +++ b/src/overview.md @@ -165,9 +165,10 @@ for different purposes: is a type of diagram that shows the basic blocks of a program and how control flow can go between them. Likewise, MIR also has a bunch of basic blocks with simple typed statements inside them (e.g. assignment, simple computations, - dropping values, etc). MIR is used for borrow checking and a bunch of other - important dataflow based checks, such as checking for uninitialized values. - It is also used for a bunch of optimizations and for constant evaluation (via + etc) and control flow edges to other basic blocks (e.g., calls, dropping + values). MIR is used for borrow checking and other + important dataflow-based checks, such as checking for uninitialized values. + It is also used for a series of optimizations and for constant evaluation (via MIRI). Because MIR is still generic, we can do a lot of analyses here more efficiently than after monomorphization. - LLVM IR: This is the standard form of all input to the LLVM compiler. LLVM IR