Определить nuw и nsw в LLVM IR - PullRequest
2 голосов
/ 06 февраля 2012

Пожалуйста, дайте мне знать, как обнаружить наличие инструкций с установленными на них флагами nsw и nuw в IR LLVM.

1 Ответ

2 голосов
/ 06 февраля 2012

OverflowingBinaryOperator имеет для этой цели предикаты hasNoUnsignedWrap и hasNoSignedWrap.

Более конкретно, учитывая некоторую инструкцию ii:

   if (OverflowingBinaryOperator *op = dyn_cast<OverflowingBinaryOperator>(ii)) {
       if (op->hasNoUnsignedWrap())
           errs() << "  has nuw\n";
       else if (op->hasNoSignedWrap())
           errs() << "  has nsw\n";
       }
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...