Compile the Code Instrumentation Technique for Selective Debugging of Optimizing Transformations

The paper addresses the problem of an optimizing compiler debugging. A new method for compile-time instrumentation is presented as an efficient approach to improve reliability of optimizing transformations implemented in the compiler. The principal feature of the method is that it aims at debugging...

Full description

Bibliographic Details
Main Author: D. A. Maksimenkov
Format: Article
Language:English
Published: Ivannikov Institute for System Programming of the Russian Academy of Sciences 2018-10-01
Series:Труды Института системного программирования РАН
Subjects:
Online Access:https://ispranproceedings.elpub.ru/jour/article/view/938
_version_ 1818915835325972480
author D. A. Maksimenkov
author_facet D. A. Maksimenkov
author_sort D. A. Maksimenkov
collection DOAJ
description The paper addresses the problem of an optimizing compiler debugging. A new method for compile-time instrumentation is presented as an efficient approach to improve reliability of optimizing transformations implemented in the compiler. The principal feature of the method is that it aims at debugging the transformations itself rather than debugging the tests, and therefore it allows correctness of the resulting code to be verified on any input data fed into the executed program, i.e. the proposed self-checking instrumentation is orthogonal to particular input data in that sense it is able to detect the bugs on arbitrary data flow the program exhibits during its invocation.The method can be applied to a wide set of optimizing transormations. And the cases are known when it reveals faults in transformations while the non-instrumented test itself remains fully functional (and other somewhat similar but more limited instrumentations reveal no bugs, too). Among other its features are the compactness of the embedded dynamic checkers, the linearity of code bloat, and also no assumptions on any standard libraries availability is made (eg. no functions like exit(), abort() etc are used to terminate the program if any checker is triggered). It all ensures that the optimized code is influenced minimally so the original sequence of optimizing transormations implemented in the compiler remains applicable (if compared to non-instrumented code).The described method has demonstrated successfully its usability for detecting and identifying volatile bugs in the optimizing compilers of the Elbrus microprocessor family when they were used for building software with asynchronous control flow. Moreover it allowed to increase the reliability of not only the compiler itself but also the software being compiled as well as it shown its use in complex testing of the microprocessor prototypes.
first_indexed 2024-12-20T00:08:35Z
format Article
id doaj.art-e2c8a3b2cffd45feb042547de62154ff
institution Directory Open Access Journal
issn 2079-8156
2220-6426
language English
last_indexed 2024-12-20T00:08:35Z
publishDate 2018-10-01
publisher Ivannikov Institute for System Programming of the Russian Academy of Sciences
record_format Article
series Труды Института системного программирования РАН
spelling doaj.art-e2c8a3b2cffd45feb042547de62154ff2022-12-21T20:00:34ZengIvannikov Institute for System Programming of the Russian Academy of SciencesТруды Института системного программирования РАН2079-81562220-64262018-10-0127672010.15514/ISPRAS-2015-27(6)-1938Compile the Code Instrumentation Technique for Selective Debugging of Optimizing TransformationsD. A. Maksimenkov0ПАО «МЦСТ»,The paper addresses the problem of an optimizing compiler debugging. A new method for compile-time instrumentation is presented as an efficient approach to improve reliability of optimizing transformations implemented in the compiler. The principal feature of the method is that it aims at debugging the transformations itself rather than debugging the tests, and therefore it allows correctness of the resulting code to be verified on any input data fed into the executed program, i.e. the proposed self-checking instrumentation is orthogonal to particular input data in that sense it is able to detect the bugs on arbitrary data flow the program exhibits during its invocation.The method can be applied to a wide set of optimizing transormations. And the cases are known when it reveals faults in transformations while the non-instrumented test itself remains fully functional (and other somewhat similar but more limited instrumentations reveal no bugs, too). Among other its features are the compactness of the embedded dynamic checkers, the linearity of code bloat, and also no assumptions on any standard libraries availability is made (eg. no functions like exit(), abort() etc are used to terminate the program if any checker is triggered). It all ensures that the optimized code is influenced minimally so the original sequence of optimizing transormations implemented in the compiler remains applicable (if compared to non-instrumented code).The described method has demonstrated successfully its usability for detecting and identifying volatile bugs in the optimizing compilers of the Elbrus microprocessor family when they were used for building software with asynchronous control flow. Moreover it allowed to increase the reliability of not only the compiler itself but also the software being compiled as well as it shown its use in complex testing of the microprocessor prototypes.https://ispranproceedings.elpub.ru/jour/article/view/938тестирование, инструментирование кода, отладка оптимизирующих компиляторов
spellingShingle D. A. Maksimenkov
Compile the Code Instrumentation Technique for Selective Debugging of Optimizing Transformations
Труды Института системного программирования РАН
тестирование, инструментирование кода, отладка оптимизирующих компиляторов
title Compile the Code Instrumentation Technique for Selective Debugging of Optimizing Transformations
title_full Compile the Code Instrumentation Technique for Selective Debugging of Optimizing Transformations
title_fullStr Compile the Code Instrumentation Technique for Selective Debugging of Optimizing Transformations
title_full_unstemmed Compile the Code Instrumentation Technique for Selective Debugging of Optimizing Transformations
title_short Compile the Code Instrumentation Technique for Selective Debugging of Optimizing Transformations
title_sort compile the code instrumentation technique for selective debugging of optimizing transformations
topic тестирование, инструментирование кода, отладка оптимизирующих компиляторов
url https://ispranproceedings.elpub.ru/jour/article/view/938
work_keys_str_mv AT damaksimenkov compilethecodeinstrumentationtechniqueforselectivedebuggingofoptimizingtransformations