For an internal function, if all its call sites are dead, the body of the function is considered dead. This patch also updates checkForAllCallSites with llvm::function_ref.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
- Build Status
Buildable 36788 Build 36787: arc lint + arc unit
Event Timeline
Test missing, otherwise good
llvm/lib/Transforms/IPO/Attributor.cpp | ||
---|---|---|
1503 | Move this into a helper function as it is a copy of the init code. |
llvm/test/Transforms/FunctionAttrs/liveness.ll | ||
---|---|---|
51 | We should kill dead functions in the manifest method. |
llvm/test/Transforms/FunctionAttrs/liveness.ll | ||
---|---|---|
18 | Didn't intend to include this. This is actually a leftover. Didn't see you committed that. |
llvm/lib/Transforms/IPO/Attributor.cpp | ||
---|---|---|
1496 | Only do the whole conditional once. Hence, add && AssumedLiveBlocks.empy() to the conditional in line 1838. | |
1524 | I'm confused. When do we need this status flag here, I mean why isn't the one above sufficient. And if this one is needed, why only if we find a new NextNoReturnI and not once the path size changes (as before)? | |
2088 | This is not a valid cast. You want &AA::ID == &AAIsDead::ID | |
llvm/test/Transforms/FunctionAttrs/align.ll | ||
86 | Why do we loose the align? |
llvm/lib/Transforms/IPO/Attributor.cpp | ||
---|---|---|
1524 | This was actually a leftover. I was trying things when I thought I messed something with verification. |
llvm/lib/Transforms/IPO/Attributor.cpp | ||
---|---|---|
1290 | Add a new STATS_DECL... here to count number of dead internal functions. |
maybe (!...empty())