Instead of building attributes for internal functions which we do not
update as long as we assume they are dead, we now do not create
attributes until we assume the internal function to be live. This
improves the number of required iterations, as well as the number of
required updates, in real code. On our tests, the results are mixed.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
llvm/lib/Transforms/IPO/Attributor.cpp | ||
---|---|---|
144–155 ↗ | (On Diff #217765) | It was, then I removed the use -.-, will remove the dummy AA as well. Was used as QueryingAA but no need anymore. |
llvm/test/Transforms/FunctionAttrs/align.ll | ||
1 ↗ | (On Diff #217765) | Because we look at internal functions later. That should not increase the overall time spend or number of total updates. Once these patches are through I'll also add a test I distilled from a benchmark to verify we keep a low number of iterations in an actual "corner case" that exists. |