Skip to content

Commit 7fc048f

Browse files
committed
Auto merge of #75754 - joshtriplett:wip-perf-snappy, r=Mark-Simulacrum
Switch to Snappy compression for metadata
2 parents fe8ab8a + 574f6be commit 7fc048f

File tree

6 files changed

+16
-11
lines changed

6 files changed

+16
-11
lines changed

Cargo.lock

+8-2
Original file line numberDiff line numberDiff line change
@@ -3365,7 +3365,6 @@ name = "rustc_codegen_llvm"
33653365
version = "0.0.0"
33663366
dependencies = [
33673367
"bitflags",
3368-
"flate2",
33693368
"libc",
33703369
"measureme",
33713370
"rustc-demangle",
@@ -3386,6 +3385,7 @@ dependencies = [
33863385
"rustc_span",
33873386
"rustc_target",
33883387
"smallvec 1.4.2",
3388+
"snap",
33893389
"tracing",
33903390
]
33913391

@@ -3711,7 +3711,6 @@ dependencies = [
37113711
name = "rustc_metadata"
37123712
version = "0.0.0"
37133713
dependencies = [
3714-
"flate2",
37153714
"libc",
37163715
"memmap",
37173716
"rustc_ast",
@@ -3729,6 +3728,7 @@ dependencies = [
37293728
"rustc_span",
37303729
"rustc_target",
37313730
"smallvec 1.4.2",
3731+
"snap",
37323732
"stable_deref_trait",
37333733
"tracing",
37343734
"winapi 0.3.9",
@@ -4399,6 +4399,12 @@ version = "1.4.2"
43994399
source = "registry+https://github.com/rust-lang/crates.io-index"
44004400
checksum = "fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252"
44014401

4402+
[[package]]
4403+
name = "snap"
4404+
version = "1.0.1"
4405+
source = "registry+https://github.com/rust-lang/crates.io-index"
4406+
checksum = "da73c8f77aebc0e40c300b93f0a5f1bece7a248a36eee287d4e095f35c7b7d6e"
4407+
44024408
[[package]]
44034409
name = "socket2"
44044410
version = "0.3.12"

src/librustc_codegen_llvm/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ doctest = false
1212

1313
[dependencies]
1414
bitflags = "1.0"
15-
flate2 = "1.0"
1615
libc = "0.2"
1716
measureme = "0.7.1"
17+
snap = "1"
1818
tracing = "0.1"
1919
rustc_middle = { path = "../librustc_middle" }
2020
rustc-demangle = "0.1"

src/librustc_codegen_llvm/base.rs

+2-5
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,12 @@ pub fn write_compressed_metadata<'tcx>(
4545
metadata: &EncodedMetadata,
4646
llvm_module: &mut ModuleLlvm,
4747
) {
48-
use flate2::write::DeflateEncoder;
49-
use flate2::Compression;
48+
use snap::write::FrameEncoder;
5049
use std::io::Write;
5150

5251
let (metadata_llcx, metadata_llmod) = (&*llvm_module.llcx, llvm_module.llmod());
5352
let mut compressed = tcx.metadata_encoding_version();
54-
DeflateEncoder::new(&mut compressed, Compression::fast())
55-
.write_all(&metadata.raw_data)
56-
.unwrap();
53+
FrameEncoder::new(&mut compressed).write_all(&metadata.raw_data).unwrap();
5754

5855
let llmeta = common::bytes_in_context(metadata_llcx, &compressed);
5956
let llconst = common::struct_in_context(metadata_llcx, &[llmeta], false);

src/librustc_metadata/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ path = "lib.rs"
1010
doctest = false
1111

1212
[dependencies]
13-
flate2 = "1.0"
1413
libc = "0.2"
14+
snap = "1"
1515
tracing = "0.1"
1616
memmap = "0.7"
1717
smallvec = { version = "1.0", features = ["union", "may_dangle"] }

src/librustc_metadata/locator.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ use rustc_span::symbol::{sym, Symbol};
229229
use rustc_span::Span;
230230
use rustc_target::spec::{Target, TargetTriple};
231231

232-
use flate2::read::DeflateDecoder;
232+
use snap::read::FrameDecoder;
233233
use std::io::{Read, Result as IoResult, Write};
234234
use std::ops::Deref;
235235
use std::path::{Path, PathBuf};
@@ -766,7 +766,7 @@ fn get_metadata_section(
766766
let compressed_bytes = &buf[header_len..];
767767
debug!("inflating {} bytes of compressed metadata", compressed_bytes.len());
768768
let mut inflated = Vec::new();
769-
match DeflateDecoder::new(compressed_bytes).read_to_end(&mut inflated) {
769+
match FrameDecoder::new(compressed_bytes).read_to_end(&mut inflated) {
770770
Ok(_) => rustc_erase_owner!(OwningRef::new(inflated).map_owner_box()),
771771
Err(_) => {
772772
return Err(format!("failed to decompress metadata: {}", filename.display()));

src/tools/tidy/src/deps.rs

+2
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ const EXCEPTIONS: &[(&str, &str)] = &[
4242
("crossbeam-queue", "MIT/Apache-2.0 AND BSD-2-Clause"), // rls via rayon
4343
("arrayref", "BSD-2-Clause"), // cargo-miri/directories/.../rust-argon2 (redox)
4444
("instant", "BSD-3-Clause"), // rustc_driver/tracing-subscriber/parking_lot
45+
("snap", "BSD-3-Clause"), // rustc
4546
// FIXME: this dependency violates the documentation comment above:
4647
("fortanix-sgx-abi", "MPL-2.0"), // libstd but only for `sgx` target
4748
];
@@ -161,6 +162,7 @@ const PERMITTED_DEPENDENCIES: &[&str] = &[
161162
"serde_derive",
162163
"sha-1",
163164
"smallvec",
165+
"snap",
164166
"stable_deref_trait",
165167
"stacker",
166168
"syn",

0 commit comments

Comments
 (0)