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
Links
- 238000000034 method Methods 0.000 title claims 7
- 238000005457 optimization Methods 0.000 claims 9
- 230000009467 reduction Effects 0.000 claims 4
- 241000238876 Acari Species 0.000 claims 1
Claims (5)
1. Способ получения объектного кода, отличающийся тем, что по исходной программе получают неоптимизированный объектный код в виде совокупности линейных участков и соответствующий указанному коду профиль программы с информацией о числе исполнений каждого линейного участка неоптимизированного объектного кода; переводят исходную программу или неоптимизированный объектный код в первичную промежуточную программу, имеющую совокупность линейных участков, соответствующую совокупности линейных участков неоптимизированного объектного кода; каждый линейный участок первичной промежуточной программы планируют и затем определяют время исполнения полученного спланированного участка в тактах; определяют полное время исполнения первичной промежуточной программы по следующей формуле:
где Т - полное время исполнения первичной промежуточной программы в тактах;
Lj - время исполнения j-того спланированного линейного участка первичной промежуточной программы в тактах;
Nj - число исполнений упомянутого j-го линейного участка;
j=1...m - число линейных участков;
для каждого спланированного линейного участка первичной промежуточной программы определяют ожидаемое уменьшение полного времени исполнения первичной промежуточной программы в результате выноса совокупности операций, спланированных в первом такте указанного участка, с учетом числа исполнений указанного участка, полученного из профиля программы; осуществляют оптимизацию первичной промежуточной программы путем выполнения заданного числа циклов следующих действий, определяемого из условия завершения оптимизации: устанавливают последовательность спланированных линейных участков текущей промежуточной программы по убыванию ожидаемого уменьшения полного времени исполнения текущей промежуточной программы; переносят совокупность операций, спланированных в первом такте первого линейного участка указанной последовательности, на предшествующие ему по управлению спланированные линейные участки текущей промежуточной программы, включая тот же спланированный участок в случае программного цикла, при этом получают преобразованную промежуточную программу, имеющую по меньшей мере два модифицированных участка; определяют полное время исполнения преобразованной промежуточной программы, полученное с учетом планирования ее участков, и реальное уменьшение указанного времени по сравнению с полным временем исполнения текущей промежуточной программы и полученное реальное уменьшение сравнивают с ожидаемым уменьшением полного времени исполнения текущей промежуточной программы для следующего линейного участка указанной последовательности; при этом: если первое из упомянутых уменьшении не меньше второго, сохраняют преобразованную промежуточную программу, после чего выполняют для нее указанный цикл действий, полагая ее текущей промежуточной программой в данном цикле, причем реальное уменьшение полного времени исполнения полученной последующей преобразованной промежуточной программы определяют по сравнению с полным временем исполнения предыдущей преобразованной промежуточной программы, если первое из упомянутых уменьшении меньше второго, восстанавливают состояние модифицированных участков, причем при положительном значении реального уменьшения выполняют указанный цикл действий с учетом этого значения, а при отсутствии реального уменьшения выполняют указанный цикл действий, осуществляя его с действия по переносу совокупности операций, спланированных в первом такте следующего линейного участка последней полученной последовательности спланированных линейных участков для текущей промежуточной программы; на основе полученной в результате оптимизации совокупности линейных участков последней преобразованной промежуточной программы формируют оптимизированный объектный код.
2. Способ по п.1, отличающийся тем, что полное время исполнения преобразованной промежуточной программы в ходе оптимизации определяют по формуле
где Top - полное время исполнения преобразованной промежуточной программы в тактах с учетом дублирования операций в процессе оптимизации;
Lj - время исполнения j-го спланированного линейного участка преобразованной промежуточной программы в тактах;
Nj - число исполнений упомянутого j-го линейного участка;
Кор - положительное число, характеризующее замедление работы преобразованной промежуточной программы на выбранной архитектурной платформе из-за увеличения размеров кода;
Rj - число операций на j-том линейном участке с учетом результатов переноса;
j=1...m - число линейных участков в совокупности.
3. Способ по п.1, отличающийся тем, что полное время исполнения преобразованной промежуточной программы в ходе оптимизации определяют по формуле
где Tmem - полное время исполнения преобразованной промежуточной программы в тактах с учетом увеличения числа обращений в память в процессе оптимизации; Lj - время исполнения j-го спланированного линейного участка преобразованной промежуточной программы в тактах;
Nj - число исполнений упомянутого j-го линейного участка;
Kmem - положительное число, характеризующее замедление работы преобразованной промежуточной программы в процессе оптимизации на выбранной архитектурной платформе из-за увеличения числа обращений в память;
Mj - число операций обращения в память на j-м линейном участке с учетом результатов переноса;
j=1...m - число линейных участков в совокупности.
4. Способ по любому из пп.1-3, отличающийся тем, что условием завершения оптимизации первичной промежуточной программы является отсутствие реального уменьшения полного времени исполнения преобразованной промежуточной программы для всех линейных участков.
5. Способ по любому из пп.1-3, отличающийся тем, что условием завершения оптимизации первичной промежуточной программы является отсутствие реального уменьшения полного времени исполнения преобразованной промежуточной программы для заданного числа оптимизируемых линейных участков.
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 (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2306597C2 (ru) * | 2005-10-04 | 2007-09-20 | Георгий Михайлович Шагов | Способ компоновки (сборки) программного обеспечения |
US8099726B2 (en) | 2005-12-07 | 2012-01-17 | Microsoft Corporation | Implementing strong atomicity in software transactional memory |
US8799882B2 (en) * | 2005-12-07 | 2014-08-05 | Microsoft Corporation | Compiler support for optimizing decomposed software transactional memory operations |
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 |
US8191052B2 (en) | 2006-12-01 | 2012-05-29 | Murex S.A.S. | Producer graph oriented programming and execution |
RU2406112C2 (ru) * | 2008-10-28 | 2010-12-10 | Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." | Способ построения программы |
RU2411569C2 (ru) * | 2009-01-29 | 2011-02-10 | Закрытое акционерное общество "ОПТИМИЗИРУЮЩИЕ ТЕХНОЛОГИИ" | Способ автоматического распараллеливания программ |
RU2691860C1 (ru) * | 2018-06-25 | 2019-06-18 | Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" | Способ распараллеливания программ в среде логического программирования в вычислительной системе |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2109799A1 (en) * | 1991-05-24 | 1992-12-10 | Daniel Mark Nosenchuck | Optimizing compiler for computers |
DE4206567C1 (ru) * | 1992-03-02 | 1993-05-27 | Siemens Ag, 8000 Muenchen, De | |
US5623684A (en) * | 1994-05-17 | 1997-04-22 | Commquest Technologies, Inc. | Application specific processor architecture comprising pre-designed reconfigurable application elements interconnected via a bus with high-level statements controlling configuration and data routing |
US5764991A (en) * | 1995-06-30 | 1998-06-09 | Canon Kabushiki Kaisha | Processing object oriented code and virtual function code |
RU2115158C1 (ru) * | 1995-10-24 | 1998-07-10 | Владимир Олегович Сафонов | Способ и устройство для достоверной оценки семантических признаков в синтаксическом анализе при проходе вперед слева направо |
DE19617842A1 (de) * | 1996-05-03 | 1997-11-13 | Siemens Nixdorf Inf Syst | Verfahren zur Codetransformation |
DE19840029C1 (de) * | 1998-09-02 | 2000-04-20 | Siemens Ag | Verfahren zum Linken von in einen Arbeitsspeicher eines Prozessors nachgeladenen Programmodulen auf einer Chipkarte |
-
2000
- 2000-09-22 RU RU2000124183A patent/RU2206119C2/ru active IP Right Revival
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Myers | The fragment assembly string graph | |
CN100401258C (zh) | 用于在执行被转换指令时维持环境的方法 | |
JP2881711B2 (ja) | 神経回路網の遺伝子的合成 | |
RU2000124183A (ru) | Способ получения объектного кода | |
Marcucci et al. | Realistic calculation of the 3 He+ p (hep) astrophysical factor | |
CN101918917B (zh) | 基于块计数的过程布局和拆分 | |
BR9814278A (pt) | Método de otimização de operação de trem e treinamento | |
Chanas et al. | Minimizing maximum lateness in a single machine scheduling problem with fuzzy processing times and fuzzy due dates | |
AU2007236811B2 (en) | Method of predicting the secondary structure of RNA, prediction apparatus and prediction program | |
RU2206119C2 (ru) | Способ получения объектного кода | |
CN110276689A (zh) | 基于动态决策的智能合约实现方法 | |
CN116627490A (zh) | 一种智能合约字节码相似性检测方法 | |
Beizer | Analytical techniques for the statistical evaluation of program running time | |
Yadav et al. | Detection of isomorphism among kinematic chains using the distance concept | |
CN110009048A (zh) | 一种神经网络模型的构建方法以及设备 | |
Theodosiou et al. | Further studies of the promethium isoelectronic sequence | |
JP3905951B2 (ja) | シミュレーション/エミュレーションの効率を増すための論理変換方法 | |
JPH1153006A (ja) | スケジューリング方法 | |
JPS62217325A (ja) | アセンブラコ−ド最適化方式 | |
Ryan et al. | Automatic parallelization of arbitrary programs | |
JP3955843B2 (ja) | マイクロプロセッサの並列シミュレーションシステム | |
Ripon et al. | PVS embedding of cCSP semantic models and their relationship | |
Jóźwiak | Application of artificial intelligence notions in structural optimization programs | |
Li et al. | Using artificial neural network for predicting thread partitioning in speculative multithreading | |
Wiedermann | Speeding-up single-tape nondeterministic computations by single alternation, with separation results |