Per email from AT (former UMD student, works on PEBIL now), codeCoverage is notably slower than DynamoRIO's coverage tool. Having examined the code, I can say why: function calls are evil in a coverage tool and should only occur at startup/shutdown. It would be much more performant to ensure the mapping of block ID to human-readable data occurs at instrumentation time, and thereby each block simply needs to increment an array element.