diff options
author | Quentin Carbonneaux <quentin.carbonneaux@yale.edu> | 2016-03-23 22:33:36 -0400 |
---|---|---|
committer | Quentin Carbonneaux <quentin.carbonneaux@yale.edu> | 2016-03-23 22:33:36 -0400 |
commit | 993ca957ef56fefbb604aceb50d65fc880f63882 (patch) | |
tree | 7e6f1e1906790675ecb50c7ad1b05e2820d3380a | |
parent | 84fbd00237180b654feb38cd2915039d79033716 (diff) | |
download | roux-993ca957ef56fefbb604aceb50d65fc880f63882.tar.gz |
typos in llvm.txt (thanks lucie)
-rw-r--r-- | doc/llvm.txt | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/doc/llvm.txt b/doc/llvm.txt index 9dab26e..9552434 100644 --- a/doc/llvm.txt +++ b/doc/llvm.txt @@ -4,31 +4,31 @@ Both QBE and LLVM are compiler backends using an SSA -representation. This document will explain why the -advanced stage in which LLVM is does not make QBE a -redundant project. Obviously, everything following is -probably biased, because written by me. +representation. This document will explain why LLVM +does not make QBE a redundant project. Obviously, +everything following is probably biased, because +written by me. - Scope ------- -QBE is a much smaller scale projects with different -goals than LLVM. +QBE is a much smaller scale project with different goals +than LLVM. * QBE is for amateur language designers. It does not address all the problems faced when conceiving an industry-grade language. If you are toying with some language ideas, using LLVM will - feel like throwing your backpack in a truck, but - using QBE will feel more like biking. + be like hauling your backpack in a truck, but using + QBE will feel more like biking. * QBE is about the first 70%, not the last 30%. It attempts to pinpoint, in the extremely vast compilation literature, the optimizations that get - you 70% of the performance in 10% of the code needed - to scrape the last bits of performance. + you 70% of the performance in 10% of the code of + full blown compilers. For example, copy propagation on SSA form is implemented in 160 lines of code in QBE! @@ -68,8 +68,8 @@ are a few things provided in QBE to consider. * LLVM IR is more cluttered with memory operations. - Implementing SSA construction is hard, and to save - its frontends from having to do it, LLVM provides + Implementing SSA construction is hard. To save its + users from having to implement it, LLVM provides stack slots. This means that one increment of a variable `v` will be composed of three LLVM instructions: one load, one add, and one store. @@ -87,13 +87,13 @@ are a few things provided in QBE to consider. For the sake of advanced optimizations and correctness, LLVM has complex IL types. However, - only a few types are really first class in the IL - and many operations of source languages require - casts to be compiled. + only a few types are really first class and many + operations of source languages require casts to be + compiled. Because QBE makes a much lighter use of types, the IL is more readable and shorter. It can of course be argued back that correctness of QBE is jeoparadized, - but remember that, in practice, the large amounts + but remember that, in practice, the large amount of casts necessary in LLVM IL is compromizing the overall effectiveness of the type system. |