2011-01-31 2 views
9

Sto implementando un passaggio LLVM e vorrei attivare o disattivare alcune opzioni tramite la riga di comando, in particolare mi piacerebbe avere una modalità -v dettagliata per il mio passaggio.Come posso passare i flag a un pass LLVM?

Non sono riuscito a trovare un meccanismo per il passaggio dei flag della riga di comando menzionato in alcun documento, ne esiste uno?

risposta

1

Se esiste una sola opzione con due valori possibili, la cosa più semplice da fare è registrare lo stesso passaggio due volte con due nomi diversi. Non conosco alcuna soluzione generale, in particolare qualcosa che funzioni con opt.

+0

Grazie, ho trovato un più generale soluzione (ho risposto io sotto). – Tzafrir

5

Un altro trucco utile è:

#define DEBUG_TYPE "my-special-name" 

...

#include "llvm/Support/Debug.h" 

...

Cospargere un po 'di output di debug in giro:

DEBUG(dbgs() << "Original Frame Size: " << FrameSize << "\n"); 

..

DEBUG(Node->dump(CurDAG)); 

Poi, nella riga di comando: ... -debug-only my-special-name ... otterrà l'output.

Se il passaggio viene eseguito con il front-end clang, è possibile utilizzare:

... -mllvm debug-only my-special-name ...

+0

Grazie, questo potrebbe tornare utile in futuro. – Tzafrir