Bir LLVM geçişi yazıyorum, burada llvm::CloneFunction
numaralı telefonu arayarak bazı işlevleri klonladım. Şimdi bu fonksiyonları modülde de eklemek istiyorum. Bunu nasıl yapabilirim?LLVM modülünde bir işlev nasıl eklenir
6
A
cevap
6
Function::Create
ile veya başka yöntemlerle yeni bir işlev oluşturun. BirFunction
'un kurucuları yeni işlevin ekleneceği bir modülü kabul eder.- CloneFunctionInto ile bu yeni işleve bir işlev kopyalayın ya da yalnızca ihtiyacınız olan BB'leri kopyalayın.
0
Sen LLVM kaynağında PartialInlining.cpp çalınan yüzden
Function* duplicateFunction = CloneFunction(F, VMap,
/*ModuleLevelChanges=*/false);
F->getParent()->getFunctionList().push_back(duplicateFunction);
Örnek gibi sonradan modüle CloneFunction kullanmak ve bunu takabilirsiniz.
Bunu yapan bir LLVM API işlevi bulmaya çalışıyorum, ancak yine de bulamıyorum. – MetallicPriest