[relug] new gcc

  • From: Luca Bigliardi - shammash <shammash@xxxxxxxxxx>
  • To: RElug <relug@xxxxxxxxxxxxx>
  • Date: Sat, 23 Apr 2005 12:52:23 +0200

Pare essere uscito il gcc 4.0 (http://gcc.gnu.org/).

Tra le varie vale la pena di menzionare (IMHO) il merge del nuovo
sistema per ottimizzare il codice, il cosiddetto "tree-ssa".
In breve:
- E' stata creato un sistema di rappresentazione comune chiamato GENERIC
  in cui vengono tradotti tutti i costrutti dei vari linguaggi. Questo
  permette di avere un sistema unificato per la rappresentazione degli
  alberi.
- In seguito tutto l'ambaradam viene ritrasformato in linguaggio GIMPLE
  (una specie di C che pero' ha solo 3 operandi per istruzione). Questo
  permette di avere un linguaggio piu' facile da analizzare e da ottimizzare.
- Il codice viene quindi rappresentato in un grafo e viene analizzato ed
  ottimizzato il suo flusso di esecuzione.
- Infine il tutto viene trasformato secondo la rappresentazione SSA
  (static single assignement, una variabile puo' essere assegnata solo una 
volta)
  che permette ulteriori ottimizzazioni (come la non ripetizione di
  codice).

Si puo' ben immaginare come questo porti ad ottimizzazioni ben maggiori
dell'attuale sistema che opera su di una rappresentazione RTL (una
specie di assembly indipendente dalla piattaforma) e che, quindi,
"ottimizza solo a basso livello".

Se vi interessa il discorso piu' a fondo:
http://en.wikipedia.org/wiki/Static_single_assignment_form



ciao
        Luca

-- 
Beware of programmers who carry screwdrivers.
                        -- Leonard Brandwein

http://shammash.homelinux.org/ - http://www.artha.org/shammash/

Other related posts:

  • » [relug] new gcc