diff options
Diffstat (limited to 'llvm/lib/Target/AMDGPU/Utils/AMDGPULDSUtils.cpp')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/Utils/AMDGPULDSUtils.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/Utils/AMDGPULDSUtils.cpp b/llvm/lib/Target/AMDGPU/Utils/AMDGPULDSUtils.cpp index da8fcf3900bb..2e4d83fbbc39 100644 --- a/llvm/lib/Target/AMDGPU/Utils/AMDGPULDSUtils.cpp +++ b/llvm/lib/Target/AMDGPU/Utils/AMDGPULDSUtils.cpp @@ -11,6 +11,7 @@ //===----------------------------------------------------------------------===// #include "AMDGPULDSUtils.h" +#include "AMDGPU.h" #include "Utils/AMDGPUBaseInfo.h" #include "llvm/ADT/DepthFirstIterator.h" #include "llvm/ADT/SetVector.h" @@ -68,6 +69,11 @@ class CollectReachableCallees { if (!VisitedCGNodes.insert(CGN).second) continue; + // Ignore call graph node which does not have associated function or + // associated function is not a definition. + if (!CGN->getFunction() || CGN->getFunction()->isDeclaration()) + continue; + for (auto GI = CGN->begin(), GE = CGN->end(); GI != GE; ++GI) { auto *RCB = cast<CallBase>(GI->first.getValue()); auto *RCGN = GI->second; |
