# Reduce LLVM IR bloat \(\#63232\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/34241d5fc8c90c2e1959698e0a3a11712330f115)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: 34241d5fc8c90c2e1959698e0a3a11712330f115

Requested commit: 34241d5fc8c90c2e1959698e0a3a11712330f115

Commit: 34241d5fc8c90c2e1959698e0a3a11712330f115

Tree: 3c1f0aa4f72aebac53db929cbb44b2ff2dcb5165

Author: Kirill Bulatov

Committer: GitHub

## Message

```
Reduce LLVM IR bloat (#63232)

Cuts serde monomorphization in settings_content: both parse entry points
now share one deserializer instantiation, and the flatten-heavy settings
structs deserialize through a small manual routing macro instead of
serde's Content buffering.
Parsed values seem to be unchanged; JSON schema and serialization
derives are untouched.

`cargo llvm-lines -p settings_content`:
Before (1ff7cb669b): 2716889 lines, 92801 copies
After: 1203744 lines (-55.7%), 47122 copies (-49.2%)

With sccache disabled, `cargo clean` and `cargo build -p zed`:
Before: 132.8s wall, 1440.6s CPU, zed binary 1241791992 bytes
After: 128.8s wall (-3.0%), 1400.0s CPU (-2.8%), zed binary 1204044312
bytes (-3.0%, -37.7MB)

Release Notes:

- N/A
```

## Parents

- [c595091b0a0ab18d68cd97862e4748679dfe54d6](https://git.cafe/gitcafe/zed/commit/c595091b0a0ab18d68cd97862e4748679dfe54d6?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/34241d5fc8c90c2e1959698e0a3a11712330f115?format=markdown)
