  Predictive data race detectors find data races that exist in executions other
than the observed execution. Smaragdakis et al. introduced the
causally-precedes (CP) relation and a polynomial-time analysis for sound (no
false races) predictive data race detection. However, their analysis cannot
scale beyond analyzing bounded windows of execution traces. This work
introduces a novel dynamic analysis called Raptor that computes CP soundly and
completely. Raptor is inherently an online analysis that analyzes and finds all
CP-races of an execution trace in its entirety. An evaluation of a prototype
implementation of Raptor shows that it scales to program executions that the
prior CP analysis cannot handle, finding data races that the prior CP analysis
cannot find.
