COL731: Difference between revisions
| [checked revision] | [checked revision] |
Prashantt492 (talk | contribs) Creating course page via bot |
Bot: wrap bare course codes in wikilinks |
||
| Line 4: | Line 4: | ||
| credits = 4 | | credits = 4 | ||
| credit_structure = 3-0-2 | | credit_structure = 3-0-2 | ||
| pre_requisites = COL729 or equivalent | | pre_requisites = [[COL729]] or equivalent | ||
| overlaps = | | overlaps = | ||
}} | }} | ||
Latest revision as of 16:26, 14 April 2026
| COL731 | |
|---|---|
| Advanced Compiler Techniques for Optimization, Safety and Security | |
| Credits | 4 |
| Structure | 3-0-2 |
| Pre-requisites | COL729 or equivalent |
| Overlaps | |
COL731 : Advanced Compiler Techniques for Optimization, Safety and Security
Polyhedral analysis for locality and parallelism transformations. The topics will include the affine transform theory in the polyhedral framework, space-partitioning constraints and associated code-generation algorithms, primitive affine transformations, and pipelining. Lab work will include experimentation and development within existing polyhedral analysis tools, such as LLVM's Polly; Undefined Behaviour will be discussed in the context of performance-sensitive programming languages such as C/C++/Rust/etc. The manifestation of Undefined Behaviour at the Intermediate Representation (IR) level will be discussed through examples of real-world IRs such as LLVM IR; Symbolic analysis approaches based on dataflow analysis/abstract interpretation will be introduced. Hoare logic and associated predicate transformers (weakest-precondition, strongest-postcondition) will be introduced. Optionally, algorithms for automatic inference of inductive invariants and bisimulations may be discussed. Optionally, superoptimization techniques may be discussed too.