Вы должны знать, что GCC больше не использует SSA, описанный в этих документах (HSSA Чоу). Скорее он использует «псевдоним оракула» для устранения неоднозначности между адресами памяти. Он все еще использует SSA для скалярных переменных.
Ресурсы:
- Я удивлен, что вы пропустили: " Механизм распространения для GCC ", в котором описана общая структура для SCCP и других разреженных условных анализов, используемых в GCC.
- Ленарт и Садлер расширяют SCCP для вывода типа.
- Паттерсон расширяет SCCP для распространения в диапазоне значений (а также позволяет распространять копии). Я почти уверен, что этот алгоритм использует GCC.
- Наконец, если я могу быть настолько смелым, чтобы предложить мою собственную короткую статью , в которой обсуждается алгоритм и делается попытка распространить символическое выполнение (ядро SCCP) на создание SSA.