Zdokonalená analýza výkonnosti v nástroji Looper

Loading...
Thumbnail Image

Date

Authors

Pánek, Jan

Mark

A

Journal Title

Journal ISSN

Volume Title

Publisher

Vysoké učení technické v Brně. Fakulta informačních technologií

ORCID

Abstract

Náš nástroj REBEL je statický analýzátor pro odvozování co nejtěsnějších horních mezí ceny vykonávání imperativních nerekurzivních programů. REBEL je nástupcem nástroje Looper v2. Oba nástroje REBEL a Looper v2 jsou reimplementací nástroje LOOPUS, který využívá model programu zvaný zvaný difference constraint program k posouzení kumulativního přírůstku hodnot výrazů omezujících provádění jednotlivých cyklů v programu. Hodnoty těchto výrazů se mění prostřednictvím lineárních inkrementů, dekrementů a resetů v důsledku provádění programu. Lineární inkrementy, dekrementy a resety jsou modelovány pomocí tzv. difference constraints (nerovnosti typu + ), které umožňují přirozeným způsobem modelovat typické modifikace čítačů cyklů. Inkrementy a dekrementy tvaru = + jsou modelovány jako + a resety tvaru = jsou modelovány jako + 0. Na rozdíl od nástroje Looper v2, který byl implementován jako zásuvný modul v prostředí Meta Infer, tato práce představuje novou architekturu našeho nástroje REBEL, která se opírá o infrastrukturu LLVM a je implementována pomocí C++ a Pythonu, aby umožnila rychlé prototypování nových rozšíření při zachování možnosti optimalizace výkonu. Výkon našeho nástroje REBEL byl vyhodnocen na několika testovacích sadách a porovnán s výkonem nástroje Looper v2 a dvěma dalšími analyzátory Cost a KoAT.
Our tool REBEL is a static analysis tool for inference of as tight as possible upper bounds on the execution cost of imperative non-recursive programs. REBEL is a succesor of the tool called Looper v2. Both REBEL and Looper v2 are reimplementations of the tool called LOOPUS which uses a program model called a difference constraint program to reason about the cumulative gain in the values of expressions constraining execution of individual loops in the program. The values of such expressions are updated through linear increments, decrements, and resets as a result of the program execution. The linear increments, decrements and resets are modelled using so-called difference constraints (inequalities of the from + ), which allow for natural abstraction of common loop counter updates. In particular, increments and decrements of the form = + are modeled as + , and reset of the form = are modelled as + 0. In constrast to Looper v2, which was implemeted as an analysis plugin in the Meta Infer framework, this thesis presents a new architecture of our tool REBEL which relies on the LLVM compiler infrastructure and is implemented using C++ and Python, to allow fast prototyping of new extensions while preserving the posibility for performance optimizations. The performance of our REBEL was evaluated on several test suits and compared to the performance of Looper v2 and two more analyzers Cost and KoAT.

Description

Citation

PÁNEK, J. Zdokonalená analýza výkonnosti v nástroji Looper [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2025.

Document type

Document version

Date of access to the full text

Language of document

en

Study field

Informační technologie

Comittee

doc. Ing. František Zbořil, CSc. (předseda) Ing. Aleš Smrčka, Ph.D. (člen) Ing. Jan Pluskal, Ph.D. (člen) doc. Ing. Michal Španěl, Ph.D. (člen) Ing. Josef Strnadel, Ph.D. (člen)

Date of acceptance

2025-06-18

Defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A.

Result of defence

práce byla úspěšně obhájena

DOI

Collections

Endorsement

Review

Supplemented By

Referenced By

Citace PRO