Why should I know this?

LLVM - Why should we know this? 본문

Knowledge/Compiler

LLVM - Why should we know this?

die4taoam 2020. 7. 19. 23:50

LLVM은 GCC와 함께 컴파일러의 양대 산맥을 이루는 오픈소스 컴파일러 프로젝트이며, 컴파일러를 넘어 자신들을 '컴파일러 툴킷'으로 소개한다. 요컨데 컴파일러를 제작하기 위해 필요한 여러가지 공구들을 모아놓은 공구함이라고 할 수 있겠다.

LLVM은 Front/Middle/Back 의 3단 분리를 명확하게 하고, 분리된 단 간 그리고 각 단 속에서의 PLUGIN 을 지원하기 위해 추상화 된 데이터 표현 계층인 Intermdediate Reperesntation (=IR)을 사용한다. 이런 구조를 통해 LLVM은 LLVM 참여자 뿐 아니라 컴파일러를 활용하거나 독자 모듈을 구현하는 사람들에게 광풍과도 같은 인기를 얻었으며 거의 모든 컴파일러 논문 및 연구가 LLVM을 기반으로 이뤄지게 되는 원동력을 제공할 수 있게 되었다.

 

LLVM은 거의 대부분의 플랫폼 혹은 하드웨어 벤더에서 자사 제품 개발 혹은 자사 하드웨어 최적화 를 제공하기 위해 활용되고 있으며 그 중 가장 유명한 곳은 아마도 APPLE 일 것이다. LLVM 활용한 여러가지 USE-CASE를 개발하고 공유하여 왜 이 시점에 '컴파일러?' 라는 의문에 답할 수 있었으면 좋겠다.

 

 

'Knowledge > Compiler' 카테고리의 다른 글

ART-Compiler] LoopOptimizing #1  (0) 2022.12.05
LLVM Obfuscator] Control Flow Graph Flattening  (0) 2021.02.15
LLVM Obfuscator] Call  (0) 2021.02.13
GCC compile  (0) 2018.04.09
gcc 사용 중에 버그를 발견했을때 report 하는 방법.  (0) 2018.04.09
Comments