HyFM: function merging for free
Rodrigo C. O. Rocha, Pavlos Petoumenos, Zheng Wang, Murray Cole, Kim Hazelwood, Hugh Leather
Abstract
Function merging is an important optimization for reducing code size. It merges multiple functions into a single one, eliminating duplicate code among them. The existing state-of-the-art relies on a well-known sequence alignment algorithm to identify duplicate code across whole functions. However, this algorithm is quadratic in time and space on the number of instructions. This leads to very high time overheads and prohibitive levels of memory usage even for medium-sized benchmarks. For larger programs, it becomes impractical.
Topics & Concepts
Computer scienceCode (set theory)Sequence (biology)Function (biology)AlgorithmParallel computingQuadratic equationState (computer science)Theoretical computer scienceProgramming languageMathematicsBiologyGeneticsEvolutionary biologyGeometrySet (abstract data type)Parallel Computing and Optimization TechniquesAdvanced Data Storage TechnologiesSoftware Engineering Research