Background: I am learning about compilers by writing one in swift.
The easiest approach is a VM. Another is emitting LLVM-assembly.
Thoughts: LLVM is written in c++. All tutorials use a bunch of tools or are geared towards c++. I want to stick with swift and write everything myself to better understand the fundamentals. Though converting assembly to architecture specific instructions is a step too far. Life is too short for that.
LLVM-assembly looks like it could be written by hand. So it’s something I could target with my toy compiler. Right?
Question: did or still does Swift influence LLVM-assembly? Or is LLVM-assembly, the language, something that is finished? Take actors for example. That will require suspension points, threads, concurrency and so on. Would that require changes to the assembly language or the LLVM backend?
I guess what I am really asking is if I know LLVM assembly, will I ever have to care about the steps afterwards to get an app with all bells and whistles compiled and working?
PS. I am sure the backend is fascinating in itself. No offence intended. Just getting to fully understand the frontend will take me years due to time constraints.