Adding nounwind deduction in attributor.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
Is this sufficient to replace the old nounwind deduction? Can you disable the current one to see if there is something we cannot deduce with this one?
llvm/include/llvm/Transforms/IPO/Attributor.h | ||
---|---|---|
654 ↗ | (On Diff #204929) | Isn't ID = Attribute::NoUnwind sufficient? |
Is this sufficient to replace the old nounwind deduction? Can you disable the current one to see if there is something we cannot deduce with this one?
I already tried it on some of the other tests and it worked fine. I am going to that and test it some more, and update tomorrow morning.
llvm/include/llvm/Transforms/IPO/Attributor.h | ||
---|---|---|
654 ↗ | (On Diff #204929) | Totally, my bad. |
Sorry for the late update. I ran all tests with -disable-nounwind-inference -attributor -attributor-disable=false and they pass. Is that enough?
I have now run the test-suite with -disable-nounwind-inference with attributor and functionattrs with nounwind, with attributor disabled. These are the results:
attributor.NumFnNoUnwind: 935 (-disable-nounwind-inference)
functionattrs.NumNoUnwind: 262 (-attributor-disable=true)
That looks good. Do you happen to know if and how many attributes are deduced by the funcattrs pass if we enable both?
Please run clang format on the Attributor.cpp and revert the non-functional changes, e.g., in the comments.
llvm/include/llvm/Transforms/IPO/Attributor.h | ||
---|---|---|
654 ↗ | (On Diff #204929) | No worries, update it though ;) |
Ran clang-format, but it seems it didn't have any effect.
Numbers are the same when both are enabled.
Maybe I should commit this before nosync, since it looks like it may take few more days?