기본적으로 LLVM IR 코드의 일부를 취하고 인라인 인 C에서 실행하는 방법을 알아 내려고 노력했습니다. IR 코드를 인라인 할 수 있기를 바랍니다. 가상 함수 호출이 필요하지 않습니다 (어셈블리 코드가 _asm{}
을 사용하여 인라인 될 수있는 것과 동일한 방식으로). 실행C에서 LLVM IR 코드 실행
LLVM의 IR 코드 : 다음 예를 참조하십시오
define i64 @square(i64 %x){
%y = mul i64 %x, %x
ret i64 %y
}
C 프로그램 :
for(i = 0; i < length; i++){
//run LLVM IR Code here
}
을 내가 parseIRFile()
를 사용하여 적외선 코드를 읽고 함수에 대한 포인터를 만들 수 있습니다 알고 그러나 그것은 가상 함수 호출이 필요하므로 내가 찾고있는 것이 아닙니다.
무슨 "가상 전화"에 대해 이야기하고 있습니까? 'for (i = 0; i <길이; i ++) {square (i); } 정상적인 호출이 될 것입니다. '-O4' 옵션을 사용해서 C 부분을 Clang으로 컴파일하면, 링커는 루프에'inline '을 할 것입니다. –