Dino's Blog

Knowledge is the cheapest and most rewarding investment

Prefetching

CSCD70 Lec9

Coping with Memory Latency Reduce Latency: Locality Optimizations Reorder iterations to improve cache reuse Tolerate Latency: P...

Memory Optimization

CSCD70 Lec8

Ideal Memory Zero access time (latency) Infinite capacity Zero cost Infinite bandwidth (to support multiple accesses in parallel) The Problem Ideal memory’s requirements oppose each o...

Pointer Analysis

CSCD70 Lec7

Pointer Analysis Basics: Aliases Two variables are aliases if: They reference the same memory location More useful: Prove variables reference different location ...

Code Optimization

CSC488 Lec8 & 9

Optimization Goals for Optimization Make the object program faster and/or smaller, and/or use less power without changing the meaning of the program To produce object code that ...

IR Gen

CSC488 Lec7

Translation of Programs Translation is the process of transforming a program into some intermediate representation Input to the translation process is the representation of the program as prod...

Register Allocation

CSCD70 Lec6

Goals Find an allocation for all pseudo-registers, if possible. If there are not enough registers in the machine, choose registers to spill to memory Example: Find an assignment (no spill...

LLVM IR

CSC488 Lec6

What is LLVM IR? LLVM IR stands for low-level virtual machine intermediate representation. An universal and architecture-independent IR for compiler optimization, code generation,...

Semantic Analysis

CSC488 Lec5

Semantic Analysis Validation of non-syntactic language constraints Static semantic analysis - during compilation Dynamic semantic analysis - run time checks Semantic a...

SSA

CSCD70 Lec4

Where is a Variable Defined or Used? Example: Loop-Invariant Code Motion Are B, C, and D only defined outside the loop? Other definitions of A inside the loop? Uses of A i...

Constant Propagation

CSCD70 Tut4