[PATCH] D100735: [CodeGen] Enable Windows exception handling for basic block sections
TaoPan via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 22 00:57:46 PDT 2021
TaoPan added a comment.
In D100735#2832069 <https://reviews.llvm.org/D100735#2832069>, @modimo wrote:
> Is there currently a difference in the output when built with `-basic-block-sections=all -unique-basic-block-section-names` vs. without? If so, should CHECK for both cases to highlight the difference and add some explanatory comments on why a particular transformation took place. What are considered landing pads for `avoidZeroOffsetLandingPad` under MSVC? I can double-check to make sure they're truly not needed.
>
> Otherwise this looks good and works well as a first step.
Thanks for your comment!
No big difference. There are 12 more sections in Sections table, I checked asm file, there are 12 BB sections, so all added sections are BB sections. And as the test file CHECK, one relocation of .xdata section changed from ".text" to "?TestCPPEX@@YAXH at Z.__part.3". Is this difference need to add without `-basic-block-sections=all -unique-basic-block-section-names` case for highlight the difference?
FYI, about `avoidZeroOffsetLandingPad` under MSVC, isFuncletEHPersonality(Pers) check and return of SelectionDAGISel::PrepareEHLandingPad() prevent later addLandingPad(MBB) and adding TargetOpcode::EH_LABEL MachineInstr in the case of MSVC. `while (!MI->isEHLabel()) ++MI;` of `avoidZeroOffsetLandingPad` is dead loop as no EHLabel MI in the case of MSVC.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D100735/new/
https://reviews.llvm.org/D100735
More information about the llvm-commits
mailing list