Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Paul Lokuciejewski is active.

Publication


Featured researches published by Paul Lokuciejewski.


symposium on code generation and optimization | 2009

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

Paul Lokuciejewski; Daniel Cordes; Heiko Falk; Peter Marwedel

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 forthe 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.


Real-time Systems | 2010

A compiler framework for the reduction of worst-case execution times

Heiko Falk; Paul Lokuciejewski

The current practice to design software for real-time systems is tedious. There is almost no tool support that assists the designer in automatically deriving safe bounds of the worst-case execution time (WCET) of a system during code generation and in systematically optimizing code to reduce WCET.This article presents concepts and infrastructures for WCET-aware code generation and optimization techniques for WCET reduction. All together, they help to obtain code explicitly optimized for its worst-case timing, to automate large parts of the real-time software design flow, and to reduce costs of a real-time system by allowing to use tailored hardware.


embedded systems for real-time multimedia | 2006

Design of a WCET-Aware C Compiler

Heiko Falk; Paul Lokuciejewski; Henrik Theiling

This paper presents techniques to integrate worst-case execution time (WCET) data into a compiler. Currently, a tight integration of WCET into compilers is strongly desired, but only some ad-hoc approaches were reported currently. Previous work mainly used self-written WCET estimators with limited functionality and preciseness during compilation. A very tight integration of a high quality WCET analyzer into a compiler was not yet achieved. This work is the first to present such a tight coupling between a compiler and the WCET analyzer aiT. This is done by automatically translating the assembly-like contents of the compilers low-level format (LLIR) to aiTs exchange format CRL2. Additionally, the results produced by aiT are automatically collected and re-imported into the compiler infrastructure. The work described in this paper is smoothly integrated into a C compiler for the Infineon TriCore processor. It opens up new possibilities for the design of WCET-aware optimizations in the future. The concepts for extending the compiler structure are kept very general so that they are not limited to WCET information. Rather, it is possible to use our concepts also for multi-objective optimization of e. g. best-case execution time (BCET) or energy dissipation


euromicro conference on real-time systems | 2008

WCET-driven Cache-based Procedure Positioning Optimizations

Paul Lokuciejewski; Heiko Falk; Peter Marwedel

Procedure Positioning is a well known compiler optimization aiming at the improvement of the instruction cache behavior. A contiguous mapping of procedures calling each other frequently in the memory avoids overlapping of cache lines and thus decreases the number of cache conflict misses. In standard literature, these positioning techniques are guided by execution profile data and focus on an improved average-case performance. We present two novel positioning optimizations driven by worst-case execution time (WCET) information to effectively minimize the programs worst-case behavior. WCET reductions by 10% on average are achieved. Moreover, a combination of positioning and the WCET-driven Procedure Cloning optimization proposed in [14] is presented improving the WCET analysis by 36% on average.


Archive | 2011

Worst-case execution time aware compilation techniques for real-time systems

Paul Lokuciejewski; Peter Marwedel

1. Introduction. 1.1. Design of Embedded Real-Time Systems. 1.2. Contribution of this Work. 1.3. Outline. 2. WCET Analysis Techniques. 2.1. Introduction. 2.2. Approaches for WCET Analysis. 2.3. Basic Concepts for Static WCET Analysis. 2.4. Static WCET Analyzer aiT. 3. WCC - WCET-Aware C Compiler. 3.1. Introduction. 3.2. Related Work. 3.3. Structure of the WCC Compiler. 3.4. Integration of WCET Analyzer. 3.5. Modeling of Flow Facts. 3.6. Static Loop Analysis. 3.7. Back-Annotation. 3.8. TriCore Processor. 4. WCET-Aware Source Code Level Optimizations. 4.1. Introduction. 4.2. Existing Code Optimization Techniques. 4.3. Procedure Cloning. 4.4. Superblock Optimizations. 4.5. Loop Unrolling. 4.6. Accelerating Optimization by the Invariant Path. 4.7. Summary. 5. WCET-Aware Assembly Level Optimizations. 5.1. Introduction. 5.2. Existing Code Optimization Techniques. 5.3. Procedure Positioning. 5.4. Trace Scheduling. 5.5. Summary. 6. Machine Learning Techniques in Compiler Design. 6.1. Introduction. 6.2. Related Work. 6.3. Machine Learning Based Heuristic Generation. 6.4. Function Inlining. 6.5. Loop-Invariant Code Motion. 6.6. Summary. 7. Multi-Objective Optimizations. 7.1. Introduction. 7.2. Motivation. 7.3. Related Work. 7.4. Compiler Optimization Sequence Exploration. 7.5. Multi-Objective Exploration of Compiler Optimizations. 7.6. Experimental Results for Optimization Exploration. 7.7. Summary. 8. Summary and Future Work. 8.1. Research Contributions. 8.2. Future Work. A. Abstract Interpretation. B. Transformation of Conditions. References. List of Figures. List of Tables. Index.


euromicro conference on real-time systems | 2009

Combining Worst-Case Timing Models, Loop Unrolling, and Static Loop Analysis for WCET Minimization

Paul Lokuciejewski; Peter Marwedel

Program loops are notorious for their optimization potential on modern high-performance architectures. Compilers aim at their aggressive transformation to achieve large improvements of the program performance. In particular, the optimization loop unrolling has shown in the past decades to be highly effective achieving significant increases of the average-case performance.In this paper, we present loop unrolling that is tailored towards real-time systems. Our novel optimization is driven by worst-case execution time (WCET) information to effectively minimize the programs worst-case behavior. To exploit maximal optimization potential, the determination of a suitable unrolling factor is based on precise loop iteration counts provided by a static loop analysis. In addition,our heuristics avoid adverse effects of unrolling which result from instruction cache overflows and the generation of additional spill code. Results on 45 real-life benchmarks demonstrate that aggressive loop unrolling can yield WCET reductions of up to 13.7% over simple, naive approaches employed by many production compilers.


international symposium on object/component/service-oriented real-time distributed computing | 2010

Multi-objective Exploration of Compiler Optimizations for Real-Time Systems

Paul Lokuciejewski; Sascha Plazar; Heiko Falk; Peter Marwedel; Lothar Thiele

With the growing complexity of embedded systems software, high code quality can only be achieved using a compiler. Sophisticated compilers provide a vast spectrum of various optimizations to improve code aggressively w. r. t. different objective functions, e. g., average-case execution time (ACET) or code size. Due to the complex interactions between the optimizations, the choice for a promising sequence of code transformations is not trivial. Compiler developers address this problem by proposing standard optimization levels, e. g., O3 or Os. However, previous studies have shown that these standard levels often miss optimization potential or might even result in performance degradation. In this paper, we propose the first adaptive WCET-aware compiler framework for an automatic search of compiler optimization sequences which yield highly optimized code. Besides the objective functions ACET and code size, we consider the worst-case execution time (WCET) which is a crucial parameter for real-time systems. To find suitable trade-offs between these objectives, stochastic evolutionary multi-objective algorithms identifying Pareto optimal solutions are exploited. A comparison based on statistical performance assessments is performed which helps to determine the most suitable multi-objective optimizer. The effectiveness of our approach is demonstrated on real-life benchmarks showing that standard optimization levels can be significantly outperformed.


software and compilers for embedded systems | 2008

WCET-driven, code-size critical procedure cloning

Paul Lokuciejewski; Heiko Falk; Peter Marwedel; Henrik Theiling

In the domain of the worst-case execution time (WCET) analysis, loops are an inherent source of unpredictability and loss of precision since the determination of tight and safe information on the number of loop iterations is a difficult task. In particular, data-dependent loops whose iteration counts depend on function parameters can not be precisely handled by a timing analysis. Procedure Cloning can be exploited to make these loops explicit within the source code allowing a highly precise WCET analysis. In this paper we extend the standard Procedure Cloning optimization by WCET-aware concepts with the objective to improve the tightness of the WCET estimation. Our novel approach is driven by WCET information which successively eliminates code structures leading to overestimated timing results, thus making the code more suitable for the analysis. In addition, the code size increase during the optimization is monitored and large increases are avoided. The effectiveness of our optimization is shown by tests on real-world benchmarks. After performing our optimization, the estimated WCET is reduced by up to 64.2% while the employed code transformations yield an additional code size increase of 22.6% on average. In contrast, the average-case performance being the original objective of Procedure Cloning showed a slight decrease.


international conference on hardware/software codesign and system synthesis | 2007

Influence of procedure cloning on WCET prediction

Paul Lokuciejewski; Heiko Falk; Martin Schwarzer; Peter Marwedel; Henrik Theiling

For the worst-case execution time (WCET) analysis, especially loops are an inherent source of unpredictability and loss of precision. This is caused by the difficulty to obtain safe and tight information on the number of iterations executed by a loop in the worst case. In particular, data-dependent loops whose iteration counts depend on function parameters are extremely difficult to analyze precisely. Procedure cloning helps by making such data-dependent loops explicit within the source code, thus making them accessible for high-precision WCET analyses. This paper presents the effect of procedure cloning applied at the source-code level on worst-case execution time. The optimization generates specialized versions of functions being called with constant values as arguments. In standard literature, it is used to enable further optimizations like constant propagation within functions and to reduce calling overhead. We show that procedure cloning for WCET minimization leads to significant improvements. Reductions of the WCET from 12% up to 95% were measured for real-life benchmarks. These results demonstrate that procedure cloning improves analyzability and predictability of real-time applications dramatically. In contrast, average-case performance as the criterion procedure cloning was developed for is reduced by only 3% at most. Our results also show that these WCET reductions only implied small overhead during WCET analysis.


international symposium on object/component/service-oriented real-time distributed computing | 2010

WCET-Driven Cache-Aware Memory Content Selection

Sascha Plazar; Paul Lokuciejewski; Peter Marwedel

Caches are widely used to bridge the increasingly growing gap between processor and memory performance. They store copies of frequently used parts of the slow main memory for faster access. Static analysis techniques allow the estimation of the worst case cache behavior and enable the computation of an upper bound of the execution time of a program. This bound is called worst-case execution time (WCET). Its knowledge is crucial to verify if hard real-time systems satisfy their timing constraints and the WCET is a key parameter for the design of embedded systems. In this paper, we propose a new WCET-driven cache-aware memory content selection algorithm, which allocates functions whose WCET highly benefits from a cached execution to cached memory areas. Vice versa, rarely used functions which do not benefit from a cached execution are allocated to noncached memory areas. As a result of this, unfavorable functions w. r. t. a program’s WCET can not evict beneficial functions from the cache. This can lead to a reduced cache miss ratio and a decreased WCET. The effectiveness of our approach is demonstrated by results achieved on real-life benchmarks. In a case study, our greedy algorithm is able to reduce the benchmarks’ WCET by up to 20%.

Collaboration


Dive into the Paul Lokuciejewski's collaboration.

Top Co-Authors

Avatar

Peter Marwedel

Technical University of Dortmund

View shared research outputs
Top Co-Authors

Avatar

Heiko Falk

Hamburg University of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Sascha Plazar

Technical University of Dortmund

View shared research outputs
Top Co-Authors

Avatar

Katharina Morik

Technical University of Dortmund

View shared research outputs
Top Co-Authors

Avatar

Daniel Cordes

Technical University of Dortmund

View shared research outputs
Top Co-Authors

Avatar

Fatih Gedikli

Technical University of Dortmund

View shared research outputs
Top Co-Authors

Avatar

Marco Stolpe

Technical University of Dortmund

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Timon Kelter

Technical University of Dortmund

View shared research outputs
Researchain Logo
Decentralizing Knowledge