Preview

Вопросы радиоэлектроники

Расширенный поиск

ОСОБЕННОСТИ РЕАЛИЗАЦИИ МЕХАНИЗМА ОБРАБОТКИ ИСКЛЮЧЕНИЙ C++ ДЛЯ ПЛАТФОРМЫ "ЭЛЬБРУС"

Полный текст:

Аннотация

Механизм исключений является важной частью крупных приложений, написанных на языках высокого уровня, таких как C++, поэтому имеется острая необходимость в их эффективной реализации. В данной работе рассматривается подход к обработке исключений, называемый zero cost exceptions handling, позволяющий минимизировать накладные расходы на обработку исключений в пользовательском приложении. Это достигается благодаря локализации вспомогательного кода, требуемого для обработки исключений, в специальные участки, называемые landing pad. Дано подробное описание реализации данного механизма, показывающее, за счет чего происходит минимизация накладных расходов. Дается краткий обзор альтернативного подхода к обработке исключений (механизм setjmp/longjmp), используемого в предыдущей версии компилятора и основанного на использовании функций из стандартной библиотеки языка C - setjmp, longjmp. Описаны нововведения и доработки со стороны компилятора и оптимизирующих фаз, необходимые для реализации рассматриваемого механизма. Приведены результаты сравнения производительности, подтверждающие преимущество механизма zero cost exceptions handling по сравнению с механизмом setjmp/longjmp.

Об авторах

Р. М. Русяев
АО «МЦСТ»; ПАО «ИНЭУМ им. И.С. Брука»
Россия

аспирант, ПАО «ИНЭУМ им. И. С. Брука»;

инженер-программист, АО «МЦСТ»

119334, Москва, ул. Вавилова, д. 24, тел.: 8 (499) 135-60-94


С. В. Баранников
АО «МЦСТ»
Россия

инженер-программист

119334, Москва, ул. Вавилова, д. 24, тел.: 8 (499) 135-60-94



М. И. Нейман-заде
АО «МЦСТ»; ПАО «ИНЭУМ им. И.С. Брука»; МФТИ (ГУ)
Россия

к. ф.-м. н., начальник отделения, АО «МЦСТ», ПАО «ИНЭУМ им. И. С. Брука»;

доцент, МФТИ (ГУ);

19334, Москва, ул. Вавилова, д. 24, тел.: 8 (499) 135-88-69


Список литературы

1. Christophe de Dinechin. C++ Exception Handling for IA-64. URL: http://static.usenix.org/events/osdi2000/wiess2000/full_papers/dinechin/dinechin_html (accessed 05.11.2017)

2. Itanium C++ ABI: Exception Handling. Available at: http://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html (accessed 05.11.2017)

3. Exception Handling in LLVM. Available at: http://llvm.org/docs/ExceptionHandling.html (accessed 05.11.2017)

4. Exceptions Handling Tables. Available at: https://itanium-cxx-abi.github.io/cxx-abi/exceptions.pdf (accessed 05.11.2017)

5. SPEC CPU2006. Available at: https://www.spec.org/cpu2006 (accessed 05.11.2017)

6. SPEC CPU2017. Available at: https://www.spec.org/cpu2017 (accessed 05.11.2017)


Для цитирования:


Русяев Р.М., Баранников С.В., Нейман-заде М.И. ОСОБЕННОСТИ РЕАЛИЗАЦИИ МЕХАНИЗМА ОБРАБОТКИ ИСКЛЮЧЕНИЙ C++ ДЛЯ ПЛАТФОРМЫ "ЭЛЬБРУС". Вопросы радиоэлектроники. 2018;(2):45-50.

For citation:


Rusyaev R.M., Barannikov S.V., Neiman-Zade M.I. FEATURES OF EXCEPTIONS HANDLING IMPLEMENTATION FOR ELBRUS ARCHITECTURE. Issues of radio electronics. 2018;(2):45-50. (In Russ.)

Просмотров: 11


Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2218-5453 (Print)