RU2000124183A - Способ получения объектного кода - Google Patents

Способ получения объектного кода

Info

Publication number
RU2000124183A
RU2000124183A RU2000124183/09A RU2000124183A RU2000124183A RU 2000124183 A RU2000124183 A RU 2000124183A RU 2000124183/09 A RU2000124183/09 A RU 2000124183/09A RU 2000124183 A RU2000124183 A RU 2000124183A RU 2000124183 A RU2000124183 A RU 2000124183A
Authority
RU
Russia
Prior art keywords
intermediate program
execution time
program
linear
planned
Prior art date
Application number
RU2000124183/09A
Other languages
English (en)
Other versions
RU2206119C2 (ru
Inventor
Владимир Юрьевич Волконский
Александр Юрьевич Останевич
Александр Леонидович Сушенцов
Original Assignee
Закрытое акционерное общество "МЦСТ"
Filing date
Publication date
Application filed by Закрытое акционерное общество "МЦСТ" filed Critical Закрытое акционерное общество "МЦСТ"
Priority to RU2000124183A priority Critical patent/RU2206119C2/ru
Priority claimed from RU2000124183A external-priority patent/RU2206119C2/ru
Application granted granted Critical
Publication of RU2206119C2 publication Critical patent/RU2206119C2/ru
Publication of RU2000124183A publication Critical patent/RU2000124183A/ru

Links

Claims (5)

1. Способ получения объектного кода, отличающийся тем, что по исходной программе получают неоптимизированный объектный код в виде совокупности линейных участков и соответствующий указанному коду профиль программы с информацией о числе исполнений каждого линейного участка неоптимизированного объектного кода; переводят исходную программу или неоптимизированный объектный код в первичную промежуточную программу, имеющую совокупность линейных участков, соответствующую совокупности линейных участков неоптимизированного объектного кода; каждый линейный участок первичной промежуточной программы планируют и затем определяют время исполнения полученного спланированного участка в тактах; определяют полное время исполнения первичной промежуточной программы по следующей формуле:
Figure 00000001
где Т - полное время исполнения первичной промежуточной программы в тактах;
Lj - время исполнения j-того спланированного линейного участка первичной промежуточной программы в тактах;
Nj - число исполнений упомянутого j-го линейного участка;
j=1...m - число линейных участков;
для каждого спланированного линейного участка первичной промежуточной программы определяют ожидаемое уменьшение полного времени исполнения первичной промежуточной программы в результате выноса совокупности операций, спланированных в первом такте указанного участка, с учетом числа исполнений указанного участка, полученного из профиля программы; осуществляют оптимизацию первичной промежуточной программы путем выполнения заданного числа циклов следующих действий, определяемого из условия завершения оптимизации: устанавливают последовательность спланированных линейных участков текущей промежуточной программы по убыванию ожидаемого уменьшения полного времени исполнения текущей промежуточной программы; переносят совокупность операций, спланированных в первом такте первого линейного участка указанной последовательности, на предшествующие ему по управлению спланированные линейные участки текущей промежуточной программы, включая тот же спланированный участок в случае программного цикла, при этом получают преобразованную промежуточную программу, имеющую по меньшей мере два модифицированных участка; определяют полное время исполнения преобразованной промежуточной программы, полученное с учетом планирования ее участков, и реальное уменьшение указанного времени по сравнению с полным временем исполнения текущей промежуточной программы и полученное реальное уменьшение сравнивают с ожидаемым уменьшением полного времени исполнения текущей промежуточной программы для следующего линейного участка указанной последовательности; при этом: если первое из упомянутых уменьшении не меньше второго, сохраняют преобразованную промежуточную программу, после чего выполняют для нее указанный цикл действий, полагая ее текущей промежуточной программой в данном цикле, причем реальное уменьшение полного времени исполнения полученной последующей преобразованной промежуточной программы определяют по сравнению с полным временем исполнения предыдущей преобразованной промежуточной программы, если первое из упомянутых уменьшении меньше второго, восстанавливают состояние модифицированных участков, причем при положительном значении реального уменьшения выполняют указанный цикл действий с учетом этого значения, а при отсутствии реального уменьшения выполняют указанный цикл действий, осуществляя его с действия по переносу совокупности операций, спланированных в первом такте следующего линейного участка последней полученной последовательности спланированных линейных участков для текущей промежуточной программы; на основе полученной в результате оптимизации совокупности линейных участков последней преобразованной промежуточной программы формируют оптимизированный объектный код.
2. Способ по п.1, отличающийся тем, что полное время исполнения преобразованной промежуточной программы в ходе оптимизации определяют по формуле
Figure 00000002
где Top - полное время исполнения преобразованной промежуточной программы в тактах с учетом дублирования операций в процессе оптимизации;
Lj - время исполнения j-го спланированного линейного участка преобразованной промежуточной программы в тактах;
Nj - число исполнений упомянутого j-го линейного участка;
Кор - положительное число, характеризующее замедление работы преобразованной промежуточной программы на выбранной архитектурной платформе из-за увеличения размеров кода;
Rj - число операций на j-том линейном участке с учетом результатов переноса;
j=1...m - число линейных участков в совокупности.
3. Способ по п.1, отличающийся тем, что полное время исполнения преобразованной промежуточной программы в ходе оптимизации определяют по формуле
Figure 00000003
где Tmem - полное время исполнения преобразованной промежуточной программы в тактах с учетом увеличения числа обращений в память в процессе оптимизации; Lj - время исполнения j-го спланированного линейного участка преобразованной промежуточной программы в тактах;
Nj - число исполнений упомянутого j-го линейного участка;
Kmem - положительное число, характеризующее замедление работы преобразованной промежуточной программы в процессе оптимизации на выбранной архитектурной платформе из-за увеличения числа обращений в память;
Mj - число операций обращения в память на j-м линейном участке с учетом результатов переноса;
j=1...m - число линейных участков в совокупности.
4. Способ по любому из пп.1-3, отличающийся тем, что условием завершения оптимизации первичной промежуточной программы является отсутствие реального уменьшения полного времени исполнения преобразованной промежуточной программы для всех линейных участков.
5. Способ по любому из пп.1-3, отличающийся тем, что условием завершения оптимизации первичной промежуточной программы является отсутствие реального уменьшения полного времени исполнения преобразованной промежуточной программы для заданного числа оптимизируемых линейных участков.
RU2000124183A 2000-09-22 2000-09-22 Способ получения объектного кода RU2206119C2 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2000124183A RU2206119C2 (ru) 2000-09-22 2000-09-22 Способ получения объектного кода

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2000124183A RU2206119C2 (ru) 2000-09-22 2000-09-22 Способ получения объектного кода

Publications (2)

Publication Number Publication Date
RU2206119C2 RU2206119C2 (ru) 2003-06-10
RU2000124183A true RU2000124183A (ru) 2003-06-27

Family

ID=29209088

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2000124183A RU2206119C2 (ru) 2000-09-22 2000-09-22 Способ получения объектного кода

Country Status (1)

Country Link
RU (1) RU2206119C2 (ru)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2306597C2 (ru) * 2005-10-04 2007-09-20 Георгий Михайлович Шагов Способ компоновки (сборки) программного обеспечения
US8799882B2 (en) 2005-12-07 2014-08-05 Microsoft Corporation Compiler support for optimizing decomposed software transactional memory operations
US7555619B2 (en) 2005-12-07 2009-06-30 Microsoft Corporation Efficient per-object operations in software transactional memory
US8191052B2 (en) 2006-12-01 2012-05-29 Murex S.A.S. Producer graph oriented programming and execution
US8332827B2 (en) 2006-12-01 2012-12-11 Murex S.A.S. Produce graph oriented programming framework with scenario support
US8307337B2 (en) 2006-12-01 2012-11-06 Murex S.A.S. Parallelization and instrumentation in a producer graph oriented programming framework
RU2691860C1 (ru) * 2018-06-25 2019-06-18 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ распараллеливания программ в среде логического программирования в вычислительной системе

Similar Documents

Publication Publication Date Title
Myers The fragment assembly string graph
Rajendran Heuristics for scheduling in flowshop with multiple objectives
CN112700027A (zh) 用于电功率预测模型的多精度指标综合评价方法及系统
JP3844691B2 (ja) コード生成モード変更方法
CN100401258C (zh) 用于在执行被转换指令时维持环境的方法
CN101918917B (zh) 基于块计数的过程布局和拆分
RU2000124183A (ru) Способ получения объектного кода
AU2007236811B2 (en) Method of predicting the secondary structure of RNA, prediction apparatus and prediction program
CN106227163A (zh) 基于Petri网和模拟退火的装备制造系统无死锁调度方法
Korver et al. A computer-checked verification of Milner's scheduler
RU2206119C2 (ru) Способ получения объектного кода
Sutcliffe The CADE-24 automated theorem proving system competition–CASC-24
Yadav et al. Detection of isomorphism among kinematic chains using the distance concept
JP4462676B2 (ja) プログラム変換装置、コンパイラ装置およびプログラム変換プログラムを記録したコンピュータ読み取り可能な記録媒体
Theodosiou et al. Further studies of the promethium isoelectronic sequence
JP3905951B2 (ja) シミュレーション/エミュレーションの効率を増すための論理変換方法
Marecki et al. A fast analytical algorithm for MDPs with continuous state spaces
JPH1153006A (ja) スケジューリング方法
JP3955843B2 (ja) マイクロプロセッサの並列シミュレーションシステム
Ripon et al. PVS embedding of cCSP semantic models and their relationship
Attarzadeh et al. Implementation and evaluation of earned value index to achieve an accurate project time and cost estimation and improve" Earned Value Management System"
Wiedermann Speeding-up single-tape nondeterministic computations by single alternation, with separation results
Friedman Methodology of conservation engineering
Wenqing et al. Balance Design of Production Line in Engine Assembly Workshop
Berson et al. Integrating program optimizations and transformations with the scheduling of instruction level parallelism