КОНТЕКСТНО-ЗАВИСИМОЕ РАССЛАИВАНИЕ ДЛЯ ДИНАМИЧЕСКОЙ ПАРАЛЛЕЛИЗАЦИИ ДВОИЧНЫХ ПРОГРАММ

1. Способ, содержащий этапы, на которых:
выполняют обработку неструктурированной однопоточной области двоичного кода с использованием процессора, соединенного с запоминающим устройством,
определяют критерий среза для указанной области;
определяют контур вызова, контур возврата и псевдоконтур прохода при невыполнении условия для области на основе анализа области на двоичном уровне;
генерируют контекстно-зависимый срез кода на основе контура вызова, контура возврата, псевдоконтур прохода при невыполнении условия, и критерия среза; и
сохраняют контекстно-зависимый срез кода в запоминающем устройстве.
2. Способ по п.1, включающий в себя этап, на котором генерируют контекстно-зависимый срез кода, посредством прохода контура возврата.
3. Способ по п.2, включающий в себя этап, на котором определяют рекурсивный подсрез для области на основе контура возврата.
4. Способ по п.3, характеризующийся тем, что определение рекурсивного подсреза не основано на метаданных для другого контура вызова.
5. Способ по п.3, включающий в себя этап, на котором осуществляют проход по псевдокромке прохода при невыполнении условия после определения рекурсивного подсреза.
6. Способ по п.1, включающий в себя этапы, на которых:
определяют вызов рекурсивной функции; и
генерируют контекстно-независимый срез кода для вызова рекурсивной функции без попыток генерирования контекстно-зависимого среза кода для вызова рекурсивной функции.
7. Способ по п.1, включающий в себя этап, на котором генерируют, на основе истечения лимита времени контекстно-независимый срез кода для второго контура вызова, посредством обработки второго контура вызова, в качестве нормального контура потока управления.
8. Способ по п.6, включающий в себя этапы, на которых генерируют контекстно-независимый срез кода посредством обработки другого контура возврата, включенного в область в качестве нормального контура потока управления, и игнорируют другой включенный в область псевдоконтур прохода при невыполнении условия.
9. Способ по п.1, включающий в себя распараллеливание области на основе контекстно-зависимого среза кода для определения первого и второго потоков из однопоточной области, при этом первый и второй потоки выполнены с возможностью параллельного выполнения.
10. Способ по п.1, включающий в себя этап, на котором генерируют контекстно-зависимый срез кода во время выполнения.
11. Способ по п.10, в котором область представляет собой активную область.
12. Способ по п.10, включающий в себя этап, на котором определяют контур вызова, контур возврата и псевдоконтур прохода при невыполнении условия на основе графа потока управления для указанной области.
13. Способ по п.1, в котором область полностью включена в поток микроопераций, формируемый во время выполнения.
14. Способ по п.1, в котором определение среза не основано на метаданных, включающих в себя информацию отладки.
15. Изделие, содержащее носитель данных, содержащий инструкции, обеспечивающие выполнение системой на основе процессора этапов, на которых:
обрабатывают с использованием процессора системы однопоточную неструктурированную область двоичного кода;
определяют контур возврата для области на основе анализа области на двоичном уровне;
генерируют контекстно-зависимый срез кода на основе контура возврата; и
сохраняют в запоминающем устройстве системы контекстно-зависимый срез кода.
16. Изделие по п.15, дополнительно содержащее инструкции, обеспечивающие выполнение системой на основе процессора этапов, на которых:
определяют контур вызова и псевдоконтур прохода при невыполнении условия для области на основе анализа области на двоичном уровне; и
генерируют срез на основе контура вызова и псевдоконтура прохода при невыполнении условия.
17. Изделие по п.15, дополнительно содержащее инструкции, обеспечивающие выполнение системой на основе процессора этапов, на которых:
генерируют срез посредством прохода по контуру возврата; и
генерируют контекстно-независимый срез посредством обработки другого контура вызова, включенного в область, в качестве нормального контура потока управления, на основе лимита времени.
18. Устройство, содержащее:
запоминающее устройство для приема однопоточной неструктурированной области двоичного кода;
процессор, соединенный с запоминающим устройством для:
определения контура возврата для области на основе анализа области на двоичном уровне; и
генерирования контекстно-зависимого среза кода на основе контура возврата.
19. Устройство по п.18, в котором процессор выполнен с возможностью:
определения контура вызова и псевдоконтура прохода при невыполнении условия для области на основе анализа области на двоичном уровне; и
генерирования среза на основе контура вызова и псевдоконтура прохода при невыполнении условия.
20. Устройство по п.18, в котором процессор выполнен с возможностью:
генерирования среза посредством прохода по контуру возврата; и
генерирования на основе лимита времени контекстно-независимого среза кода посредством обработки другого контура вызова, включенного в область, в качестве нормального контура потока управления.