2012-10-17 17 views
7

Ho provato la demo LLVM dal link http://llvm.org/demo/ Che tipo di IR è questo? HIR, MIR o LIR? La rappresentazione SSA è solitamente usata in MIR, penso. Quindi, è un MIR? Ma può memorizzare le informazioni per l'analisi della dipendenza. Quindi può essere un HIR?Cos'è la rappresentazione intermedia LLVM?

Quali estensioni di file rappresentano effettivamente LLVM IR, .ll o .bc?

Come posso ottenere la tabella dei simboli utilizzata in LLVM?

+0

http://llvm.org/docs/LangRef.html – CAFxX

+0

file con rappresentazione testuale di LLVM IR hanno 'estensione .ll', binario uno -' .bc' – arrowd

+0

@arrowdodger thanx – ViG

risposta

7

Non ho familiarità con un singolo, rigoroso definizione di ciò che differenzia un livello di IR da un altro, ma da quello che so che rientrerebbe nella categoria MIR.

  • Ha un modulo SSA e non ha registri espliciti, quindi non lo classificherò come livello basso.
  • Non ha un riferimento al sottoelemento o costrutti avanzati di controllo del flusso, quindi non sarebbe nemmeno adatto a HIR.

In ogni caso, LLVM IR è tipicamente memorizzati su disco in entrambe le file di testo con .ll estensione o in file binari con .BC estensione. La conversione tra i due è banale, e si può solo utilizzare llvm-dis per bc ->ll e llvm-as per ll ->bc. Il formato binario è più efficiente in termini di memoria, mentre il formato testuale è leggibile.