%a =添加<6 x i3>,
我想写一个类型合法化的通行证。
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>,这意味着元素的数量是合法的。然而,我不知道该怎么做。
发布于 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
https://stackoverflow.com/questions/49526529
复制相似问题