x
1

Eliminación de código muerto



En programación, la eliminación de código muerto es una técnica de optimización de software comúnmente llevada a cabo de forma automática por un compilador optimizador que consta en eliminar cualquier tipo de código muerto, código inalcanzable, código redundante y almacenamiento muerto.[1][2]​ Resulta importante eliminar este tipo de código por varias razones entre las que se enumeran: ahorrar tiempo de cómputo innecesario, evitar accesos a memoria innecesarios y ejecutar código que no se utilice ya que puede arrojar excepciones.[3]

Históricamente la eliminación de código muerto fue llevada a cabo mediante la información que se obtiene de un análisis de flujo de datos.[4]​ Luego se publicó un artículo donde se mostraba esta técnica mediante static single assignment form.[5]​ Más tarde se mejoró el algoritmo removiendo las operaciones de flujo de control innecesarias.[6]

Suponiendo el siguiente trozo de código:

Dado que presenta varios errores una eliminación de código muerto debería de dejar el código de la siguiente manera:

Dependiendo de que algoritmo se usó y de que forma se realice el código resultante puede variar. Utilizando otras técnicas de optimización como el plegamiento de constantes y la propagación de constantes de forma exhaustiva el código se podría llegar a reducir a lo siguiente:

O dependiendo del plegamiento y otras técnicas de optimización se podría calcular 24<<2 e incluso eliminar la función y reemplazar cada llamada a la misma, por ese valor.



Escribe un comentario o lo que quieras sobre Eliminación de código muerto (directo, no tienes que registrarte)


Comentarios
(de más nuevos a más antiguos)


Aún no hay comentarios, ¡deja el primero!