Instruction Set Design for Accelerating the LLVM Interpreter

LLVM의 해석기 가속을 위한 명령어 셋 디자인

  • 정동헌 (서울대학교, 전기.컴퓨터 공학부) ;
  • 이석영 (서울대학교, 전기.컴퓨터 공학부) ;
  • 김재진 (서울대학교, 전기.컴퓨터 공학부) ;
  • 문수묵 (서울대학교, 전기.컴퓨터 공학부)
  • Published : 2010.06.30

Abstract

LLVM(Low-level Virtual machine)은 최적화된 컴파일 코드 생성을 위한 컴파일러 프레임워크를 목적으로 제작되었다. LLVM은 C언어로 작성된 코드를 효과적으로 머신에 비종속적인 중간코드로 표현하여 사용하므로 이를 잘 활용한다면 C언어를 위한 머신 비종속적인 '가상머신'으로 사용할 수 있다. 하지만 LLVM은 효과적인 컴파일러라는 원래의 설계목적 때문에 전반적으로 동적 수행에 대해 큰 고민 없이 디자인되었다. 이러한 디자인상의 한계는 가상 머신으로서의 성능에는 좋지 않은 영향을 끼치므로 이에 대한 보안이 필요하다. 우리는 LLVM의 명령어 셋에 추가명령어를 제안하여 LLVM 해석기의 성능향상을 얻어낼 것이다.

Keywords