본문 바로가기
KERD
논문KCI 등재

ARM 플랫폼에서의 LLVM과 GCC의 비교 평가

Comparative Evaluation of LLVM and GCC on the ARM Platform

0

조회

0

다운로드

0

인용

0

참고문헌

키워드

주제분류컴퓨터학

초록

가상머신은 중간 코드를 사용하여 프로그램을 단 한번 컴파일하여 여러 플랫폼에 재컴파일 없이 수행될 수 있도록 하는, 플랫폼 독립성을 제공한다. 이러한 가상 머신인 LLVM은 GCC기반의 C/C++ 전단부인 llvm-gcc와 그로 얻 어진 LLVM 바이트코드를 타깃 머신의 어셈블리로 컴파일하여 주는 llc 후단부를 가지고 있으며, 바이트코드를 하 나로 묶는 과정에서도 강력한 최적화를 수행할 수 있다. 본 논문에서는 리눅스 기반의 ARM 스마트폰에서 C/C++ 프로그램을 GCC를 통해 생성된 어셈블리와, 최적화 단계를 달리하여 LLVM을 통해 얻은 어셈블리를 비교하여 LLVM의 성능을 평가하고, 최적화를 비교한다. LLVM은 메모리 접근 부분에서 GCC에 비해 약점을 보이나, 다른 부분의 최적화에선 거의 GCC에 가까운 성능을 보이고, 함수 호출이 자주 일어나는 경우 더 우수한 최적화 성능을 보여준다.

Abstract

Virtual Machines provide platform independence using intermediate code, by compiling programs into the intermediate bytecode once and then executing it in multiple platforms without recompilation. One such a VM called the LLVM has the llvm-gcc, a GCC-based C/C++ front-end, and the llc, a back-end which compiles the LLVM bytecode into the assembly code for target machines. LLVM can also run aggressive link-time optimizations when linking several bytecode files together into a single LLVM bytecode file. This paper evaluates the performance of the LLVM and analyzes its optimization quality by comparing the assemblies generated by the LLVM to the assemblies generated by the GCC on a linux-based ARM smart phone. Compared to the GCC, the LLVM is weaker in optimizing memory accesses, but is comparable in other optimizations, especially when there are frequent function calls where the LLVM even performs better.

참고문헌 (15)

  1. J. Smith, "Virtual Machines", Elsevier (2005)
  2. J. Gosling, "The Java Language Specification Reading" (1996), Addison-Wesley
  3. Luis M. Vaquero, "A Break in the Clouds: Toward a Cloud Definition", ACM SIGCOMM, 39(1), pp.50~55 (2009)
  4. "LLVM Home"[URL]
  5. Chris Lattner, "LLVM: An Infrastructure for Multi-Stage Optimization", 석사, Computer Science Dept., pp.2002
  6. Vikram Adve, "LLVA: A Low-level Virtual Instruction Set Architecture" (2003), MICRO-3
  7. Chris Lattner, "Introduction to the LLVM Compiler Infrastructure", 2006 Itanium Conference and Expo (2006)
  8. "CaffeinMark 3.0"[URL]
  9. "a free, commercially representative embedded benchmark suite"[URL]
  10. "ARM Architecture Reference Manual, ARM DDI0100I", ~
  11. J. C. Huang, "Generalized Loop-Unrolling: a Method for Program Speed-U", Department of Computer Science, pp.1999
  12. "Architecture for a Next-Generation GCC, Lattner, Chris, Vikram Adve", ~ (2003)

관련 논문AI추천

이 간행물의 다른 논문 (11건)