Each component binary in a heterogeneous program is translated from a
platform-specific instruction set into a set of intermediate
representation (IR) instructions that are platform-neutral. The IR
instructions are grouped into IR code blocks, the IR code blocks into IR
procedures, and the IR procedures into IR components to create an
intermediate representation hierarchy for the program. An application
program interface is provided that permits user access to the IR hierarchy
for instrumentation, optimization, navigation, and manipulation of the IR
hierarchy. The transformed IR hierarchy is then translated into
platform-specific instructions and output as a modified binary. The user
can designate a different platform for the output translation of a code
block than the platform for which the code block was originally written.
Prologue and epilog code is added to contiguous blocks that are translated
into different architectures. The modified binary can be iterated through
the translation and transformation process to produce multiple versions of
the heterogeneous program.
Каждый компонент бинарный в несродной программе переведен от платформ-speqificeski комплекта инструкции в комплект промежуточных инструкций представления (ИКЫХ) платформ-ne1tral6no. ИКЫЕ инструкции собраны в ИКЫЕ блоки Кодего, ИКЫЕ блоки Кодего в ИКЫЕ процедуры, и ИКЫЕ процедуры в ИКЫЕ компоненты создать промежуточную иерархию представления для программы. Application program interface provided that доступ пользователя разрешений к ИКОЙ иерархии для измерительного оборудования, оптимизирования, навигации, и манипуляции ИКОЙ иерархии. Преобразованная ИКАЯ иерархия после этого переведена в платформ-speqificeski инструкции и выход как доработанное бинарное. Потребитель может обозначить по-разному платформу для перевода выхода блока Кодего чем платформы для блок Кодего первоначально был написан. Кодий пролога и epilog добавлено к сопредельным блокам переведены в по-разному зодчеств. Доработанное бинарное можно повторить через процесс перевода и преобразования для того чтобы произвести множественные варианты несродной программы.