서울대 허충길 교수팀, 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 컴파일러가 구글의 소프트웨어를 잘못 컴파일하는 문제가 발생하며 이번 연구가 더욱 주목받는 계기가 됐다“고 설명했다.

이번 연구는 허 교수의 주도 하에 구글, 마이크로소프트, 아줄 시스템, 미국 유타 대학과 공동 연구한 결과다.