Sto scrivendo un compilatore che si compila in C. Ciò significa che la maggior parte delle volte mi piacciono le C per ottimizzare e generare codice per più piattaforme.
In questo momento posso pensare a qualche motivo per cui potrebbe essere utile:
- Posso eseguire ottimizzazioni specifiche per la mia lingua
- Sarà più semplice tradurre la SSA semplificata in C piuttosto che gestire tutti i casi limite nella traduzione la mia lingua semi-complessa in C
- Faciliterà alcune analisi sul codice
Posso pensare ad alcuni inconvenienti:
- Il compilatore è più lento poiché dovrò generare SSA IR
Ma ne vale la pena?
La mia domanda principale è che sarà in grado di ottimizzare il codice tradotto da un pozzo SSA IR o meglio ?
Immagino che il codice che il modulo SSA tradurrà avrà etichette e salti ovunque. Non userà costrutti C come loop for o se dichiarazioni, ecc. Sarà C più facile o difficile da ottimizzare?
Sono entusiasta di farlo solo per saperne di più sul modulo SSA, così come se alla fine generassi codice per LLVM , sarà un po 'più facile.
Domanda bonus: c'è un IR diverso che posso esaminare che potrebbe essere più adatto al problema in questione?