diff options
author | Jason Molenda <jmolenda@apple.com> | 2015-12-12 03:06:10 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 2015-12-12 03:06:10 +0000 |
commit | a38312a9a4eeb8ab8976adf5712fadd68dd763cf (patch) | |
tree | 488c373fa05a834c9bc20df27ad1512323eaf92f /llvm/lib/CodeGen/AsmPrinter/WinException.cpp | |
parent | 97047d8cb6eeb4898a0808da52a401dae8b9767e (diff) | |
download | bcm5719-llvm-a38312a9a4eeb8ab8976adf5712fadd68dd763cf.tar.gz bcm5719-llvm-a38312a9a4eeb8ab8976adf5712fadd68dd763cf.zip |
Fix the L1 cache search in MemoryCache::Read to use the
stl upper_bound method instead of lower_bound - we were
failing to find some cached data in the L1 cache resulting
in extra memory read packets while stepping.
The bug with the existing code looked like this:
If the L1 cache has 8 bytes at address 0x1000 and 8 bytes
at address 0x2000 and we are searching for 4 bytes at 0x2004,
the use of lower_bound would return the end() of the container
and so we would incorrectly treat the memory as uncached.
(the L1 cache is memory seeded from debugserver in the T aka
questionmark packet, where debugserver will send up the stack
memory that likely contains the caller's stack pointer and
frame pointer values.)
<rdar://problem/23869227>
llvm-svn: 255421
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/WinException.cpp')
0 files changed, 0 insertions, 0 deletions