mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 04:30:23 +00:00
InstrProf: Teach llvm-cov to show the max count instead of the last
When multiple regions start on the same line, llvm-cov was just showing the count of the last one as the line count. This can be confusing and misleading for things like one-liner loops, where the count at the end isn't very interesting, or even "if" statements with an opening brace at the end of the line. Instead, use the maximum of all of the region start counts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230263 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5b7c499806
commit
90c4e8b70c
@ -12,11 +12,11 @@ int main() { // CHECK: 1| [[@LINE]]|int main(
|
||||
x = 1; // CHECK: 1| [[@LINE]]| x = 1
|
||||
} // CHECK: 1| [[@LINE]]| }
|
||||
// CHECK: 1| [[@LINE]]|
|
||||
for (int i = 0; i < 100; ++i) { // CHECK: 100| [[@LINE]]| for (
|
||||
for (int i = 0; i < 100; ++i) { // CHECK: 101| [[@LINE]]| for (
|
||||
x = 1; // CHECK: 100| [[@LINE]]| x = 1
|
||||
} // CHECK: 100| [[@LINE]]| }
|
||||
// CHECK: 1| [[@LINE]]|
|
||||
x = x < 10 ? x + 1 : x - 1; // CHECK: 0| [[@LINE]]| x =
|
||||
x = x < 10 ? x + 1 : x - 1; // CHECK: 1| [[@LINE]]| x =
|
||||
x = x > 10 ? // CHECK: 1| [[@LINE]]| x =
|
||||
x - 1: // CHECK: 0| [[@LINE]]| x
|
||||
x + 1; // CHECK: 1| [[@LINE]]| x
|
||||
|
@ -90,15 +90,14 @@ private:
|
||||
bool hasMultipleRegions() const { return RegionCount > 1; }
|
||||
|
||||
void addRegionStartCount(uint64_t Count) {
|
||||
Mapped = true;
|
||||
ExecutionCount = Count;
|
||||
// The max of all region starts is the most interesting value.
|
||||
addRegionCount(RegionCount ? std::max(ExecutionCount, Count) : Count);
|
||||
++RegionCount;
|
||||
}
|
||||
|
||||
void addRegionCount(uint64_t Count) {
|
||||
Mapped = true;
|
||||
if (!RegionCount)
|
||||
ExecutionCount = Count;
|
||||
ExecutionCount = Count;
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user