c++ - meaning - clang windows
¿Cómo uso un pase de función existente de mi LLVM-pass? (1)
ADVERTENCIA: no tengo experiencia real y la respuesta puede ser incorrecta o desactualizada. (se basa en gran medida en fuentes de LLVM obsoletas: versión 1.3 )
Agregar un incluir:
#include "llvm/Analysis/DominanceFrontier.h"
Si su pase es un pase de función, agregue a su clase el método (si no está implementado):
virtual void getAnalysisUsage(AnalysisUsage &AU) const { }
Y pon esto en esto:
AU.addRequired<DominanceFrontier>();
Luego, en su clase, runOnFunction
método runOnFunction
:
DominanceFrontier *DF = &getAnalysis<DominanceFrontier>();
Después de esto puedes usar:
BasicBlock *BB = /* some BB */;
DominanceFrontier::iterator DFI = DF->find(BB);
He estado usando LLVM y estaba confundido sobre cómo usar un pase diferente ya presente de mi propio pase. Precisamente, mi programa necesita el cálculo de Dominance Frontier para cualquier instrucción dada. LLVM ya tiene la clase de función Dominancia que se implementa como un pase de función. ¿Cómo puedo invocarlo / hacer uso de él en mi Pase de módulo?