RU2011152760A - Оптимизации кода с использованием компилятора с двумя порядками следования байтов - Google Patents
Оптимизации кода с использованием компилятора с двумя порядками следования байтов Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target 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, в которой компилятор выполнен с возможностью в ответ на определение выполнения перестановки домена и сохранения переустановленного домена на первом носителе для хранения данных.
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)
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)
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模型的热插拔处理方法 |
-
2009
- 2009-06-25 EP EP09846596A patent/EP2446352A4/en not_active Withdrawn
- 2009-06-25 WO PCT/RU2009/000316 patent/WO2010151167A1/en active Application Filing
- 2009-06-25 KR KR1020117030086A patent/KR101379556B1/ko not_active IP Right Cessation
- 2009-06-25 JP JP2012514913A patent/JP5392689B2/ja not_active Expired - Fee Related
- 2009-06-25 RU RU2011152760/08A patent/RU2515546C2/ru not_active IP Right Cessation
- 2009-06-25 CN CN200980160069.8A patent/CN102804142B/zh not_active Expired - Fee Related
- 2009-06-25 US US13/383,427 patent/US8910114B2/en not_active Expired - Fee Related
- 2009-06-25 SG SG2011082187A patent/SG175951A1/en unknown
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 |