Title :
Analyzing Assembler to Eliminate Dead Functions: An Industrial Experience
Author :
Davis, Ian J. ; Godfrey, Michael W. ; Holt, Richard C. ; Mankovskii, Serge ; Minchenko, Nick
Author_Institution :
David R. Cheriton Sch. of Comput. Sci., Univ. of Waterloo, Waterloo, ON, Canada
Abstract :
Industrial software systems often contain fragments of code that are vestigial, that is, they were created long ago for a specific purpose but are no longer useful within the current design of the system. In this work, we describe how we have adapted some research tools to remove such code, we use a hybrid static analysis approach of both source code and assembler to construct a model of the system, and then use graph querying to detect possible dead functions. Suspected dead functions are then commented out of the source. The system is then rebuilt and run against existing test suites to verify that the removals do not affect the semantics of the system. Finally, we discuss the results of performing this technique on a large and long-lived industrial software system as well as a large open source system.
Keywords :
graph theory; program assemblers; program diagnostics; public domain software; research and development; assembler analysis; code fragments; dead function elimination; graph querying; hybrid static analysis approach; industrial experience; large open source system; long-lived industrial software system; research tools; source code; Context; Data mining; Industries; Libraries; Registers; Software systems; Reverse engineering; maintenance; program and system comprehension; static analysis;
Conference_Titel :
Software Maintenance and Reengineering (CSMR), 2012 16th European Conference on
Conference_Location :
Szeged
Print_ISBN :
978-1-4673-0984-4
DOI :
10.1109/CSMR.2012.60