[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