서울대 허충길 교수팀, LLVM 컴파일러에 새 명령어 추가
by한광범 기자
2020.01.23 10:50:06
성능저하 없이 오류 해결, freeze 명령어 구글도 주목
[이데일리 한광범 기자] 국내 연구진이 세계에서 가장 많이 쓰이는 컴파일러 중 하나인 LLVM 오류를 해결하는 명령어를 개발했다.
서울대 공대는 23일 컴퓨터공학부 허충길 교수팀(소프트웨어원리 연구실)이 LLVM 컴파일러의 문제점을 발견하고 이를 해결하기 위해 제안한 프리즈(freeze) 명령어가 지난해 11월 LLVM에 공식적으로 추가됐다고 밝혔다.
| 왼쪽부터 허충길 교수(서울대), 이준영 박사과정생(서울대), LLVM 컴파일러. (서울대 제공) |
|
LLVM은 현재 애플, 구글, 페이스북 등 세계 유수 회사 및 여러 오픈소스 프로젝트에서 사용되고 있다. 대표적인 프로젝트로는 C/C++ 컴파일러 Clang, 애플의 Swift 언어, 구글의 Tensorflow 프로젝트, 그리고 프로그래밍 언어 Rust가 있다.
연구진은 LLVM 컴파일러 중간 언어에 존재하는 ‘정의되지 않은 행동(undefined behavior)’이란 개념이 가진 문제점 및 이로 인해 발생할 수 있는 컴파일러 오류들을 발견했다.
이에 해결 방법으로 freeze라는 새로운 명령어를 제안하고 성능저하 없이 문제를 해결할 수 있음을 실험을 통해 입증했다.
이 연구는 학계에서 먼저 인정받아 2017년에 프로그래밍 언어 분야 최고 학회 중 하나인 PLDI(Programming Language Design and Implementation)에 발표됐다.
이후 산업계에서도 이 문제에 대한 심각성을 인지하고 활발한 토의가 이루어져 2년 만인 지난 11월에 공식적으로 freeze 명령어가 LLVM에 추가되기에 이르렀다.
허충길 서울대 교수는 “이번 연구는 해외에서 더욱 주목하고 있다“며 ”논문발표 이후 이 문제로 인해 LLVM 컴파일러가 구글의 소프트웨어를 잘못 컴파일하는 문제가 발생하며 이번 연구가 더욱 주목받는 계기가 됐다“고 설명했다.
이번 연구는 허 교수의 주도 하에 구글, 마이크로소프트, 아줄 시스템, 미국 유타 대학과 공동 연구한 결과다.