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.
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.