Redundant Exception Check Elimination by Assertions
スポンサーリンク
概要
- 論文の詳細を見る
Exception handling is not only useful for increasing program readability, but also provides an effective means to check and locate errors, so it increases productivity in large-scale program development. Some typical and frequent program errors, such as out-of-range indexing, null dereferencing, and narrowing violations, cause exceptions that are otherwise unlikely to be caught. Moreover, the absence of a catcher for exceptions thrown by API procedures also causes uncaught exceptions. This paper discusses how the exception handling mechanism should be supported by the compiler together with the operating system and debugging facilities. This mechanism is implemented in the compiler by inserting inline check code and accompanying propagation code. One drawback to this approach is the runtime overhead imposed by the inline check code, which should therefore be optimized. However, there has been little discussion of appropriate optimization techniques and efficiency in the literature. Therefore, a new solution is proposed that formulates the optimization problem as a common assertion elimination (CAE). Assertions consist of check code and useful branch conditions. The latter are effective to remove redundant check code. The redundancy can be checked and removed precisely with a forward iterative data flow analysis. Even in performance-sensitive applications such as telecommunications software, figures obtained by a CHILL optimizing compiler indicate that CAE optimizes the code well enough to be competitive with check suppressed code.
- 社団法人電子情報通信学会の論文
- 1998-10-25
著者
-
Sato Norio
The Author Is With Ntt Optical Network Systems Laboratories
-
Sato Norio
The Author Is With Distributed Network System Laboratory Ntt Optical Network Systems Loboratories
関連論文
- Redundant Exception Check Elimination by Assertions
- Efficient Hybrid Allocation of Processor Registers for Compiling Telephone Call Control Programs