gpt4 book ai didi

llvm - 访问函数参数寄存器以进行加载

转载 作者:行者123 更新时间:2023-12-01 23:24:50 25 4
gpt4 key购买 nike

函数是这样创建的:

llvm::FunctionType* FunctionTypePtr = llvm::FunctionType::get( returnTypePtr , types , false );
llvm::Function* llvmFunction = llvm::Function::Create(FunctionTypePtr,
llvm::GlobalValue::ExternalLinkage,
functionName,
llvmModule);

然后通过向 block 中添加指令来创建函数体:

llvm::BasicBlock* entryBlock = llvm::BasicBlock::Create(llvmContext, "", llvmFunction);
llvm::IRBuilder<> builder(entryBlock);

足够的上下文,现在是问题:我想为函数参数值添加加载指令,例如:

//where do i get address??
llvm::LoadInst* load = builder.CreateLoad(address, "read");

我不知道如何/在何处获取函数参数的 address 变量。

最佳答案

你不应该加载任何东西。使用 Function::arg_iterator 获取参数对应的值。

参见 http://llvm.org/docs/doxygen/html/classllvm_1_1Function.html (arg_begin/arg_end) 和 http://llvm.org/docs/ProgrammersManual.html#Function了解更多信息

关于llvm - 访问函数参数寄存器以进行加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12613945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com