LLVM Pass를 작성하고 실행시켜보는 연습을 해보자.
1. 함수 이름을 출력하는 Pass 작성하기
for 문으로 함수의 이름을 모두 출력한다.
test.c 파일은 다음과 같이 작성했다.
2. Instruction의 개수를 세는 Pass 작성하기
이중 for 문을 활용하여 Function, BasicBlock, Instuction을 확인하며, Instruction 하나당 count 변수를 1씩 증가시킨다. 이렇게 존재하는 모든 Instruction에 대해서 count를 증가시키면서 Instruction의 개수를 셀 수있다. 함수 이름과 instruction 개수를 함께 출력하여 쉽게 확인 가능하도록 한다.
*인자로 Module&을 받아서 for문으로 Function을 얻는 것과 Function&을 인자로 받는 것의 차이를 잘 모르겠다.
test.c 파일은 다음과 같이 작성했다.