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
Diff Detail
- Repository
- rG LLVM Github Monorepo
- Build Status
Buildable 37475 Build 37474: arc lint + arc unit
Event Timeline
llvm/lib/Transforms/IPO/Attributor.cpp | ||
---|---|---|
144–155 | 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 | 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. |
Is AADummy used in this patch? What is the purpose?