При разработке встроенных приложений широко используется такой подход, как оптимизация по результатам профилирования (Profile-Guide Optimization) или прикладная оптимизация (Application Specific Optimization).
Типичной областью "приложения" такой оптимизации может служить обычный оператор вида if () goto.... Дело в том, что вследствие конвейерной обработки данных при проверке условия в команде if наилучшим вариантом (с точки зрения быстродействия) является невыполнение этого условия, так как в конвейере уже находятся инструкции, непосредственно следующие за if, и выполнение условия приведет к необходимости очистки конвейера при выполнении перехода и, как следствие, к снижению производительности.
Чтобы оптимизировать код желательно записать в операторе if () такое условие (прямое или обратное), которое менее вероятно при выполнении программы. Но как компилятор может оценить более вероятную ветвь программы? Поскольку в состав большинства современных средств разработки входит утилита профилирования, современные компилятора "научились" анализировать данные, получаемые в результате профилирования. После запуска программы на наборах реальных данных с профилированием компилятор анализирует результаты профилирования и выполняет повторную компиляцию, оптимизированную под данный набор исходных данных.
Отличительные особенности архитектуры МП семейства ADSP-21060
(СуперГарвардская архитектура, подсистема памяти, IOP-процессор, шины,
Программный секвенсор).