User Details
- User Since
- Jun 23 2022, 2:09 PM (65 w, 5 d)
Sep 8 2022
- remove lldb changes
- fix extra bytes when compressing for 32bit objcopy
- fix lldb compressed section zstd test File Size
Sep 6 2022
Looks like my concerns about the enum coupling and none vs unsupported semantics are addressed, one nit though.
LGTM, however, @dblaikie may want to take a pass as well. (Though I think this should be fine with him, because even if the final state of compression api in llvm is more OO, this regardless moves it closer in that direction than the original api.)
Sep 2 2022
- delete line
- change to LLVM_USE_STATIC_ZSTD (default FALSE)
Sep 1 2022
Aug 31 2022
- remove nit
Aug 30 2022
- add LLVM_PREFER_STATIC_ZSTD (default TRUE)
Aug 29 2022
- omit uneeded line
Aug 18 2022
- shorten compression related variable names
@dblaikie I've handled most of your comments, can you take another look?
- CompressionImplementation member on Decompressor instead of Spec
- fix static initialization skip errors in getCompressionSpec
Aug 17 2022
- small compression test cleanup
- remove Compression{Spec,Impl}Ref typedef
- remove CompressionSpecRefs::{Zlib,ZStd}
Aug 16 2022
- remove extra includes of ADT/Optional
- compression: remove some usage sugar from
- move compression level members from spec to impl
- remove Supported member of CompressionSpec
Aug 9 2022
- address review comments
Aug 5 2022
- Merge remote-tracking branch 'origin/main' into ckissane.compression-class-simple
- fix InputSection decompress issue
- format error string
- remove OptionalCompressionKind noneIfUnsupported
- cleanup some compression nits
Aug 4 2022
- move if into switch
- Merge remote-tracking branch 'origin/ckissane.compression-class-simple' into ckissane.compression-class
- remove erroneous declation of operator StringRef()
- Merge branch 'ckissane.compression-class' of github.com:ckissane/llvm-project into ckissane.compression-class
- Merge remote-tracking branch 'origin/ckissane.compression-class-simple' into ckissane.compression-class
- Merge remote-tracking branch 'origin/ckissane.compression-class-simple' into ckissane.compression-class
- Merge remote-tracking branch 'origin/ckissane.compression-class-simple' into ckissane.compression-class
- fix some nits in Compression.h
- remove compression kind || && overload
Aug 3 2022
- remove uppercase Compress, Decompress
Aug 2 2022
compression api: greatly simplify implementation
+ cuts around 100 lines of code from compression.h and compression.cpp
@dblaikie, @MaskRay I think I have worked out something that is the best of both worlds:
none compression is represented simply as a none type for use cases that will use Optional<CompressionKind>.
once you have a CompressionKind itself you can pass it around as a value (because a CompressionKind is just a struct containing one uint8_t (a fake "enum")).
due to my operator overloading, you can do stuff like this:
llvm::compression::OptionalCompressionKind OptionalCompressionScheme = llvm::compression::getOptionalCompressionKind(CompressionSchemeId); if (!OptionalCompressionScheme) { return llvm::MemoryBuffer::getMemBuffer(Blob, Name, true); } llvm::compression::CompressionKind CompressionScheme = *OptionalCompressionScheme; if (!CompressionScheme) { Error("compression class " + (CompressionScheme->getName() + " is not available").str()); return nullptr; } SmallVector<uint8_t, 0> Uncompressed; if (llvm::Error E = CompressionScheme->decompress( llvm::arrayRefFromStringRef(Blob), Uncompressed, Record[0])) { Error("could not decompress embedded file contents: " + llvm::toString(std::move(E))); return nullptr; } return llvm::MemoryBuffer::getMemBufferCopy( llvm::toStringRef(Uncompressed), Name);
(excerpt from ASTReader.cpp)
- CompressionKind: clean up param names to == op
- trim down compression api: remove supported()
- make a zlib corruption check specific
- feat compression "enum" with methods
Aug 1 2022
Jul 28 2022
- fix usage of CompressionAlgorithmFromId
- make compression singletons
Jul 27 2022
marked outdated comments as done
- use CompressionScheme->notNone() in InstrProf