summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorThalia Archibald <thalia@archibald.dev>2024-06-21 06:13:09 -0700
committerGitHub <noreply@github.com>2024-06-21 14:13:09 +0100
commite5f4f7b85fbb91a293a7d89d7b85adfbaeeb51f4 (patch)
tree9b6ecc7ef37b1ec7f08efed6f908f478dc551e03 /README.md
parenta749c244bea3e2774d453165cbd18ed52863a8f5 (diff)
downloadSimple-e5f4f7b85fbb91a293a7d89d7b85adfbaeeb51f4.tar.gz
Simple-e5f4f7b85fbb91a293a7d89d7b85adfbaeeb51f4.zip
Format whitespace (#86)
* Trim trailing whitespace * Ensure final new lines * Convert line endings from CRLF to LF * Replace tabs with spaces
Diffstat (limited to 'README.md')
-rw-r--r--README.md26
1 files changed, 13 insertions, 13 deletions
diff --git a/README.md b/README.md
index 75115de3..df2ff06c 100644
--- a/README.md
+++ b/README.md
@@ -1,39 +1,39 @@
# Simple
A Simple showcase for the Sea-of-Nodes compiler IR
-This repo is intended to demonstrate the Sea-of-Nodes compiler IR.
+This repo is intended to demonstrate the Sea-of-Nodes compiler IR.
-The Sea-of-Nodes is the core IR inside of HotSpot's C2 compiler
+The Sea-of-Nodes is the core IR inside of HotSpot's C2 compiler
and Google's V8 compiler and Sun/Oracle's Graal compiler.
-Since we are show casing the SoN IR, the *language* being implemented is less important.
+Since we are show casing the SoN IR, the *language* being implemented is less important.
We're using a very simple language similar to C or Java, but with far fewer features.
-The Sea-of-Nodes is used for machine code generation in these industrial
-strength systems - but for this demonstration the backend is both difficult
+The Sea-of-Nodes is used for machine code generation in these industrial
+strength systems - but for this demonstration the backend is both difficult
and less important.
-This repo also is not intended to be a complete language in any sense,
+This repo also is not intended to be a complete language in any sense,
and so the backend will probably start with levering C or Java.
## Chapters
The following is a rough plan, subject to change.
-Each chapter will be self-sufficient and complete; in the sense that each chapter will fully implement
-a subset of the simple language, and include everything that was created in the previous chapter.
-Each chapter will also include a detailed commentary on relevant aspects of the
+Each chapter will be self-sufficient and complete; in the sense that each chapter will fully implement
+a subset of the simple language, and include everything that was created in the previous chapter.
+Each chapter will also include a detailed commentary on relevant aspects of the
Sea Of Nodes intermediate representation.
-The simple language will be a small subset of C.
+The simple language will be a small subset of C.
* [Chapter 1](chapter01/README.md): Script that returns an integer literal, i.e., an empty function that takes no arguments and returns a single integer value. The `return` statement.
* [Chapter 2](chapter02/README.md): Simple binary arithmetic such as addition, subtraction, multiplication, division
with constants. Peephole optimization / simple constant folding.
* [Chapter 3](chapter03/README.md): Local variables, and assignment statements. Read on RHS, SSA, more peephole optimization if local is a
constant.
-* [Chapter 4](chapter04/README.md): A non-constant external variable input named `arg`. Binary and Comparison operators involving constants and `arg`. Non-zero values will be truthy. Peephole optimizations involving algebraic simplifications.
+* [Chapter 4](chapter04/README.md): A non-constant external variable input named `arg`. Binary and Comparison operators involving constants and `arg`. Non-zero values will be truthy. Peephole optimizations involving algebraic simplifications.
* [Chapter 5](chapter05/README.md): `if` statement. CFG construction.
-* [Chapter 6](chapter06/README.md): Peephole optimization around dead control flow.
+* [Chapter 6](chapter06/README.md): Peephole optimization around dead control flow.
* [Chapter 7](chapter07/README.md): `while` statement. Looping construct - eager phi approach.
* [Chapter 8](chapter08/README.md): Looping construct continued, lazy phi creation, `break` and `continue` statements.
* [Chapter 9](chapter09/README.md): Global Value Numbering. Iterative peepholes to fixpoint. Worklists.
@@ -46,4 +46,4 @@ The simple language will be a small subset of C.
* Chapter 16: Code generation: perhaps to Java bytecodes.
* Chapter 17: Code generation: to native X86 or ARM. Instruction selection, BURS. Register allocation.
* Chapter 18: Exceptions
-* Chapter 19: Garbage Collection. \ No newline at end of file
+* Chapter 19: Garbage Collection.