나는 LLVM
-O0
최적화를 사용하여 C 코드를 컴파일했습니다.LLVM IR을 높은 최적화 수준으로 변환
-O0
LLVM IR 코드를 -O3
LLVM
"C 코드없이"IR 코드로 변환하려면 어떻게해야합니까?
나는 다음 시도했다 :
clang -O3 -S -emit-llvm O0.ll -o O3.ll
및
opt -O3 -S O0.ll -o O3.ll
하지만 출력이 여전히
-O0
수준입니다.
감사합니다.
나는 LLVM
-O0
최적화를 사용하여 C 코드를 컴파일했습니다.LLVM IR을 높은 최적화 수준으로 변환
-O0
LLVM IR 코드를 -O3
LLVM
"C 코드없이"IR 코드로 변환하려면 어떻게해야합니까?
나는 다음 시도했다 :
clang -O3 -S -emit-llvm O0.ll -o O3.ll
및
opt -O3 -S O0.ll -o O3.ll
하지만 출력이 여전히
-O0
수준입니다.
감사합니다.
나는 변화가 언제 일어 났는지 확신 할 수 없다. (나는 그것이 LLVM
3.9.0 이상이라고 생각한다.) 그러나 비트 코드 기능을 컴파일 할 때 optnone
속성으로 주석이 달리고 추가 최적화가 수행되지 않는다.
관련 SO 토론 here을 찾아보십시오. 제안 무엇
이 작업을 수행하는 것입니다 LLVM
3.8.0 및 이미 수행 된 것을 (내가 생각하는) 이전 충분를 들어
clang -emit-llvm -O1 -mllvm -disable-llvm-optzns -disable-llvm-passes foo.c -o foo.bc
.
따라서 (optnone
없이) 해당 비트 코드를 얻으면 이미 수행 한 것처럼 opt
을 사용할 수 있습니다.
'opt'는 예상 한대로해야합니다. 샘플을 게시 할 수 있습니까? 그들은 동일합니까? –
[Clang이 내 기능에 특성을 자동으로 추가하는 이유는 무엇입니까?] (https://stackoverflow.com/questions/47504219/why-is-clang-automatically-adding-attributes-to-my-functions) –