Network


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

Hotspot


Dive into the research topics where Jens Knoop is active.

Publication


Featured researches published by Jens Knoop.


programming language design and implementation | 1992

Lazy code motion

Jens Knoop; Oliver Rüthing; Bernhard Steffen

We present a bit-vector algorithm for the <italic>optimal</italic> and <italic>economical</italic> placement of computations within flow graphs, which is as <italic>efficient</italic> as standard uni-directional analyses. The point of our algorithm is the <italic>decomposition</italic> of the bi-directional structure of the known placement algorithms into a sequence of a backward and a forward analysis, which directly implies the efficiency result. Moreover, the new compositional structure opens the algorithm for modification: two further uni-directional analysis components exclude any unnecessary code motion. This <italic>laziness</italic> of our algorithm minimizes the register pressure, which has drastic effects on the run-time behaviour of the optimized programs in practice, where an economical use of registers is essential.


ACM Transactions on Programming Languages and Systems | 1994

Optimal code motion: theory and practice

Jens Knoop; Oliver Rüthing; Bernhard Steffen

An implementation-oriented algorithm for lazy code motion is presented that minimizes the number of computations in programs while suppressing any unnecessary code motion in order to avoid superfluous register pressure. In particular, this variant of the original algorithm for lazy code motion works on flowgraphs whose nodes are basic blocks rather than single statements, since this format is standard in optimizing compilers. The theoretical foundations of the modified algorithm are given in the first part, where t-refined flowgraphs are introduced for simplifying the treatment of flow graphs whose nodes are basic blocks. The second part presents the “basic block” algorithm in standard notation and gives directions for its implementation in standard compiler environments.


programming language design and implementation | 1994

Partial dead code elimination

Jens Knoop; Oliver Rüthing; Bernhard Steffen

A new aggressive algorithm for the elimination of partially dead code is presented, i.e., of code which is only dead on some program paths. Besides being more powerful than the usual approaches to dead code elimination, this algorithm is optimal in the following sense: partially dead code remaining in the resulting program cannot be eliminated without changing the branching structure or the semantics of the program, or without impairing some program executions. Our approach is based on techniques for partial redundancy elimination. Besides some new technical problems there is a significant difference here: partial dead code elimination introduces second order effects, which we overcome by means of exhaustive motion and elimination steps. The optimality and the uniqueness of the program obtained is proved by means of a new technique which is universally applicable and particularly useful in the case of mutually interdependent program optimizations.


compiler construction | 1992

The Interprocedural Coincidence Theorem

Jens Knoop; Bernhard Steffen

We present an interprocedural generalization of the well-known (intraprocedural) Coincidence Theorem of Kam and Ullman, which provides a sufficient condition for the equivalence of the meet over all paths (MOP) solution and the maximal fixed point (MFP) solution to a data flow analysis problem. This generalization covers arbitrary imperative programs with recursive procedures, global and local variables, and formal value parameters. In the absence of procedures, it reduces to the classical intraprocedural version. In particular, our stack-based approach generalizes the coincidence theorems of Barth and Sharir/Pnueli for the same setup, which do not properly deal with local variables of recursive procedures.


ACM Transactions on Programming Languages and Systems | 1996

Parallelism for free: efficient and optimal bitvector analyses for parallel programs

Jens Knoop; Bernhard Steffen; Jürgen Vollmer

We consider parallel programs with shared memory and interleaving semantics, for which we show how to construct for unidirectional bitvector problems optimal analysis algorithms that are as efficient as their purely sequential counterparts and that can easily be implemented. Whereas the complexity result is rather obvious, our optimality result is a consequence of a new Kam/Ullman-style Coincidence Theorem. Thus using our method, the standard algorithms for sequential programs computing liveness, availability, very busyness, reaching definitions, definition-use chains, or the analyses for performing code motion, assignment motion, partial dead-code elimination or strength reduction, can straightforward be transferred to the parallel setting at almost no cost.


foundations of software science and computation structure | 1999

An Automata-Theoretic Approach to Interprocedural Data-Flow Analysis

Javier Esparza; Jens Knoop

We show that recent progress in extending the automata-theoretic approach to model-checking beyond the class of finite-state processes finds a natural application in the area of interprocedural data-flow analysis.


programming language design and implementation | 1995

The power of assignment motion

Jens Knoop; Oliver Rüthing; Bernhard Steffen

Assignment motion (AM) and expression motion (EM) are the basis of powerful and at the first sight incomparable techniques for removing partially redundant code from a program. Whereas AM aims at the elimination of complete assignments, a transformation which is always desirable, the more flexible EM requires temporaries to remove partial redundancies. Based on the observation that a simple program transformation enhances AM to subsume EM, we develop an algorithm that for the first time captures all second order effects between AM and EM transformations. Under usual structural restrictions, the worst case time complexity of our algorithm is essentially quadratic, a fact which explains the promising experience with our implementation.


european symposium on programming | 1990

The Value Flow Graph: A Program Representation for Optimal Program Transformations

Bernhard Steffen; Jens Knoop; Oliver Rüthing

Data flow analysis algorithms for imperative programming languages can be split into two groups: first, into the semantic algorithms that determine semantic equivalence between terms, and second, into the syntactic algorithms that compute complex program properties based on syntactic term identity, which support powerful optimization techniques like for example partial redundancy elimination. Value Flow Graphs represent semantic equivalence of terms syntactically. This allows us to feed the knowledge of semantic equivalence into syntactic algorithms. The power of this technique, which leads to modularly extendable algorithms, is demonstrated by developing a two stage algorithm for the optimal placement of computations within a program wrt the Herbrand interpretation.


embedded software | 2015

T-CREST

Martin Schoeberl; Sahar Abbaspour; Benny Akesson; Neil C. Audsley; Raffaele Capasso; Jamie Garside; Kees Goossens; Sven Goossens; Scott Hansen; Reinhold Heckmann; Stefan Hepp; Benedikt Huber; Alexander Jordan; Evangelia Kasapaki; Jens Knoop; Yonghui Li; Daniel Prokesch; Wolfgang Puffitsch; Peter P. Puschner; André Rocha; Cláudio Silva; Jens Sparsø; Alessandro Tocchi

Real-time systems need time-predictable platforms to allow static analysis of the worst-case execution time (WCET). Standard multi-core processors are optimized for the average case and are hardly analyzable. Within the T-CREST project we propose novel solutions for time-predictable multi-core architectures that are optimized for the WCET instead of the average-case execution time. The resulting time-predictable resources (processors, interconnect, memory arbiter, and memory controller) and tools (compiler, WCET analysis) are designed to ease WCET analysis and to optimize WCET performance. Compared to other processors the WCET performance is outstanding.The T-CREST platform is evaluated with two industrial use cases. An application from the avionic domain demonstrates that tasks executing on different cores do not interfere with respect to their WCET. A signal processing application from the railway domain shows that the WCET can be reduced for computation-intensive tasks when distributing the tasks on several cores and using the network-on-chip for communication. With three cores the WCET is improved by a factor of 1.8 and with 15 cores by a factor of 5.7.The T-CREST project is the result of a collaborative research and development project executed by eight partners from academia and industry. The European Commission funded T-CREST.


international conference on concurrency theory | 1995

The Fixpoint-Analysis Machine

Bernhard Steffen; Andreas Claßen; Marion Klein; Jens Knoop; Tiziana Margaria

We present a fixpoint-analysis machine, for the efficient computation of homogeneous, hierarchical, and alternating fixpoints over regular, context-free/push-down and macro models. Applications of such fix-point computations include intra- and interprocedural data flow analysis, model checking for various temporal logics, and the verification of behavioural relations between distributed systems. The fixpoint-analysis machine identifies an adequate (parameterized) level for a uniform treatment of all those problems, which, despite its uniformity, outperforms the ‘standard iteration based’ special purpose tools usually by factors around 10, even if the additional compilation time is taken into account.

Collaboration


Dive into the Jens Knoop's collaboration.

Top Co-Authors

Avatar

Bernhard Steffen

Technical University of Dortmund

View shared research outputs
Top Co-Authors

Avatar

Oliver Rüthing

Technical University of Dortmund

View shared research outputs
Top Co-Authors

Avatar

Markus Schordan

Lawrence Livermore National Laboratory

View shared research outputs
Top Co-Authors

Avatar

Adrian Prantl

Lawrence Livermore National Laboratory

View shared research outputs
Top Co-Authors

Avatar

Dietmar Schreiner

Vienna University of Technology

View shared research outputs
Top Co-Authors

Avatar

Jakob Zwirchmayr

Vienna University of Technology

View shared research outputs
Top Co-Authors

Avatar

Laura Kovács

Chalmers University of Technology

View shared research outputs
Top Co-Authors

Avatar

Raimund Kirner

University of Hertfordshire

View shared research outputs
Top Co-Authors

Avatar

Albrecht Kadlec

Vienna University of Technology

View shared research outputs
Top Co-Authors

Avatar

Jingling Xue

University of New South Wales

View shared research outputs
Researchain Logo
Decentralizing Knowledge