Bug fix for https://bugs.llvm.org/show_bug.cgi?id=45182
Exception handle may indirectly jump to catch pad, So we should add ENDBR instruction before catch pad instructions.
Details
Details
Diff Detail
Diff Detail
Event Timeline
llvm/lib/Target/X86/X86IndirectBranchTracking.cpp | ||
---|---|---|
132 | Line 131 ~ 134 can be merged to "bool EHPadIBTNeeded = MBB.isEHPad();" | |
140 | Does it looks better to insert endbr first for EHPAD block? MachineBasicBlock::iterator I = MBB.begin(); if (MBB.isEHPad()) { for (; I != MBB.end(); ++I) { if (I->isDebugInstr()) continue; } Changed |= addENDBR(MBB, std::next(I)); break; } for (; I != MBB.end(); ++I) { if (!I->isCall()) continue; ... } |
Comment Actions
@pengfei You can strip unneeded Phabricator tags with:
% which arcfilter arcfilter () { git log -1 --pretty=%B | awk '/Reviewers:|Subscribers:/{p=1} /Reviewed By:|Differential Revision:/{p=0} !p && !/^Summary:$/ {sub(/^Summary: /, "");print}' | git commit --amend -F - }
Subscribers: and Reviewers: are just annoying. It is also not appropriate to use Patch By: Xiang Zhang (xiangzhangllvm). See https://llvm.org/docs/DeveloperPolicy.html#commit-messages " git commit --amend --author="John Doe <jdoe@llvm.org> to correct the author property"
Line 131 ~ 134 can be merged to "bool EHPadIBTNeeded = MBB.isEHPad();"