| 833 | } |
| 834 | |
| 835 | bool RDAnalyzer::isForcedDef(RDNode &Node) const { |
| 836 | auto &Location = Node.getLocation(); |
| 837 | auto *CB = dyn_cast_or_null<CallBase>(&Location); |
| 838 | if (!CB) |
| 839 | return false; |
| 840 | |
| 841 | auto Idx = Node.getIdx(); |
| 842 | if (Idx < 0) |
| 843 | return false; |
| 844 | assert((size_t)Idx < CB->getNumArgOperands() && "Unexpected Program State"); |
| 845 | |
| 846 | return Extension.isTermination(*CB, Idx); |
| 847 | } |
| 848 | |
| 849 | bool RDAnalyzer::terminates(RDNode &Node) const { |
| 850 | if (Node.isRootDefinition()) |
nothing calls this directly
no test coverage detected