3 ms·
My First LLVM Compiler (2015)
- quasarj 7y agoSo why did he use gcc to link the program at the end?
- saagarjha 7y agoGCC is a front-end: in this case, it should just call ld.
- smhenderson 7y agoBecause he wrote a compiler but not a linker?
- fluffything 7y agogcc is probably used to call the platforms linker
- daniel-levin 7y agoI imagine it is because gcc -o is a convenient way to call the linker such that it correctly links the binary and libc. Doing this manually with ld would require several (non-portable) command line arguments that would be distracting from the main point of the post.
- JoshMcguigan 7y agoI recently wrote a brainfuck compiler using Rust [0], but I targeted x86-64 asm directly. I implemented some very basic optimization (as you show at the bottom of your post), but I'd imagine llvm is able to take things much further. I'd be curious to see a performance comparison. [0]: https://github.com/JoshMcguigan/nerve https://github.com/JoshMcguigan/nerve
- mhh__ 7y agoState of the art compilers are ridiculously clever sometimes, so I imagine quite a lot. I wonder how good they are at extracting information from code generated from BF however.