2013-02-10 2 views
11

Глядя на разборку программы на C++, я вижу такие функции, как _Z41__static_initialization_and_destruction_0ii.constprop.221. Что означает в этом случае значение constprop? Похоже, что он похож на суффикс isra (и иногда комбинируется, например, .isra.124.constprop.226), но это означает что-то еще.Что означает суффикс функции GCC .constprop?

ответ

3

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

EDIT: Это может быть ответ, возможно, нет.

Простая постоянная распространения

Этот файл реализует постоянное распространение и слияние. Он ищет инструкции, содержащие только константные операнды и заменяет их постоянным значением вместо инструкции. Например:

add i32 1, 2 

становится

i32 3 

Примечания: этот проход имеет привычку делать определение мертвого. Это хорошая идея, чтобы запустить пропущенную процедуру удаления мертвых команд через некоторое время после запуска этого прохода.

SOURCE

+0

ли вы не знаете, что оптимизация выполняется? – nneonneo

+0

Ответ обновлен ... – zaf

+0

Cool. Похоже, что это может быть постоянное распространение interprocedure, поскольку оно создает несколько версий функций. Хотя документ предназначен для LLVM, я предполагаю, что аналогичная вещь должна применяться к GCC. – nneonneo

 Смежные вопросы

  • Нет связанных вопросов^_^