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?¿Cómo uso un pase de función existente de mi pase LLVM?
6
A
Respuesta
3
ADVERTENCIA: no tengo mucha experiencia y la respuesta puede ser incorrecta o desactualizada. (Que se basa en gran medida en fuentes llvm obsoletos: version 1.3.)
Añadir un include:
#include "llvm/Analysis/DominanceFrontier.h"
Si su pase si función de paso, añadir a su clase el método (si no se aplica):
virtual void getAnalysisUsage(AnalysisUsage &AU) const { }
Y poner esto en él:
AU.addRequired<DominanceFrontier>();
Entonces, en tu clase runOnFunction
método:
DominanceFrontier *DF = &getAnalysis<DominanceFrontier>();
Después de ello se puede utilizar:
BasicBlock *BB = /* some BB */;
DominanceFrontier::iterator DFI = DF->find(BB);
Cuestiones relacionadas
- 1. Depuración de un pase llvm con gdb
- 2. función de pase como puntero de función
- 3. Pase un gran objeto existente o cree y pase un pequeño objeto
- 4. Pase los parámetros en la función setInterval
- 5. PHP: Pase la función anónima como argumento
- 6. C++ lista de pase como un parámetro para una función
- 7. jQuery - Pase el elemento a la función
- 8. VB6 pase por valor y pase por referencia
- 9. jQuery's .click - pase los parámetros a la función de usuario
- 10. pase por referencia C++
- 11. Pase un método como parámetro
- 12. C++ pase un mapa por referencia a la función
- 13. pase un parámetro de java desde maven
- 14. Objetivo C - Pase por valor y pase por referencia
- 15. nginx proxy condicional pase
- 16. Pase la matriz de datos a la función jQuery
- 17. pase enumeración de html.radiobuttonfor MVC3
- 18. Pase por referencia más caro que pase por el valor
- 19. Pase argumentos de varias palabras a una función bash
- 20. Pase ViewBag como parámetro
- 21. pase 2 valores a una función de Javascript
- 22. pase de parámetros a la función de cierre en javascript
- 23. Pase por referencia en C
- 24. pase a __enter__
- 25. pase de Java por referencia
- 26. Función de envoltura en PowerShell: Pase los parámetros restantes
- 27. pase adoconnection de vba a delphi
- 28. Pase los parámetros en Link_to
- 29. ¿Cómo saber cuándo una actividad termina un pase de disposición?
- 30. pase un objeto a la plantilla T4
¿Ha revisado los documentos? Porque la última vez que revisé, la respuesta estaba allí: http://llvm.org/docs/WritingAnLLVMPass.html – Fanael
Agregue 'AU.addRequired();' a su método pass 'getAnalysisUsage (AnalysisUsage & AU) '. –
osgx
La documentación es realmente oscura y tuve problemas reales para descifrarla. Un ejemplo hubiera ayudado. – Sharad