[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

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 (9)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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