Previously ExtBinary profile format only supports compression using zlib for profile symbol list. In this patch, we extend the compression support to any section. User can select some or all of the sections to compress. In an experiment, for a 45M profile in ExtBinary format, compressing name table reduced its size to 24M, and compressing all the sections reduced its size to 11M.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/include/llvm/ProfileData/SampleProf.h | ||
---|---|---|
148 | Flag->Flags? | |
155 | may be name it 'addSecFlags' ? 'setSecFlags' implies Entry.Flag = Flags; | |
159 | clearSecFlags or removeSecFlags? | |
llvm/include/llvm/ProfileData/SampleProfWriter.h | ||
174 | hold->held | |
178 | held | |
llvm/tools/llvm-profdata/llvm-profdata.cpp | ||
652 | Should this imply compressProfSymlist when true? Or under what condition do we want to compressAllSections but not profsymList? If such case does not exist, we should remove compress symlist option. |
llvmprof command documentation also needs to be updated.
llvm/tools/llvm-profdata/llvm-profdata.cpp | ||
---|---|---|
456 | '-compress-all-section is ignored. Specify -extbinary to enable it' |
llvm/tools/llvm-profdata/llvm-profdata.cpp | ||
---|---|---|
456 | Fixed. |
Flag->Flags?