LLVM loop unroll and jam pass and view-cfg

llvm에서 unroll and jam pass를 사용하려고 하는데 아무리 해도 되지 않는다; da,lcssa,loop simplify가 조건이지만 이것은 unroll and jam pass가 시작시에 이미 다 진행하는것을 확인하였고.. 다음과 같은 최적화를 추가하면 수행이 된다. 아래는 행렬 연산의 예시이며 loop unroll and jam 이 수행되어야한다. clang -Xclang -disable-O0-optnone -emit-llvm matmul.c -S opt -stats -debug -loop-unroll-and-jam -allow-unroll-and-jam -unroll-and-jam-count=2 matmul.ll 위처럼 해도…

더 보기

LLVM (clang) build and install (ubuntu 18.04)

1.clone llvm repo 2. configure Ninja를 사용하면 컴파일 시간을 많이 단축할 수 있다. pass를 만들다보면 자주 컴파일할 상황이 생기기 때문에 ccache와 ninja를 사용해서 빌드 속도를 높혀주는것을 추천한다.(-LLVM_CCACHE_BUILD ON) 만약에 ninja가 없을시에는 -G “Unix Makefile”로 바꾸자 위 설정에서 build type이 Debug일 시에 linking시 많은 ram이 소요되니 주의 바란다. 위에서 빌드한 clang을 특정 위치에 설치하고 싶다면 -DCMAKE_INSTALL_PREFIX…

더 보기