2015-08-09 2 views
-1

Мне нужно извлечь константу, участвующую в состоянии ветви.Как извлечь константу в состояние ветки?

Например, в отрасли if(a > 10), 10 - это то, что я хочу извлечь.

Интересно, как это сделать с использованием LLVM? Соответствующая инструкция LLVM для выше ветвь

%cmp = icmp sgt i32 %2, 10 
br i1 %cmp, label %if.then, label %if.else`. 

Легко найти филиал ИК, но константа не в ИК.

ответ

2

Указание сравнения icmp sgt i32 %2, 10 - там, очевидно, есть постоянная 10.

С учетом br вы обнаруживаете IR Value, который он связывает по телефону getCondition, а затем ищите константу. Однако обратите внимание, что там не всегда будет константа ... Если условие было if (a > b) где постоянная?

+0

собирался написать то же самое –

+0

Если нет постоянной, просто пропустите ее, спасибо за ваш мгновенный ответ. –

Смежные вопросы