Network


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

Hotspot


Dive into the research topics where Moshe Klausner is active.

Publication


Featured researches published by Moshe Klausner.


symposium on code generation and optimization | 2003

Optimization opportunities created by global data reordering

Gadi Haber; Moshe Klausner; Vadim Eisenberg; Bilha Mendelson; Maxim Gurevich

Memory access has proven to be one of the bottlenecks in modern architectures. Improving memory locality and eliminating the amount of memory access can help release this bottleneck. We present a method for link-time profile-based optimization by reordering the global data of the program and modifying its code accordingly. The proposed optimization reorders the entire global data of the program, according to a representative execution rate of each instruction (or basic block) in the code. The data reordering is done in a way that enables the replacement of frequently-executed Load instructions, which reference the global data, with fast Add Immediate instructions. In addition, it tries to improve the global data locality and to reduce the total size of the global data area. The optimization was implemented into FDPR (Feedback Directed Program Restructuring), a post-link optimizer, which is part of the IBM AIX operating system for the IBM pSeries servers. Our results on SPECint2000 show a significant improvement of up to 11% (average 3%) in execution time, along with up to 97.9% (average 83%) reduction in memory references to the global variables via the global data access mechanism of the program.


international symposium on software testing and analysis | 2009

Advanced code coverage analysis using substring holes

Yoram Adler; Eitan Farchi; Moshe Klausner; Dan Pelleg; Orna Raz; Moran Shochat; Shmuel Ur; Aviad Zlotnick

Code coverage is a common aid in the testing process. It is generally used for marking the source code segments that were executed and, more importantly, those that were not executed. Many code coverage tools exist, supporting a variety of languages and operating systems. Unfortunately, these tools provide little or no assistance when code coverage data is voluminous. Such quantities are typical of system tests and even for earlier testing phases. Drill-down capabilities that look at different granularities of the data, starting with directories and going through files to functions and lines of source code, are insufficient. Such capabilities make the assumption that the coverage issues themselves follow the code hierarchy. We argue that this is not the case for much of the uncovered code. Two notable examples are error handling code and platform-specific constructs. Both tend to be spread throughout the source in many files, even though the related coverage, or lack thereof, is highly dependent. To make the task more manageable, and therefore more likely to be performed by users, we developed a hole analysis algorithm and tool that is based on common substrings in the names of functions. We tested its effectiveness using two large IBM software systems. In both of them, we asked domain experts to judge the results of several hole-ranking heuristics. They found that 57% - 87% of the 30 top-ranked holes identified by the effective heuristics are relevant. Moreover, these holes are often unexpected. This is especially impressive because substring hole analysis relies only on the names of functions, whereas domain experts have a broad and deep understanding of the system. We grounded our results in a theoretical framework that states desirable mathematical properties of hole ranking heuristics. The empirical results show that heuristics with these properties tend to perform better, and do so more consistently, than heuristics lacking them.


international conference on software engineering | 2009

Automated substring hole analysis

Yoram Adler; Eitan Farchi; Moshe Klausner; Dan Pelleg; Orna Raz; Moran Shochat; Shmuel Ur; Aviad Zlotnick

Code coverage is a common measure for quantitatively assessing the quality of software testing. Code coverage indicates the fraction of code that is actually executed by tests in a test suite. While code coverage has been around since the 60s there has been little work on how to effectively analyze code coverage data measured in system tests. Raw data of this magnitude, containing millions of data records, is often impossible for a human user to comprehend and analyze. Even drill-down capabilities that enable looking at different granularities starting with directories and going through files to lines of source code are not enough. Substring hole analysis is a novel method for viewing the coverage of huge data sets. We have implemented a tool that enables automatic substring hole analysis. We used this tool to analyze coverage data of several large and complex IBM software systems. The tool identified coverage holes that suggested interesting scenarios that were untested.


haifa verification conference | 2007

The advantages of post-link code coverage

Orna Raz; Moshe Klausner; Nitzan Peleg; Gadi Haber; Eitan Farchi; Shachar Fienblit; Yakov S. Filiarsky; Shay Gammer; Sergey Novikov

Code coverage is often defined as a measure of the degree to which the source code of a program has been tested [19]. Various metrics for measuring code coverage exist. The vast majority of these metrics require instrumenting the source code to produce coverage data. However, for certain coverage metrics, it is also possible to instrument object code to produce coverage data. Traditionally, such instrumentation has been considered inferior to source level instrumentation because source code is the focus of code coverage. Our experience shows that object code instrumentation, specifically post-link instrumentation, can be very useful to users. Moreover, it does not only alleviate certain side-effects of source-level instrumentation, especially those related to compiler optimizations, but also lends itself to performance optimization that enables low-overhead instrumentation. Our experiments show an average of less than 1% overhead for instrumentation at the function level and an average of 4.1% and 0.4% overhead for SPECint2000 and SPECfp2000, respectively, for instrumentation at the basic block level. This paper demonstrates the advantages of post-link coverage and describes effective methodology and technology for applying it.


Archive | 2001

Optimizing post-link code

Gad Haber; Moshe Klausner; Vadim Eisenberg


Archive | 2011

Measuring coupling between coverage tasks and use thereof

Yoram Adler; Rachel Tzoref-Brill; Moshe Klausner; Orna Raz; Onn Shehory; Aviad Zlotnick


Archive | 2002

Eliminating store/restores within hot function prolog/epilogs using volatile registers

Gad Haber; Moshe Klausner; Vadim Eisenberg


Archive | 2002

Percolating hot function store/restores to colder calling functions

Gad Haber; Moshe Klausner; Vadim Eisenberg


Archive | 2002

Eliminating cold register store/restores within hot function prolog/epilogs

Gad Haber; Moshe Klausner; Vadim Eisenberg


Archive | 2000

Reliable post-link optimizations based on partial information

Ealan Henis; Gadi Haber; Vadim Eisenberg; Moshe Klausner; In Aix; PowerPC; Csect Non-stripped

Researchain Logo
Decentralizing Knowledge