|
|
|
|
|
by CamperBob2
3055 days ago
|
|
How exactly does a compiler generate "riskier" optimizations from a single-header as opposed to separate translation units? I fail to understand how after the pre-processing phase, this would be less safe. For instance, the optimizer might conclude that it's safe to either elide an inline function call or compile it very differently if it sees that you're referring to the same object in two separate parameters. If the function is implemented in a separate file, the optimizer has to assume that the function does something it doesn't know about. |
|
1. In some libraries (SQLLite for instance, and libev too I think) the authors have a script that "amalgamates" all sources into a single translation unit.Their reasoning being that a compiler with full-visibility of the source can do global / interprodecural optimization that would not be possible otherwise. Is there any sense in this if it practical to do so for a small to moderate size library?
2. Please tell me what I should read so I can reach the same level of understanding that you have. <not a question>