Live data from Hacker News

Propeller: Profile-guided, optimizing, large-scale LLVM-based relinker

github.com

1–10 of 28 posts

Re: Propeller: Profile-guided, optimizing, large-scale LLVM-based relinker

#4

> It has scalability issues and to rewrite a binary with a ~300M text segment size I'm curious what kinds of tasks require a binary with a 300 MB text size…

Isn’t the text segment actually the machine instructions?

Re: Propeller: Profile-guided, optimizing, large-scale LLVM-based relinker

#5

> It has scalability issues and to rewrite a binary with a ~300M text segment size I'm curious what kinds of tasks require a binary with a 300 MB text size…

Text _segment_ size. That's executable instructions; presumably it makes a bit more sense that Google would have a binary with 300MB worth of instructions laying around.

Re: Propeller: Profile-guided, optimizing, large-scale LLVM-based relinker

#6

> It has scalability issues and to rewrite a binary with a ~300M text segment size I'm curious what kinds of tasks require a binary with a 300 MB text size…

Isn’t the text segment actually the machine instructions?

Yes.

Re: Propeller: Profile-guided, optimizing, large-scale LLVM-based relinker

#7
post #5

> It has scalability issues and to rewrite a binary with a ~300M text segment size I'm curious what kinds of tasks require a binary with a 300 MB text size…

Text _segment_ size. That's executable instructions; presumably it makes a bit more sense that Google would have a binary with 300MB worth of instructions laying around.

Yes, I get that; I am curious what goes into a binary with 300 MB of code in it.

Re: Propeller: Profile-guided, optimizing, large-scale LLVM-based relinker

#8

Propeller looks very interesting. Judging from the number of commits, the project has been around a long while. Does anyone know its history?

It's a fork of LLVM; it seems to be about 800 commits ahead of LLVM master.

Re: Propeller: Profile-guided, optimizing, large-scale LLVM-based relinker

#10
post #5

Earlier quoted context omitted.

Text _segment_ size. That's executable instructions; presumably it makes a bit more sense that Google would have a binary with 300MB worth of instructions laying around.

Yes, I get that; I am curious what goes into a binary with 300 MB of code in it.

Google has very large applications, but also they are using static linking: imagine that you statically link all the possible dependencies in a single binary for each application. 300MB is not considered a large binary at Google actually, I don't know what is public but you may look at Table 2 in this publication for instance: https://www.researchgate.net/publication/314105281_ThinLTO_S...

I repro here some data, there is a bit more in the paper:

Clang 1.9k Files, 217MB (-g0), 3554MB (-g) Chromium 17.8k Files 706MB (-g0), 7544MB (-g) Ad Delivery 13.8k Files 1073MB (-g0), 7469MB (-g)

(this is the number of object file that are participating in the link).

Post reply on HN