[PATCH] D60227: [Remarks] Add string deduplication using a string table
Francis Visoiu Mistrih via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 3 12:44:51 PDT 2019
thegameg created this revision.
thegameg added reviewers: paquette, anemet, JDevlieghere, hfinkel, fhahn.
Herald added subscribers: hiraditya, mgorny.
Herald added a project: LLVM.
- Add support for uniquing strings in the remark streamer and emitting the string table in the remarks section.
- Add parsing support for the string table in the RemarkParser.
>From this remark:
--- !Missed
Pass: inline
Name: NoDefinition
DebugLoc: { File: 'test-suite/SingleSource/UnitTests/2002-04-17-PrintfChar.c',
Line: 7, Column: 3 }
Function: printArgsNoRet
Args:
- Callee: printf
- String: ' will not be inlined into '
- Caller: printArgsNoRet
DebugLoc: { File: 'test-suite/SingleSource/UnitTests/2002-04-17-PrintfChar.c',
Line: 6, Column: 0 }
- String: ' because its definition is unavailable'
...
to:
--- !Missed
Pass: 0
Name: 1
DebugLoc: { File: 3, Line: 7, Column: 3 }
Function: 2
Args:
- Callee: 4
- String: 5
- Caller: 2
DebugLoc: { File: 3, Line: 6, Column: 0 }
- String: 6
...
And the string table in the .remarks/__remarks section containing:
inline\0NoDefinition\0printArgsNoRet\0test-suite/SingleSource/UnitTests/2002-04-17-PrintfChar.c\0printf\0 will not be inlined into \0 because its definition is unavailable\0
This is mostly supposed to be used for testing purposes, but it gives us a 2x reduction in the remark size, and is an incremental change for the updates to the remarks file format.
https://reviews.llvm.org/D60227
Files:
llvm/docs/CodeGenerator.rst
llvm/include/llvm/IR/RemarkStreamer.h
llvm/include/llvm/Remarks/RemarkParser.h
llvm/include/llvm/Remarks/RemarkStringTable.h
llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
llvm/lib/CodeGen/AsmPrinter/LLVMBuild.txt
llvm/lib/IR/DiagnosticInfo.cpp
llvm/lib/IR/LLVMBuild.txt
llvm/lib/IR/RemarkStreamer.cpp
llvm/lib/Remarks/CMakeLists.txt
llvm/lib/Remarks/RemarkParser.cpp
llvm/lib/Remarks/RemarkStringTable.cpp
llvm/lib/Remarks/YAMLRemarkParser.cpp
llvm/lib/Remarks/YAMLRemarkParser.h
llvm/test/CodeGen/X86/remarks-section.ll
llvm/unittests/Remarks/CMakeLists.txt
llvm/unittests/Remarks/RemarksStrTabParsingTest.cpp
llvm/unittests/Remarks/YAMLRemarksParsingTest.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D60227.193571.patch
Type: text/x-patch
Size: 27483 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190403/2f748f72/attachment.bin>
More information about the llvm-commits
mailing list