创建sleep();调用使用llvm IRbuilder

Create sleep(); call Using llvm IRbuilder

本文关键字:llvm IRbuilder 调用 sleep 创建      更新时间:2023-10-16

LLVM-IR构建器指令是什么来创建类似于以下的指令:

%call4 = call i32 (i32, ...)* bitcast (i32 (...)* @sleep to i32 (i32, ...)*)(i32 3)

有没有办法直接调用@sleep,或者我需要为它创建一个新函数?

ConstantInt*sleepArg=ConstantInt::get(IntegerType::get(getGlobalContext(),sizeof(unsigned)*8),2,true);

    std::vector<Value*> args2;
    args2.push_back(sleepArg);      
    Constant *D = M.getOrInsertFunction("sleep", 
    IntegerType::get(getGlobalContext(), sizeof(unsigned) * 8),
    IntegerType::get(getGlobalContext(), sizeof(unsigned) * 8), NULL);