Lattice Inc.
Lattice Inc.
Имеющий большую историю компилятор Lattice MS-DOS C последовательно совершенствовался с каждой новой версией. Он известен как генератор стабильного, предсказуемого кода и выполняет умеренную оптимизацию. Lattice С выполняет снижение мощности, сжатие цепочки переходов и удаление общих подвыражений. Он не удаляет дублирующиеся присваивания после теста встроенных функций и лишние присваивания в функции dead_code. Хотя он не генерирует никакого кода для недостижимого printf в функции dead_code, компилятор Lattice C генерирует ненужный безусловный переход к LEAVE, которая является следующей инструкцией.
Единственными сгенерированными машинно-зависимыми инструкциями были ENTER и LEAVE, инструкции микропроцессоров 80x86 для прологов и эпилогов функций. Это сомнительное благо, поскольку выполнение ENTER требует больше циклов микропроцессора, чем установка адресации стекового фрейма отдельными инструкциями. Lattice C не выполняет оптимизацию циклов.