Могут ли компиляторы C ++ автоматически удалять повторяющийся код?

Дублирование кода обычно плохо и часто довольно легко обнаруживается. Я полагаю, что компиляторы могут обнаружить это автоматически в самых простых случаях - они уже анализируют текст и получают промежуточное представление, которое они анализируют различными способами - обнаруживают подозрительные шаблоны, такие как неинициализированные переменные, оптимизируют испускаемый код и т. Д. Я предполагаю, что они часто могут обнаруживать функционально дублирующиеся кодируйте таким же образом и учитывайте это при генерировании машинного кода.

Существуют ли компиляторы C ++, которые могут обнаруживать повторяющийся код и выдавать соответствующий машинный код только один раз, а не для каждого дубликата в исходном тексте?

6
задан Community 23 May 2017 в 12:09
поделиться