Optimizing away C++ exception handling

  title={Optimizing away C++ exception handling},
  author={Jonathan L. Schilling},
  journal={ACM SIGPLAN Notices},
A high performance implementation of C++ exception handling is crucial, because exception handling overhead is distributed across all code. The commonly-used table-driven approach to implementing exception handling can be augmented by an optimization that seeks to identify functions for which (contrary to first appearance) no exception handling tables need be generated at all. This optimization produces modest but useful gains on some existing C++ code, but produces very significant size and… Expand
A study of exception handling and its dynamic optimization in Java
This work observed that there are many such exception-intensive programs iin various categories of Java programs, and there has been no single exception handling technique to optimize both paths. Expand
Exception Handling in the Choices Operating System
The set of exceptional error conditions in the kernel is extended to include critical kernel errors such as invalid memory access and undefined instructions by wrapping them with language-based software exceptions, which allows developers to handle both hardware and software exceptions in a simple and unified manner. Expand
Exceptional Kernel Using C + + exceptions in the Linux kernel Halldór
Driven by the desire to facilitate more maintainable and robust systems, modern programming languages offer explicit constructs to facilitate the handling of exceptional events. The use of exceptionsExpand
EDO: Exception-directed optimization in java
This work proposes a new technique called Exception-Directed Optimization (EDO), a feedback-directed dynamic optimization that optimizes exception-intensive programs without slowing down exception-minimal programs and implemented it in IBM's production Just-in-Time compiler. Expand
A Study on the Effects of Exception Usage in Open-Source C++ Systems
  • Kirsten Bradley, M. Godfrey
  • Computer Science
  • 2019 19th International Working Conference on Source Code Analysis and Manipulation (SCAM)
  • 2019
It is observed that the number of edges in an augmented call graph increases, on average, by 22% when edges for exception flow are added to a graph, and that about 8 out of 9 functions that may throw only do so by propagating a throw from another function. Expand
Exception Handling Exception Handling Exception Safety
    Exception handling is a programming language construct or computer hardware mechanism designed to handle the occurrence of exceptions, special conditions that change the normal flow of programExpand
    Simplifying the analysis of c++ programs
    Two techniques are offered, one based on refining the type system of a language and the other on abstract interpretation, which allow developers to statically ensure or verify various run-time properties of their programs without having to deal with the full language semantics or even the abstract syntax tree of a program. Expand
    Achieving High Performance and High Productivity in Next Generational Parallel Programming Languages
    This thesis is that, by exploiting existing underlying mechanisms of managed runtimes; and by extending existing language design, high-level languages will be able to deliver productivity and parallel performance at the levels necessary for widespread uptake. Expand
    Evolving a language in and for the real world: C++ 1991-2006
    Various uses of C++ and the technical and commercial pressures that provided the background for its continuing evolution are discussed, including the emergence of generic programming and the STL (the C++ standard library's algorithms and containers). Expand
    Using C++ exceptions in the Linux kernel
    • 2004


    Exception Handling for C++
    This paper outlines a design for an exception handling mechanism for C ++ that is flexible, comparatively safe and easy to use, works in a mixed language execution environment, and can be implemented to run efficiently. Expand
    The direct cost of virtual function calls in C++
    The direct cost of virtual function calls in C++ programs, assuming the standard implementation using virtual function tables is standard, is measured experimentally using a combination of executable inspection and processor simulation. Expand
    The design and evolution of C++
    The Prehistory of C++ and the C++ Language Design Rules, 1985-1993, and Looking Ahead, which describes the future of the language and its structure, are published. Expand
    Vortex: an optimizing compiler for object-oriented languages
    The Vortex compiler infrastructure is developed, a language-independent optimizing compiler for object-oriented languages, with front-ends for Cecil, C++, Java, and Modula-3, and the results of experiments assessing the effectiveness of different combinations of optimizations on sizable applications across these four languages are reported. Expand
    C++ Programming Language
    Bjarne Stroustrup makes C even more accessible to those new to the language, while adding advanced information and techniques that even expert C programmers will find invaluable. Expand
    A history of C
    The history of the C++ programming language is outlined, with the emphasis on the ideas, constraints, and people that shaped the language, rather than the minuitiae of language features. Expand
    Embedded C++: An Overview
    • Embedded Systems Programming
    • 1997
    More Effective C++
    • More Effective C++
    • 1996
    An Exception Hierarchy for Embedded Applications
    • Embedded Systems Programming
    • 1995
    C++ compiler shootout
    • C++ Report
    • 1995