diff options
author | David Callahan <dcallahan@fb.com> | 2019-01-14 19:05:59 +0000 |
---|---|---|
committer | David Callahan <dcallahan@fb.com> | 2019-01-14 19:05:59 +0000 |
commit | 957795973b98a52b770f9114602fc9e170c63233 (patch) | |
tree | fb9bacd676c529c38eca59ab0cc761ce7aa40299 /llvm/lib/Transforms/IPO/SampleProfile.cpp | |
parent | 1f3ab98aca01ca5b1a01f69ee13aa5fa8ac2331a (diff) | |
download | bcm5719-llvm-957795973b98a52b770f9114602fc9e170c63233.tar.gz bcm5719-llvm-957795973b98a52b770f9114602fc9e170c63233.zip |
Ignore PhiNodes when mapping sample profile data
Summary: Like branch instructions, phi nodes frequently do not have debug information related to the block they are in and so they should be ignored.
Reviewers: danielcdh, twoh, Kader, wmi
Reviewed By: wmi
Subscribers: aprantl, llvm-commits
Differential Revision: https://reviews.llvm.org/D55094
llvm-svn: 351102
Diffstat (limited to 'llvm/lib/Transforms/IPO/SampleProfile.cpp')
-rw-r--r-- | llvm/lib/Transforms/IPO/SampleProfile.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/IPO/SampleProfile.cpp b/llvm/lib/Transforms/IPO/SampleProfile.cpp index 06a1ce89827..1e86e04a79d 100644 --- a/llvm/lib/Transforms/IPO/SampleProfile.cpp +++ b/llvm/lib/Transforms/IPO/SampleProfile.cpp @@ -544,10 +544,10 @@ ErrorOr<uint64_t> SampleProfileLoader::getInstWeight(const Instruction &Inst) { if (!FS) return std::error_code(); - // Ignore all intrinsics and branch instructions. - // Branch instruction usually contains debug info from sources outside of + // Ignore all intrinsics, phinodes and branch instructions. + // Branch and phinodes instruction usually contains debug info from sources outside of // the residing basic block, thus we ignore them during annotation. - if (isa<BranchInst>(Inst) || isa<IntrinsicInst>(Inst)) + if (isa<BranchInst>(Inst) || isa<IntrinsicInst>(Inst) || isa<PHINode>(Inst)) return std::error_code(); // If a direct call/invoke instruction is inlined in profile |