aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
diff options
context:
space:
mode:
authorGeorge Burgess IV <george.burgess.iv@gmail.com>2016-04-29 18:42:55 +0000
committerGeorge Burgess IV <george.burgess.iv@gmail.com>2016-04-29 18:42:55 +0000
commit1b1fef30d032f453324953a6fd7971ee3014ce98 (patch)
tree83f71d537d6b4c374627b4a0560263047d08b944 /llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
parentd2a074b1f463806a2c0e6a56b950a73635350fe7 (diff)
downloadllvm-1b1fef30d032f453324953a6fd7971ee3014ce98.zip
llvm-1b1fef30d032f453324953a6fd7971ee3014ce98.tar.gz
llvm-1b1fef30d032f453324953a6fd7971ee3014ce98.tar.bz2
[MemorySSA] Fix bugs in walker; refactor unittests a bit.
This patch fixes two somewhat related bugs in MemorySSA's caching walker. These bugs were found because D19695 brought up the problem that we'd have defs cached to themselves, which is incorrect. The bugs this fixes are: - We would sometimes skip the nearest clobber of a MemoryAccess, because we would query our cache for a given potential clobber before checking if the potential clobber is the clobber we're looking for. The cache entry for the potential clobber would point to the nearest clobber *of the potential clobber*, so if that was a cache hit, we'd ignore the potential clobber entirely. - There are times (sometimes in DFS, sometimes in the getClobbering... functions) where we would insert cache entries that say a def clobbers itself. There's a bit of common code between the fixes for the bugs, so they aren't split out into multiple commits. This patch also adds a few unit tests, and refactors existing tests a bit to reduce the duplication of setup code. llvm-svn: 268087
Diffstat (limited to 'llvm/lib/ProfileData/Coverage/CoverageMapping.cpp')
0 files changed, 0 insertions, 0 deletions