Если у меня есть набор базовых блоков и ребер, и мне нужно создать для них новую функцию с новыми начальными и конечными точками.Создать новую функцию в llvm
Может ли я создать это непосредственно в LLVM, так же, как createFunction(F)
то F.insert(bb, edges)
которого бба является основным блоком и ребра, новые края для новой функции.
Благодаря
могли бы вы разъяснить мне, как использовать этот фрагмент в функции Pass, мне нужно построить новую функцию с новыми базовыми блоками и новыми ребрами, извлеченными из исходной функции –
@ R.Omar: вам не следует создавать новые функции в 'FunctionPass', только в' ModulePass' , Просто следуйте руководству, к которому я привязан, - он очень хорошо объясняет ситуацию и имеет полный код для создания функций, которые вы можете использовать. –
Я вижу, поэтому основная идея состоит в том, чтобы использовать этот код в модуле Pass not Function Pass –