Future multicore processors will be heterogeneous, be increasingly less reliable, and operate in dynamically changing operating conditions. Such environments will result in a constantly varying pool of hardware resources which can greatly complicate the task of efficiently exposing a program’s parallelism onto these resources. Coupled with this uncertainty is the diverse set of efficiency metrics that users may desire.
This presentation will describe a technique for generating executable program slices that is polyvariant, i.e. functions with mismatched combinations of parameters in different calling contexts are represented by multiple variants in the final slice. It will consist of a brief overview of prior program slicing techniques, characteristics and applications of our approach, an automata-theoretic algorithm to achieve the result, and a survey of the technique in practice. The paper ``Specialization Slicing,'' to be published in ACM Trans. on Program. Lang. and Syst.