检测LLVM IR中的nuw和nsw

时间:2012-02-06 07:49:12

标签: llvm

请告诉我如何在LLVM IR中检测是否存在使用nsw和nuw标志的指令。

1 个答案:

答案 0 :(得分:2)

OverflowingBinaryOperator为此目的提供了hasNoUnsignedWraphasNoSignedWrap谓词。

更具体地说,给出了一些指令ii

   if (OverflowingBinaryOperator *op = dyn_cast<OverflowingBinaryOperator>(ii)) {
       if (op->hasNoUnsignedWrap())
           errs() << "  has nuw\n";
       else if (op->hasNoSignedWrap())
           errs() << "  has nsw\n";
       }
   }