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