aboutsummaryrefslogtreecommitdiff
path: root/doc/CompilerFlow.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/CompilerFlow.md')
-rw-r--r--doc/CompilerFlow.md6
1 files changed, 6 insertions, 0 deletions
diff --git a/doc/CompilerFlow.md b/doc/CompilerFlow.md
new file mode 100644
index 0000000..e42b94d
--- /dev/null
+++ b/doc/CompilerFlow.md
@@ -0,0 +1,6 @@
+# Compiler flow
+(Tokenize&parse -> Resolve AST -> Generate SSA -> Generate bytecode) -> Generate program\
+Each step except the last is done using multiple threads in parallel and the output of each step is used
+in the next step. The last step is not done in parallel because the last step is combining all bytecode
+and writing it to a file, which is an IO bottlenecked operation and it won't benefit from multithreading
+and may even lose performance because of it. \ No newline at end of file