Restarting my technical blogs. This time I will be posting on the LLVM compiler and its internals. I am not describing anything detail about the LLVM compiler infrastructure.
Please refer here LLVM
LLVM is a compiler. It takes your C/C++ programs and output code (binary) that can be executed on a target machine. Like any compiler it transform your program to an IR. Then optimizes the IR and generated assembly code from the optimized IR.
As a compiler developer the interest will be to understand the LLVM IR, optimizations done on IR and code generation from the IR. After code generation the IR in LLVM is called machine IR as it represents low level information of the machine you are targeting. Then optimizations on done on machine IR like register allocation and scheduling. Finally machine IR will be converted to assembly code, assembled linked and converted to binary ready for running.
I will try to cover and blog about
* LLVM IR
* Writing a Pass to process the IR
* Passes that optimize the IR
* Code generation and How to teach LLVM to generate Machine IR
* Optimization on Machine IR like scheduling, etc...
Monday, December 11, 2017
Subscribe to:
Comments (Atom)