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
- Repository
- rG LLVM Github Monorepo
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();"