User Tools

Site Tools


sd:llvm_backend_for_sd-8516

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
sd:llvm_backend_for_sd-8516 [2026/06/10 15:47] – created appledogsd:llvm_backend_for_sd-8516 [2026/06/11 02:53] (current) appledog
Line 11: Line 11:
 This period is binary. It compiles or it does not. There is no incremental improvement here. I learned a lot and actually changed my ISA a bit because of what I learned doing this. But, I do not remember anything I did here. It is a black hole. I've probably blocked it out of my memory. It was that horrifying. This period is binary. It compiles or it does not. There is no incremental improvement here. I learned a lot and actually changed my ISA a bit because of what I learned doing this. But, I do not remember anything I did here. It is a black hole. I've probably blocked it out of my memory. It was that horrifying.
  
-== June 2026 +=== Notes from April/May
-A sudden thrust of energy, cola and Doritos and the back-end was in sight. A lot of this was fueled by excitement over many small wins. Such as getting something to work. Once I saw it start to emit SDA assembly I was hooked. Many small changes to the assembler were made too, to support LLVM stuff that I didn't want to try and lower out. +
- +
-=== Notes from June+
 * That stupid string that looks like e-p:32:8-i16:8-i32:8-i64:8-n16 is in: * That stupid string that looks like e-p:32:8-i16:8-i32:8-i64:8-n16 is in:
 ** ''llvm/lib/TargetParser/TargetDataLayout.cpp'' ** ''llvm/lib/TargetParser/TargetDataLayout.cpp''
 +
 +//Total cost of this note alone: Probably 6 hours.//
  
 * COMMON files I need to find: * COMMON files I need to find:
Line 26: Line 25:
 * Look very carefully at the error message. 90% of the time you're missing a header, a function declaration, or something's type is wrong. The solution is often easier than you think. * Look very carefully at the error message. 90% of the time you're missing a header, a function declaration, or something's type is wrong. The solution is often easier than you think.
 * Use git or you will mess stuff up and be unable to go back. * Use git or you will mess stuff up and be unable to go back.
 +
 +== June 2026
 +A sudden thrust of energy, cola and Doritos and the back-end was in sight. A lot of this was fueled by excitement over many small wins. Such as getting something to work. Once I saw it start to emit SDA assembly I was hooked. Many small changes to the assembler were made too, to support LLVM stuff that I didn't want to try and lower out. One example of an extreme change I made was to remove MOV touching the zero flag because I couldn't figure out how to set it in the files. Its supposed to be [SR] (status register). But there are multiple places you're supposed to add it and I started hallucinating that I had added it in certain places then when I went back to check it was gone. Whatever, I'll just remove the flags from MOV! Now i'm done with that part. HAHA. Hehe hoho.
 +
 +Suddenly I was out of the tunnel and I didn't even realize it. I decided to skip some stuff that would have made the generated code "better". Like jumptables and some function calls (that are instead inlined, which bloats code).
 +
 +* Remember: jumptables for large switches
 +* Remember: mul and div calling functions versus inlining
 +
 +* [[Notes to Self from June]]
 +
 +* [[Runtime Library Notes]]
 +
sd/llvm_backend_for_sd-8516.1781106453.txt.gz · Last modified: by appledog

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki