본문 바로가기
IT/LLVM

LLVM basic block call flow graph

by SH_SH 2020. 9. 7.

 

LLVM에서 call flow graph를 생성하기 위해 바로 보거나, dot 파일 등으로 저장할 수 있다.

dot 파일을 위해 graphviz를 설치한다

 

$ sudo apt install graphviz

 

이후 LLVM 으로 cfg 를 생성한다.

 

bitcode 생성

$ clang -c -emit-llvm main.c  -o main.bc

 

ll 생성

$ llvm-dis main.bc

 

cfg 생성

$ opt -analyze -dot-cfg main.ll

 

코드에 따라서 1개 이상의 .dot 파일이 생성된다.

만약 x11 환경이라면 -dot-cfg 옵션 대신에 -view-cfg 옵션을 통해 바로 cfg 를 볼 수 있다.

 

dot 파일을 직접 볼 수 없으므로 png 로 변경한다.

$ dot -Tpng -o main.png .main.dot

 

 

'IT > LLVM' 카테고리의 다른 글

LLVM Pass 실행  (0) 2020.09.11
LLVM clang IR(*.ll) 변환  (0) 2020.09.11