DebugInfo: Improve reuse of file table entries in asm debug info
authorDavid Blaikie <dblaikie@gmail.com>
Mon, 17 Mar 2014 01:52:11 +0000 (01:52 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Mon, 17 Mar 2014 01:52:11 +0000 (01:52 +0000)
commitfd69cf9ba4b4a3f29523e2367a569bd84e0fdad8
treeb9a4c9ef4ad417fb62b246f05d8f8a4e5c00d8c0
parent6a6b6f50af7fb209c96b359ecd035c6309e5f3f3
DebugInfo: Improve reuse of file table entries in asm debug info

The previous deduping strategy was woefully inadequate - it only
considered the most recent file used and avoided emitting a duplicate in
that case - never considering the a/b/a scenario.

It was also lacking when it came to directory paths as the previous
filename would never match the current if the filename had been split
into file and directory components.

This change builds caching functionality into the line table at the
lowest level in an optional form (a file number of 0 indicates that one
should be chosen and returned) and will eventually be reused by the
normal source level debugging DWARF emission.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204027 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/MC/MCContext.h
include/llvm/MC/MCDwarf.h
include/llvm/MC/MCStreamer.h
lib/MC/MCAsmStreamer.cpp
lib/MC/MCDwarf.cpp
lib/MC/MCNullStreamer.cpp
lib/MC/MCParser/AsmParser.cpp
lib/MC/MCStreamer.cpp
test/MC/MachO/gen-dwarf-cpp.s