LINUX.ORG.RU

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

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

Оптимизации тоже не сильно сложно.

ага, сильная заявка, все компиляторостроители плачут, их скоро всех поувольняют )

SSA transform - тупо, DCE, code motion - тупо. Loop unrolling, loop strength reduction, loop invariant motion, loop fusion и все такое - тоже тупо и примитивно. Register allocation тоже примитивно, тупых, но эффективных эвристик полно известно, особенно после SSE там все элементарно. Instruction selection тоже, тупое динамическое программирование,

да у тебя вообще всё просто, но что-то мне подсказывает, что ты это только в книжках видел

в бухгалтерии все намного сложнее.

конкретно что там сложнее?

И что сильно способствует простоте - все это очень хорошо разграничивается. Все эти преобразования - сами по себе, и друг другу не мешают. Сложность между ними не распределяется. Каждое преобразование обособлено и примитивно.

а вот что не способствует простоте - допускаются только однозначные преобразования, которые не меняют смысла написанного, и вот с этим не всё так просто

Любая CRUD-система сложнее, потому как там компоненты взаимодействуют нетривиально,

конкретнее, можно?

а в компиляторе тупо последовательная цепочка элементарных преобразований.

в тупом компиляторе - да

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

Оптимизации тоже не сильно сложно.

ага, сильная заявка, все компиляторостроители плачут, их скоро всех поувольняют )

SSA transform - тупо, DCE, code motion - тупо. Loop unrolling, loop strength reduction, loop invariant motion, loop fusion и все такое - тоже тупо и примитивно. Register allocation тоже примитивно, тупых, но эффективных эвристик полно известно, особенно после SSE там все элементарно. Instruction selection тоже, тупое динамическое программирование,

да у тебя всё просто, но что-то мне подсказывает, что ты это только в книжках видел

в бухгалтерии все намного сложнее.

конкретно что там сложнее?

И что сильно способствует простоте - все это очень хорошо разграничивается. Все эти преобразования - сами по себе, и друг другу не мешают. Сложность между ними не распределяется. Каждое преобразование обособлено и примитивно.

а вот что не способствует простоте - допускаются только однозначные преобразования, которые не меняют смысла написанного, и вот с этим не всё так просто

Любая CRUD-система сложнее, потому как там компоненты взаимодействуют нетривиально,

конкретнее, можно?

а в компиляторе тупо последовательная цепочка элементарных преобразований.

в тупом компиляторе - да