FdT: Recomendación FEDORA.

Alvaro Herrera alvherre en dcc.uchile.cl
Sab Oct 16 13:56:26 CLST 2004


On Fri, Oct 15, 2004 at 07:20:35PM -0300, rodrigo ahumada wrote:

> no entiendo mucho el estilo at&t (que es fmuls,flds?), pero por ejemplo en el
> caso de los ciclos sobre arreglos, en c uno explicitamente dice que vaya
> recorriendo y operando de uno en uno, y el compilador no puede suponer algo y
> tiene que atenerse a lo que dice el codigo... no se pueden usar por ejemplo
> algunas instrucciones multimedia para acelerar la cosa, se necesitarian
> nuevas formas(?) como "for-each" de C#

Te equivocas!  El compilador no tiene que suponer nada, puesto que puede mirar
el codigo y determinar que optimizaciones son "legales".  Si un ciclo repite
ochenta millones de veces exactamente la misma asignacion, el compilador es
libre de sacar setenta y nueve millones 999.999 y dejar solo una.  Este es
un ejemplo tonto, por supuesto, para ilustrar que el compilador no esta
obigado a hacer las cosas al pie de la letra.

De hecho si miras el paper de 1991 sobre SSA veras que puede alterar las
variables y la forma en que los valores se asignan a ellas, para analizar
que conversiones se pueden aplicar.  Yo no conozco mucho sobre compiladores,
pero me parecio interesante.

Naturalmente, el compilador no puede llegar y aplicar cualquier optimizacion;
primero tiene que analizar que el resultado es equivalente a la version
sin optimizar.  Esta es la "inteligencia" del compilador, aqui se ve donde
un compilador es mejor que otro.  Si no existiera esto, todos los compiladores
serian iguales, y sabemos que esto no es asi.

-- 
Alvaro Herrera (<alvherre[@]dcc.uchile.cl>)
"Porque francamente, si para saber manejarse a uno mismo hubiera que
rendir examen... ¿Quién es el machito que tendría carnet?"  (Mafalda)


Más información sobre la lista de distribución Linux