Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Устранение общих подвыражений уменьшает количество вычислений, но увеличивает количество живых переменных и тем самым давление на регистры. Поэтому если регистров мало, а выражние простое (стоит меньше чем скажем чтение из памяти), то получается CSE может легко повредить и может надо наоборот делать rematerialization в местах использования.разве? это для простоты в коде представлено так, как у меня, но на деле, во внутреннем представлении (например, SSA) CSE значительно уменьшит использование регистров, а не увеличит
for (int i = 0; i < N; i++) s += calc(i, j);
- Объявление переменной: int a
- Присваивание =
- a
- Умножение *
- 32
- 32
Оптимизации в компиляторах. Часть 1