Научный журнал
ИЗВЕСТИЯ ВЫСШИХ УЧЕБНЫХ ЗАВЕДЕНИЙ.
СЕВЕРО-КАВКАЗСКИЙ РЕГИОН.

ТЕХНИЧЕСКИЕ НАУКИ


ИЗВЕСТИЯ ВЫСШИХ УЧЕБНЫХ ЗАВЕДЕНИЙ СЕВЕРО-КАВКАЗСКИЙ РЕГИОН. 2017; 3: 64-69

 

http://dx.doi.org/10.17213/0321-2653-2017-3-64-69

 

ПОВЫШЕНИЕ ЭФФЕКТИВНОСТИ ОПТИМИЗАЦИИ КОМПИЛЯТОРА ПО УПЛОТНЕНИЮ КОДА

И.Р. Скапенко, Д.В. Дубров

Скапенко Илья Русланович – магистрант, Институт математики, механики и компьютерных наук имени И.И. Воровича, Южный федеральный университет, г. Ростов-на-Дону, Россия. E-mail: skapenko@sfedu.ru

Дубров Денис Владимирович – канд. физ.-мат. наук, доцент, кафедра «Информатика и вычислительный эксперимент», Институт математики, механики и компьютерных наук имени И.И. Воровича, Южный федеральный университет, г. Ростов-на-Дону, Россия. E-mail: dubrov@sfedu.ru

 

 

Аннотация

В настоящее время существует множество вычислительных систем с ограниченным количеством памяти. Автоматическое уменьшение размера программного кода может избавить разработчиков программного обеспечения от большого количества рутинной работы и необходимости реализовывать программы на языках низкого уровня. Целью настоящей работы является реализация межпроцедурных оптимизаций уменьшения размера кода на основе библиотеки LLVM, а также изучение их эффективности. В работе рассматривается межпроцедурная оптимизация вынесения одинаковых базовых блоков в отдельную функцию, которая реализуется на уровне промежуточного представления LLVM.

 

Ключевые слова: оптимизирующий компилятор; уплотнение кода; LLVM; SSA-форма; межпроцедурные оптимизации; слияние функций.

 

Полный текст: [in elibrary.ru]

 

Ссылки на литературу

  1. Gartner Says 6.4 Billion Connected «Things» Will Be in Use in 2016, Up 30 Percent From 2015 // Gartner, 10 Nov. 2015, URL: http://www.gartner.com/newsroom/id/3165317 (дата обращения: 24.04.2017).
  2. Mattern F., Flörkemeier C. Vom Internet der Computer zum Internet der Dinge // Informatik Spektrum. 2010. Vol. 33,№ 2. 107–121. DOI 10.1007/s00287-010-0417-7.
  3. De Sutter B., Put L. van, Chanet D., De Bus B., De Bosschere K. Link-time compaction and optimization of ARM executables // ACM Transactions on Embedded Computing Systems. 2007. Feb. Vol. 1, № 3. DOI 10.1145/1210268.1210273.
  4. Muchnick S.S. Advanced Compiler Design and Implementation. San Francisco, CA, USA.: Morgan Kaufmann Publishers Inc., 1997. xxx+856 pp. ISBN 1-55860-320-4.
  5. Ахо А.В., Лам М С., Сети Р., Ульман Дж.Д. Компиляторы: принципы, технологии и инструментарий, 2-е изд.: пер. с англ. М.: ООО «И.Д. Вильямс», 2008. 1184 с. ISBN 978-5-8459-1349-4.
  6. Lopes B.C., Auler R. Getting Started with LLVM Core Libraries. Packt Publishing, 2014. 314 p. ISBN 978-1-78216-692-4.
  7. Debray S.K., Evans W. Compiler Techniques for Code Compaction // ACM Transactions on Programming Languages and Systems. 2000. Mar. Vol. 22, № 2. P. 378 – 415. DOI 10.1145/349214.349233.
  8. Code compaction. URL: https://github.com/skapix/codeCompaction (дата обращения: 24.04.2017).
  9. Writing an LLVM Pass. URL: http://llvm.org/docs/WritingAnLLVMPass.html (дата обращения: 24.04.2017).
  10. MergeFunctions pass. URL: http://llvm.org/docs/MergeFunctions.html (дата обращения: 24.04.2017).