# CHOP: Bypassing Runtime Bounds Checking Through Convex Hull OPtimization

**Authors:** Yurong Chen, Hongfa Xue, Tian Lan, Guru Venkataramani

arXiv: 1907.04241 · 2019-07-10

## TL;DR

CHOP introduces a profile-guided convex hull optimization framework that effectively bypasses redundant memory bounds checks, significantly reducing overhead and improving performance in C/C++ programs.

## Contribution

It presents a novel model-based inference technique for dynamic bounds check elimination that surpasses static analysis limitations.

## Key findings

- 80.12% of bounds checks avoided on average
- Performance improved up to 95.80% over SoftBound
- Effective on real-world applications and benchmarks

## Abstract

Unsafe memory accesses in programs written using popular programming languages like C/C++ have been among the leading causes for software vulnerability. Prior memory safety checkers such as SoftBound enforce memory spatial safety by checking if every access to array elements are within the corresponding array bounds. However, it often results in high execution time overhead due to the cost of executing the instructions associated with bounds checking. To mitigate this problem, redundant bounds check elimination techniques are needed. In this paper, we propose CHOP, a Convex Hull OPtimization based framework, for bypassing redundant memory bounds checking via profile-guided inferences. In contrast to existing check elimination techniques that are limited by static code analysis, our solution leverages a model-based inference to identify redundant bounds checking based on runtime data from past program executions. For a given function, it rapidly derives and updates a knowledge base containing sufficient conditions for identifying redundant array bounds checking. We evaluate CHOP on real-world applications and benchmark (such as SPEC) and the experimental results show that on average 80.12% of dynamic bounds check instructions can be avoided, resulting in improved performance up to 95.80% over SoftBound.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1907.04241/full.md

## Figures

10 figures with captions in the complete paper: https://tomesphere.com/paper/1907.04241/full.md

## References

41 references — full list in the complete paper: https://tomesphere.com/paper/1907.04241/full.md

---
Source: https://tomesphere.com/paper/1907.04241