почему проходы оптимизации не работают без mem2reg? - PullRequest
1 голос
/ 20 марта 2012

Почему я должен сделать этот проход mem2reg в оптимизации байт-кода для получения другого результата прохода оптимизации?Какая польза от mem2reg?

opt -dce myfile.bc

в этом случае у меня нет изменений в выходном коде

opt -mem2reg -dce myfile.bc

во втором случае у меня есть изменения в выходном коде

edit: LLVRIR все еще в форме SSa, не так ли?используя mem2reg я должен иметь "сокращенную" форму SSA, правильно?

1 Ответ

7 голосов
/ 21 марта 2012

mem2reg pass преобразует форму LLVM IR без SSA в форму SSA, увеличивая нагрузки и сохраняя их в значения, назначенные стеком, в «регистры» (значения SSA). Многие из проходов оптимизации LLVM работают с кодом в форме SSA и, таким образом, скорее всего, не будет видеть IR в форме не-SSA.

Немного больше информации здесь: http://llvm.org/docs/Passes.html#mem2reg-promote-memory-to-register

...