this representation.
Queiroz and Da Silva (Queiroz Junior and
da Silva, 2015) evaluates different configurations of
a case-based reasoning strategy, which aims to find
transformation sequences for a specific program. The
goal of their work was to evaluate the performance of
such strategy using: (1) different databases; (2) differ-
ent coefficients to identify programs with similar re-
actions; and (3) different program characterizations.
Although, Queiroz’s and Da Silva’s work has the ap-
peal of evaluating several configuration, it has three
problems: (1) it does not describe a formalism to find
an efficient representation; (2) it evaluates only two
representations; and (3) the results obtained by the
code-generating system does not use only one con-
figuration.
9 CONCLUSIONS AND FUTURE
WORK
Finding the best form of knowledge representation
depends on a determined objective and requires de-
tailed evaluations of the constructed formalism.
A complex problem, in the computer science field,
is to generate good target code because it is program-
dependent. This indicates that proposed strategies
should consider the program during decision-making.
In addition, they need to contemplate which transfor-
mations should be applied during the code-generation
process.
Although the literature describes several strate-
gies that attempt to mitigate the code-generationprob-
lem, there is no consensus on which knowledge rep-
resentation should be utilized in these types of sys-
tems. Furthermore, various strategies do not consider
the said problem as program-dependent, because the
complexity to identify an efficient knowledge repre-
sentation.
This article presented and validated an efficient
knowledge representation to characterize programs,
the
NF
. This representation is interesting because can
be extracted statically and is not dependent of pro-
gramming languages nor hardware architecture. An-
other contribution of this article is the identification of
a coefficient that is able to identify programsthat react
similarly when compiled applying the same transfor-
mation sequence.
The results obtained by the code-generating sys-
tem, that considers
NF
as program representation, is
able to find good transformation sequences, as well
as outperforms other code-generating systems.
REFERENCES
Aho, A. V., Lam, M. S., Sethi, R., and Ullman, J. D. (2006).
Compilers: Principles, Techniques, and Tools. Pren-
tice Hall, Boston, MA, USA, 2 edition.
Cavazos, J., Fursin, G., Agakov, F., Bonilla, E., O’Boyle,
M. F. P., and Temam, O. (2007). Rapidly Select-
ing Good Compiler Optimizations Using Performance
Counters. In Proceedings of the International Sym-
posium on Code Generation and Optimization, pages
185–197, Washington, DC, USA. IEEE Computer So-
ciety.
de Lima, E. D., de Souza Xavier, T. C., da Silva, A. F.,
and Ruiz, L. B. (2013). Compiling for performance
and power efficiency. In Power and Timing Modeling,
Optimization and Simulation (PATMOS), 2013 23rd
International Workshop on, pages 142–149.
Fursin, G. (2017). Collective Benchmark - En-
abling realistic benchmarking and optimization.
http://ctuning.org/cbench. Access: January, 9 - 2017.
Gouy, I. (2017). The Computer Language Benchmarks
Game. http://benchmarksgame.alioth.debian.org/. Ac-
cess: January, 9 - 2017.
Lattner, C. (2017). The LLVM Compiler Infrastructure.
http://llvm.org. Access: January, 9 - 2017.
Martins, L. G. A., Nobre, R., Cardoso, J. a. M. P., Delbem,
A. C. B., and Marques, E. (2016). Clustering-based
selection for the exploration of compiler optimiza-
tion sequences. ACM Trans. Archit. Code Optim.,
13(1):8:1–8:28.
Namolaru, M., Cohen, A., Fursin, G., Zaks, A., and Fre-
und, A. (2010). Practical Aggregation of Semanti-
cal Program Properties for Machine Learning Based
Optimization. In International Conference on Com-
pilers Architectures and Synthesis for Embedded Sys-
tems, Scottsdale, United States.
Needleman, S. B. and Wunsch, C. D. (1970). A gen-
eral method applicable to the search for similarities
in the amino acid sequence of two proteins. Journal
of Molecular Biology, 48(3):443 – 453.
Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V.,
Thirion, B., Grisel, O., Blondel, M., Prettenhofer,
P., Weiss, R., Dubourg, V., Vanderplas, J., Passos,
A., Cournapeau, D., Brucher, M., Perrot, M., and
Duchesnay, E. (2011). Scikit-learn: Machine learning
in Python. Journal of Machine Learning Research,
12:2825–2830.
Purini, S. and Jain, L. (2013). Finding good optimization se-
quences covering program space. ACM Transactions
on Architecture and Code Optimization, 9(4):56:1–
56:23.
Queiroz Junior, N. L. and da Silva, A. F. (2015). Finding
good compiler optimization sets - a case-based rea-
soning approach. In International Conference on En-
terprise Information Systems, pages 504–515.
Richter, M. M. and Weber, R. (2013). Case-Based Reason-
ing: A Textbook. Springer, USA.
Sanches, A. and Cardoso, J. M. P. (2010). On identifying
patterns in code repositories to assist the generation of
hardware templates. In International Conference on