본문 바로가기

CNUproject/코드 동일성 검사 도구

17_Python IR에 LLVM Pass 적용하기

1. numba를 사용하여 .py 파일을 .ll 파일로 변경해준다.

numba pythonArray.py --dump-llvm pythonArray.ll

 

2. llvm-as를 사용하여 .ll 파일을 .bc 파일로 변경해준다.

sudo llvm-as pythonArray.ll -o result.bc

3. opt를 사용하여 패스를 적용해준다.

../build/bin/opt -load ../build/lib/NamePrinter.dylib -NamePrinter result.bc -o result_out.bc

이때 opt 경로를 지정해서 적용한다.

전에 사용했던 NamePrinter 패스를 적용하여 함수 이름이 출력되는 것을 확인할 수 있다.