TACAI: An Intermediate Representation based on Abstract Interpretation
summary
An OPAL extension builds an abstract‑interpretation IR called Takai with three configurable domains (L0, L1, L2) and produces SSA‑like code; computing Takai adds little runtime overhead and L2 often runs faster than the baseline framework. Precision gains are small for instruction count (<1% fewer statements) but call‑graph edges shrink substantially (up to ~60% in one project). Takai emits union/intersection reference types, supports must‑alias only reasoning, and does not preserve bytecode indices.
AI-written summary · about
chapters (16)
- 0:00Intro
- 0:30The Problem with Java Bytecode
- 1:23Intermediate Representations Facilitating Static Analysis
- 2:10TAC and SSA in a Nutshell
- 3:36Other Base Representations Soot, Doop, and WALA
- 4:17Jimple and WALA IR in Comparison Differences in Their Typing
- 5:31OPAL's Approach to Static Analysis And How to Use it for IR Creation
- 6:17OPAL's Abstract Interpretation TACAI reuses OPAL's Abstract Domains
- 7:45TACAI's Features An Overview
- 9:07Producing TACAI The Source Code
- 10:40TACAILO The Baseline Representation
- 11:58Transformation from TACAILO to TACAIL
- 14:30Research Questions
- 15:17Experiment 2
- 19:08Conclusion & Future Work
- 20:05Summary
related talks
18mCompiling with Abstract Interpretation
09mRetargeting an Abstract Interpreter for a New Language by Partial Evaluation (Short Paper)
33mTeIL: a type-safe imperative Tensor Intermediate Language
25mNice to Meet You: Synthesizing Practical MLIR Abstract Transformers
33masai: a Library for Compiler Diagnostics
27mTaming Unsoundness with Gradual Abstract Interpretation
15mAmalgamating Different JIT Compilations in a Meta-tracing JIT Compiler Framework
29mTowards Formally Verified Just-In-Time Compilation
