Существует два вида промежуточного представления (IR) в дизайне компилятора, кратко представленные здесь : графическое (например, дерево абстрактного синтаксиса) и линейное (например, LLVM IR). Каковы плюсы и минусы двух?
Я заметил, что Clang реализовал оба, но, похоже, только линейное представление (LLVM IR) используется в бэкэнде LLVM.