LLVM static analysis
Research areas Live-variable analysis Dead-code analysis Nullness analysis Typestate analysis
Research areas Live-variable analysis Dead-code analysis Nullness analysis Typestate analysis
SmallVector SmallVector has a smart design. I was amazed the first time reading the implementation. It utilizes the memory layout of derived classes to achieve the separation of logic and data. Sm...
Parsing Most vexing parse Clang driver See https://clang.llvm.org/docs/DriverInternals.html Useful arguments: -### -ccc-print-phases -ccc-print-bindings Terminology PCH: precom...
First, Clang is both the frontend of C like language, and it is also a compiler driver. As a frontend, Clang has a handwritten recursive decent parser, and it is quite complicated. Quote from Walte...
This doc contains my accumulated knowledge about console, terminal and shell. I, together with many of you, do not spend dedicated time to learning these concepts, but instead keep accumulating the...
Celery has a AMQP broker and an consumer backend. kombu Kombu is a messaging library that supports AMQP, redis, etc. It is basically an AMQP broker. I feel reading its user guide is super helpful...
There are only two difficult problems in the traditional RDBMS domain: query optimization and concurrency control. This blog discuss various aspects of the latter in Mysql. Isolation levels The b...
Template Argument Deduction For Function Calls The ultimate source of truth is temp.deduct.call. Let’s take a few examples. Example 1: cv-qualifier and reference type template <typename T>...
QEP: query execution plan Join straight join It is kind of option that forbid reordering tables when joining. According to official doc, This can be used for those (few) cases for which the ...
Some random thoughts or learnings. 2025-06-01 From “F. E. Allen. Control flow analysis. SIGPLAN Notices, 5(7):1–19, July 1970. Proceedings of a Symposium on Compiler Optimization.”: is this a...