1. A non-transitory computer-accessible memory medium that stores program instructions executable by a computer system to: receive an input program representative of a design comprising one or more functions; compile the received input program to produce an output; during the compile of the received input program, after the compile starts, and before the compile completes: generate information about one or more elements of the design by executing portions of the received input program, wherein the portions are less than the entire input program, wherein at least one portion of the received input program are array indices in the input program, wherein the information comprises information about value traces of at least one of the one or more variables in the input program, and wherein said executing comprises: determining and executing compiled executable instructions implementing each of the portions of the received program; analyze the information; and optimize the output by applying one or more transformations to the compile, including applying one or more transformations to arrays or array operations in the input program, responsive to analyzing the information.