Для чего предназначен код операции в LLVM ICmpInst? - PullRequest
0 голосов
/ 15 апреля 2020

Я получил код операции ICmpInst с помощью следующих кодов

unsigned op = icmp->getOpcode();

, и теперь я хочу выполнить другую операцию в соответствии с кодом операции, поэтому я написал следующие коды:

switch (op){
    case 32:
        exp = (opl == opr);
        break;
    default:
        break;
}

и возникает проблема, я просто знаю, что код операции «32» представляет «eq», но как насчет других? Где я могу найти другой код операции для или есть более эффективный способ?

1 Ответ

2 голосов
/ 15 апреля 2020

Код операции для инструкции icmp просто Instruction::ICmp, но это ничего не говорит о том, какой тип сравнения выполняется. Все, что он говорит вам, это то, что вы имеете дело с icmp инструкцией, которую вы уже знали.

То, что вы хотите - это getPredicate, которая возвращает значение Predicate enum , который определяет такие константы, как CmpInst::ICMP_EQ, которые вы можете использовать внутри оператора switch.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...