diff options
author | Manman Ren <mren@apple.com> | 2013-03-07 01:42:00 +0000 |
---|---|---|
committer | Manman Ren <mren@apple.com> | 2013-03-07 01:42:00 +0000 |
commit | 1e4272085d666ac02affbbd70d621fe386ab66b3 (patch) | |
tree | 3e3fa128182e97d1c03abb10fbc034d18a257427 /llvm/lib/MC/MCStreamer.cpp | |
parent | 96a4aa678cdcef65f63366da95c9898fcbfd70ad (diff) | |
download | bcm5719-llvm-1e4272085d666ac02affbbd70d621fe386ab66b3.tar.gz bcm5719-llvm-1e4272085d666ac02affbbd70d621fe386ab66b3.zip |
Debug Info: store the files and directories for each compile unit.
We now emit a line table for each compile unit. To reduce the prologue size
of each line table, the files and directories used by each compile unit are
stored in std::map<unsigned, std::vector< > > instead of std::vector< >.
The prologue for a lto'ed image can be as big as 93K. Duplicating 93K for each
compile unit causes a huge increase of debug info. With this patch, each
prologue will only emit the files required by the compile unit.
rdar://problem/13342023
llvm-svn: 176605
Diffstat (limited to 'llvm/lib/MC/MCStreamer.cpp')
-rw-r--r-- | llvm/lib/MC/MCStreamer.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp index 9857f7bb08d..51ef4155426 100644 --- a/llvm/lib/MC/MCStreamer.cpp +++ b/llvm/lib/MC/MCStreamer.cpp @@ -157,8 +157,8 @@ void MCStreamer::EmitFill(uint64_t NumBytes, uint8_t FillValue, bool MCStreamer::EmitDwarfFileDirective(unsigned FileNo, StringRef Directory, - StringRef Filename) { - return getContext().GetDwarfFile(Directory, Filename, FileNo) == 0; + StringRef Filename, unsigned CUID) { + return getContext().GetDwarfFile(Directory, Filename, FileNo, CUID) == 0; } void MCStreamer::EmitDwarfLocDirective(unsigned FileNo, unsigned Line, |