Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Port test/passes/inlin* to lit (#3972) | Thomas Lively | 2021-07-13 | 1 | -58/+0 |
| | |||||
* | Inlining: Always inline single-use functions (#3730) | Alon Zakai | 2021-03-29 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | | This implements emscripten-core/emscripten#13744 Inlining functions with a single use allows us to remove the function afterward. That looks highly beneficial, shrinking every single benchmark in emscripten's benchmark suite, by an average of 2% on the macrobenchmarks and 3.5% on all of them. Speed also improves, although mostly on the microbenchmarks so that might be less realistic. There may be a slight downside to startup time due to emitting larger functions, but given the baseline compilers in VMs these days it seems worth it, as the delay would be just to get to the upper tier. On the benchmark suite the risk seems low. See more details in the PR above. | ||||
* | Massive renaming (#1855) | Thomas Lively | 2019-01-07 | 1 | -1/+1 |
| | | | | | | Automated renaming according to https://github.com/WebAssembly/spec/issues/884#issuecomment-426433329. | ||||
* | Inline many (#1125) | Alon Zakai | 2017-08-22 | 1 | -0/+58 |
* Improve inlining pass to inline single-use functions that are fairly small, which makes it useful for removing unnecessary global constructors from clang. * Add an inlining-optimizing pass that also optimizes where it inlined, as new opportunities arise. enable that it by default in O2+ * In addition, in -O3+ also inline small functions with multiple uses. This helps a lot with things like safe-int-divide functions (where each int divide is replaced by a safe divide that won't trap). Inlining gets rid of around half of the overhead there. |