Overview
Explore the inner workings of compilers in this 30-minute talk by Jared Shumway, Vice President of White Hat Cal Poly. Dive into the process of transforming text files into machine code, learn how compilers optimize code performance, and discover techniques for generating obfuscated binaries. Gain insights into the internals of optimizing compilers, including abstract syntax trees, intermediate representations, and various optimization techniques such as constant folding, strength reduction, and dead code elimination. Examine specific tools and projects that can enhance code security and efficiency.
Syllabus
Intro
What are compliers?
Compiler Overview
Sample Program
Abstract Syntax Tree
Sample AST
AST Analysis
Intermediate Representation (R)
IR 3 Address Code
IR Registers
IR Example
Machine Code 3 Steps
LLVM Machine Code Gen
Register Allocation
Data Flow Analysis
Single Static Assignment Form (SSA)
Constant Folding Propagation
Strength Reduction
Scalar Evolution
Dead Code Elimination
Loop Invariant Code Motion
Machine Code Optimizations
Specific Tools
Taught by
White Hat Cal Poly