LINUX.ORG.RU

История изменений

Исправление byko3y, (текущая версия) :

Третьим проходом каждая функция перестраивается в SSA

И теряется часть информации о коде, главным образом о составных структурах, которые просто так в SSA никак не преобразовываются. По этой причине GCC держит SSA в виде дерева, не разворачивая его в плоскую форму, а LLVM в своем IR содержит вспомогательные инструкции, которые фронтэнд генерирует для помощи бэкэнду, потому что иначе бэкэнд не сможет разобратся в смысле кода:
https://llvm.org/docs/Frontend/PerformanceTips.html

Исправление byko3y, :

Третьим проходом каждая функция перестраивается в SSA

И теряется часть информации о коде, главным образом о составных структурах, которые просто так в SSA никак не преобразовываются. По этой причине GCC держит SSA в виде дерева, не разворачивая его в плоскую форму, а LLVM в своем IR содержит вспомогательные инструкции, которые фронтенд генерирует для помощи бэкэнду, который иначе не сможет разобратся в смысле кода:
https://llvm.org/docs/Frontend/PerformanceTips.html

Исходная версия byko3y, :

Третьим проходом каждая функция перестраивается в SSA

И теряется часть информации о коде, главным образом о составных структурах, которые просто так в SSA никак не преобразовываются. По этой причине GCC держит SSA в виде дерева, а не разворачивает в плоскую форму.