首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改llvm中的值

问如何更改llvm中的值
EN

Stack Overflow用户
提问于 2018-03-28 13:10:37
回答 1查看 239关注 0票数 0

%a =添加<6 x i3>,

我想写一个类型合法化的通行证。

代码语言:javascript
复制
for (auto &block : function) {
    std::vector<BinaryOperator *> binInstsToErase;
    for (auto &inst : block) {
      BinaryOperator * binaryOpInst = dyn_cast<BinaryOperator>(&inst);
    Value * vector1 = inst.getOperand(0);
    Value * vector2 = inst.getOperand(1);

目前,vector1和vector2的长度为18位(numofElem(6)*elementsize(3))。首先,我希望将vector1和vector2从<6 x i3>扩大到<8 x i3>,这意味着元素的数量是合法的。然而,我不知道该怎么做。

EN

回答 1

Stack Overflow用户

发布于 2018-04-08 13:21:15

首先使用ConstantDataVector::get(LLVMContext &Context, ArrayRef< uint8_t > Elts)创建一个新的向量。您可以使用std::vector作为Elts。然后,您可以将原始值提取到向量中,或者提取元素并将其插入到新向量中。

请参阅http://llvm.org/doxygen/classllvm_1_1ConstantDataVector.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49526529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档