Reference:
Reading list:
Books:
Reference 1 DAG - Directed Acyclic Graph Directed Acyclic Graph (DAG) is a tool that depicts the structure of basic blocks, helps to see the flow of values flowing among the basic blocks, and offers optimizatino too. 1 A directed acyclic graph (DAG) for a basic block: Leaf nodes represent identifiers, names or constants. Interior nodes are labeled by an operator symbol. Nodes are also given a sequence of identifiers for labels to store the computed value.
Reference: Fully Abstract Compilation. a little bit Sec Gap Reference 1 The correctness-security gap in compiler optimization. By Vija D’Silva, Mathias Payer, Dawn Song. LangSec, 2015. ↩ Next700 Reference 1 The Next 700 Compiler Correctness Theorems (Functional Pearl). By Daniel Patterson, Amal Ahmed. ICFP, 2019. ↩ CompCert Reference 1 CompCert: A realistic, verified compiler. By verified, we mean a compiler that is accompanied by a machine-checked proof of a semantic preservation property: the generated machine code behaves as prescribed by the semantics of the source program.
Q & A What is the LLVM address space? John: better name ‘namespace’: one namespace for memory load/store; another namespace for IO port load/store. What is data layout string in LLVM? What kind of change we need to make to enable fat pointers for a legacy code? Exceptions References: reference More Landingpad References: LLVM Exception Handling A landing pad corresponds roughly to the code found in the catch portion of a try/catch sequence.
Reference 1 HELIX: auto parallel loops. Janus: Automatic binary parallelisation. reference ↩
If you could revise
the fundmental principles of
computer system design
to improve security...
... what would you change?