RU2011152760A - Оптимизации кода с использованием компилятора с двумя порядками следования байтов - Google Patents

Оптимизации кода с использованием компилятора с двумя порядками следования байтов Download PDF

Info

Publication number
RU2011152760A
RU2011152760A RU2011152760/08A RU2011152760A RU2011152760A RU 2011152760 A RU2011152760 A RU 2011152760A RU 2011152760/08 A RU2011152760/08 A RU 2011152760/08A RU 2011152760 A RU2011152760 A RU 2011152760A RU 2011152760 A RU2011152760 A RU 2011152760A
Authority
RU
Russia
Prior art keywords
domain
byte
permutation
pointer
code
Prior art date
Application number
RU2011152760/08A
Other languages
English (en)
Other versions
RU2515546C2 (ru
Inventor
Михаил Юрьевич Лоенко
Original Assignee
Интел Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Интел Корпорейшн filed Critical Интел Корпорейшн
Publication of RU2011152760A publication Critical patent/RU2011152760A/ru
Application granted granted Critical
Publication of RU2515546C2 publication Critical patent/RU2515546C2/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

1. Способ, содержащий этапы, на которых:идентифицируют, используя компилятор, работающий на процессоре компьютерной системы, операцию перестановки байтов;создают, используя компилятор, домен, содержащий операцию перестановки байтов и другие выражения, в котором другие выражения являются толерантной перестановкой, и идентифицируют входы домена и выходы домена, связанные с доменом;определяют, используя компилятор, что при выполнении доменной перестановки будет получен выигрыш, и реагируют на определение, выполняя доменную перестановку; исохраняют домен после перестановки на носителе компьютерной системы.2. Способ по п.1, в котором выполнение доменной перестановки содержит изменение порядка байтов, по меньшей мере, в некоторых из связанных входов домена и выходов домена, и заменяют выражения в домене на операции с дубликатом, которые работают с другим порядком байтов.3. Способ по п.2, в котором изменение порядка байтов домена на входе в домен содержит удаление операции перестановки байтов, если вход в домен содержит операцию перестановки байтов, и, в противном случае, вставку перестановки байтов, если вход в домен не содержит операцию перестановки байтов.4. Способ по п.2, в котором изменение порядка байтов домена при выходе из домена содержит удаление операции перестановки байтов, если выход домена содержит операцию перестановки байтов, и, в противном случае, вставку операции перестановки байтов, если выход домена не содержит операцию перестановки байтов.5. Способ по п.2, дополнительно содержащий удаление операции перестановки байтов из первого выражения и вставку операции перестановки байтов во второе выражен

Claims (19)

1. Способ, содержащий этапы, на которых:
идентифицируют, используя компилятор, работающий на процессоре компьютерной системы, операцию перестановки байтов;
создают, используя компилятор, домен, содержащий операцию перестановки байтов и другие выражения, в котором другие выражения являются толерантной перестановкой, и идентифицируют входы домена и выходы домена, связанные с доменом;
определяют, используя компилятор, что при выполнении доменной перестановки будет получен выигрыш, и реагируют на определение, выполняя доменную перестановку; и
сохраняют домен после перестановки на носителе компьютерной системы.
2. Способ по п.1, в котором выполнение доменной перестановки содержит изменение порядка байтов, по меньшей мере, в некоторых из связанных входов домена и выходов домена, и заменяют выражения в домене на операции с дубликатом, которые работают с другим порядком байтов.
3. Способ по п.2, в котором изменение порядка байтов домена на входе в домен содержит удаление операции перестановки байтов, если вход в домен содержит операцию перестановки байтов, и, в противном случае, вставку перестановки байтов, если вход в домен не содержит операцию перестановки байтов.
4. Способ по п.2, в котором изменение порядка байтов домена при выходе из домена содержит удаление операции перестановки байтов, если выход домена содержит операцию перестановки байтов, и, в противном случае, вставку операции перестановки байтов, если выход домена не содержит операцию перестановки байтов.
5. Способ по п.2, дополнительно содержащий удаление операции перестановки байтов из первого выражения и вставку операции перестановки байтов во второе выражение, в котором путь первое выражение используется более часто, чем путь второго выражения.
6. Способ по п.1, дополнительно содержащий вычисление выигрыша посредством обнаружения, что объем кода, удаленный из домена, минус объем кода, вставленный в домен, больше порога.
7. Способ по п.6, в котором вычисление выигрыша содержит взвешивание вставленного кода и удаленного кода и анализ счетчиков исполнений, связанных со вставленным кодом и удаленным кодом.
8. Способ по п.1, в котором выполнение доменной перестановки содержит оптимизацию многочисленных присоединенных выражений домена в одном проходе.
9. Устройство, содержащее машиночитаемый носитель для хранения данных, содержащий команды, которые, когда выполняются, позволяют компьютерной системе:
получать статистическую информацию в отношении исполнения кода на процессоре компьютерной системы, в котором статистическая информация хранится в статистическом хранилище компьютерной системы;
разделять в компиляторе, который выполняется на процессоре, данные, с которыми работает код, на множество групп, причем данные в каждой из групп имеют один и тот же порядок байтов для соответствующего исполнения кода;
определять в компиляторе, видим ли программисту порядок байтов данных группы для каждой из множества групп;
для каждой группы, в которой порядок байтов не видим, определять в компиляторе, может ли изменение порядка байтов обеспечить выигрыш в производительности;
для каждой группы, в которой изменение порядка байтов может обеспечить выигрыш в производительности, изменять порядок байтов в соответствующей группе, чтобы получить модифицированную группу; и
сохранять каждую из модифицированных групп на носителе для хранения данных компьютерной системы.
10. Устройство по п.9, дополнительно содержащее команды, которые, когда исполняются, позволяют компьютерной системе обновлять список адресатов первого указателя, когда первый указатель используется в качестве источника для второго указателя, и обновлять список источников первого указателя, когда другой указатель используется в качестве источника для первого указателя.
11. Устройство по п.10, дополнительно содержащее команды, которые, когда исполняются, позволяют компьютерной системе обновлять список доступа для третьего указателя размером доступа, когда встречается доступ к памяти, связанный с третьим указателем.
12. Устройство по п.11, дополнительно содержащее команды, которые, когда исполняются, позволяют компьютерной системе обновить счетчик выигрыша выражения кода, основываясь на выигрыше в изменения производительности за счет изменения порядка байтов в выражении.
13. Устройство по п.10, дополнительно содержащее команды, которые, когда выполняются, позволяют компьютерной системе создать список указателей, транзитивно доступных через список источников и список адресатов.
14. Устройство по п.13, дополнительно содержащее команды, которые, когда выполняются, позволяют системе, решить, что изменение порядка байтов могло бы обеспечить выигрыш в производительности, если объединение списка указателей, транзитивно доступных через список источников и список адресатов, содержит не больше одного ненулевого элемента и сумма вычисления выигрыша для всех транзитивно доступных указателей положительна.
15. Система, содержащая:
процессор для исполнения команд, процессор для выполнения компилятора, чтобы получать статистическую информацию в отношении исполнения кода процессора, разделять данные, на которых работает код, на множество групп, причем данные в каждой из групп имеют один и тот же порядок байтов для соответствующего исполнения кода, для каждой группы, в которой порядок байтов не видим программисту, определять, может ли изменение порядка байтов обеспечить выигрыш в производительности, и если это так, то изменять порядок байтов соответствующей группы, чтобы получать модифицированную группу, и сохранять каждую из модифицированных групп на первом носителе для хранения данных системы; и
хранилище для хранения списка источников, списка адресатов и списка доступа для каждого указателя кода.
16. Система по п.15, в которой компилятор выполнен с возможностью обновления списка адресатов первого указателя, когда первый указатель является источником для второго указателя, обновления списка адресатов первого указателя, когда другой указатель является источником для первого указателю, и обновления списка доступа для третьего указателя размером доступа, когда встречается доступ к памяти, связанный с третьим указателем.
17. Система по п.16, в которой хранилище дополнительно содержит счетчик выигрыша, способный обновляться, основываясь на изменении выигрыша в производительности за счет изменения порядка байтов в выражении.
18. Система по п.15, в которой компилятор выполнен с возможностью идентифицирования операции перестановки байтов, создания домена, содержащего операцию перестановки байтов и другие выражения, в которой другие выражения являются толерантными к перестановкам, идентифицирования входов домена и выходов домена, связанных с доменом, и определения, что при выполнении перестановки домена будет получен выигрыш.
19. Система по п.18, в которой компилятор выполнен с возможностью в ответ на определение выполнения перестановки домена и сохранения переустановленного домена на первом носителе для хранения данных.
RU2011152760/08A 2009-06-25 2009-06-25 Оптимизации кода с использованием компилятора с двумя порядками следования байтов RU2515546C2 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2009/000316 WO2010151167A1 (en) 2009-06-25 2009-06-25 Optimizing code using a bi-endian compiler

Publications (2)

Publication Number Publication Date
RU2011152760A true RU2011152760A (ru) 2013-10-27
RU2515546C2 RU2515546C2 (ru) 2014-05-10

Family

ID=43386743

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2011152760/08A RU2515546C2 (ru) 2009-06-25 2009-06-25 Оптимизации кода с использованием компилятора с двумя порядками следования байтов

Country Status (8)

Country Link
US (1) US8910114B2 (ru)
EP (1) EP2446352A4 (ru)
JP (1) JP5392689B2 (ru)
KR (1) KR101379556B1 (ru)
CN (1) CN102804142B (ru)
RU (1) RU2515546C2 (ru)
SG (1) SG175951A1 (ru)
WO (1) WO2010151167A1 (ru)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140100841A1 (en) * 2012-10-09 2014-04-10 Apple Inc. Testing a Hardware Emulation Model of a Circuit with Software Checker Routines Designed for an RTL Model of the Circuit
US9619214B2 (en) * 2014-08-13 2017-04-11 International Business Machines Corporation Compiler optimizations for vector instructions
US10169014B2 (en) 2014-12-19 2019-01-01 International Business Machines Corporation Compiler method for generating instructions for vector operations in a multi-endian instruction set
US9588746B2 (en) 2014-12-19 2017-03-07 International Business Machines Corporation Compiler method for generating instructions for vector operations on a multi-endian processor
US9880821B2 (en) 2015-08-17 2018-01-30 International Business Machines Corporation Compiler optimizations for vector operations that are reformatting-resistant
US9594668B1 (en) 2015-09-04 2017-03-14 International Business Machines Corporation Debugger display of vector register contents after compiler optimizations for vector instructions
US11924340B2 (en) * 2021-11-30 2024-03-05 Oracle International Corporation Cryptographically secure shuffle with multi-layer randomness

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05119960A (ja) * 1991-10-25 1993-05-18 Oki Electric Ind Co Ltd バイトオーダ依存コーデイング検出方法
US5828884A (en) * 1996-05-23 1998-10-27 Advanced Micro Devices, Inc. Method for compiling a software program and executing on a system which converts data between different endian formats
US6578193B1 (en) * 1998-03-24 2003-06-10 Novell, Inc. Endian-neutral loader for interpretive environment
US7543284B2 (en) * 2003-04-22 2009-06-02 Transitive Limited Partial dead code elimination optimizations for program code conversion
US7200841B2 (en) 2003-04-22 2007-04-03 Transitive Limited Method and apparatus for performing lazy byteswapping optimizations during program code conversion
GB0309056D0 (en) * 2003-04-22 2003-05-28 Transitive Technologies Ltd Block translation optimizations for program code conversion
US7418699B2 (en) * 2004-02-20 2008-08-26 Intel Corporation Method and system for performing link-time code optimization without additional code analysis
US7552427B2 (en) * 2004-12-13 2009-06-23 Intel Corporation Method and apparatus for implementing a bi-endian capable compiler
US20070016895A1 (en) * 2005-07-15 2007-01-18 Microsoft Corporation Selective omission of endian translation to enhance emulator performance
US7509463B2 (en) 2005-12-01 2009-03-24 Sony Computer Entertainment, Inc. Cell processor atomic compare and swap using dedicated synergistic processor element
US8010957B2 (en) * 2006-08-01 2011-08-30 International Business Machines Corporation Compiler for eliminating redundant read-modify-write code sequences in non-vectorizable code
CN100470484C (zh) 2007-02-05 2009-03-18 华南理工大学 一种基于hpi模型的热插拔处理方法

Also Published As

Publication number Publication date
SG175951A1 (en) 2011-12-29
CN102804142B (zh) 2016-03-02
RU2515546C2 (ru) 2014-05-10
US8910114B2 (en) 2014-12-09
US20120185836A1 (en) 2012-07-19
KR20120058467A (ko) 2012-06-07
WO2010151167A1 (en) 2010-12-29
EP2446352A4 (en) 2012-11-21
EP2446352A1 (en) 2012-05-02
JP5392689B2 (ja) 2014-01-22
CN102804142A (zh) 2012-11-28
JP2012529698A (ja) 2012-11-22
KR101379556B1 (ko) 2014-04-10

Similar Documents

Publication Publication Date Title
RU2011152760A (ru) Оптимизации кода с использованием компилятора с двумя порядками следования байтов
US9798756B2 (en) Systems, methods and computer program products for probing a hash table for improved latency and scalability in a processing system
Hardy et al. Assessing phylogenetic signal with measurement error: a comparison of mantel tests, blomberg et al.'sk, and phylogenetic distograms
US10645105B2 (en) Network attack detection method and device
US7698690B2 (en) Identifying code that wastes time performing redundant computation
US10002142B2 (en) Method and apparatus for generating schema of non-relational database
CN102591855A (zh) 一种数据标识方法及系统
CN113127478B (zh) 数据内生血缘关系的分析方法、装置和计算机设备
CA2675686A1 (en) Object collocation
WO2015057190A1 (en) Analyzing a parallel data stream using a sliding frequent pattern tree
RU2629431C2 (ru) Программируемый логический контроллер и способ его событийно-управляемого программирования
US20190197149A1 (en) Generating a data lineage record to facilitate source system and destination system mapping
CN105260374A (zh) 异步流水线式的图查询方法及系统
CN110134517A (zh) 一种基于公式解析的并行计算方法及装置
US20130185536A1 (en) Hash-based managing of storage identifiers
CN114399404A (zh) 状态监控方法、装置、电子设备及可读存储介质
CN103793653A (zh) 一种基于树优化的程序依赖关系分析方法及系统
KR20130066402A (ko) 트레이스 데이터 저장 장치 및 방법
CN114911865A (zh) 一种区块链虚拟货币数据中台及虚拟货币数据处理方法
US20110239197A1 (en) Instance-based field affinity optimization
CN117763024A (zh) 一种数据分片抽取方法及装置
CN113901094B (zh) 一种数据处理方法、装置、设备及存储介质
CN105512237A (zh) 一种复杂结构的数据导入系统
US20170192878A1 (en) Separating Test Coverage In Software Processes Using Shared Memory
CN105868191B (zh) 数据处理方法及装置

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20160626