The present invention is a method,
system,
software and
data structure for profiling programs, other code, and
adaptive computing integrated circuit architectures, using a plurality of data parameters such as
data type, input and output data size,
data source and destination locations, data pipeline length,
locality of reference, distance of data movement, speed of data movement,
data access frequency, number of data load / stores, memory usage, and data persistence. The profiler of the invention accepts a
data set as input, and profiles a plurality of functions by measuring a plurality of data parameters for each function, during operation of the plurality of functions with the input
data set, to form a plurality of measured data parameters. From the plurality of measured data parameters, the profiler generates a plurality of data parameter comparative results corresponding to the plurality of functions and the input
data set. Based upon the measured data parameters, portions of the profiled code are selected for embodiment as computational elements in an
adaptive computing IC architecture.