1. A method for compiling software code, the method comprising: scanning call sites within the code to identify a function that is called with at least one constant argument; creating a list of each call site associated with the function and sets of constant arguments called by the function; determining whether any common subsets of the constant arguments are shared across a plurality of call sites; estimating an executable code size of the function by traversing a control flow graph associated with the function; selecting any subsets of constant arguments that are each used only in one call site; estimating an executable code size of a specialized function covering one or more subsets of constant arguments that are each used in only one call site prior to creating any specialized version of any functions; creating a first set of specialized versions of the function covering one or more subsets of constant arguments that are each used in exactly one call site, if it is determined that a plurality of common subsets of the constant arguments exist across the plurality of call sites, creating a second set specialized versions of the function covering the plurality of common subsets of the constant arguments that are used in the greatest number of call sites.