A Fast and Precise Static Loop Analysis based on Abstract Interpretation, Program Slicing and Polytope Models

被引:31
|
作者
Lokuciejewski, Paul [1 ]
Cordes, Daniel [1 ]
Falk, Heiko [1 ]
Marwedel, Peter [1 ]
机构
[1] Embedded Syst Grp, D-44221 Dortmund, Germany
关键词
D O I
10.1109/CGO.2009.17
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
A static loop analysis is a program analysis computing loop iteration counts. This information is crucial for different fields of applications. In the domain of compilers, the knowledge about loop iterations can be exploited for aggressive loop optimizations like Loop Unrolling. A loop analyzer also provides static information about code execution frequencies which can assist feedback-directed optimizations. Another prominent application is the static worst-case execution time (WCET) analysis which relies on a safe approximation of loop iteration counts. In this paper, we propose a framework for a static loop analysis based on Abstract Interpretation, a theory of a sound approximation of program semantics. To accelerate the analysis, we preprocess the analyzed code using Program Slicing, a technique that removes statements irrelevant for the loop analysis. In addition, we introduce a novel polytope-based loop evaluation that further significantly reduces the analysis time. The efficiency of our loop analyzer is evaluated on a large number of benchmarks. Results show that 99% of the considered loops could be successfully analyzed in an acceptable amount of time. This study points out that our methodology is best suited for real-world problems.
引用
收藏
页码:136 / 146
页数:11
相关论文
共 50 条
  • [1] Abstract Program Slicing: An Abstract Interpretation-Based Approach to Program Slicing
    Mastroeni, Isabella
    Zanardini, Damiano
    ACM TRANSACTIONS ON COMPUTATIONAL LOGIC, 2017, 18 (01)
  • [2] Abstract slicing: A new approach to program slicing based on abstract interpretation and model checking
    Hong, HS
    Lee, I
    Sokolsky, O
    FIFTH IEEE INTERNATIONAL WORKSHOP ON SOURCE CODE ANALYSIS AND MANIPULATION, PROCEEDINGS, 2005, : 25 - 34
  • [3] Static Loop Bound Analysis of C Programs Based on Flow Analysis and Abstract Interpretation
    de Michiel, Marianne
    Bonenfant, Armelle
    Casse, Hugues
    Sainrat, Pascal
    RTCSA 2008: 14TH IEEE INTERNATIONAL CONFERENCE ON EMBEDDED AND REAL-TIME COMPUTING SYSTEMS AND APPLICATIONS - PROCEEDINGS, 2008, : 161 - +
  • [4] Program slicing in knowledge-based loop analysis
    Sorour, Marwa A.
    And-El-Hafiz, Salwa K.
    AEJ - Alexandria Engineering Journal, 1998, 37 (02):
  • [5] Sound, Precise, and Fast Abstract Interpretation with Tristate Numbers
    Vishwanathan, Harishankar
    Shachnai, Matan
    Narayana, Srinivas
    Nagarakatte, Santosh
    CGO '22: PROCEEDINGS OF THE 2022 IEEE/ACM INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION (CGO), 2022, : 254 - 265
  • [6] Precise Slicing in Imperative Programs via Term-Rewriting and Abstract Interpretation
    Komondoor, Raghavan
    STATIC ANALYSIS, SAS 2013, 2013, 7935 : 259 - 282
  • [7] A program analysis framework for tccp based on abstract interpretation
    Comini, Marco
    Gallardo, Maria-del-Mar
    Titolo, Laura
    Villanueva, Alicia
    FORMAL ASPECTS OF COMPUTING, 2017, 29 (03) : 531 - 557
  • [8] Abstract interpretation-based static analysis of mobile ambients
    Feret, J
    STATIC ANALYSIS, PROCEEDINGS, 2001, 2126 : 412 - 430
  • [9] An Abstract Interpretation-Based Data Leakage Static Analysis
    Drobnjakovic, Filip
    Subotic, Pavle
    Urban, Caterina
    THEORETICAL ASPECTS OF SOFTWARE ENGINEERING, TASE 2024, 2024, 14777 : 109 - 126
  • [10] Program Analysis: The Abstract Interpretation Perspective
    Cousot, Patrick
    SIGPLAN Notices (ACM Special Interest Group on Programming Languages), 32 (01): : 73 - 76