해킹1 LLVM 컴파일러는 무엇일까? LLVM은 C와 C++과 같은 native language를 컴파일하는 단계에서 컴파일 중간에 코드의 일부를 변경하거나 읽어내는 Pass를 적용하는 컴파일러이다. 즉, 특정 코드들에 대해 일관되게 어떠한 처리를 하고 싶을 때 LLVM을 쓸 수 있다. LLVM의 구조는 크게 프론트엔드(Front-end)-LLVM Optimizer-백엔드(Back-end)로 나뉜다. LLVM이 프론트엔드에서 LLVM Optimizer로 넘어갈 때 중간 단계 표현(IR, Intermediate Representation)을 사용하는데, 이것을 줄여서 IR 코드라고 부른다. 먼저 프론트엔드에서 Native Language를 IR 코드로 번역하면, 여러개의 Pass가 이 IR 코드에 여러가지 사항을 적용하면서 최종.. 2021. 1. 26. 이전 1 다음